From e533d04256431ad2983339b2a8c750d3178f14fa Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Tue, 13 Feb 2024 15:13:15 +0100 Subject: [PATCH 01/17] #761: Added way to export all webform configurations # Conflicts: # web/modules/custom/os2forms_selvbetjening/os2forms_selvbetjening.permissions.yml # web/modules/custom/os2forms_selvbetjening/os2forms_selvbetjening.services.yml # web/modules/custom/os2forms_selvbetjening/src/Form/SettingsForm.php # web/modules/custom/os2forms_selvbetjening/src/Helper/WebformConfigurationExporter.php --- .../src/Helper/Settings.php | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 web/modules/custom/os2forms_selvbetjening/src/Helper/Settings.php diff --git a/web/modules/custom/os2forms_selvbetjening/src/Helper/Settings.php b/web/modules/custom/os2forms_selvbetjening/src/Helper/Settings.php new file mode 100644 index 00000000..8e1efdf4 --- /dev/null +++ b/web/modules/custom/os2forms_selvbetjening/src/Helper/Settings.php @@ -0,0 +1,89 @@ +store = $keyValueFactory->get($this->collection); + } + + /** + * Get fasit api base url. + */ + public function getWebformExportFilename(): string { + return $this->get(SettingsForm::SELVBETJENING_WEBFORM_EXPORT_FILENAME, ''); + } + + /** + * Get a setting value. + * + * @param string $key + * The key. + * @param mixed|null $default + * The default value. + * + * @return mixed + * The setting value. + */ + private function get(string $key, $default = NULL) { + $resolver = $this->getSettingsResolver(); + if (!$resolver->isDefined($key)) { + throw new InvalidSettingException(sprintf('Setting %s is not defined', $key)); + } + + return $this->store->get($key, $default); + } + + /** + * Set settings. + * + * @throws \Symfony\Component\OptionsResolver\Exception\ExceptionInterface + * + * @phpstan-param array $settings + */ + public function setSettings(array $settings): self { + $settings = $this->getSettingsResolver()->resolve($settings); + foreach ($settings as $key => $value) { + $this->store->set($key, $value); + } + + return $this; + } + + /** + * Get settings resolver. + */ + private function getSettingsResolver(): OptionsResolver { + return (new OptionsResolver()) + ->setDefaults([ + SettingsForm::SELVBETJENING_WEBFORM_EXPORT_FILENAME => '', + ]); + } + +} From d24bc032a411f5dcd27df3ce8d937577fd54b49b Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Tue, 9 Apr 2024 09:27:59 +0200 Subject: [PATCH 02/17] Infisical --- docker-compose.infisical.yml | 117 +++++++++++++++++++++++++++++++++++ docs/DEVELOPMENT.md | 19 ++++++ 2 files changed, 136 insertions(+) create mode 100644 docker-compose.infisical.yml diff --git a/docker-compose.infisical.yml b/docker-compose.infisical.yml new file mode 100644 index 00000000..cd2571ca --- /dev/null +++ b/docker-compose.infisical.yml @@ -0,0 +1,117 @@ +version: "3" + +# @see https://raw.githubusercontent.com/Infisical/infisical/main/docker-compose.prod.yml + +networks: + infisical: + +services: + infisical-db-migration: + profiles: + - infisical + container_name: infisical-db-migration + depends_on: + infisical-db: + condition: service_healthy + image: infisical/infisical:latest-postgres + command: npm run migration:latest + pull_policy: always + networks: + - infisical + environment: + # Keys + # Required key for platform encryption/decryption ops + # THIS IS A SAMPLE ENCRYPTION KEY AND SHOULD NEVER BE USED FOR PRODUCTION + - ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218 + + # JWT + # Required secrets to sign JWT tokens + # THIS IS A SAMPLE AUTH_SECRET KEY AND SHOULD NEVER BE USED FOR PRODUCTION + - AUTH_SECRET=5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE= + + # Required + - DB_CONNECTION_URI=postgres://infisical:infisical@infisical-db:5432/infisical + + # Redis + - REDIS_URL=redis://infisical-redis:6379 + + - NODE_ENV=production + + infisical-backend: + profiles: + - infisical + container_name: infisical-backend + restart: unless-stopped + depends_on: + infisical-db: + condition: service_healthy + infisical-redis: + condition: service_started + infisical-db-migration: + condition: service_completed_successfully + image: infisical/infisical:latest-postgres + pull_policy: always + ports: + - 8080 + environment: + # Keys + # Required key for platform encryption/decryption ops + # THIS IS A SAMPLE ENCRYPTION KEY AND SHOULD NEVER BE USED FOR PRODUCTION + - ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218 + + # JWT + # Required secrets to sign JWT tokens + # THIS IS A SAMPLE AUTH_SECRET KEY AND SHOULD NEVER BE USED FOR PRODUCTION + - AUTH_SECRET=5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE= + + # Required + - DB_CONNECTION_URI=postgres://infisical:infisical@infisical-db:5432/infisical + + # Redis + - REDIS_URL=redis://infisical-redis:6379 + + - NODE_ENV=production + networks: + - infisical + + infisical-redis: + profiles: + - infisical + image: redis + container_name: infisical-dev-redis + environment: + - ALLOW_EMPTY_PASSWORD=yes + ports: + - 6379:6379 + networks: + - infisical + volumes: + - redis_data:/data + + infisical-db: + profiles: + - infisical + container_name: infisical-db + image: postgres:14-alpine + restart: always + environment: + # Postgres creds + - POSTGRES_PASSWORD=infisical + - POSTGRES_USER=infisical + - POSTGRES_DB=infisical + + volumes: + - pg_data:/var/lib/postgresql/data + networks: + - infisical + healthcheck: + test: 'pg_isready --username=infisical && psql --username=infisical --list' + interval: 5s + timeout: 10s + retries: 10 + +volumes: + pg_data: + driver: local + redis_data: + driver: local diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 7525b165..459c5f79 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -139,3 +139,22 @@ docker compose up -d ``` to reload the OIDC configuration. + +## Infisical + + + +```sh +docker compose --profile infisical up --detach +``` + +```sh +open "http://$(docker compose port infisical-backend 8080)" +``` + + + +```sh +brew install infisical/get-cli/infisical +infisical login --interactive --domain "http://$(docker compose port infisical-backend 8080)/api" +``` From 001d2e6ad65b49272f3538db57f915dfcbedf473 Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Tue, 9 Apr 2024 09:28:55 +0200 Subject: [PATCH 03/17] Fixed type assertion --- .../os2forms_selvbetjening/src/Commands/LookupCommands.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/modules/custom/os2forms_selvbetjening/src/Commands/LookupCommands.php b/web/modules/custom/os2forms_selvbetjening/src/Commands/LookupCommands.php index ddd645f0..067a608f 100644 --- a/web/modules/custom/os2forms_selvbetjening/src/Commands/LookupCommands.php +++ b/web/modules/custom/os2forms_selvbetjening/src/Commands/LookupCommands.php @@ -80,7 +80,7 @@ public function lookUpCvr( ) { try { $instance = $this->dataLookupManager->createDefaultInstanceByGroup('cvr_lookup'); - assert($instance instanceof DatafordelerCVR); + assert($instance instanceof DataLookupInterfaceCompany); if ($options['dump-configuration']) { $this->output()->writeln([ From e1f7cc83e3927ad8f95532316ed354e2016b9526 Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Fri, 26 Apr 2024 16:01:48 +0200 Subject: [PATCH 04/17] Key --- .gitignore | 3 ++ config/sync/config_ignore.settings.yml | 10 ++++ config/sync/core.extension.yml | 1 + docker-compose.yml | 6 +-- docs/Keys.md | 68 ++++++++++++++++++++++++++ 5 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 docs/Keys.md diff --git a/.gitignore b/.gitignore index 9486e6f5..4a6b0484 100644 --- a/.gitignore +++ b/.gitignore @@ -220,6 +220,9 @@ private-files/ node_modules/ yarn-error.log +# Ignore keys +config/sync/**/key.key.* + # Ignore webforms, webform options and maestro templates including localized config. config/sync/**/maestro.maestro_template.* config/sync/**/webform.webform.* diff --git a/config/sync/config_ignore.settings.yml b/config/sync/config_ignore.settings.yml index 3a11c466..a427b633 100644 --- a/config/sync/config_ignore.settings.yml +++ b/config/sync/config_ignore.settings.yml @@ -23,11 +23,21 @@ ignored_config_entities: - 'os2web_datalookup.serviceplatformen_cpr_extended:certfile_test' - 'os2web_datalookup.serviceplatformen_cpr_extended:mode_selector' - 'os2web_datalookup.serviceplatformen_cpr_extended:serviceagreementuuid' + - 'os2web_datalookup.serviceplatformen_cpr_extended:wsdl' - 'os2web_datalookup.serviceplatformen_cpr_extended:usersystemuuid' - 'os2web_datalookup.serviceplatformen_cpr_extended:useruuid' + - 'os2web_datalookup.serviceplatformen_cpr_extended:certfile_passphrase' + - 'os2web_datalookup.serviceplatformen_cpr_extended:certfile' + - 'os2web_datalookup.serviceplatformen_cpr_extended:certfile_test' + - '# Ignore leaflet layers' + - 'leaflet_layers.map_bundle.*' + - 'leaflet_layers.map_layer.*' + - os2forms_forloeb.settings - 'os2web_datalookup.serviceplatformen_cpr_extended:wsdl' - os2web_nemlogin.settings - system.site - 'webform.settings:third_party_settings.webform_entity_print.template' - 'webform.webform.*' - 'webform.webform_options.*' + - '# Ignore keys (https://www.drupal.org/project/key)' + - 'key.key.*' diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index bed67ca4..b061d45c 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -107,6 +107,7 @@ module: os2web_audit: 0 os2web_audit_user: 0 os2web_datalookup: 0 + os2web_key: 0 os2web_nemlogin: 0 os2web_simplesaml: 0 page_cache: 0 diff --git a/docker-compose.yml b/docker-compose.yml index eacb2732..0dece663 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -65,9 +65,9 @@ services: - "traefik.enable=true" - "traefik.docker.network=frontend" - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.rule=Host(`${COMPOSE_DOMAIN}`)" -# HTTPS config - uncomment to enable redirect from :80 to :443 -# - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.middlewares=redirect-to-https" -# - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" + # HTTPS config - uncomment to enable redirect from :80 to :443 + - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.middlewares=redirect-to-https" + - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" memcached: image: 'memcached:latest' diff --git a/docs/Keys.md b/docs/Keys.md new file mode 100644 index 00000000..313cda9f --- /dev/null +++ b/docs/Keys.md @@ -0,0 +1,68 @@ +# Keys + +## Usage + +### Certificate and passphrase + +* +* + * What about all the UUIDs? +* +* + - Is `Fasit API tenant` a secret? + +### Username and passphrase + +* + +### OpenID Connect (Multivalue) + +* + * + * + +* FBS?! + +## Not our modules + +* + * We can use the key module to inject `Client ID` and `Client secret`, cf. + + ```php + # web/sites/default/settings.local.php + $config['openid_connect.client.generic']['settings']['client_id'] = 'mock-idp-admin'; + $config['openid_connect.client.generic']['settings']['client_secret'] = 'mock-idp-admin-secret'; + ``` + +## Test certificates + +```shell name=create-test-certificates +# p12 with password +openssl req -x509 -newkey rsa:4096 -days 365 -subj "/CN=example.com" -passout pass:test -keyout cert/test.key -out cert/test.crt +openssl pkcs12 -export -out cert/test.p12 -passin pass:test -passout pass:test -inkey cert/test.key -in cert/test.crt +openssl pkcs12 -in cert/test.p12 -passin pass:test -noenc + +# p12 without password +openssl req -x509 -newkey rsa:4096 -days 365 -subj "/CN=example.com" -passout pass:'' -keyout cert/test_no_password.key -out cert/test_no_password.crt +openssl pkcs12 -export -out cert/test_no_password.p12 -passin pass:'' -passout pass:'' -inkey cert/test_no_password.key -in cert/test_no_password.crt +openssl pkcs12 -in cert/test_no_password.p12 -passin pass:'' -noenc + +# PEM with password +openssl req -x509 -newkey rsa:4096 -days 365 -subj "/CN=example.com" -passout pass:test -keyout cert/test.key -out cert/test.crt +cat cert/test.crt cert/test.key > cert/test.pem +openssl x509 -in cert/test.pem + +# PEM without password +openssl req -x509 -newkey rsa:4096 -days 365 -subj "/CN=example.com" -passout pass:'' -keyout cert/test_no_password.key -out cert/test_no_password.crt -noenc +cat cert/test_no_password.crt cert/test_no_password.key > cert/test_no_password.pem +openssl x509 -in cert/test_no_password.pem +``` + +```php +# web/sites/default/settings.local.php +putenv('KEY_DIGITAL_POST_CERTIFICATE_PASSWORD=digital_post'); +``` + +## Questions + + From 58ec8e21f31e4d022942aa3d1fb48783845dd52a Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Mon, 13 May 2024 13:04:48 +0200 Subject: [PATCH 05/17] =?UTF-8?q?Hmm=20=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.infisical.yml | 2 -- docs/Keys.md | 18 +++++++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/docker-compose.infisical.yml b/docker-compose.infisical.yml index cd2571ca..52fc60fa 100644 --- a/docker-compose.infisical.yml +++ b/docker-compose.infisical.yml @@ -1,5 +1,3 @@ -version: "3" - # @see https://raw.githubusercontent.com/Infisical/infisical/main/docker-compose.prod.yml networks: diff --git a/docs/Keys.md b/docs/Keys.md index 313cda9f..21bf2d01 100644 --- a/docs/Keys.md +++ b/docs/Keys.md @@ -15,7 +15,7 @@ * -### OpenID Connect (Multivalue) +### OpenID Connect (OIDC) * * @@ -66,3 +66,19 @@ putenv('KEY_DIGITAL_POST_CERTIFICATE_PASSWORD=digital_post'); ## Questions + +```mermaid +flowchart LR + os2forms[os2forms/os2forms] -->|require| os2web_key[os2web/os2web_key] + + os2forms_fasit[os2forms/os2forms_fasit] -->|require| os2web_key + + os2forms_get_organized[os2forms/os2forms_get_organized] -->|require| key[drupal/key] + + os2web_datalookup[os2web/os2web_datalookup] -->|require| os2web_key + + os2web_key -->|require| key + + os2forms_nemlogin_openid_connect[itk-dev/os2forms_nemlogin_openid_connect] -->|require| os2web_key + %% os2forms_nemlogin_openid_connect -->|require| os2web_nemlogin[os2web/os2web_nemlogin] +``` From a0fbe6fff43a0bee661fcb6ae9b0cdf0dad4b851 Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Wed, 15 May 2024 12:00:41 +0200 Subject: [PATCH 06/17] Updated graph --- docs/Keys.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/Keys.md b/docs/Keys.md index 21bf2d01..6d6fcfd8 100644 --- a/docs/Keys.md +++ b/docs/Keys.md @@ -65,20 +65,22 @@ putenv('KEY_DIGITAL_POST_CERTIFICATE_PASSWORD=digital_post'); ## Questions +--- + ```mermaid flowchart LR - os2forms[os2forms/os2forms] -->|require| os2web_key[os2web/os2web_key] + os2forms[os2forms/os2forms: #101] -->|require| os2web_key[os2web/os2web_key] - os2forms_fasit[os2forms/os2forms_fasit] -->|require| os2web_key + os2forms_fasit[os2forms/os2forms_fasit: #7] -->|require| os2web_key - os2forms_get_organized[os2forms/os2forms_get_organized] -->|require| key[drupal/key] + os2forms_get_organized[os2forms/os2forms_get_organized: #14] -->|require| key[drupal/key] - os2web_datalookup[os2web/os2web_datalookup] -->|require| os2web_key + os2web_datalookup[os2web/os2web_datalookup: #13] -->|require| os2web_key os2web_key -->|require| key - os2forms_nemlogin_openid_connect[itk-dev/os2forms_nemlogin_openid_connect] -->|require| os2web_key + os2forms_nemlogin_openid_connect[itk-dev/os2forms_nemlogin_openid_connect: #19] -->|require| os2web_key %% os2forms_nemlogin_openid_connect -->|require| os2web_nemlogin[os2web/os2web_nemlogin] ``` From 3e366714102c7c857bc8db70bd6a2e7bdf27aa7d Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Thu, 16 May 2024 13:53:01 +0200 Subject: [PATCH 07/17] Updated modules with keys --- docs/Keys.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/docs/Keys.md b/docs/Keys.md index 6d6fcfd8..0df83c5b 100644 --- a/docs/Keys.md +++ b/docs/Keys.md @@ -21,8 +21,6 @@ * * -* FBS?! - ## Not our modules * @@ -67,7 +65,16 @@ putenv('KEY_DIGITAL_POST_CERTIFICATE_PASSWORD=digital_post'); --- - +## Development + +| Pull request | Internally approved | Externally approved | Release version | +|-----------------------------------------------------------------------|---------------------|---------------------|-----------------| +| | yes | | 4.0.0 | +| | yes | | | +| | yes | | | +| | yes | | | +| | yes | | | + ```mermaid flowchart LR @@ -81,6 +88,63 @@ flowchart LR os2web_key -->|require| key - os2forms_nemlogin_openid_connect[itk-dev/os2forms_nemlogin_openid_connect: #19] -->|require| os2web_key + os2forms_nemlogin_openid_connect[itk-dev/os2forms_nemlogin_openid_connect: #20] -->|require| os2web_key %% os2forms_nemlogin_openid_connect -->|require| os2web_nemlogin[os2web/os2web_nemlogin] ``` + +### Test + + + +#### Certificate and passphrase + +* +* + * What about all the UUIDs? + + ```shell + drush os2forms-selvbetjening:look-up:cpr 2611740000 + ``` + +* + + ```shell + drush os2forms-digital-post:test:send 2611740000 + ``` + + (implicitly tests CPR lookup) + +* + * Is `Fasit API tenant` a secret? + + ```shell + drush os2forms-fasit:test:api + ``` + +#### Username and passphrase + +* + + ```shell + drush os2forms-get-organized:test:api + ``` + +#### OpenID Connect (OIDC) + +* + * + * + +#### Not our modules + +* + * We can use the key module to inject `Client ID` and `Client secret`, cf. + +--- + + + +```shell +drush config:get openid_connect.client.generic +drush config:get openid_connect.client.generic --include-overridden +``` From 7d8141b068cfdab25fc3d51d232dd7e8bdf2812e Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Fri, 20 Dec 2024 11:24:59 +0100 Subject: [PATCH 08/17] =?UTF-8?q?Hmm=20=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Conflicts: # composer.lock # Conflicts: # composer.json --- README.key.md | 23 +++++++++++++++++++++++ composer.json | 14 +++++++++++--- 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 README.key.md diff --git a/README.key.md b/README.key.md new file mode 100644 index 00000000..7e70e2e1 --- /dev/null +++ b/README.key.md @@ -0,0 +1,23 @@ +# Key notes + +``` json +// composer.json + "require": { + "itk-dev/os2forms_nemlogin_openid_connect": "dev-feature/os2web_key", + … + "os2forms/os2forms": "dev-feature/os2web_key as 3.21.0", + "os2forms/os2forms_get_organized": "dev-feature/os2web_key", + "os2web/os2web_datalookup": "dev-feature/os2web_key as 2.0.2", + "os2forms/os2forms_fasit": "dev-feature/os2web_key", + }, + "repositories": [ + { "type": "vcs", "url": "https://github.com/itk-dev/os2forms" }, + { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_fasit" }, + { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_get_organized" }, + { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_nemlogin_openid_connect" }, + { "type": "vcs", "url": "https://github.com/itk-dev/os2web_datalookup" }, + … + ], +``` + +Is `os2forms/os2forms_fasit` actually used (yet)? diff --git a/composer.json b/composer.json index 752d10a6..eb6f6746 100644 --- a/composer.json +++ b/composer.json @@ -16,6 +16,7 @@ "drupal/core-recommended": "^10.3", "drupal/editor_advanced_link": "^2.2", "drupal/jquery_ui_datepicker": "^2.1", + "drupal/key": "^1.19", "drupal/lang_dropdown": "^2.1", "drupal/log_stdout": "^1.5", "drupal/memcache": "^2.7", @@ -25,17 +26,19 @@ "drupal/webform_translation_permissions": "^2.0", "fig/http-message-util": "^1.1", "itk-dev/os2forms_failed_jobs": "^1.5", + "itk-dev/os2forms_nemlogin_openid_connect": "dev-feature/os2web_key as 2.3.0", "itk-dev/os2forms_nemlogin_openid_connect": "^2.2", "itk-dev/os2forms_user_field_lookup": "^1.1", "itk-dev/web_accessibility_statement": "^1.1", - "os2forms/os2forms": "^4.0", + "os2forms/os2forms": "dev-feature/os2web_key as 4.1.0", "os2forms/os2forms_forloeb_profile": "^1.15", - "os2forms/os2forms_get_organized": "^1.4", + "os2forms/os2forms_get_organized": "dev-feature/os2web_key as 1.5.0", "os2forms/os2forms_organisation": "^2.1", "os2forms/os2forms_payment": "^1.0", "os2forms/os2forms_rest_api": "^2.2", "os2forms/os2forms_sync": "^1.2", - "os2forms/os2forms_webform_submission_log": "^1.1" + "os2forms/os2forms_webform_submission_log": "^1.1", + "os2web/os2web_datalookup": "dev-feature/os2web_key as 2.0.2" }, "require-dev": { "drupal/core-dev": "^10", @@ -50,6 +53,10 @@ "drupal/drupal": "*" }, "repositories": [ + { "type": "vcs", "url": "https://github.com/itk-dev/os2forms" }, + { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_get_organized" }, + { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_nemlogin_openid_connect" }, + { "type": "vcs", "url": "https://github.com/itk-dev/os2web_datalookup" }, { "type": "composer", "url": "https://packages.drupal.org/8" @@ -70,6 +77,7 @@ "phpstan/extension-installer": true, "simplesamlphp/composer-module-installer": true, "simplesamlphp/composer-xmlprovider-installer": true, + "tbachert/spi": true, "zaporylie/composer-drupal-optimizations": true }, "discard-changes": true, From ab7c1d3dd31e71d7002dfeef3751fb5c8db0eac5 Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Mon, 6 Jan 2025 14:40:46 +0100 Subject: [PATCH 09/17] 2025 --- CHANGELOG.md | 3 +++ README.key.md | 27 ++++++++++++++++--- .../os2forms_selvbetjening.info.yml | 1 + .../src/Commands/LookupCommands.php | 2 +- .../src/Form/SettingsForm.php | 2 +- 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 250c3693..000d2278 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ Nedenfor ses dato for release og beskrivelse af opgaver som er implementeret. ## [Under udvikling] +* [PR-299](https://github.com/itk-dev/os2forms_selvbetjening/pull/299) + os2web_key + ## [4.1.0] 2025-04-08 * Ændrede PDF tabel visning [PR-404](https://github.com/itk-dev/os2forms_selvbetjening/pull/404) diff --git a/README.key.md b/README.key.md index 7e70e2e1..d39d2a7e 100644 --- a/README.key.md +++ b/README.key.md @@ -3,16 +3,15 @@ ``` json // composer.json "require": { - "itk-dev/os2forms_nemlogin_openid_connect": "dev-feature/os2web_key", … + "itk-dev/os2forms_nemlogin_openid_connect": "dev-feature/os2web_key", "os2forms/os2forms": "dev-feature/os2web_key as 3.21.0", "os2forms/os2forms_get_organized": "dev-feature/os2web_key", "os2web/os2web_datalookup": "dev-feature/os2web_key as 2.0.2", - "os2forms/os2forms_fasit": "dev-feature/os2web_key", + … }, "repositories": [ { "type": "vcs", "url": "https://github.com/itk-dev/os2forms" }, - { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_fasit" }, { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_get_organized" }, { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_nemlogin_openid_connect" }, { "type": "vcs", "url": "https://github.com/itk-dev/os2web_datalookup" }, @@ -20,4 +19,24 @@ ], ``` -Is `os2forms/os2forms_fasit` actually used (yet)? +## `os2forms` + +* `/admin/os2forms_fasit/settings` + +## `os2forms_get_organized` + +* `/admin/os2forms_get_organized/settings` + +## `os2forms_nemlogin_openid_connect` + +* `/admin/config/system/os2web-nemlogin/openid-connect-nemlogin` + +## `os2web_datalookup` + +* `/admin/config/system/os2web-datalookup` +* `/admin/config/system/os2web-datalookup/serviceplatformen-cvr` +* `/admin/config/system/os2web-datalookup/datafordeler-pnumber` +* `/admin/config/system/os2web-datalookup/serviceplatformen-cpr` +* `/admin/config/system/os2web-datalookup/serviceplatformen-p-number` +* `/admin/config/system/os2web-datalookup/datafordeler-cvr` +* `/admin/config/system/os2web-datalookup/serviceplatformen-cpr-extended` diff --git a/web/modules/custom/os2forms_selvbetjening/os2forms_selvbetjening.info.yml b/web/modules/custom/os2forms_selvbetjening/os2forms_selvbetjening.info.yml index 83d3e8f5..2456536f 100644 --- a/web/modules/custom/os2forms_selvbetjening/os2forms_selvbetjening.info.yml +++ b/web/modules/custom/os2forms_selvbetjening/os2forms_selvbetjening.info.yml @@ -4,4 +4,5 @@ description: 'Provides changes to webform email handler and elements.' package: 'OS2Forms' core_version_requirement: ^9 || ^10 dependencies: + - 'os2web_datalookup:os2web_datalookup' - 'webform:webform' diff --git a/web/modules/custom/os2forms_selvbetjening/src/Commands/LookupCommands.php b/web/modules/custom/os2forms_selvbetjening/src/Commands/LookupCommands.php index 067a608f..e550c7e6 100644 --- a/web/modules/custom/os2forms_selvbetjening/src/Commands/LookupCommands.php +++ b/web/modules/custom/os2forms_selvbetjening/src/Commands/LookupCommands.php @@ -4,7 +4,7 @@ use Drupal\os2web_datalookup\Plugin\DataLookupManager; use Drupal\os2web_datalookup\Plugin\os2web\DataLookup\DataLookupCprInterface; -use Drupal\os2web_datalookup\Plugin\os2web\DataLookup\DatafordelerCVR; +use Drupal\os2web_datalookup\Plugin\os2web\DataLookup\DataLookupInterfaceCompany; use Drush\Commands\DrushCommands; use Symfony\Component\Yaml\Yaml; diff --git a/web/modules/custom/os2forms_selvbetjening/src/Form/SettingsForm.php b/web/modules/custom/os2forms_selvbetjening/src/Form/SettingsForm.php index 000cefb8..eb7f64e4 100644 --- a/web/modules/custom/os2forms_selvbetjening/src/Form/SettingsForm.php +++ b/web/modules/custom/os2forms_selvbetjening/src/Form/SettingsForm.php @@ -14,7 +14,7 @@ final class SettingsForm extends FormBase { use StringTranslationTrait; - private const SELVBETJENING_WEBFORM_EXPORT_FILENAME = 'selvbetjening_webform_export_filename'; + public const SELVBETJENING_WEBFORM_EXPORT_FILENAME = 'selvbetjening_webform_export_filename'; private const SELVBETJENING_WEBFORM_EXPORT_FILENAME_DEFAULT = 'webform_config.csv'; private const SELVBETJENING_WEBFORM_EXPORT_INCLUDE_TEMPLATES = 'selvbetjening_webform_export_include_templates'; private const SELVBETJENING_WEBFORM_EXPORT_INCLUDE_ARCHIVED = 'selvbetjening_webform_export_include_archived'; From 0d5b153e6fc24e07ece320ec894822187bc5030d Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Mon, 20 Jan 2025 08:58:10 +0100 Subject: [PATCH 10/17] Install vault module --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index eb6f6746..de60ac6b 100644 --- a/composer.json +++ b/composer.json @@ -29,6 +29,7 @@ "itk-dev/os2forms_nemlogin_openid_connect": "dev-feature/os2web_key as 2.3.0", "itk-dev/os2forms_nemlogin_openid_connect": "^2.2", "itk-dev/os2forms_user_field_lookup": "^1.1", + "itk-dev/vault": "^0.1.0", "itk-dev/web_accessibility_statement": "^1.1", "os2forms/os2forms": "dev-feature/os2web_key as 4.1.0", "os2forms/os2forms_forloeb_profile": "^1.15", From 1f0e0a46f4251d00df713e639ffb701076f2f29a Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Fri, 24 Jan 2025 10:56:56 +0100 Subject: [PATCH 11/17] Update key branches --- composer.json | 1 - 1 file changed, 1 deletion(-) diff --git a/composer.json b/composer.json index de60ac6b..d5be8f67 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,6 @@ "fig/http-message-util": "^1.1", "itk-dev/os2forms_failed_jobs": "^1.5", "itk-dev/os2forms_nemlogin_openid_connect": "dev-feature/os2web_key as 2.3.0", - "itk-dev/os2forms_nemlogin_openid_connect": "^2.2", "itk-dev/os2forms_user_field_lookup": "^1.1", "itk-dev/vault": "^0.1.0", "itk-dev/web_accessibility_statement": "^1.1", From 75e75c27e8907bfbf34f750ade250c4c045a946e Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Fri, 24 Jan 2025 12:46:30 +0100 Subject: [PATCH 12/17] Config ignored newly key prepared modules --- config/sync/config_ignore.settings.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/config/sync/config_ignore.settings.yml b/config/sync/config_ignore.settings.yml index a427b633..4ad633ee 100644 --- a/config/sync/config_ignore.settings.yml +++ b/config/sync/config_ignore.settings.yml @@ -5,16 +5,21 @@ mode: simple ignored_config_entities: - '# Ignore encryption key and os2forms_encrypt settings' - '# Ignore global header, colophon and footer settings' + - '# Ignore keys (https://www.drupal.org/project/key)' - '# Ignore leaflet layers' - '# Ignore most settings on /admin/config/system/os2web-datalookup/datafordeler-cvr' - '# Ignore most settings on /admin/config/system/os2web-datalookup/serviceplatformen-cpr-extended' + - 'key.key.*' - key.key.webform - 'leaflet_layers.map_bundle.*' - 'leaflet_layers.map_layer.*' - 'maestro.maestro_template.*' - 'os2forms_attachment.os2forms_attachment_component.*' + - os2forms_digital_post.settings - os2forms_encrypt.settings + - os2forms_fasit.settings - os2forms_forloeb.settings + - os2forms_get_organized.settings - 'os2web_audit.*' - 'os2web_datalookup.datafordeler_cvr:cert_passphrase_live' - 'os2web_datalookup.datafordeler_cvr:cert_path_live' @@ -23,21 +28,11 @@ ignored_config_entities: - 'os2web_datalookup.serviceplatformen_cpr_extended:certfile_test' - 'os2web_datalookup.serviceplatformen_cpr_extended:mode_selector' - 'os2web_datalookup.serviceplatformen_cpr_extended:serviceagreementuuid' - - 'os2web_datalookup.serviceplatformen_cpr_extended:wsdl' - 'os2web_datalookup.serviceplatformen_cpr_extended:usersystemuuid' - 'os2web_datalookup.serviceplatformen_cpr_extended:useruuid' - - 'os2web_datalookup.serviceplatformen_cpr_extended:certfile_passphrase' - - 'os2web_datalookup.serviceplatformen_cpr_extended:certfile' - - 'os2web_datalookup.serviceplatformen_cpr_extended:certfile_test' - - '# Ignore leaflet layers' - - 'leaflet_layers.map_bundle.*' - - 'leaflet_layers.map_layer.*' - - os2forms_forloeb.settings - 'os2web_datalookup.serviceplatformen_cpr_extended:wsdl' - os2web_nemlogin.settings - system.site - 'webform.settings:third_party_settings.webform_entity_print.template' - 'webform.webform.*' - 'webform.webform_options.*' - - '# Ignore keys (https://www.drupal.org/project/key)' - - 'key.key.*' From e49c935356abb0ca963b8349d9c04cd5bc4e0ad8 Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Fri, 7 Feb 2025 12:32:15 +0100 Subject: [PATCH 13/17] Revert to original os2forms_nemlogin_openid_connect --- composer.json | 1 - 1 file changed, 1 deletion(-) diff --git a/composer.json b/composer.json index d5be8f67..a1f27637 100644 --- a/composer.json +++ b/composer.json @@ -55,7 +55,6 @@ "repositories": [ { "type": "vcs", "url": "https://github.com/itk-dev/os2forms" }, { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_get_organized" }, - { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_nemlogin_openid_connect" }, { "type": "vcs", "url": "https://github.com/itk-dev/os2web_datalookup" }, { "type": "composer", From c51c7db89762d088b818c07e10924d15fa03f030 Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Fri, 7 Feb 2025 12:56:31 +0100 Subject: [PATCH 14/17] Handle datalookup and openid_connect_nemlogin later --- composer.json | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index a1f27637..f78eeb7e 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "os2forms/os2forms_rest_api": "^2.2", "os2forms/os2forms_sync": "^1.2", "os2forms/os2forms_webform_submission_log": "^1.1", - "os2web/os2web_datalookup": "dev-feature/os2web_key as 2.0.2" + "os2web/os2web_datalookup": "^2.0.4" }, "require-dev": { "drupal/core-dev": "^10", @@ -53,9 +53,14 @@ "drupal/drupal": "*" }, "repositories": [ - { "type": "vcs", "url": "https://github.com/itk-dev/os2forms" }, - { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_get_organized" }, - { "type": "vcs", "url": "https://github.com/itk-dev/os2web_datalookup" }, + { + "type": "vcs", + "url": "https://github.com/itk-dev/os2forms" + }, + { + "type": "vcs", + "url": "https://github.com/itk-dev/os2forms_get_organized" + }, { "type": "composer", "url": "https://packages.drupal.org/8" From 89884e53e63d61fd437972434c6b8166c943b848 Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Tue, 29 Apr 2025 15:58:22 +0200 Subject: [PATCH 15/17] Cleaned up composer dependencies --- composer.json | 8 +- composer.lock | 1057 ++++++++++++++++++++++++++++++------------------- 2 files changed, 652 insertions(+), 413 deletions(-) diff --git a/composer.json b/composer.json index f78eeb7e..48c44e8b 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,6 @@ "drupal/core-recommended": "^10.3", "drupal/editor_advanced_link": "^2.2", "drupal/jquery_ui_datepicker": "^2.1", - "drupal/key": "^1.19", "drupal/lang_dropdown": "^2.1", "drupal/log_stdout": "^1.5", "drupal/memcache": "^2.7", @@ -28,7 +27,6 @@ "itk-dev/os2forms_failed_jobs": "^1.5", "itk-dev/os2forms_nemlogin_openid_connect": "dev-feature/os2web_key as 2.3.0", "itk-dev/os2forms_user_field_lookup": "^1.1", - "itk-dev/vault": "^0.1.0", "itk-dev/web_accessibility_statement": "^1.1", "os2forms/os2forms": "dev-feature/os2web_key as 4.1.0", "os2forms/os2forms_forloeb_profile": "^1.15", @@ -38,7 +36,7 @@ "os2forms/os2forms_rest_api": "^2.2", "os2forms/os2forms_sync": "^1.2", "os2forms/os2forms_webform_submission_log": "^1.1", - "os2web/os2web_datalookup": "^2.0.4" + "os2web/os2web_datalookup": "dev-feature/os2web_key as 2.1.0" }, "require-dev": { "drupal/core-dev": "^10", @@ -61,6 +59,10 @@ "type": "vcs", "url": "https://github.com/itk-dev/os2forms_get_organized" }, + { + "type": "vcs", + "url": "https://github.com/itk-dev/os2web_datalookup" + }, { "type": "composer", "url": "https://packages.drupal.org/8" diff --git a/composer.lock b/composer.lock index 12dd5522..e267f5de 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": "ba4fba1f87c766ea7a46bfa629dbaaf0", + "content-hash": "bbf4ba3c69c00e5c095aa7d9a5fc2658", "packages": [ { "name": "asm89/stack-cors", @@ -1127,29 +1127,30 @@ }, { "name": "doctrine/deprecations", - "version": "1.1.3", + "version": "1.1.5", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=13" + }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" + "doctrine/coding-standard": "^9 || ^12 || ^13", + "phpstan/phpstan": "1.4.10 || 2.1.11", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", + "psr/log": "^1 || ^2 || ^3" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -1157,7 +1158,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + "Doctrine\\Deprecations\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1168,9 +1169,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + "source": "https://github.com/doctrine/deprecations/tree/1.1.5" }, - "time": "2024-01-30T19:34:25+00:00" + "time": "2025-04-07T20:06:18+00:00" }, { "name": "doctrine/instantiator", @@ -3565,17 +3566,17 @@ }, { "name": "drupal/key", - "version": "1.19.0", + "version": "1.20.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/key.git", - "reference": "8.x-1.19" + "reference": "8.x-1.20" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/key-8.x-1.19.zip", - "reference": "8.x-1.19", - "shasum": "ee8f7b8f8babd381f1e4423dccede94b4eb5985c" + "url": "https://ftp.drupal.org/files/projects/key-8.x-1.20.zip", + "reference": "8.x-1.20", + "shasum": "f45415552de129e9976af72224393cd1d1f2ea65" }, "require": { "drupal/core": ">=8.9 <12" @@ -3589,8 +3590,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.19", - "datestamp": "1720053341", + "version": "8.x-1.20", + "datestamp": "1744582168", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6522,16 +6523,16 @@ }, { "name": "egulias/email-validator", - "version": "4.0.2", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", "shasum": "" }, "require": { @@ -6577,7 +6578,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.4" }, "funding": [ { @@ -6585,7 +6586,7 @@ "type": "github" } ], - "time": "2023-10-06T06:47:41+00:00" + "time": "2025-03-06T22:45:56+00:00" }, { "name": "ezyang/htmlpurifier", @@ -7414,16 +7415,16 @@ }, { "name": "guzzlehttp/promises", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", "shasum": "" }, "require": { @@ -7477,7 +7478,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.3" + "source": "https://github.com/guzzle/promises/tree/2.0.4" }, "funding": [ { @@ -7493,7 +7494,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T10:29:17+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "guzzlehttp/psr7", @@ -8054,16 +8055,16 @@ }, { "name": "itk-dev/os2forms_nemlogin_openid_connect", - "version": "2.2.1", + "version": "dev-feature/os2web_key", "source": { "type": "git", "url": "https://github.com/itk-dev/os2forms_nemlogin_openid_connect.git", - "reference": "e66c2c6f41f3aa5e20cc927975a00cffbaf4f376" + "reference": "0332522da9d0d37d8d769a0968c8fca488386043" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itk-dev/os2forms_nemlogin_openid_connect/zipball/e66c2c6f41f3aa5e20cc927975a00cffbaf4f376", - "reference": "e66c2c6f41f3aa5e20cc927975a00cffbaf4f376", + "url": "https://api.github.com/repos/itk-dev/os2forms_nemlogin_openid_connect/zipball/0332522da9d0d37d8d769a0968c8fca488386043", + "reference": "0332522da9d0d37d8d769a0968c8fca488386043", "shasum": "" }, "require": { @@ -8090,9 +8091,9 @@ "homepage": "https://www.drupal.org/project/os2forms_nemlogin_openid_connect", "support": { "issues": "https://github.com/itk-dev/os2forms_nemlogin_openid_connect/issues", - "source": "https://github.com/itk-dev/os2forms_nemlogin_openid_connect/tree/2.2.1" + "source": "https://github.com/itk-dev/os2forms_nemlogin_openid_connect/tree/feature/os2web_key" }, - "time": "2025-03-12T17:56:51+00:00" + "time": "2025-04-29T13:29:27+00:00" }, { "name": "itk-dev/os2forms_user_field_lookup", @@ -8238,6 +8239,62 @@ }, "time": "2025-04-01T08:10:57+00:00" }, + { + "name": "itk-dev/vault", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/itk-dev/vault-library.git", + "reference": "d5c4fbd58817dba495bd07dcd9a3b9865e7bc69b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/itk-dev/vault-library/zipball/d5c4fbd58817dba495bd07dcd9a3b9865e7bc69b", + "reference": "d5c4fbd58817dba495bd07dcd9a3b9865e7bc69b", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.1", + "psr/simple-cache": "^3.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.64", + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "ItkDev\\Vault\\": "src/Vault" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jesper Kristensen", + "email": "cableman@linuxdev.dk", + "homepage": "https://linuxdev.dk", + "role": "Developer" + } + ], + "description": "Library to communicate with Hashicorp Vault", + "homepage": "https://github.com/itk-dev", + "keywords": [ + "approle", + "e", + "hashicorp", + "vault" + ], + "support": { + "issues": "https://github.com/itk-dev/vault-library/issues", + "source": "https://github.com/itk-dev/vault-library/tree/0.1.0" + }, + "time": "2024-10-21T07:16:27+00:00" + }, { "name": "itk-dev/web_accessibility_statement", "version": "1.1.0", @@ -8424,33 +8481,32 @@ }, { "name": "laminas/laminas-escaper", - "version": "2.13.0", + "version": "2.16.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-escaper.git", - "reference": "af459883f4018d0f8a0c69c7a209daef3bf973ba" + "reference": "9cf1f5317ca65b4fd5c6a3c2855e24a187b288c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/af459883f4018d0f8a0c69c7a209daef3bf973ba", - "reference": "af459883f4018d0f8a0c69c7a209daef3bf973ba", + "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/9cf1f5317ca65b4fd5c6a3c2855e24a187b288c8", + "reference": "9cf1f5317ca65b4fd5c6a3c2855e24a187b288c8", "shasum": "" }, "require": { "ext-ctype": "*", "ext-mbstring": "*", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "conflict": { "zendframework/zend-escaper": "*" }, "require-dev": { - "infection/infection": "^0.27.0", - "laminas/laminas-coding-standard": "~2.5.0", - "maglnet/composer-require-checker": "^3.8.0", - "phpunit/phpunit": "^9.6.7", - "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.9" + "infection/infection": "^0.29.8", + "laminas/laminas-coding-standard": "~3.0.1", + "phpunit/phpunit": "^10.5.45", + "psalm/plugin-phpunit": "^0.19.2", + "vimeo/psalm": "^6.6.2" }, "type": "library", "autoload": { @@ -8482,7 +8538,7 @@ "type": "community_bridge" } ], - "time": "2023-10-10T08:35:13+00:00" + "time": "2025-02-17T12:40:19+00:00" }, { "name": "league/container", @@ -8937,16 +8993,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.2.0", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", - "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { @@ -8989,22 +9045,22 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.2.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2024-09-15T16:40:33+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "os2forms/os2forms", - "version": "4.0.0", + "version": "dev-feature/os2web_key", "source": { "type": "git", - "url": "https://github.com/OS2Forms/os2forms.git", - "reference": "07d7aa29bdc80d6351fb1d4126d22b0d6bb9c56d" + "url": "https://github.com/itk-dev/os2forms.git", + "reference": "b182805871dbbf85907498f8ea95bfbaa23c2421" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OS2Forms/os2forms/zipball/07d7aa29bdc80d6351fb1d4126d22b0d6bb9c56d", - "reference": "07d7aa29bdc80d6351fb1d4126d22b0d6bb9c56d", + "url": "https://api.github.com/repos/itk-dev/os2forms/zipball/b182805871dbbf85907498f8ea95bfbaa23c2421", + "reference": "b182805871dbbf85907498f8ea95bfbaa23c2421", "shasum": "" }, "require": { @@ -9012,10 +9068,10 @@ "dompdf/dompdf": "^2.0", "drupal/admin_toolbar": "^3.0", "drupal/advancedqueue": "^1.0", - "drupal/cache_control_override": "^1.1|^2.0", + "drupal/cache_control_override": "^1.1 || ^2.0", "drupal/clientside_validation": "^4.0", "drupal/coc_forms_auto_export": "^2.0@alpha", - "drupal/config_entity_revisions": "dev-2.0.x", + "drupal/config_entity_revisions": "2.0.x-dev", "drupal/diff": "^1.0", "drupal/embed": "^1.4", "drupal/entity_print": "^2.1", @@ -9031,7 +9087,7 @@ "drupal/mailsystem": "^4.1", "drupal/masquerade": "^2.0@RC", "drupal/pathauto": "^1.5", - "drupal/permissions_by_term": "^3.1 || ^2.25", + "drupal/permissions_by_term": "^2.25 || ^3.1", "drupal/queue_mail": "^1.4", "drupal/r4032login": "^2.1", "drupal/redirect": "^1.4", @@ -9061,7 +9117,8 @@ "itk-dev/serviceplatformen": "^1.5", "mglaman/composer-drupal-lenient": "^1.0", "os2web/os2web_audit": "^1.0", - "os2web/os2web_datalookup": "^2.0", + "os2web/os2web_datalookup": "dev-feature/os2web_key as 2.1.0", + "os2web/os2web_key": "^1.0", "os2web/os2web_nemlogin": "^1.0", "os2web/os2web_simplesaml": "dev-master", "php": "^8.1", @@ -9075,6 +9132,7 @@ "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1", "drupal/coder": "^8.3", + "ergebnis/composer-normalize": "^2.47", "mglaman/phpstan-drupal": "^1.1", "phpstan/extension-installer": "^1.3", "phpstan/phpstan-deprecation-rules": "^1.1", @@ -9083,47 +9141,65 @@ }, "type": "drupal-module", "extra": { + "composer-exit-on-patch-failure": false, + "drupal-lenient": { + "allowed-list": [ + "drupal/coc_forms_auto_export", + "drupal/webform_node_element" + ] + }, + "enable-patching": true, "patches": { - "drupal/webform": { - "Webform computed element post save alter": "https://www.drupal.org/files/issues/2024-06-25/webform_computed_post_save_field_alter.patch", - "Unlock possibility of using Entity print module export to Word": "https://www.drupal.org/files/issues/2020-02-29/3096552-6.patch", - "Add custom hook (hook_webform_post_load_data) for audit logging": "https://gist.githubusercontent.com/cableman/d26898fc8f65ee0a31001bf391583b59/raw/6189dc4c2ceaabb19d25cc4b98b0b3028a6b0e1e/gistfile1.txt" + "drupal/coc_forms_auto_export": { + "3240592 - Problem with phpseclib requirement in 2.x (https://www.drupal.org/project/coc_forms_auto_export/issues/3240592)": "https://www.drupal.org/files/issues/2021-10-04/requirement-namespace-3240592-1.patch", + "3286562 - Automated Drupal 10 compatibility fixes": "https://www.drupal.org/files/issues/2022-06-15/coc_forms_auto_export.2.0.x-dev.rector.patch", + "3259009 - PHP Warnings/Notices on Download Page": "https://git.drupalcode.org/project/coc_forms_auto_export/-/merge_requests/1.diff" }, "drupal/entity_print": { "2733781 - Add Export to Word Support": "https://www.drupal.org/files/issues/2019-11-22/2733781-47.patch" }, + "drupal/webform": { + "Unlock possibility of using Entity print module export to Word": "https://www.drupal.org/files/issues/2020-02-29/3096552-6.patch", + "Webform computed element post save alter": "https://www.drupal.org/files/issues/2024-06-25/webform_computed_post_save_field_alter.patch", + "Add custom hook (hook_webform_post_load_data) for audit logging": "https://gist.githubusercontent.com/cableman/d26898fc8f65ee0a31001bf391583b59/raw/6189dc4c2ceaabb19d25cc4b98b0b3028a6b0e1e/gistfile1.txt" + }, "drupal/webform_encrypt": { "Ensure data is base64 encoded (https://www.drupal.org/project/webform_encrypt/issues/3399414)": "https://git.drupalcode.org/project/webform_encrypt/-/merge_requests/4.patch", "PHP Warning if unserialize fails (https://www.drupal.org/project/webform_encrypt/issues/3292305)": "https://www.drupal.org/files/issues/2022-06-23/unserialize-php-notice.patch" }, "drupal/webform_node_element": { "3290637 - Automated Drupal 10 compatibility fixes": "https://www.drupal.org/files/issues/2023-05-12/webform_node_element_d10-3290637-11.patch" - }, - "drupal/coc_forms_auto_export": { - "3259009 - PHP Warnings/Notices on Download Page": "https://git.drupalcode.org/project/coc_forms_auto_export/-/merge_requests/1.diff", - "3286562 - Automated Drupal 10 compatibility fixes": "https://www.drupal.org/files/issues/2022-06-15/coc_forms_auto_export.2.0.x-dev.rector.patch", - "3240592 - Problem with phpseclib requirement in 2.x (https://www.drupal.org/project/coc_forms_auto_export/issues/3240592)": "https://www.drupal.org/files/issues/2021-10-04/requirement-namespace-3240592-1.patch" } - }, - "drupal-lenient": { - "allowed-list": [ - "drupal/coc_forms_auto_export", - "drupal/webform_node_element" - ] - }, - "enable-patching": true, - "composer-exit-on-patch-failure": false + } + }, + "scripts": { + "code-analysis": [ + "@code-analysis/phpstan" + ], + "code-analysis/phpstan": [ + "phpstan analyse" + ], + "coding-standards-apply": [ + "@coding-standards-apply/phpcs" + ], + "coding-standards-apply/phpcs": [ + "phpcbf --standard=phpcs.xml.dist" + ], + "coding-standards-check": [ + "@coding-standards-check/phpcs" + ], + "coding-standards-check/phpcs": [ + "phpcs --standard=phpcs.xml.dist" + ] }, - "notification-url": "https://packagist.org/downloads/", "license": [ "EUPL-1.2" ], "description": "Drupal 8 OS2Form module provides advanced webform functionality for Danish Municipalities", "support": { - "issues": "https://github.com/OS2Forms/os2forms/issues", - "source": "https://github.com/OS2Forms/os2forms/tree/4.0.0" + "source": "https://github.com/itk-dev/os2forms/tree/feature/os2web_key" }, - "time": "2025-03-06T08:55:17+00:00" + "time": "2025-04-29T13:55:39+00:00" }, { "name": "os2forms/os2forms_forloeb_profile", @@ -9171,33 +9247,55 @@ }, { "name": "os2forms/os2forms_get_organized", - "version": "1.4.1", + "version": "dev-feature/os2web_key", "source": { "type": "git", - "url": "https://github.com/OS2Forms/os2forms_get_organized.git", - "reference": "ef95d4cad5165c5c22ccb946f43e943942097e61" + "url": "https://github.com/itk-dev/os2forms_get_organized.git", + "reference": "7ec5b76288154ac7cc3a3718cb96ba6b31d72d51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OS2Forms/os2forms_get_organized/zipball/ef95d4cad5165c5c22ccb946f43e943942097e61", - "reference": "ef95d4cad5165c5c22ccb946f43e943942097e61", + "url": "https://api.github.com/repos/itk-dev/os2forms_get_organized/zipball/7ec5b76288154ac7cc3a3718cb96ba6b31d72d51", + "reference": "7ec5b76288154ac7cc3a3718cb96ba6b31d72d51", "shasum": "" }, "require": { "drupal/advancedqueue": "^1.2", + "drupal/key": "^1.17", "drupal/webform": "^6.2", "itk-dev/getorganized-api-client-php": "^1.2.2", "os2forms/os2forms": "^3.17 || ^4.0", "symfony/options-resolver": "^5.4 || ^6.0" }, "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", "drupal/coder": "^8.3", + "ergebnis/composer-normalize": "^2.42", "mglaman/drupal-check": "^1.4", "mglaman/phpstan-drupal": "~1.2.0" }, "type": "drupal-module", - "notification-url": "https://packagist.org/downloads/", + "scripts": { + "code-analysis": [ + "@code-analysis/drupal-check" + ], + "code-analysis/drupal-check": [ + "# @see https://github.com/mglaman/drupal-check/issues/261#issuecomment-1030141772 for details on exclude-dir value", + "drupal-check --deprecations --analysis --exclude-dir='vendor,*/Client/*' *.* src" + ], + "coding-standards-apply": [ + "@coding-standards-apply/phpcs" + ], + "coding-standards-apply/phpcs": [ + "vendor/bin/phpcbf --standard=phpcs.xml.dist" + ], + "coding-standards-check": [ + "@coding-standards-check/phpcs" + ], + "coding-standards-check/phpcs": [ + "vendor/bin/phpcs --standard=phpcs.xml.dist" + ] + }, "license": [ "MIT" ], @@ -9209,10 +9307,9 @@ ], "description": "OS2Forms GetOrganized integration", "support": { - "issues": "https://github.com/OS2Forms/os2forms_get_organized/issues", - "source": "https://github.com/OS2Forms/os2forms_get_organized/tree/1.4.1" + "source": "https://github.com/itk-dev/os2forms_get_organized/tree/feature/os2web_key" }, - "time": "2025-03-12T17:31:51+00:00" + "time": "2025-04-29T13:38:54+00:00" }, { "name": "os2forms/os2forms_organisation", @@ -9491,38 +9588,102 @@ }, { "name": "os2web/os2web_datalookup", - "version": "2.0.2", + "version": "dev-feature/os2web_key", "source": { "type": "git", - "url": "https://github.com/OS2web/os2web_datalookup.git", - "reference": "cadc545c78697fc630528fe9c803c8711e168376" + "url": "https://github.com/itk-dev/os2web_datalookup.git", + "reference": "2ca5bd7e1b00f78f57b87aa88d57bf62d8840c5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OS2web/os2web_datalookup/zipball/cadc545c78697fc630528fe9c803c8711e168376", - "reference": "cadc545c78697fc630528fe9c803c8711e168376", + "url": "https://api.github.com/repos/itk-dev/os2web_datalookup/zipball/2ca5bd7e1b00f78f57b87aa88d57bf62d8840c5e", + "reference": "2ca5bd7e1b00f78f57b87aa88d57bf62d8840c5e", "shasum": "" }, "require": { - "ext-soap": "*" + "ext-soap": "*", + "os2web/os2web_key": "^1.0" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^1.0", "drupal/coder": "^8.3", + "ergebnis/composer-normalize": "^2.45", "os2web/os2web_audit": "^0.1", "phpunit/phpunit": "^9.5" }, "type": "drupal-module", - "notification-url": "https://packagist.org/downloads/", + "scripts": { + "coding-standards-apply": [ + "@coding-standards-apply/phpcs" + ], + "coding-standards-apply/phpcs": [ + "phpcbf --standard=phpcs.xml.dist" + ], + "coding-standards-check": [ + "@coding-standards-check/phpcs" + ], + "coding-standards-check/phpcs": [ + "phpcs --standard=phpcs.xml.dist" + ] + }, "license": [ "EUPL-1.2" ], "description": "Provides integration with Danish data lookup services such as Service platformen or Datafordeler.", "support": { - "issues": "https://github.com/OS2web/os2web_datalookup/issues", - "source": "https://github.com/OS2web/os2web_datalookup/tree/2.0.2" + "source": "https://github.com/itk-dev/os2web_datalookup/tree/feature/os2web_key" }, - "time": "2024-12-06T09:00:08+00:00" + "time": "2024-12-20T14:08:31+00:00" + }, + { + "name": "os2web/os2web_key", + "version": "1.0.0-rc4", + "source": { + "type": "git", + "url": "https://github.com/OS2web/os2web_key.git", + "reference": "ca96b75f19385f9d73aefbc500e7152dcc373c32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/OS2web/os2web_key/zipball/ca96b75f19385f9d73aefbc500e7152dcc373c32", + "reference": "ca96b75f19385f9d73aefbc500e7152dcc373c32", + "shasum": "" + }, + "require": { + "drupal/core": "^9 || ^10", + "drupal/key": "^1.17", + "ext-openssl": "*", + "itk-dev/serviceplatformen": "^1.6", + "itk-dev/vault": "^0.1", + "php": "^8.1" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "drupal/coder": "^8.3", + "drupal/core-dev": "^9 || ^10", + "ergebnis/composer-normalize": "^2.42", + "mglaman/phpstan-drupal": "^1.2", + "phpstan/extension-installer": "^1.3", + "phpstan/phpstan-deprecation-rules": "^1.1", + "phpunit/phpunit": "^9.6" + }, + "type": "drupal-module", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "EUPL-1.2" + ], + "authors": [ + { + "name": "Mikkel Ricky", + "email": "rimi@aarhus.dk" + } + ], + "description": "OS2Web key", + "support": { + "issues": "https://github.com/OS2web/os2web_key/issues", + "source": "https://github.com/OS2web/os2web_key/tree/1.0.0-rc4" + }, + "time": "2025-01-23T13:20:58+00:00" }, { "name": "os2web/os2web_nemlogin", @@ -10033,16 +10194,16 @@ }, { "name": "pear/pear-core-minimal", - "version": "v1.10.15", + "version": "v1.10.16", "source": { "type": "git", "url": "https://github.com/pear/pear-core-minimal.git", - "reference": "ce0adade8b97561656ace07cdaac4751c271ea8c" + "reference": "c0f51b45f50683bf5bbf558036854ebc9b54d033" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/ce0adade8b97561656ace07cdaac4751c271ea8c", - "reference": "ce0adade8b97561656ace07cdaac4751c271ea8c", + "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/c0f51b45f50683bf5bbf558036854ebc9b54d033", + "reference": "c0f51b45f50683bf5bbf558036854ebc9b54d033", "shasum": "" }, "require": { @@ -10078,7 +10239,7 @@ "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR", "source": "https://github.com/pear/pear-core-minimal" }, - "time": "2024-03-16T18:41:45+00:00" + "time": "2024-11-24T22:27:58+00:00" }, { "name": "pear/pear_exception", @@ -10861,16 +11022,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.30.1", + "version": "1.33.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "51b95ec8670af41009e2b2b56873bad96682413e" + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e", - "reference": "51b95ec8670af41009e2b2b56873bad96682413e", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", "shasum": "" }, "require": { @@ -10902,9 +11063,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" }, - "time": "2024-09-07T20:13:05+00:00" + "time": "2024-10-13T11:25:22+00:00" }, { "name": "psr/cache", @@ -11268,6 +11429,57 @@ }, "time": "2024-09-11T13:17:53+00:00" }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://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/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + }, { "name": "psy/psysh", "version": "v0.12.4", @@ -12157,16 +12369,16 @@ }, { "name": "symfony/cache-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197" + "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/df6a1a44c890faded49a5fca33c2d5c5fd3c2197", - "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b", + "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b", "shasum": "" }, "require": { @@ -12175,12 +12387,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -12213,7 +12425,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.5.1" }, "funding": [ { @@ -12229,7 +12441,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/config", @@ -12308,16 +12520,16 @@ }, { "name": "symfony/console", - "version": "v6.4.11", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998" + "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998", - "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998", + "url": "https://api.github.com/repos/symfony/console/zipball/2e4af9c952617cc3f9559ff706aee420a8464c36", + "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36", "shasum": "" }, "require": { @@ -12382,7 +12594,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.11" + "source": "https://github.com/symfony/console/tree/v6.4.20" }, "funding": [ { @@ -12398,20 +12610,20 @@ "type": "tidelift" } ], - "time": "2024-08-15T22:48:29+00:00" + "time": "2025-03-03T17:16:38+00:00" }, { "name": "symfony/css-selector", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "4b61b02fe15db48e3687ce1c45ea385d1780fe08" + "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/4b61b02fe15db48e3687ce1c45ea385d1780fe08", - "reference": "4b61b02fe15db48e3687ce1c45ea385d1780fe08", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/cb23e97813c5837a041b73a6d63a9ddff0778f5e", + "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e", "shasum": "" }, "require": { @@ -12447,7 +12659,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.4.8" + "source": "https://github.com/symfony/css-selector/tree/v6.4.13" }, "funding": [ { @@ -12463,20 +12675,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.11", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e" + "reference": "c49796a9184a532843e78e50df9e55708b92543a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", - "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c49796a9184a532843e78e50df9e55708b92543a", + "reference": "c49796a9184a532843e78e50df9e55708b92543a", "shasum": "" }, "require": { @@ -12484,7 +12696,7 @@ "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.2.10|^7.0" + "symfony/var-exporter": "^6.4.20|^7.2.5" }, "conflict": { "ext-psr": "<1.1|>=2", @@ -12528,7 +12740,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.11" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.20" }, "funding": [ { @@ -12544,20 +12756,20 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:15:38+00:00" + "time": "2025-03-13T09:55:08+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", "shasum": "" }, "require": { @@ -12565,12 +12777,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -12595,7 +12807,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" }, "funding": [ { @@ -12611,20 +12823,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/error-handler", - "version": "v6.4.10", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "231f1b2ee80f72daa1972f7340297d67439224f0" + "reference": "aa3bcf4f7674719df078e61cc8062e5b7f752031" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0", - "reference": "231f1b2ee80f72daa1972f7340297d67439224f0", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/aa3bcf4f7674719df078e61cc8062e5b7f752031", + "reference": "aa3bcf4f7674719df078e61cc8062e5b7f752031", "shasum": "" }, "require": { @@ -12670,7 +12882,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.10" + "source": "https://github.com/symfony/error-handler/tree/v6.4.20" }, "funding": [ { @@ -12686,20 +12898,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2025-03-01T13:00:38+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b" + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b", - "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", "shasum": "" }, "require": { @@ -12750,7 +12962,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13" }, "funding": [ { @@ -12766,20 +12978,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", "shasum": "" }, "require": { @@ -12788,12 +13000,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -12826,7 +13038,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" }, "funding": [ { @@ -12842,20 +13054,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/filesystem", - "version": "v6.4.9", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" + "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", - "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", + "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", "shasum": "" }, "require": { @@ -12892,7 +13104,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.9" + "source": "https://github.com/symfony/filesystem/tree/v6.4.13" }, "funding": [ { @@ -12908,20 +13120,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:49:33+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/finder", - "version": "v6.4.11", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453" + "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453", - "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", + "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", "shasum": "" }, "require": { @@ -12956,7 +13168,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.11" + "source": "https://github.com/symfony/finder/tree/v6.4.17" }, "funding": [ { @@ -12972,7 +13184,7 @@ "type": "tidelift" } ], - "time": "2024-08-13T14:27:37+00:00" + "time": "2024-12-29T13:51:37+00:00" }, { "name": "symfony/framework-bundle", @@ -13124,23 +13336,23 @@ }, { "name": "symfony/http-client", - "version": "v6.4.15", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "cb4073c905cd12b8496d24ac428a9228c1750670" + "reference": "3294a433fc9d12ae58128174896b5b1822c28dad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/cb4073c905cd12b8496d24ac428a9228c1750670", - "reference": "cb4073c905cd12b8496d24ac428a9228c1750670", + "url": "https://api.github.com/repos/symfony/http-client/zipball/3294a433fc9d12ae58128174896b5b1822c28dad", + "reference": "3294a433fc9d12ae58128174896b5b1822c28dad", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-client-contracts": "^3.4.1", + "symfony/http-client-contracts": "~3.4.4|^3.5.2", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -13197,7 +13409,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.15" + "source": "https://github.com/symfony/http-client/tree/v6.4.19" }, "funding": [ { @@ -13213,20 +13425,20 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:40:18+00:00" + "time": "2025-02-13T09:55:13+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v3.5.0", + "version": "v3.5.2", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "20414d96f391677bf80078aa55baece78b82647d" + "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d", - "reference": "20414d96f391677bf80078aa55baece78b82647d", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ee8d807ab20fcb51267fdace50fbe3494c31e645", + "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645", "shasum": "" }, "require": { @@ -13234,12 +13446,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -13275,7 +13487,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.2" }, "funding": [ { @@ -13291,7 +13503,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-12-07T08:49:48+00:00" }, { "name": "symfony/http-foundation", @@ -13372,16 +13584,16 @@ }, { "name": "symfony/http-kernel", - "version": "v6.4.11", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79" + "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1ba6b89d781cb47448155cc70dd2e0f1b0584c79", - "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6be6db31bc74693ce5516e1fd5e5ff1171005e37", + "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37", "shasum": "" }, "require": { @@ -13466,7 +13678,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.11" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.20" }, "funding": [ { @@ -13482,7 +13694,7 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:57:20+00:00" + "time": "2025-03-28T13:27:10+00:00" }, { "name": "symfony/intl", @@ -13645,16 +13857,16 @@ }, { "name": "symfony/mailer", - "version": "v6.4.9", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45" + "reference": "e93a6ae2767d7f7578c2b7961d9d8e27580b2b11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", + "url": "https://api.github.com/repos/symfony/mailer/zipball/e93a6ae2767d7f7578c2b7961d9d8e27580b2b11", + "reference": "e93a6ae2767d7f7578c2b7961d9d8e27580b2b11", "shasum": "" }, "require": { @@ -13705,7 +13917,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.9" + "source": "https://github.com/symfony/mailer/tree/v6.4.18" }, "funding": [ { @@ -13721,20 +13933,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T07:59:05+00:00" + "time": "2025-01-24T15:27:15+00:00" }, { "name": "symfony/mime", - "version": "v6.4.11", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553" + "reference": "ac537b6c55ccc2c749f3c979edfa9ec14aaed4f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/dba5d5f6073baf7a3576b580cc4a208b4ca00553", - "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553", + "url": "https://api.github.com/repos/symfony/mime/zipball/ac537b6c55ccc2c749f3c979edfa9ec14aaed4f3", + "reference": "ac537b6c55ccc2c749f3c979edfa9ec14aaed4f3", "shasum": "" }, "require": { @@ -13790,7 +14002,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.11" + "source": "https://github.com/symfony/mime/tree/v6.4.19" }, "funding": [ { @@ -13806,7 +14018,7 @@ "type": "tidelift" } ], - "time": "2024-08-13T12:15:02+00:00" + "time": "2025-02-17T21:23:52+00:00" }, { "name": "symfony/options-resolver", @@ -13975,8 +14187,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14054,8 +14266,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14131,8 +14343,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14295,8 +14507,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14377,8 +14589,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14461,8 +14673,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14535,8 +14747,8 @@ "type": "metapackage", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "notification-url": "https://packagist.org/downloads/", @@ -14600,8 +14812,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14676,8 +14888,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14756,8 +14968,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14833,8 +15045,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -14970,16 +15182,16 @@ }, { "name": "symfony/process", - "version": "v6.4.15", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "3cb242f059c14ae08591c5c4087d1fe443564392" + "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392", - "reference": "3cb242f059c14ae08591c5c4087d1fe443564392", + "url": "https://api.github.com/repos/symfony/process/zipball/e2a61c16af36c9a07e5c9906498b73e091949a20", + "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20", "shasum": "" }, "require": { @@ -15011,7 +15223,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.15" + "source": "https://github.com/symfony/process/tree/v6.4.20" }, "funding": [ { @@ -15027,20 +15239,20 @@ "type": "tidelift" } ], - "time": "2024-11-06T14:19:14+00:00" + "time": "2025-03-10T17:11:00+00:00" }, { "name": "symfony/property-access", - "version": "v6.4.11", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "866f6cd84f2094cbc6f66ce9752faf749916e2a9" + "reference": "80e0378f2f058b60d87dedc3c760caec882e992c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/866f6cd84f2094cbc6f66ce9752faf749916e2a9", - "reference": "866f6cd84f2094cbc6f66ce9752faf749916e2a9", + "url": "https://api.github.com/repos/symfony/property-access/zipball/80e0378f2f058b60d87dedc3c760caec882e992c", + "reference": "80e0378f2f058b60d87dedc3c760caec882e992c", "shasum": "" }, "require": { @@ -15088,7 +15300,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v6.4.11" + "source": "https://github.com/symfony/property-access/tree/v6.4.18" }, "funding": [ { @@ -15104,36 +15316,37 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:10:11+00:00" + "time": "2024-12-16T14:42:05+00:00" }, { "name": "symfony/property-info", - "version": "v7.1.3", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b" + "reference": "f00fd9685ecdbabe82ca25c7b739ce7bba99302c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", - "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", + "url": "https://api.github.com/repos/symfony/property-info/zipball/f00fd9685ecdbabe82ca25c7b739ce7bba99302c", + "reference": "f00fd9685ecdbabe82ca25c7b739ce7bba99302c", "shasum": "" }, "require": { "php": ">=8.2", "symfony/string": "^6.4|^7.0", - "symfony/type-info": "^7.1" + "symfony/type-info": "~7.1.9|^7.2.2" }, "conflict": { "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.5.1", + "symfony/cache": "<6.4", "symfony/dependency-injection": "<6.4", "symfony/serializer": "<6.4" }, "require-dev": { "phpdocumentor/reflection-docblock": "^5.2", - "phpstan/phpdoc-parser": "^1.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", "symfony/cache": "^6.4|^7.0", "symfony/dependency-injection": "^6.4|^7.0", "symfony/serializer": "^6.4|^7.0" @@ -15172,7 +15385,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.1.3" + "source": "https://github.com/symfony/property-info/tree/v7.2.5" }, "funding": [ { @@ -15188,20 +15401,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T07:36:36+00:00" + "time": "2025-03-06T16:27:19+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "74835ba54eca99a38f374f7a6d932fa510124773" + "reference": "c9cf83326a1074f83a738fc5320945abf7fb7fec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/74835ba54eca99a38f374f7a6d932fa510124773", - "reference": "74835ba54eca99a38f374f7a6d932fa510124773", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/c9cf83326a1074f83a738fc5320945abf7fb7fec", + "reference": "c9cf83326a1074f83a738fc5320945abf7fb7fec", "shasum": "" }, "require": { @@ -15255,7 +15468,7 @@ "psr-7" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.11" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.13" }, "funding": [ { @@ -15271,20 +15484,20 @@ "type": "tidelift" } ], - "time": "2024-08-14T13:55:58+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/routing", - "version": "v6.4.11", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a" + "reference": "e9bfc94953019089acdfb9be51c1b9142c4afa68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", - "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", + "url": "https://api.github.com/repos/symfony/routing/zipball/e9bfc94953019089acdfb9be51c1b9142c4afa68", + "reference": "e9bfc94953019089acdfb9be51c1b9142c4afa68", "shasum": "" }, "require": { @@ -15338,7 +15551,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.11" + "source": "https://github.com/symfony/routing/tree/v6.4.18" }, "funding": [ { @@ -15354,20 +15567,20 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:15:38+00:00" + "time": "2025-01-09T08:51:02+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.11", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0" + "reference": "a221b2f6066af304d760cff7a26f201b4fab4aef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/a75d03d7720417f8a654e73e8f02acdea8779cd0", - "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0", + "url": "https://api.github.com/repos/symfony/serializer/zipball/a221b2f6066af304d760cff7a26f201b4fab4aef", + "reference": "a221b2f6066af304d760cff7a26f201b4fab4aef", "shasum": "" }, "require": { @@ -15436,7 +15649,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.4.11" + "source": "https://github.com/symfony/serializer/tree/v6.4.19" }, "funding": [ { @@ -15452,20 +15665,20 @@ "type": "tidelift" } ], - "time": "2024-08-17T07:51:47+00:00" + "time": "2025-02-24T08:42:36+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", "shasum": "" }, "require": { @@ -15478,12 +15691,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -15519,7 +15732,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" }, "funding": [ { @@ -15535,20 +15748,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/string", - "version": "v6.4.11", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b" + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/5bc3eb632cf9c8dbfd6529d89be9950d1518883b", - "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b", + "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", "shasum": "" }, "require": { @@ -15605,7 +15818,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.11" + "source": "https://github.com/symfony/string/tree/v6.4.15" }, "funding": [ { @@ -15621,20 +15834,20 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:55:28+00:00" + "time": "2024-11-13T13:31:12+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", "shasum": "" }, "require": { @@ -15642,12 +15855,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -15683,7 +15896,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" }, "funding": [ { @@ -15699,7 +15912,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/twig-bridge", @@ -15812,31 +16025,24 @@ }, { "name": "symfony/type-info", - "version": "v7.1.1", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc" + "reference": "c4824a6b658294c828e609d3d8dbb4e87f6a375d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/60b28eb733f1453287f1263ed305b96091e0d1dc", - "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc", + "url": "https://api.github.com/repos/symfony/type-info/zipball/c4824a6b658294c828e609d3d8dbb4e87f6a375d", + "reference": "c4824a6b658294c828e609d3d8dbb4e87f6a375d", "shasum": "" }, "require": { "php": ">=8.2", "psr/container": "^1.1|^2.0" }, - "conflict": { - "phpstan/phpdoc-parser": "<1.0", - "symfony/dependency-injection": "<6.4", - "symfony/property-info": "<6.4" - }, "require-dev": { - "phpstan/phpdoc-parser": "^1.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/property-info": "^6.4|^7.0" + "phpstan/phpdoc-parser": "^1.0|^2.0" }, "type": "library", "autoload": { @@ -15874,7 +16080,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.1.1" + "source": "https://github.com/symfony/type-info/tree/v7.2.5" }, "funding": [ { @@ -15890,7 +16096,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:59:31+00:00" + "time": "2025-03-24T09:03:36+00:00" }, { "name": "symfony/uid", @@ -15968,16 +16174,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.11", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8" + "reference": "9314555aceb8d8ce8abda81e1e47e439258d9309" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/4ff41cf10af1de99ad92895411b55c9f309bc2d8", - "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8", + "url": "https://api.github.com/repos/symfony/validator/zipball/9314555aceb8d8ce8abda81e1e47e439258d9309", + "reference": "9314555aceb8d8ce8abda81e1e47e439258d9309", "shasum": "" }, "require": { @@ -16045,7 +16251,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.11" + "source": "https://github.com/symfony/validator/tree/v6.4.20" }, "funding": [ { @@ -16061,20 +16267,20 @@ "type": "tidelift" } ], - "time": "2024-08-30T15:57:55+00:00" + "time": "2025-03-14T14:22:58+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.11", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" + "reference": "4ad10cf8b020e77ba665305bb7804389884b4837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/4ad10cf8b020e77ba665305bb7804389884b4837", + "reference": "4ad10cf8b020e77ba665305bb7804389884b4837", "shasum": "" }, "require": { @@ -16130,7 +16336,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.18" }, "funding": [ { @@ -16146,20 +16352,20 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:03:21+00:00" + "time": "2025-01-17T11:26:11+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.9", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "f9a060622e0d93777b7f8687ec4860191e16802e" + "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f9a060622e0d93777b7f8687ec4860191e16802e", - "reference": "f9a060622e0d93777b7f8687ec4860191e16802e", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/998df255e9e6a15a36ae35e9c6cd818c17cf92a2", + "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2", "shasum": "" }, "require": { @@ -16207,7 +16413,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.9" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.20" }, "funding": [ { @@ -16223,20 +16429,20 @@ "type": "tidelift" } ], - "time": "2024-06-24T15:53:56+00:00" + "time": "2025-03-13T09:55:08+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.11", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "be37e7f13195e05ab84ca5269365591edd240335" + "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/be37e7f13195e05ab84ca5269365591edd240335", - "reference": "be37e7f13195e05ab84ca5269365591edd240335", + "url": "https://api.github.com/repos/symfony/yaml/zipball/28ee818fce4a73ac1474346b94e4b966f665c53f", + "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f", "shasum": "" }, "require": { @@ -16279,7 +16485,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.11" + "source": "https://github.com/symfony/yaml/tree/v6.4.20" }, "funding": [ { @@ -16295,7 +16501,7 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:55:28+00:00" + "time": "2025-02-27T20:15:30+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -16797,16 +17003,16 @@ "packages-dev": [ { "name": "behat/mink", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/minkphp/Mink.git", - "reference": "d8527fdf8785aad38455fb426af457ab9937aece" + "reference": "7e4edec6c335937029cb3569ce7ef81182804d0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/d8527fdf8785aad38455fb426af457ab9937aece", - "reference": "d8527fdf8785aad38455fb426af457ab9937aece", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/7e4edec6c335937029cb3569ce7ef81182804d0a", + "reference": "7e4edec6c335937029cb3569ce7ef81182804d0a", "shasum": "" }, "require": { @@ -16857,9 +17063,9 @@ ], "support": { "issues": "https://github.com/minkphp/Mink/issues", - "source": "https://github.com/minkphp/Mink/tree/v1.11.0" + "source": "https://github.com/minkphp/Mink/tree/v1.12.0" }, - "time": "2023-12-09T11:23:23+00:00" + "time": "2024-10-30T18:48:14+00:00" }, { "name": "behat/mink-browserkit-driver", @@ -18712,16 +18918,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c", + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c", "shasum": "" }, "require": { @@ -18760,7 +18966,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.1" }, "funding": [ { @@ -18768,7 +18974,7 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2025-04-29T12:36:36+00:00" }, { "name": "open-telemetry/api", @@ -19417,16 +19623,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.4.1", + "version": "5.6.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" + "reference": "92dde6a5919e34835c506ac8c523ef095a95ed62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/92dde6a5919e34835c506ac8c523ef095a95ed62", + "reference": "92dde6a5919e34835c506ac8c523ef095a95ed62", "shasum": "" }, "require": { @@ -19435,17 +19641,17 @@ "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.5", + "mockery/mockery": "~1.3.5 || ~1.6.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.8", "phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-webmozart-assert": "^1.2", "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^5.13" + "psalm/phar": "^5.26" }, "type": "library", "extra": { @@ -19475,29 +19681,29 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.2" }, - "time": "2024-05-21T05:55:05+00:00" + "time": "2025-04-13T19:20:35+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.8.2", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "153ae662783729388a584b4361f2545e4d841e3c" + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", - "reference": "153ae662783729388a584b4361f2545e4d841e3c", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", "php": "^7.3 || ^8.0", "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.13" + "phpstan/phpdoc-parser": "^1.18|^2.0" }, "require-dev": { "ext-tokenizer": "*", @@ -19533,32 +19739,33 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" }, - "time": "2024-02-23T11:10:43+00:00" + "time": "2024-11-09T15:12:26+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.19.0", + "version": "v1.21.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87" + "reference": "7594ec2f6507dd6a5feaf4fa50c391d5274a5838" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/67a759e7d8746d501c41536ba40cd9c0a07d6a87", - "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/7594ec2f6507dd6a5feaf4fa50c391d5274a5838", + "reference": "7594ec2f6507dd6a5feaf4fa50c391d5274a5838", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2 || ^2.0", - "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*", + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.* || 8.4.*", "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0", - "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0" + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" }, "require-dev": { + "friendsofphp/php-cs-fixer": "^3.40", "phpspec/phpspec": "^6.0 || ^7.0", "phpstan/phpstan": "^1.9", "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" @@ -19602,9 +19809,9 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.19.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.21.0" }, - "time": "2024-02-29T11:52:51+00:00" + "time": "2025-04-29T11:13:33+00:00" }, { "name": "phpspec/prophecy-phpunit", @@ -20184,16 +20391,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.21", + "version": "9.6.22", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa" + "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", - "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c", + "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c", "shasum": "" }, "require": { @@ -20204,7 +20411,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.0", + "myclabs/deep-copy": "^1.12.1", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=7.3", @@ -20267,7 +20474,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.21" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22" }, "funding": [ { @@ -20283,7 +20490,7 @@ "type": "tidelift" } ], - "time": "2024-09-19T10:50:18+00:00" + "time": "2024-12-05T13:48:26+00:00" }, { "name": "react/promise", @@ -21633,16 +21840,16 @@ }, { "name": "symfony/browser-kit", - "version": "v6.4.8", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8" + "reference": "ce95f3e3239159e7fa3be7690c6ce95a4714637f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/62ab90b92066ef6cce5e79365625b4b1432464c8", - "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/ce95f3e3239159e7fa3be7690c6ce95a4714637f", + "reference": "ce95f3e3239159e7fa3be7690c6ce95a4714637f", "shasum": "" }, "require": { @@ -21681,7 +21888,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v6.4.8" + "source": "https://github.com/symfony/browser-kit/tree/v6.4.19" }, "funding": [ { @@ -21697,20 +21904,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2025-02-14T11:23:16+00:00" }, { "name": "symfony/dom-crawler", - "version": "v6.4.8", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "105b56a0305d219349edeb60a800082eca864e4b" + "reference": "19073e3e0bb50cbc1cb286077069b3107085206f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/105b56a0305d219349edeb60a800082eca864e4b", - "reference": "105b56a0305d219349edeb60a800082eca864e4b", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/19073e3e0bb50cbc1cb286077069b3107085206f", + "reference": "19073e3e0bb50cbc1cb286077069b3107085206f", "shasum": "" }, "require": { @@ -21748,7 +21955,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.4.8" + "source": "https://github.com/symfony/dom-crawler/tree/v6.4.19" }, "funding": [ { @@ -21764,7 +21971,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2025-02-14T17:58:34+00:00" }, { "name": "symfony/lock", @@ -22054,9 +22261,39 @@ "time": "2024-03-03T12:36:25+00:00" } ], - "aliases": [], + "aliases": [ + { + "package": "itk-dev/os2forms_nemlogin_openid_connect", + "version": "dev-feature/os2web_key", + "alias": "2.3.0", + "alias_normalized": "2.3.0.0" + }, + { + "package": "os2forms/os2forms", + "version": "dev-feature/os2web_key", + "alias": "4.1.0", + "alias_normalized": "4.1.0.0" + }, + { + "package": "os2forms/os2forms_get_organized", + "version": "dev-feature/os2web_key", + "alias": "1.5.0", + "alias_normalized": "1.5.0.0" + }, + { + "package": "os2web/os2web_datalookup", + "version": "dev-feature/os2web_key", + "alias": "2.1.0", + "alias_normalized": "2.1.0.0" + } + ], "minimum-stability": "dev", - "stability-flags": {}, + "stability-flags": { + "itk-dev/os2forms_nemlogin_openid_connect": 20, + "os2forms/os2forms": 20, + "os2forms/os2forms_get_organized": 20, + "os2web/os2web_datalookup": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { From 6e229e4b1a4046be6d6a22bbee70e32867be1e15 Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Tue, 29 Apr 2025 16:07:23 +0200 Subject: [PATCH 16/17] Removed Infisical stuff --- docker-compose.infisical.yml | 115 ----------------------------------- docs/DEVELOPMENT.md | 19 ------ 2 files changed, 134 deletions(-) delete mode 100644 docker-compose.infisical.yml diff --git a/docker-compose.infisical.yml b/docker-compose.infisical.yml deleted file mode 100644 index 52fc60fa..00000000 --- a/docker-compose.infisical.yml +++ /dev/null @@ -1,115 +0,0 @@ -# @see https://raw.githubusercontent.com/Infisical/infisical/main/docker-compose.prod.yml - -networks: - infisical: - -services: - infisical-db-migration: - profiles: - - infisical - container_name: infisical-db-migration - depends_on: - infisical-db: - condition: service_healthy - image: infisical/infisical:latest-postgres - command: npm run migration:latest - pull_policy: always - networks: - - infisical - environment: - # Keys - # Required key for platform encryption/decryption ops - # THIS IS A SAMPLE ENCRYPTION KEY AND SHOULD NEVER BE USED FOR PRODUCTION - - ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218 - - # JWT - # Required secrets to sign JWT tokens - # THIS IS A SAMPLE AUTH_SECRET KEY AND SHOULD NEVER BE USED FOR PRODUCTION - - AUTH_SECRET=5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE= - - # Required - - DB_CONNECTION_URI=postgres://infisical:infisical@infisical-db:5432/infisical - - # Redis - - REDIS_URL=redis://infisical-redis:6379 - - - NODE_ENV=production - - infisical-backend: - profiles: - - infisical - container_name: infisical-backend - restart: unless-stopped - depends_on: - infisical-db: - condition: service_healthy - infisical-redis: - condition: service_started - infisical-db-migration: - condition: service_completed_successfully - image: infisical/infisical:latest-postgres - pull_policy: always - ports: - - 8080 - environment: - # Keys - # Required key for platform encryption/decryption ops - # THIS IS A SAMPLE ENCRYPTION KEY AND SHOULD NEVER BE USED FOR PRODUCTION - - ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218 - - # JWT - # Required secrets to sign JWT tokens - # THIS IS A SAMPLE AUTH_SECRET KEY AND SHOULD NEVER BE USED FOR PRODUCTION - - AUTH_SECRET=5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE= - - # Required - - DB_CONNECTION_URI=postgres://infisical:infisical@infisical-db:5432/infisical - - # Redis - - REDIS_URL=redis://infisical-redis:6379 - - - NODE_ENV=production - networks: - - infisical - - infisical-redis: - profiles: - - infisical - image: redis - container_name: infisical-dev-redis - environment: - - ALLOW_EMPTY_PASSWORD=yes - ports: - - 6379:6379 - networks: - - infisical - volumes: - - redis_data:/data - - infisical-db: - profiles: - - infisical - container_name: infisical-db - image: postgres:14-alpine - restart: always - environment: - # Postgres creds - - POSTGRES_PASSWORD=infisical - - POSTGRES_USER=infisical - - POSTGRES_DB=infisical - - volumes: - - pg_data:/var/lib/postgresql/data - networks: - - infisical - healthcheck: - test: 'pg_isready --username=infisical && psql --username=infisical --list' - interval: 5s - timeout: 10s - retries: 10 - -volumes: - pg_data: - driver: local - redis_data: - driver: local diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 459c5f79..7525b165 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -139,22 +139,3 @@ docker compose up -d ``` to reload the OIDC configuration. - -## Infisical - - - -```sh -docker compose --profile infisical up --detach -``` - -```sh -open "http://$(docker compose port infisical-backend 8080)" -``` - - - -```sh -brew install infisical/get-cli/infisical -infisical login --interactive --domain "http://$(docker compose port infisical-backend 8080)/api" -``` From a62a1867da1f49f3ecd6983a29ab550934cd120b Mon Sep 17 00:00:00 2001 From: Mikkel Ricky Date: Wed, 30 Apr 2025 14:39:26 +0200 Subject: [PATCH 17/17] Updated os2web_key stuff --- README.key.md | 82 ++++++++++++++++++++++++++++++++++++++++----------- composer.lock | 8 ++--- 2 files changed, 69 insertions(+), 21 deletions(-) diff --git a/README.key.md b/README.key.md index d39d2a7e..36a69d58 100644 --- a/README.key.md +++ b/README.key.md @@ -1,22 +1,62 @@ # Key notes -``` json -// composer.json - "require": { - … - "itk-dev/os2forms_nemlogin_openid_connect": "dev-feature/os2web_key", - "os2forms/os2forms": "dev-feature/os2web_key as 3.21.0", - "os2forms/os2forms_get_organized": "dev-feature/os2web_key", - "os2web/os2web_datalookup": "dev-feature/os2web_key as 2.0.2", - … - }, - "repositories": [ - { "type": "vcs", "url": "https://github.com/itk-dev/os2forms" }, - { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_get_organized" }, - { "type": "vcs", "url": "https://github.com/itk-dev/os2forms_nemlogin_openid_connect" }, - { "type": "vcs", "url": "https://github.com/itk-dev/os2web_datalookup" }, - … - ], +"os2web_key" branches are required (via custom repositories) in `composer.json`: + +``` diff +diff --git a/composer.json b/composer.json +index 752d10a..48c44e8 100644 +--- a/composer.json ++++ b/composer.json +@@ -25,17 +25,18 @@ + "drupal/webform_translation_permissions": "^2.0", + "fig/http-message-util": "^1.1", + "itk-dev/os2forms_failed_jobs": "^1.5", +- "itk-dev/os2forms_nemlogin_openid_connect": "^2.2", ++ "itk-dev/os2forms_nemlogin_openid_connect": "dev-feature/os2web_key as 2.3.0", + "itk-dev/os2forms_user_field_lookup": "^1.1", + "itk-dev/web_accessibility_statement": "^1.1", +- "os2forms/os2forms": "^4.0", ++ "os2forms/os2forms": "dev-feature/os2web_key as 4.1.0", + "os2forms/os2forms_forloeb_profile": "^1.15", +- "os2forms/os2forms_get_organized": "^1.4", ++ "os2forms/os2forms_get_organized": "dev-feature/os2web_key as 1.5.0", + "os2forms/os2forms_organisation": "^2.1", + "os2forms/os2forms_payment": "^1.0", + "os2forms/os2forms_rest_api": "^2.2", + "os2forms/os2forms_sync": "^1.2", +- "os2forms/os2forms_webform_submission_log": "^1.1" ++ "os2forms/os2forms_webform_submission_log": "^1.1", ++ "os2web/os2web_datalookup": "dev-feature/os2web_key as 2.1.0" + }, + "require-dev": { + "drupal/core-dev": "^10", +@@ -50,6 +51,18 @@ + "drupal/drupal": "*" + }, + "repositories": [ ++ { ++ "type": "vcs", ++ "url": "https://github.com/itk-dev/os2forms" ++ }, ++ { ++ "type": "vcs", ++ "url": "https://github.com/itk-dev/os2forms_get_organized" ++ }, ++ { ++ "type": "vcs", ++ "url": "https://github.com/itk-dev/os2web_datalookup" ++ }, + { + "type": "composer", + "url": "https://packages.drupal.org/8" +@@ -70,6 +83,7 @@ + "phpstan/extension-installer": true, + "simplesamlphp/composer-module-installer": true, + "simplesamlphp/composer-xmlprovider-installer": true, ++ "tbachert/spi": true, + "zaporylie/composer-drupal-optimizations": true + }, + "discard-changes": true, ``` ## `os2forms` @@ -40,3 +80,11 @@ * `/admin/config/system/os2web-datalookup/serviceplatformen-p-number` * `/admin/config/system/os2web-datalookup/datafordeler-cvr` * `/admin/config/system/os2web-datalookup/serviceplatformen-cpr-extended` + +## Development + +Updating key branches: + +``` shell name=key-branches-update +docker compose exec phpfpm composer update itk-dev/os2forms_nemlogin_openid_connect os2forms/os2forms os2forms/os2forms_get_organized os2web/os2web_datalookup +``` diff --git a/composer.lock b/composer.lock index e267f5de..153db0c6 100644 --- a/composer.lock +++ b/composer.lock @@ -9055,12 +9055,12 @@ "source": { "type": "git", "url": "https://github.com/itk-dev/os2forms.git", - "reference": "b182805871dbbf85907498f8ea95bfbaa23c2421" + "reference": "dabb887a6ed492bc5c3d2cdebcaf91d9938ec534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itk-dev/os2forms/zipball/b182805871dbbf85907498f8ea95bfbaa23c2421", - "reference": "b182805871dbbf85907498f8ea95bfbaa23c2421", + "url": "https://api.github.com/repos/itk-dev/os2forms/zipball/dabb887a6ed492bc5c3d2cdebcaf91d9938ec534", + "reference": "dabb887a6ed492bc5c3d2cdebcaf91d9938ec534", "shasum": "" }, "require": { @@ -9199,7 +9199,7 @@ "support": { "source": "https://github.com/itk-dev/os2forms/tree/feature/os2web_key" }, - "time": "2025-04-29T13:55:39+00:00" + "time": "2025-04-30T08:51:49+00:00" }, { "name": "os2forms/os2forms_forloeb_profile",