Compare commits
No commits in common. "develop" and "v01" have entirely different histories.
1
.cache/composer/.htaccess
Normal file
1
.cache/composer/.htaccess
Normal file
@ -0,0 +1 @@
|
|||||||
|
Deny from all
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
.config/composer/.htaccess
Normal file
1
.config/composer/.htaccess
Normal file
@ -0,0 +1 @@
|
|||||||
|
Deny from all
|
@ -1,14 +0,0 @@
|
|||||||
.env.local
|
|
||||||
.env.local.php
|
|
||||||
.env.*.local
|
|
||||||
config/secrets/prod/prod.decrypt.private.php
|
|
||||||
public/bundles/
|
|
||||||
var/
|
|
||||||
vendor/
|
|
||||||
supervisord.log
|
|
||||||
supervisord.pid
|
|
||||||
.composer/
|
|
||||||
.vscode
|
|
||||||
composer.phar
|
|
||||||
/tools
|
|
||||||
/.trivy
|
|
12
.env
12
.env
@ -16,7 +16,7 @@
|
|||||||
###> symfony/framework-bundle ###
|
###> symfony/framework-bundle ###
|
||||||
APP_ENV=dev
|
APP_ENV=dev
|
||||||
APP_SECRET=406ccaa0c76a451fdcc2307ea146cbef
|
APP_SECRET=406ccaa0c76a451fdcc2307ea146cbef
|
||||||
URL_LINK="http://localhost"
|
###< symfony/framework-bundle ###
|
||||||
|
|
||||||
# configuration bdd
|
# configuration bdd
|
||||||
DSN_REMOTE_DATABASE="pgsql:host='postgres';port=5432;dbname=lasql"
|
DSN_REMOTE_DATABASE="pgsql:host='postgres';port=5432;dbname=lasql"
|
||||||
@ -40,13 +40,3 @@ LOCK_DSN=flock
|
|||||||
###> sentry/sentry-symfony ###
|
###> sentry/sentry-symfony ###
|
||||||
SENTRY_DSN=
|
SENTRY_DSN=
|
||||||
###< sentry/sentry-symfony ###
|
###< sentry/sentry-symfony ###
|
||||||
REDIS_DSN=redis://redis:6379
|
|
||||||
|
|
||||||
### Altcha
|
|
||||||
ALTCHA_HOST='http://altcha:3333'
|
|
||||||
ALTCHA_BASE_URL='/altcha'
|
|
||||||
ALTCHA_DEBUG=false
|
|
||||||
ALTCHA_WORKERS=8
|
|
||||||
ALTCHA_DELAY=100
|
|
||||||
ALTCHA_MOCK_ERROR=false
|
|
||||||
ALTCHA_ENABLED=true
|
|
||||||
|
21
.gitignore
vendored
21
.gitignore
vendored
@ -18,24 +18,3 @@ composer.phar
|
|||||||
/.npm
|
/.npm
|
||||||
/.local
|
/.local
|
||||||
/.bash_history
|
/.bash_history
|
||||||
/tools
|
|
||||||
/.trivy
|
|
||||||
.mktools/
|
|
||||||
.php-cs-fixer.cache
|
|
||||||
|
|
||||||
###> symfony/framework-bundle ###
|
|
||||||
/.env.local
|
|
||||||
/.env.local.php
|
|
||||||
/.env.*.local
|
|
||||||
/config/secrets/prod/prod.decrypt.private.php
|
|
||||||
/public/bundles/
|
|
||||||
/var/
|
|
||||||
/vendor/
|
|
||||||
###< symfony/framework-bundle ###
|
|
||||||
|
|
||||||
###> symfony/webpack-encore-bundle ###
|
|
||||||
/node_modules/
|
|
||||||
/public/build/
|
|
||||||
npm-debug.log
|
|
||||||
yarn-error.log
|
|
||||||
###< symfony/webpack-encore-bundle ###
|
|
||||||
|
1
.local/share/composer/.htaccess
Normal file
1
.local/share/composer/.htaccess
Normal file
@ -0,0 +1 @@
|
|||||||
|
Deny from all
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
0edbcb2d5794fb8d3cf2402f19f25438805a970f {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/npm","integrity":"sha512-1TJYoof98S3R0ahPa565wn2XsDI+CaLbvwzx88tgsZ5DTcOmelEBX2A802NyU1UWsVXXmvHWLnEKIvBl6zWMVg==","time":1670943539811,"size":2046874,"metadata":{"time":1670943539263,"url":"https://registry.npmjs.org/npm","reqHeaders":{"accept":"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"},"resHeaders":{"cache-control":"public, max-age=300","content-type":"application/vnd.npm.install-v1+json","date":"Tue, 13 Dec 2022 14:58:59 GMT","etag":"\"3607fbc1a9bba44efd5bd54b34a79dd5\"","last-modified":"Wed, 07 Dec 2022 23:13:12 GMT","vary":"accept-encoding, accept"},"options":{"compress":true}}}
|
0
.npm/_update-notifier-last-checked
Normal file
0
.npm/_update-notifier-last-checked
Normal file
@ -1,17 +0,0 @@
|
|||||||
vulnerabilities:
|
|
||||||
- id: CVE-2023-39325
|
|
||||||
paths:
|
|
||||||
- usr/local/bin/gomplate
|
|
||||||
statement: Not concerned
|
|
||||||
- id: CVE-2023-3978
|
|
||||||
paths:
|
|
||||||
- usr/local/bin/gomplate
|
|
||||||
statement: Not concerned
|
|
||||||
- id: CVE-2023-44487
|
|
||||||
paths:
|
|
||||||
- usr/local/bin/gomplate
|
|
||||||
statement: Not concerned
|
|
||||||
- id: GHSA-m425-mq94-257g
|
|
||||||
paths:
|
|
||||||
- usr/local/bin/gomplate
|
|
||||||
statement: Not concerned
|
|
11
.vscode/settings.json
vendored
Normal file
11
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"git.ignoreLimitWarning": true,
|
||||||
|
"php-cs-fixer.executable": "tools/php-cs-fixer/vendor/bin/php-cs-fixer",
|
||||||
|
"php-cs-fixer.configFile": "tools/php-cs-fixer/.php-cs-fixer.dist.php",
|
||||||
|
"symfony-vscode.fileWatchingPatterns": [
|
||||||
|
|
||||||
|
"yml",
|
||||||
|
"yaml",
|
||||||
|
"xml"
|
||||||
|
]
|
||||||
|
}
|
23
Jenkinsfile
vendored
23
Jenkinsfile
vendored
@ -4,25 +4,4 @@
|
|||||||
// Utilisation du pipeline partagé pour les applications Symfony de Cadoles
|
// Utilisation du pipeline partagé pour les applications Symfony de Cadoles
|
||||||
// Le nom de l'image Docker passée en paramètre vous permet de préciser l'environnement de test
|
// Le nom de l'image Docker passée en paramètre vous permet de préciser l'environnement de test
|
||||||
// de votre application Symfony
|
// de votre application Symfony
|
||||||
symfonyAppPipeline('ubuntu:22.04', [
|
symfonyAppPipeline("ubuntu:22.04")
|
||||||
'hooks': [
|
|
||||||
// Run docker image build, verification and publication stages
|
|
||||||
'postSymfonyAppPipeline': {
|
|
||||||
boolean isRelease = ["develop", "staging", "master"].contains(env.BRANCH_NAME)
|
|
||||||
stage('Build and publish hydra-sql standalone image') {
|
|
||||||
container.buildAndPublishImage([
|
|
||||||
'imageName': 'reg.cadoles.com/cadoles/hydra-sql-standalone',
|
|
||||||
'dockerfile': './misc/images/hydra-sql-standalone/Dockerfile',
|
|
||||||
'dryRun': !isRelease
|
|
||||||
])
|
|
||||||
}
|
|
||||||
stage('Build and publish hydra-sql base image') {
|
|
||||||
container.buildAndPublishImage([
|
|
||||||
'imageName': 'reg.cadoles.com/cadoles/hydra-sql-base',
|
|
||||||
'dockerfile': './misc/images/hydra-sql-base/Dockerfile',
|
|
||||||
'dryRun': !isRelease
|
|
||||||
])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
])
|
|
77
Makefile
77
Makefile
@ -1,43 +1,46 @@
|
|||||||
|
CI_COMPOSE=FIXUID=$(shell id -u) FIXGID=$(shell id -g) docker-compose -f docker-compose.yml
|
||||||
|
HYDRA_SQL_SHELL_USER ?= www-data:
|
||||||
|
DOCKER_CMD ?=
|
||||||
|
DOCKER_IMAGE_NAME ?= login-app-sql_hydra-sql
|
||||||
|
up:
|
||||||
|
FIXUID=$(shell id -u) FIXGID=$(shell id -g) docker-compose up --build
|
||||||
|
|
||||||
IMAGE_REPO ?= reg.cadoles.com/cadoles
|
down:
|
||||||
IMAGES_DIR := misc/images
|
docker-compose down -v
|
||||||
IMAGES := $(foreach file, $(wildcard $(IMAGES_DIR)/*), $(basename $(notdir $(file))))
|
|
||||||
|
|
||||||
TRIVY_ARGS ?=
|
purge:
|
||||||
|
docker-compose down -v --remove-orphans --rmi local
|
||||||
|
|
||||||
php-cs-fixer:
|
hydra-sql-shell:
|
||||||
PHP_CS_FIXER_IGNORE_ENV=1 tools/php-cs-fixer/vendor/bin/php-cs-fixer -v fix --config=./tools/php-cs-fixer/.php-cs-fixer.dist.php
|
$(CI_COMPOSE) exec \
|
||||||
|
-u "$(HYDRA_SQL_SHELL_USER)" \
|
||||||
|
hydra-sql \
|
||||||
|
/bin/bash
|
||||||
|
|
||||||
build-image: $(foreach image, $(IMAGES), build-image-$(image))
|
|
||||||
|
|
||||||
build-image-%:
|
APP_LOCALES ?= fr,en
|
||||||
docker build \
|
HYDRA_ADMIN_BASE_URL ?= http://hydra:4445
|
||||||
-t "${IMAGE_REPO}/$*:latest" \
|
TRUSTED_PROXIES ?= 127.0.0.1,REMOTE_ADDR,localhost
|
||||||
-f ${IMAGES_DIR}/$*/Dockerfile \
|
ISSUER_URL ?= http://localhost:8000
|
||||||
.
|
BASE_URL ?= http://localhost:8080
|
||||||
|
DB_USER ?= lasql
|
||||||
|
DB_PASSWORD ?= lasql
|
||||||
|
DEFAULT_LOCALE ?= fr
|
||||||
|
BDD ?= postgres
|
||||||
|
DSN_REMOTE_DATABASE=mysql:host=mariadb;port=3306;dbname=lasql
|
||||||
|
|
||||||
scan-image: $(foreach image, $(IMAGES), scan-image-$(image))
|
up-mysql:
|
||||||
|
docker run \
|
||||||
scan-image-%: tools/trivy/bin/trivy
|
-it --rm \
|
||||||
mkdir -p .trivy/.cache
|
-p 8080:80 \
|
||||||
tools/trivy/bin/trivy --cache-dir .trivy/.cache --ignorefile .trivyignore.yaml image $(TRIVY_ARGS) $(IMAGE_REPO)/$*:latest
|
-e APP_LOCALES=$(APP_LOCALES) \
|
||||||
|
-e HYDRA_ADMIN_BASE_URL=$(HYDRA_ADMIN_BASE_URL) \
|
||||||
release-image: $(foreach image, $(IMAGES), release-image-$(image))
|
-e TRUSTED_PROXIES=$(TRUSTED_PROXIES) \
|
||||||
|
-e ISSUER_URL=$(ISSUER_URL) \
|
||||||
release-image-%: .mktools
|
-e BASE_URL=$(BASE_URL) \
|
||||||
@[ ! -z "$(MKT_PROJECT_VERSION)" ] || ( echo "Just downloaded mktools. Please re-run command."; exit 1 )
|
-e DB_USER=$(DB_USER) \
|
||||||
docker tag "${IMAGE_REPO}/$*:latest" "${IMAGE_REPO}/$*:$(MKT_PROJECT_VERSION)"
|
-e DB_PASSWORD=$(DB_PASSWORD) \
|
||||||
docker tag "${IMAGE_REPO}/$*:latest" "${IMAGE_REPO}/$*:$(MKT_PROJECT_SHORT_VERSION)"
|
-e DEFAULT_LOCALE=$(DEFAULT_LOCALE) \
|
||||||
docker push "${IMAGE_REPO}/$*:$(MKT_PROJECT_VERSION)"
|
-e DSN_REMOTE_DATABASE=$(DSN_REMOTE_DATABASE) \
|
||||||
docker push "${IMAGE_REPO}/$*:$(MKT_PROJECT_SHORT_VERSION)"
|
$(DOCKER_IMAGE_NAME):latest \
|
||||||
docker push "${IMAGE_REPO}/$*:latest"
|
$(DOCKER_CMD)
|
||||||
|
|
||||||
tools/trivy/bin/trivy:
|
|
||||||
mkdir -p tools/trivy/bin
|
|
||||||
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b ./tools/trivy/bin v0.47.0
|
|
||||||
|
|
||||||
.mktools:
|
|
||||||
rm -rf .mktools
|
|
||||||
curl -q https://forge.cadoles.com/Cadoles/mktools/raw/branch/master/install.sh | TASKS="version" $(SHELL)
|
|
||||||
|
|
||||||
-include .mktools/*.mk
|
|
||||||
|
@ -8,4 +8,5 @@
|
|||||||
// any CSS you import will output into a single css file (app.css in this case)
|
// any CSS you import will output into a single css file (app.css in this case)
|
||||||
import './styles/app.scss';
|
import './styles/app.scss';
|
||||||
|
|
||||||
import 'altcha';
|
// start the Stimulus application
|
||||||
|
import './bootstrap';
|
||||||
|
11
assets/bootstrap.js
vendored
Normal file
11
assets/bootstrap.js
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import { startStimulusApp } from '@symfony/stimulus-bridge';
|
||||||
|
|
||||||
|
// Registers Stimulus controllers from controllers.json and in the controllers/ directory
|
||||||
|
export const app = startStimulusApp(require.context(
|
||||||
|
'@symfony/stimulus-bridge/lazy-controller-loader!./controllers',
|
||||||
|
true,
|
||||||
|
/\.[jt]sx?$/
|
||||||
|
));
|
||||||
|
|
||||||
|
// register any custom, 3rd party controllers here
|
||||||
|
// app.register('some_controller_name', SomeImportedController);
|
4
assets/controllers.json
Normal file
4
assets/controllers.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"controllers": [],
|
||||||
|
"entrypoints": []
|
||||||
|
}
|
16
assets/controllers/hello_controller.js
Normal file
16
assets/controllers/hello_controller.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { Controller } from '@hotwired/stimulus';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is an example Stimulus controller!
|
||||||
|
*
|
||||||
|
* Any element with a data-controller="hello" attribute will cause
|
||||||
|
* this controller to be executed. The name "hello" comes from the filename:
|
||||||
|
* hello_controller.js -> "hello"
|
||||||
|
*
|
||||||
|
* Delete this file or adapt it for your use!
|
||||||
|
*/
|
||||||
|
export default class extends Controller {
|
||||||
|
connect() {
|
||||||
|
this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js';
|
||||||
|
}
|
||||||
|
}
|
@ -1,722 +0,0 @@
|
|||||||
input[type="radio"]:checked ~ .app-item {
|
|
||||||
--tw-shadow: 0 10px 15px -3px rgb(22 78 99 / 0.3),
|
|
||||||
0 4px 6px -4px rgb(22 78 99 / 0.3);
|
|
||||||
background-color: rgb(76 233 14 / 0.15);
|
|
||||||
}
|
|
||||||
.header {
|
|
||||||
background-color: rgb(75, 207, 158);
|
|
||||||
width: 100%;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
section.header-logo a {
|
|
||||||
display: flex;
|
|
||||||
align-items: baseline;
|
|
||||||
width: auto;
|
|
||||||
float: left;
|
|
||||||
letter-spacing: -1px;
|
|
||||||
font-size: 30px;
|
|
||||||
text-decoration: none;
|
|
||||||
color: inherit;
|
|
||||||
color: #2c3e50;
|
|
||||||
line-height: 30px;
|
|
||||||
font-family: fontpvebold;
|
|
||||||
}
|
|
||||||
section.header-logo a span {
|
|
||||||
color: #4bcf9e;
|
|
||||||
font-size: 50px;
|
|
||||||
}
|
|
||||||
section.header-logo a svg {
|
|
||||||
width: 300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-logo {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
padding: 25px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: "fontpve";
|
|
||||||
src: url("../fonts/oswald-regular-webfont.eot");
|
|
||||||
src: url("../fonts/oswald-regular-webfont.eot?#iefix")
|
|
||||||
format("embedded-opentype"),
|
|
||||||
url("../fonts/oswald-regular-webfont.woff2") format("woff2"),
|
|
||||||
url("../fonts/oswald-regular-webfont.woff") format("woff"),
|
|
||||||
url("../fonts/oswald-regular-webfont.ttf") format("truetype"),
|
|
||||||
url("../fonts/oswald-regular-webfont.svg#oswaldregular") format("svg");
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: "fontpvebold";
|
|
||||||
src: url("../fonts/oswald-bold-webfont.eot");
|
|
||||||
src: url("../fonts/oswald-bold-webfont.eot?#iefix")
|
|
||||||
format("embedded-opentype"),
|
|
||||||
url("../fonts/oswald-bold-webfont.woff2") format("woff2"),
|
|
||||||
url("../fonts/oswald-bold-webfont.woff") format("woff"),
|
|
||||||
url("../fonts/oswald-bold-webfont.ttf") format("truetype"),
|
|
||||||
url("../fonts/oswald-bold-webfont.svg#oswaldbold") format("svg");
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
a,
|
|
||||||
a:visited,
|
|
||||||
a:hover {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row {
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo-france-connect-fr:hover {
|
|
||||||
content: url("../images/franceconnect-fr-hover.png");
|
|
||||||
min-height: 58px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo-france-connect-en:hover {
|
|
||||||
content: url("../images/franceconnect-en-hover.png");
|
|
||||||
min-height: 58px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo-mse-connect-fr:hover {
|
|
||||||
content: url("../images/MSEConnect-hover-fr.png");
|
|
||||||
min-height: 56px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo-mse-connect-en:hover {
|
|
||||||
content: url("../images/MSEConnect-hover-en.png");
|
|
||||||
min-height: 56px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.facebook, .x, .instagram {
|
|
||||||
height:24px;
|
|
||||||
width:24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.facebook:hover{
|
|
||||||
content: url('../images/facebook-hover.png');
|
|
||||||
}
|
|
||||||
|
|
||||||
.x:hover{
|
|
||||||
content: url('../images/x-hover.png');
|
|
||||||
}
|
|
||||||
|
|
||||||
.instagram:hover{
|
|
||||||
content: url('../images/instagram-hover.png');
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-control:focus {
|
|
||||||
border-color: #66afe9;
|
|
||||||
outline: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mesr {
|
|
||||||
width: 150px;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: "fontpve", "Source Sans Pro", "Helvetica Neue", Helvetica, Arial,
|
|
||||||
sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
color: #fff;
|
|
||||||
background-color: #fff;
|
|
||||||
min-width: 320px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wrapper {
|
|
||||||
max-width: 1007px;
|
|
||||||
margin: 15px auto 30px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logo-mse {
|
|
||||||
padding: 80px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header {
|
|
||||||
vertical-align: top;
|
|
||||||
color: #fff;
|
|
||||||
font-family: "fontpve", arial;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pvetools .dropdown .dropdown-toggle {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvemenu {
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
font-weight: bold;
|
|
||||||
background-color: #1c856aff;
|
|
||||||
height: 35px;
|
|
||||||
color: #fff;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelink {
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
padding: 5px 0 0 1rem;
|
|
||||||
display: inline-block;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelink ul {
|
|
||||||
list-style: none;
|
|
||||||
float: left;
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelink ul li {
|
|
||||||
list-style: none;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelink a {
|
|
||||||
color: #fff !important;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelink span {
|
|
||||||
float: left;
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-nav nav {
|
|
||||||
display: inline-block;
|
|
||||||
color: #2c3e50;
|
|
||||||
min-height: 35px;
|
|
||||||
padding: 0;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
transition: background 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-nav nav ul {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-nav nav a {
|
|
||||||
line-height: 35px;
|
|
||||||
padding: 0 20px;
|
|
||||||
color: #2c3e50;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-nav nav:hover {
|
|
||||||
background: #125444;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-nav nav:hover a {
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.language-flag {
|
|
||||||
height: 20px;
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pvetools .dropdown-menu {
|
|
||||||
background: #1c856aff;
|
|
||||||
min-width: 0px;
|
|
||||||
border: 0px;
|
|
||||||
box-shadow: none;
|
|
||||||
border-radius: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu li a {
|
|
||||||
color: #ffffff;
|
|
||||||
background: #1c856aff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu li a:hover {
|
|
||||||
background: #125444;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link-fc {
|
|
||||||
text-align: center;
|
|
||||||
margin-top: 8px;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link-fc a {
|
|
||||||
color: white;
|
|
||||||
letter-spacing: 1px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.link-fc a:hover {
|
|
||||||
color: white;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logo {
|
|
||||||
z-index: 10;
|
|
||||||
margin-left: 50px;
|
|
||||||
width: 280px;
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: bottom;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvename {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
#pvename a {
|
|
||||||
display: flex;
|
|
||||||
align-items: baseline;
|
|
||||||
width: auto;
|
|
||||||
text-decoration: none;
|
|
||||||
letter-spacing: -1px;
|
|
||||||
font-size: 30px;
|
|
||||||
color: #2c3e50;
|
|
||||||
line-height: 30px;
|
|
||||||
font-family: "fontpvebold";
|
|
||||||
padding: 3.4rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvename a > svg {
|
|
||||||
width: 280px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvename a > span {
|
|
||||||
color: #1c856aff;
|
|
||||||
font-size: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
#pvename a {
|
|
||||||
padding: 3.4rem 0 3.4rem 1.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
#pvename {
|
|
||||||
text-align: center;
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer ul {
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvename a {
|
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
margin: 10px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvename a > svg {
|
|
||||||
padding-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvename a > span {
|
|
||||||
display: block;
|
|
||||||
line-height: 40px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#boxlogin-wrapper {
|
|
||||||
padding: 0 18px;
|
|
||||||
width: 66%;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#boxlogin {
|
|
||||||
background-color: #2d3e50;
|
|
||||||
color: #fff;
|
|
||||||
font-family: arial;
|
|
||||||
font-size: 13px;
|
|
||||||
padding: 15px 30px 30px 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#boxlogin > * + * {
|
|
||||||
margin-top: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#boxlogin-title {
|
|
||||||
margin: 0;
|
|
||||||
text-transform: uppercase;
|
|
||||||
text-align: center;
|
|
||||||
color: #fff;
|
|
||||||
background-color: #1d2730;
|
|
||||||
font-family: "fontpvebold", aroam;
|
|
||||||
}
|
|
||||||
#boxlogin-title h1 {
|
|
||||||
font-size: 33px;
|
|
||||||
padding: 10px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
display: inline-block;
|
|
||||||
max-width: 100%;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
label[for="login_login"] {
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
#boxlogin .loginapp {
|
|
||||||
text-align: center;
|
|
||||||
padding: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loginapp-button img {
|
|
||||||
border-radius: 2px;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
object-fit: contain;
|
|
||||||
min-height: 56px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loginapp-button:hover {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.separateur {
|
|
||||||
align-items: center;
|
|
||||||
display: flex;
|
|
||||||
text-align: center;
|
|
||||||
padding: 0 2rem 1.3rem 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
#choixFC {
|
|
||||||
width: 2.5rem;
|
|
||||||
font-size: 1.2rem;
|
|
||||||
}
|
|
||||||
.text-right {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
.separateur::after,
|
|
||||||
.separateur::before {
|
|
||||||
content: "";
|
|
||||||
flex: 1;
|
|
||||||
border-bottom: 2px solid #e8e8e8;
|
|
||||||
}
|
|
||||||
|
|
||||||
#boxlogin .encart-erreur {
|
|
||||||
color: #2d3e50;
|
|
||||||
text-transform: uppercase;
|
|
||||||
text-align: center;
|
|
||||||
background-color: #fff;
|
|
||||||
padding: 10px 2px;
|
|
||||||
font-family: "fontpve", aroam;
|
|
||||||
font-size: 15px;
|
|
||||||
margin-top: 20px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#boxlogin h2 {
|
|
||||||
font-size: 25px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-family: "fontpvebold", aroam;
|
|
||||||
}
|
|
||||||
|
|
||||||
#boxlogin h3 {
|
|
||||||
color: #fff;
|
|
||||||
text-transform: uppercase;
|
|
||||||
text-align: center;
|
|
||||||
background-color: #4bcf9e;
|
|
||||||
padding: 10px 2px;
|
|
||||||
font-family: "fontpve", aroam;
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
#boxlogin h4 {
|
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
|
||||||
background-color: red;
|
|
||||||
padding: 10px 2px;
|
|
||||||
font-family: arial;
|
|
||||||
font-size: 15px;
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelogin,
|
|
||||||
#pvedescription {
|
|
||||||
/* padding: 30px 15px 10px 15px; */
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelogin input {
|
|
||||||
font-size: 20px;
|
|
||||||
height: 45px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelogin input:-webkit-autofil {
|
|
||||||
background-color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelogin button {
|
|
||||||
background-color: rgba(0, 0, 0, 0);
|
|
||||||
border-color: #fff;
|
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
padding: 10px 16px;
|
|
||||||
font-size: 18px;
|
|
||||||
line-height: 1.33;
|
|
||||||
border-radius: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelogin a {
|
|
||||||
color: #fff;
|
|
||||||
padding-top: 10px;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelogininfo a {
|
|
||||||
text-decoration: underline;
|
|
||||||
color: #2c3e50;
|
|
||||||
font-family: arial;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelogininfo {
|
|
||||||
font-family: arial;
|
|
||||||
font-size: 13px;
|
|
||||||
background-color: #fff;
|
|
||||||
color: #2c3e50;
|
|
||||||
padding: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pvelogininfo ul {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer {
|
|
||||||
clear: both;
|
|
||||||
padding-top: 100px;
|
|
||||||
text-transform: none;
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer > nav.navbar.navbar-inverse {
|
|
||||||
min-height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer-copyright {
|
|
||||||
text-align: center;
|
|
||||||
color: #fff;
|
|
||||||
padding-top: 30px;
|
|
||||||
padding-bottom: 30px;
|
|
||||||
font-family: Arial;
|
|
||||||
font-size: 12px;
|
|
||||||
text-transform: initial;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer-copyright img {
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footerli01 {
|
|
||||||
margin-left: 150px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer ul.nav.navbar-nav.navbar-left {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer ul.nav.navbar-nav > li > a {
|
|
||||||
color: #ffffff;
|
|
||||||
background-color: transparent;
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
padding-top: 0px;
|
|
||||||
padding-bottom: 0px;
|
|
||||||
padding-left: 0px;
|
|
||||||
padding-right: 0px;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
text-transform: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer ul.nav.navbar-nav > li > a:before {
|
|
||||||
content: "/";
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-right: 10px;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer ul.nav.navbar-nav.navbar-left > li:hover > a {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer ul.nav.navbar-nav.navbar-left > li:hover > a:before {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer-editor {
|
|
||||||
text-align: right;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 1007px) {
|
|
||||||
#wrapper {
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
#boxlogin-wrapper {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
#header {
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pveuser {
|
|
||||||
font-size: 15px;
|
|
||||||
top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pveuser small {
|
|
||||||
font-size: 12px;
|
|
||||||
top: -2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logo {
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 700px) {
|
|
||||||
#footerli01 {
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
#boxlogin .loginapp {
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
#pvemenu {
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 400px) {
|
|
||||||
#pvelink {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logo {
|
|
||||||
max-width: 46%;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#boxlogin-wrapper {
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* dispatcher error page */
|
|
||||||
.alert-danger {
|
|
||||||
background-color: #ff0000 !important;
|
|
||||||
border-color: #ff0000 !important;
|
|
||||||
color: #fff !important;
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.alert-danger a {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
.alert-danger a:hover {
|
|
||||||
color: unset;
|
|
||||||
}
|
|
||||||
.alert {
|
|
||||||
padding: 15px !important;
|
|
||||||
margin-bottom: 21px !important;
|
|
||||||
border: 1px solid transparent !important;
|
|
||||||
border-radius: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.alert-danger p {
|
|
||||||
margin: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-link {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: none;
|
|
||||||
-ms-flex-wrap: wrap;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
position: absolute;
|
|
||||||
height: 120%;
|
|
||||||
width: 100%;
|
|
||||||
background-color: #efefef;
|
|
||||||
opacity: 0.9;
|
|
||||||
z-index: 10;
|
|
||||||
flex-flow: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
#nb-spinner {
|
|
||||||
width: 75px;
|
|
||||||
height: 75px;
|
|
||||||
margin: 0;
|
|
||||||
background: transparent;
|
|
||||||
border-top: 4px solid #1c856a;
|
|
||||||
border-right: 4px solid transparent;
|
|
||||||
border-radius: 50%;
|
|
||||||
-webkit-animation: 1s spin linear infinite;
|
|
||||||
animation: 1s spin linear infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader-wrapper {
|
|
||||||
position: relative;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
#loader-content {
|
|
||||||
width: 300px;
|
|
||||||
height: 300px;
|
|
||||||
-webkit-box-flex: 0;
|
|
||||||
-ms-flex: 0 0 25%;
|
|
||||||
flex: 0 0 25%;
|
|
||||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 0;
|
|
||||||
position: relative;
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
-webkit-box-pack: center;
|
|
||||||
-ms-flex-pack: center;
|
|
||||||
justify-content: center;
|
|
||||||
-webkit-box-align: center;
|
|
||||||
-ms-flex-align: center;
|
|
||||||
align-items: center;
|
|
||||||
overflow: hidden;
|
|
||||||
position: absolute;
|
|
||||||
top: 200px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
@keyframes spin {
|
|
||||||
from {
|
|
||||||
-webkit-transform: rotate(0deg);
|
|
||||||
transform: rotate(0deg);
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
-webkit-transform: rotate(360deg);
|
|
||||||
transform: rotate(360deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
import './styles/theme.css'
|
|
||||||
|
|
||||||
import 'altcha';
|
|
||||||
import theme from './theme';
|
|
||||||
|
|
||||||
theme();
|
|
@ -1,52 +0,0 @@
|
|||||||
export default function theme() {
|
|
||||||
document.addEventListener("DOMContentLoaded", function() {
|
|
||||||
[].forEach.call(document.querySelectorAll('.language-change'), function(el) {
|
|
||||||
el.addEventListener('click', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
|
|
||||||
var lang = el.getAttribute('data-lang');
|
|
||||||
if(getCookie('mselang') != lang) {
|
|
||||||
setCookie('mselang', lang, false);
|
|
||||||
location.reload();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
// Empécher le double clic
|
|
||||||
const form = document.forms['login']
|
|
||||||
const loader = document.getElementById('loader');
|
|
||||||
form.addEventListener('submit', function(event) {
|
|
||||||
loader.style.display = 'flex';
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
function setCookie(name,value,days) {
|
|
||||||
var expires = "";
|
|
||||||
if (days) {
|
|
||||||
var date = new Date();
|
|
||||||
date.setTime(date.getTime() + (days*24*60*60*1000));
|
|
||||||
expires = "; expires=" + date.toUTCString();
|
|
||||||
}
|
|
||||||
var temp = window.location.hostname.split('.').reverse();
|
|
||||||
var root_domain = '';
|
|
||||||
for(var i=temp.length - 1;i >= 0;i--){
|
|
||||||
root_domain += temp[i];
|
|
||||||
if(i > 0){
|
|
||||||
root_domain += '.';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
document.cookie = name + "=" + (value || "") + expires + "; path=/; domain=" + root_domain;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getCookie(name) {
|
|
||||||
var nameEQ = name + "=";
|
|
||||||
var ca = document.cookie.split(';');
|
|
||||||
for(var i=0;i < ca.length;i++) {
|
|
||||||
var c = ca[i];
|
|
||||||
while (c.charAt(0)==' ') c = c.substring(1,c.length);
|
|
||||||
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
@ -8,14 +8,12 @@
|
|||||||
"ext-ctype": "*",
|
"ext-ctype": "*",
|
||||||
"ext-iconv": "*",
|
"ext-iconv": "*",
|
||||||
"doctrine/annotations": "^1.13",
|
"doctrine/annotations": "^1.13",
|
||||||
"predis/predis": "^2.1",
|
|
||||||
"sentry/sentry-symfony": "^4.5",
|
"sentry/sentry-symfony": "^4.5",
|
||||||
"symfony/apache-pack": "^1.0",
|
"symfony/apache-pack": "^1.0",
|
||||||
"symfony/asset": "5.4.*",
|
"symfony/asset": "5.4.*",
|
||||||
"symfony/console": "5.4.*",
|
"symfony/console": "5.4.*",
|
||||||
"symfony/dependency-injection": "5.4.*",
|
"symfony/dependency-injection": "5.4.*",
|
||||||
"symfony/dotenv": "5.4.*",
|
"symfony/dotenv": "5.4.*",
|
||||||
"symfony/expression-language": "5.4.*",
|
|
||||||
"symfony/flex": "^1.17|^2",
|
"symfony/flex": "^1.17|^2",
|
||||||
"symfony/form": "5.4.*",
|
"symfony/form": "5.4.*",
|
||||||
"symfony/framework-bundle": "5.4.*",
|
"symfony/framework-bundle": "5.4.*",
|
||||||
@ -34,8 +32,7 @@
|
|||||||
"allow-plugins": {
|
"allow-plugins": {
|
||||||
"composer/package-versions-deprecated": true,
|
"composer/package-versions-deprecated": true,
|
||||||
"symfony/flex": true,
|
"symfony/flex": true,
|
||||||
"symfony/runtime": true,
|
"symfony/runtime": true
|
||||||
"php-http/discovery": true
|
|
||||||
},
|
},
|
||||||
"optimize-autoloader": true,
|
"optimize-autoloader": true,
|
||||||
"preferred-install": {
|
"preferred-install": {
|
||||||
@ -78,8 +75,5 @@
|
|||||||
"allow-contrib": true,
|
"allow-contrib": true,
|
||||||
"require": "5.4.*"
|
"require": "5.4.*"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"symfony/debug-bundle": "5.4.*"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1632
composer.lock
generated
1632
composer.lock
generated
@ -4,27 +4,27 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "203398b3a4f3ff689ff3341c02460f23",
|
"content-hash": "caf75620d5f1d6c42561a31c9ccf2769",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "clue/stream-filter",
|
"name": "clue/stream-filter",
|
||||||
"version": "v1.7.0",
|
"version": "v1.6.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/clue/stream-filter.git",
|
"url": "https://github.com/clue/stream-filter.git",
|
||||||
"reference": "049509fef80032cb3f051595029ab75b49a3c2f7"
|
"reference": "d6169430c7731d8509da7aecd0af756a5747b78e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/clue/stream-filter/zipball/049509fef80032cb3f051595029ab75b49a3c2f7",
|
"url": "https://api.github.com/repos/clue/stream-filter/zipball/d6169430c7731d8509da7aecd0af756a5747b78e",
|
||||||
"reference": "049509fef80032cb3f051595029ab75b49a3c2f7",
|
"reference": "d6169430c7731d8509da7aecd0af756a5747b78e",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.3"
|
"php": ">=5.3"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
|
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -46,7 +46,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "A simple and modern approach to stream filtering in PHP",
|
"description": "A simple and modern approach to stream filtering in PHP",
|
||||||
"homepage": "https://github.com/clue/stream-filter",
|
"homepage": "https://github.com/clue/php-stream-filter",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"bucket brigade",
|
"bucket brigade",
|
||||||
"callback",
|
"callback",
|
||||||
@ -58,7 +58,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/clue/stream-filter/issues",
|
"issues": "https://github.com/clue/stream-filter/issues",
|
||||||
"source": "https://github.com/clue/stream-filter/tree/v1.7.0"
|
"source": "https://github.com/clue/stream-filter/tree/v1.6.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -70,20 +70,20 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-12-20T15:40:13+00:00"
|
"time": "2022-02-21T13:15:14+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/annotations",
|
"name": "doctrine/annotations",
|
||||||
"version": "1.14.4",
|
"version": "1.14.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/doctrine/annotations.git",
|
"url": "https://github.com/doctrine/annotations.git",
|
||||||
"reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915"
|
"reference": "9e034d7a70032d422169f27d8759e8d84abb4f51"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/doctrine/annotations/zipball/253dca476f70808a5aeed3a47cc2cc88c5cab915",
|
"url": "https://api.github.com/repos/doctrine/annotations/zipball/9e034d7a70032d422169f27d8759e8d84abb4f51",
|
||||||
"reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915",
|
"reference": "9e034d7a70032d422169f27d8759e8d84abb4f51",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -94,11 +94,11 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/cache": "^1.11 || ^2.0",
|
"doctrine/cache": "^1.11 || ^2.0",
|
||||||
"doctrine/coding-standard": "^9 || ^12",
|
"doctrine/coding-standard": "^9 || ^10",
|
||||||
"phpstan/phpstan": "~1.4.10 || ^1.10.28",
|
"phpstan/phpstan": "~1.4.10 || ^1.8.0",
|
||||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||||
"symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7",
|
"symfony/cache": "^4.4 || ^5.4 || ^6",
|
||||||
"vimeo/psalm": "^4.30 || ^5.14"
|
"vimeo/psalm": "^4.10"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
|
"php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
|
||||||
@ -144,36 +144,31 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/doctrine/annotations/issues",
|
"issues": "https://github.com/doctrine/annotations/issues",
|
||||||
"source": "https://github.com/doctrine/annotations/tree/1.14.4"
|
"source": "https://github.com/doctrine/annotations/tree/1.14.1"
|
||||||
},
|
},
|
||||||
"time": "2024-09-05T10:15:52+00:00"
|
"time": "2022-12-12T12:46:12+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/deprecations",
|
"name": "doctrine/deprecations",
|
||||||
"version": "1.1.5",
|
"version": "v1.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/doctrine/deprecations.git",
|
"url": "https://github.com/doctrine/deprecations.git",
|
||||||
"reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38"
|
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
|
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
|
||||||
"reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
|
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1 || ^8.0"
|
"php": "^7.1|^8.0"
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"phpunit/phpunit": "<=7.5 || >=13"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/coding-standard": "^9 || ^12 || ^13",
|
"doctrine/coding-standard": "^9",
|
||||||
"phpstan/phpstan": "1.4.10 || 2.1.11",
|
"phpunit/phpunit": "^7.5|^8.5|^9.5",
|
||||||
"phpstan/phpstan-phpunit": "^1.0 || ^2",
|
"psr/log": "^1|^2|^3"
|
||||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12",
|
|
||||||
"psr/log": "^1 || ^2 || ^3"
|
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
|
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
|
||||||
@ -181,7 +176,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Doctrine\\Deprecations\\": "src"
|
"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
@ -192,22 +187,22 @@
|
|||||||
"homepage": "https://www.doctrine-project.org/",
|
"homepage": "https://www.doctrine-project.org/",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/doctrine/deprecations/issues",
|
"issues": "https://github.com/doctrine/deprecations/issues",
|
||||||
"source": "https://github.com/doctrine/deprecations/tree/1.1.5"
|
"source": "https://github.com/doctrine/deprecations/tree/v1.0.0"
|
||||||
},
|
},
|
||||||
"time": "2025-04-07T20:06:18+00:00"
|
"time": "2022-05-02T15:47:09+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/lexer",
|
"name": "doctrine/lexer",
|
||||||
"version": "2.1.1",
|
"version": "2.1.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/doctrine/lexer.git",
|
"url": "https://github.com/doctrine/lexer.git",
|
||||||
"reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6"
|
"reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
|
"url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
|
||||||
"reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
|
"reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -215,11 +210,11 @@
|
|||||||
"php": "^7.1 || ^8.0"
|
"php": "^7.1 || ^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/coding-standard": "^9 || ^12",
|
"doctrine/coding-standard": "^9 || ^10",
|
||||||
"phpstan/phpstan": "^1.3",
|
"phpstan/phpstan": "^1.3",
|
||||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
|
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||||
"psalm/plugin-phpunit": "^0.18.3",
|
"psalm/plugin-phpunit": "^0.18.3",
|
||||||
"vimeo/psalm": "^4.11 || ^5.21"
|
"vimeo/psalm": "^4.11 || ^5.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -256,7 +251,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/doctrine/lexer/issues",
|
"issues": "https://github.com/doctrine/lexer/issues",
|
||||||
"source": "https://github.com/doctrine/lexer/tree/2.1.1"
|
"source": "https://github.com/doctrine/lexer/tree/2.1.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -272,37 +267,38 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-02-05T11:35:39+00:00"
|
"time": "2022-12-14T08:49:07+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzlehttp/promises",
|
"name": "guzzlehttp/promises",
|
||||||
"version": "2.2.0",
|
"version": "1.5.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/guzzle/promises.git",
|
"url": "https://github.com/guzzle/promises.git",
|
||||||
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c"
|
"reference": "b94b2807d85443f9719887892882d0329d1e2598"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c",
|
"url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598",
|
||||||
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c",
|
"reference": "b94b2807d85443f9719887892882d0329d1e2598",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.2.5 || ^8.0"
|
"php": ">=5.5"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"bamarni/composer-bin-plugin": "^1.8.2",
|
"symfony/phpunit-bridge": "^4.4 || ^5.1"
|
||||||
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
|
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"bamarni-bin": {
|
"branch-alias": {
|
||||||
"bin-links": true,
|
"dev-master": "1.5-dev"
|
||||||
"forward-command": false
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/functions_include.php"
|
||||||
|
],
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"GuzzleHttp\\Promise\\": "src/"
|
"GuzzleHttp\\Promise\\": "src/"
|
||||||
}
|
}
|
||||||
@ -339,7 +335,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/guzzle/promises/issues",
|
"issues": "https://github.com/guzzle/promises/issues",
|
||||||
"source": "https://github.com/guzzle/promises/tree/2.2.0"
|
"source": "https://github.com/guzzle/promises/tree/1.5.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -355,26 +351,26 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-03-27T13:27:01+00:00"
|
"time": "2022-08-28T14:55:35+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzlehttp/psr7",
|
"name": "guzzlehttp/psr7",
|
||||||
"version": "2.7.1",
|
"version": "2.4.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/guzzle/psr7.git",
|
"url": "https://github.com/guzzle/psr7.git",
|
||||||
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16"
|
"reference": "67c26b443f348a51926030c83481b85718457d3d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16",
|
"url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d",
|
||||||
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16",
|
"reference": "67c26b443f348a51926030c83481b85718457d3d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.2.5 || ^8.0",
|
"php": "^7.2.5 || ^8.0",
|
||||||
"psr/http-factory": "^1.0",
|
"psr/http-factory": "^1.0",
|
||||||
"psr/http-message": "^1.1 || ^2.0",
|
"psr/http-message": "^1.0",
|
||||||
"ralouphie/getallheaders": "^3.0"
|
"ralouphie/getallheaders": "^3.0"
|
||||||
},
|
},
|
||||||
"provide": {
|
"provide": {
|
||||||
@ -382,9 +378,9 @@
|
|||||||
"psr/http-message-implementation": "1.0"
|
"psr/http-message-implementation": "1.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"bamarni/composer-bin-plugin": "^1.8.2",
|
"bamarni/composer-bin-plugin": "^1.8.1",
|
||||||
"http-interop/http-factory-tests": "0.9.0",
|
"http-interop/http-factory-tests": "^0.9",
|
||||||
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
|
"phpunit/phpunit": "^8.5.29 || ^9.5.23"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
||||||
@ -394,6 +390,9 @@
|
|||||||
"bamarni-bin": {
|
"bamarni-bin": {
|
||||||
"bin-links": true,
|
"bin-links": true,
|
||||||
"forward-command": false
|
"forward-command": false
|
||||||
|
},
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.4-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -455,7 +454,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/guzzle/psr7/issues",
|
"issues": "https://github.com/guzzle/psr7/issues",
|
||||||
"source": "https://github.com/guzzle/psr7/tree/2.7.1"
|
"source": "https://github.com/guzzle/psr7/tree/2.4.3"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -471,7 +470,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-03-27T12:30:47+00:00"
|
"time": "2022-10-26T14:07:24+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "http-interop/http-factory-guzzle",
|
"name": "http-interop/http-factory-guzzle",
|
||||||
@ -533,29 +532,28 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "jean85/pretty-package-versions",
|
"name": "jean85/pretty-package-versions",
|
||||||
"version": "2.1.1",
|
"version": "2.0.5",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Jean85/pretty-package-versions.git",
|
"url": "https://github.com/Jean85/pretty-package-versions.git",
|
||||||
"reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a"
|
"reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/4d7aa5dab42e2a76d99559706022885de0e18e1a",
|
"url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af",
|
||||||
"reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a",
|
"reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"composer-runtime-api": "^2.1.0",
|
"composer-runtime-api": "^2.0.0",
|
||||||
"php": "^7.4|^8.0"
|
"php": "^7.1|^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"friendsofphp/php-cs-fixer": "^3.2",
|
"friendsofphp/php-cs-fixer": "^2.17",
|
||||||
"jean85/composer-provided-replaced-stub-package": "^1.0",
|
"jean85/composer-provided-replaced-stub-package": "^1.0",
|
||||||
"phpstan/phpstan": "^2.0",
|
"phpstan/phpstan": "^0.12.66",
|
||||||
"phpunit/phpunit": "^7.5|^8.5|^9.6",
|
"phpunit/phpunit": "^7.5|^8.5|^9.4",
|
||||||
"rector/rector": "^2.0",
|
"vimeo/psalm": "^4.3"
|
||||||
"vimeo/psalm": "^4.3 || ^5.0"
|
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
@ -587,32 +585,33 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/Jean85/pretty-package-versions/issues",
|
"issues": "https://github.com/Jean85/pretty-package-versions/issues",
|
||||||
"source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.1"
|
"source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5"
|
||||||
},
|
},
|
||||||
"time": "2025-03-19T14:43:43+00:00"
|
"time": "2021-10-08T21:21:46+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-http/client-common",
|
"name": "php-http/client-common",
|
||||||
"version": "2.7.2",
|
"version": "2.6.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-http/client-common.git",
|
"url": "https://github.com/php-http/client-common.git",
|
||||||
"reference": "0cfe9858ab9d3b213041b947c881d5b19ceeca46"
|
"reference": "45db684cd4e186dcdc2b9c06b22970fe123796c0"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-http/client-common/zipball/0cfe9858ab9d3b213041b947c881d5b19ceeca46",
|
"url": "https://api.github.com/repos/php-http/client-common/zipball/45db684cd4e186dcdc2b9c06b22970fe123796c0",
|
||||||
"reference": "0cfe9858ab9d3b213041b947c881d5b19ceeca46",
|
"reference": "45db684cd4e186dcdc2b9c06b22970fe123796c0",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1 || ^8.0",
|
"php": "^7.1 || ^8.0",
|
||||||
"php-http/httplug": "^2.0",
|
"php-http/httplug": "^2.0",
|
||||||
"php-http/message": "^1.6",
|
"php-http/message": "^1.6",
|
||||||
|
"php-http/message-factory": "^1.0",
|
||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
"psr/http-factory": "^1.0",
|
"psr/http-factory": "^1.0",
|
||||||
"psr/http-message": "^1.0 || ^2.0",
|
"psr/http-message": "^1.0",
|
||||||
"symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0 || ^7.0",
|
"symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0",
|
||||||
"symfony/polyfill-php80": "^1.17"
|
"symfony/polyfill-php80": "^1.17"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
@ -621,7 +620,7 @@
|
|||||||
"nyholm/psr7": "^1.2",
|
"nyholm/psr7": "^1.2",
|
||||||
"phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
|
"phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
|
||||||
"phpspec/prophecy": "^1.10.2",
|
"phpspec/prophecy": "^1.10.2",
|
||||||
"phpunit/phpunit": "^7.5.20 || ^8.5.33 || ^9.6.7"
|
"phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-json": "To detect JSON responses with the ContentTypePlugin",
|
"ext-json": "To detect JSON responses with the ContentTypePlugin",
|
||||||
@ -631,6 +630,11 @@
|
|||||||
"php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
|
"php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.3.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Http\\Client\\Common\\": "src/"
|
"Http\\Client\\Common\\": "src/"
|
||||||
@ -656,60 +660,49 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/php-http/client-common/issues",
|
"issues": "https://github.com/php-http/client-common/issues",
|
||||||
"source": "https://github.com/php-http/client-common/tree/2.7.2"
|
"source": "https://github.com/php-http/client-common/tree/2.6.0"
|
||||||
},
|
},
|
||||||
"time": "2024-09-24T06:21:48+00:00"
|
"time": "2022-09-29T09:59:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-http/discovery",
|
"name": "php-http/discovery",
|
||||||
"version": "1.20.0",
|
"version": "1.14.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-http/discovery.git",
|
"url": "https://github.com/php-http/discovery.git",
|
||||||
"reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d"
|
"reference": "31d8ee46d0215108df16a8527c7438e96a4d7735"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d",
|
"url": "https://api.github.com/repos/php-http/discovery/zipball/31d8ee46d0215108df16a8527c7438e96a4d7735",
|
||||||
"reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d",
|
"reference": "31d8ee46d0215108df16a8527c7438e96a4d7735",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"composer-plugin-api": "^1.0|^2.0",
|
|
||||||
"php": "^7.1 || ^8.0"
|
"php": "^7.1 || ^8.0"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"nyholm/psr7": "<1.0",
|
"nyholm/psr7": "<1.0"
|
||||||
"zendframework/zend-diactoros": "*"
|
|
||||||
},
|
|
||||||
"provide": {
|
|
||||||
"php-http/async-client-implementation": "*",
|
|
||||||
"php-http/client-implementation": "*",
|
|
||||||
"psr/http-client-implementation": "*",
|
|
||||||
"psr/http-factory-implementation": "*",
|
|
||||||
"psr/http-message-implementation": "*"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"composer/composer": "^1.0.2|^2.0",
|
|
||||||
"graham-campbell/phpspec-skip-example-extension": "^5.0",
|
"graham-campbell/phpspec-skip-example-extension": "^5.0",
|
||||||
"php-http/httplug": "^1.0 || ^2.0",
|
"php-http/httplug": "^1.0 || ^2.0",
|
||||||
"php-http/message-factory": "^1.0",
|
"php-http/message-factory": "^1.0",
|
||||||
"phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
|
"phpspec/phpspec": "^5.1 || ^6.1"
|
||||||
"sebastian/comparator": "^3.0.5 || ^4.0.8",
|
|
||||||
"symfony/phpunit-bridge": "^6.4.4 || ^7.0.1"
|
|
||||||
},
|
},
|
||||||
"type": "composer-plugin",
|
"suggest": {
|
||||||
|
"php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"class": "Http\\Discovery\\Composer\\Plugin",
|
"branch-alias": {
|
||||||
"plugin-optional": true
|
"dev-master": "1.9-dev"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Http\\Discovery\\": "src/"
|
"Http\\Discovery\\": "src/"
|
||||||
},
|
}
|
||||||
"exclude-from-classmap": [
|
|
||||||
"src/Composer/Plugin.php"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
"license": [
|
"license": [
|
||||||
@ -721,7 +714,7 @@
|
|||||||
"email": "mark.sagikazar@gmail.com"
|
"email": "mark.sagikazar@gmail.com"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations",
|
"description": "Finds installed HTTPlug implementations and PSR-7 message factories",
|
||||||
"homepage": "http://php-http.org",
|
"homepage": "http://php-http.org",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"adapter",
|
"adapter",
|
||||||
@ -730,40 +723,44 @@
|
|||||||
"factory",
|
"factory",
|
||||||
"http",
|
"http",
|
||||||
"message",
|
"message",
|
||||||
"psr17",
|
|
||||||
"psr7"
|
"psr7"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/php-http/discovery/issues",
|
"issues": "https://github.com/php-http/discovery/issues",
|
||||||
"source": "https://github.com/php-http/discovery/tree/1.20.0"
|
"source": "https://github.com/php-http/discovery/tree/1.14.3"
|
||||||
},
|
},
|
||||||
"time": "2024-10-02T11:20:13+00:00"
|
"time": "2022-07-11T14:04:40+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-http/httplug",
|
"name": "php-http/httplug",
|
||||||
"version": "2.4.1",
|
"version": "2.3.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-http/httplug.git",
|
"url": "https://github.com/php-http/httplug.git",
|
||||||
"reference": "5cad731844891a4c282f3f3e1b582c46839d22f4"
|
"reference": "f640739f80dfa1152533976e3c112477f69274eb"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-http/httplug/zipball/5cad731844891a4c282f3f3e1b582c46839d22f4",
|
"url": "https://api.github.com/repos/php-http/httplug/zipball/f640739f80dfa1152533976e3c112477f69274eb",
|
||||||
"reference": "5cad731844891a4c282f3f3e1b582c46839d22f4",
|
"reference": "f640739f80dfa1152533976e3c112477f69274eb",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1 || ^8.0",
|
"php": "^7.1 || ^8.0",
|
||||||
"php-http/promise": "^1.1",
|
"php-http/promise": "^1.1",
|
||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
"psr/http-message": "^1.0 || ^2.0"
|
"psr/http-message": "^1.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0",
|
"friends-of-phpspec/phpspec-code-coverage": "^4.1",
|
||||||
"phpspec/phpspec": "^5.1 || ^6.0 || ^7.0"
|
"phpspec/phpspec": "^5.1 || ^6.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Http\\Client\\": "src/"
|
"Http\\Client\\": "src/"
|
||||||
@ -792,28 +789,29 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/php-http/httplug/issues",
|
"issues": "https://github.com/php-http/httplug/issues",
|
||||||
"source": "https://github.com/php-http/httplug/tree/2.4.1"
|
"source": "https://github.com/php-http/httplug/tree/2.3.0"
|
||||||
},
|
},
|
||||||
"time": "2024-09-23T11:39:58+00:00"
|
"time": "2022-02-21T09:52:22+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-http/message",
|
"name": "php-http/message",
|
||||||
"version": "1.16.2",
|
"version": "1.13.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-http/message.git",
|
"url": "https://github.com/php-http/message.git",
|
||||||
"reference": "06dd5e8562f84e641bf929bfe699ee0f5ce8080a"
|
"reference": "7886e647a30a966a1a8d1dad1845b71ca8678361"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-http/message/zipball/06dd5e8562f84e641bf929bfe699ee0f5ce8080a",
|
"url": "https://api.github.com/repos/php-http/message/zipball/7886e647a30a966a1a8d1dad1845b71ca8678361",
|
||||||
"reference": "06dd5e8562f84e641bf929bfe699ee0f5ce8080a",
|
"reference": "7886e647a30a966a1a8d1dad1845b71ca8678361",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"clue/stream-filter": "^1.5",
|
"clue/stream-filter": "^1.5",
|
||||||
"php": "^7.2 || ^8.0",
|
"php": "^7.1 || ^8.0",
|
||||||
"psr/http-message": "^1.1 || ^2.0"
|
"php-http/message-factory": "^1.0.2",
|
||||||
|
"psr/http-message": "^1.0"
|
||||||
},
|
},
|
||||||
"provide": {
|
"provide": {
|
||||||
"php-http/message-factory-implementation": "1.0"
|
"php-http/message-factory-implementation": "1.0"
|
||||||
@ -821,9 +819,8 @@
|
|||||||
"require-dev": {
|
"require-dev": {
|
||||||
"ergebnis/composer-normalize": "^2.6",
|
"ergebnis/composer-normalize": "^2.6",
|
||||||
"ext-zlib": "*",
|
"ext-zlib": "*",
|
||||||
"guzzlehttp/psr7": "^1.0 || ^2.0",
|
"guzzlehttp/psr7": "^1.0",
|
||||||
"laminas/laminas-diactoros": "^2.0 || ^3.0",
|
"laminas/laminas-diactoros": "^2.0",
|
||||||
"php-http/message-factory": "^1.0.2",
|
|
||||||
"phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
|
"phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
|
||||||
"slim/slim": "^3.0"
|
"slim/slim": "^3.0"
|
||||||
},
|
},
|
||||||
@ -834,6 +831,11 @@
|
|||||||
"slim/slim": "Used with Slim Framework PSR-7 implementation"
|
"slim/slim": "Used with Slim Framework PSR-7 implementation"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.10-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"files": [
|
"files": [
|
||||||
"src/filters.php"
|
"src/filters.php"
|
||||||
@ -861,32 +863,32 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/php-http/message/issues",
|
"issues": "https://github.com/php-http/message/issues",
|
||||||
"source": "https://github.com/php-http/message/tree/1.16.2"
|
"source": "https://github.com/php-http/message/tree/1.13.0"
|
||||||
},
|
},
|
||||||
"time": "2024-10-02T11:34:13+00:00"
|
"time": "2022-02-11T13:41:14+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-http/message-factory",
|
"name": "php-http/message-factory",
|
||||||
"version": "1.1.0",
|
"version": "v1.0.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-http/message-factory.git",
|
"url": "https://github.com/php-http/message-factory.git",
|
||||||
"reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57"
|
"reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-http/message-factory/zipball/4d8778e1c7d405cbb471574821c1ff5b68cc8f57",
|
"url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
|
||||||
"reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57",
|
"reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.4",
|
"php": ">=5.4",
|
||||||
"psr/http-message": "^1.0 || ^2.0"
|
"psr/http-message": "^1.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "1.x-dev"
|
"dev-master": "1.0-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -915,33 +917,37 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/php-http/message-factory/issues",
|
"issues": "https://github.com/php-http/message-factory/issues",
|
||||||
"source": "https://github.com/php-http/message-factory/tree/1.1.0"
|
"source": "https://github.com/php-http/message-factory/tree/master"
|
||||||
},
|
},
|
||||||
"abandoned": "psr/http-factory",
|
"time": "2015-12-19T14:08:53+00:00"
|
||||||
"time": "2023-04-14T14:16:17+00:00"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-http/promise",
|
"name": "php-http/promise",
|
||||||
"version": "1.3.1",
|
"version": "1.1.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-http/promise.git",
|
"url": "https://github.com/php-http/promise.git",
|
||||||
"reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83"
|
"reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
|
"url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
|
||||||
"reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
|
"reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1 || ^8.0"
|
"php": "^7.1 || ^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3",
|
"friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
|
||||||
"phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4"
|
"phpspec/phpspec": "^5.1.2 || ^6.2"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.1-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Http\\Promise\\": "src/"
|
"Http\\Promise\\": "src/"
|
||||||
@ -968,70 +974,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/php-http/promise/issues",
|
"issues": "https://github.com/php-http/promise/issues",
|
||||||
"source": "https://github.com/php-http/promise/tree/1.3.1"
|
"source": "https://github.com/php-http/promise/tree/1.1.0"
|
||||||
},
|
},
|
||||||
"time": "2024-03-15T13:55:21+00:00"
|
"time": "2020-07-07T09:29:14+00:00"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "predis/predis",
|
|
||||||
"version": "v2.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/predis/predis.git",
|
|
||||||
"reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/predis/predis/zipball/bac46bfdb78cd6e9c7926c697012aae740cb9ec9",
|
|
||||||
"reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.2 || ^8.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"friendsofphp/php-cs-fixer": "^3.3",
|
|
||||||
"phpstan/phpstan": "^1.9",
|
|
||||||
"phpunit/phpunit": "^8.0 || ^9.4"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-relay": "Faster connection with in-memory caching (>=0.6.2)"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Predis\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Till Krüss",
|
|
||||||
"homepage": "https://till.im",
|
|
||||||
"role": "Maintainer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A flexible and feature-complete Redis client for PHP.",
|
|
||||||
"homepage": "http://github.com/predis/predis",
|
|
||||||
"keywords": [
|
|
||||||
"nosql",
|
|
||||||
"predis",
|
|
||||||
"redis"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/predis/predis/issues",
|
|
||||||
"source": "https://github.com/predis/predis/tree/v2.3.0"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sponsors/tillkruss",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2024-11-21T20:00:02+00:00"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/cache",
|
"name": "psr/cache",
|
||||||
@ -1182,21 +1127,21 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/http-client",
|
"name": "psr/http-client",
|
||||||
"version": "1.0.3",
|
"version": "1.0.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/http-client.git",
|
"url": "https://github.com/php-fig/http-client.git",
|
||||||
"reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
|
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
|
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
|
||||||
"reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
|
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.0 || ^8.0",
|
"php": "^7.0 || ^8.0",
|
||||||
"psr/http-message": "^1.0 || ^2.0"
|
"psr/http-message": "^1.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
@ -1216,7 +1161,7 @@
|
|||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "PHP-FIG",
|
"name": "PHP-FIG",
|
||||||
"homepage": "https://www.php-fig.org/"
|
"homepage": "http://www.php-fig.org/"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Common interface for HTTP clients",
|
"description": "Common interface for HTTP clients",
|
||||||
@ -1228,27 +1173,27 @@
|
|||||||
"psr-18"
|
"psr-18"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/php-fig/http-client"
|
"source": "https://github.com/php-fig/http-client/tree/master"
|
||||||
},
|
},
|
||||||
"time": "2023-09-23T14:17:50+00:00"
|
"time": "2020-06-29T06:28:15+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/http-factory",
|
"name": "psr/http-factory",
|
||||||
"version": "1.1.0",
|
"version": "1.0.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/http-factory.git",
|
"url": "https://github.com/php-fig/http-factory.git",
|
||||||
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
|
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
|
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||||
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
|
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.1",
|
"php": ">=7.0.0",
|
||||||
"psr/http-message": "^1.0 || ^2.0"
|
"psr/http-message": "^1.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
@ -1268,10 +1213,10 @@
|
|||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "PHP-FIG",
|
"name": "PHP-FIG",
|
||||||
"homepage": "https://www.php-fig.org/"
|
"homepage": "http://www.php-fig.org/"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
|
"description": "Common interfaces for PSR-7 HTTP message factories",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"factory",
|
"factory",
|
||||||
"http",
|
"http",
|
||||||
@ -1283,31 +1228,31 @@
|
|||||||
"response"
|
"response"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/php-fig/http-factory"
|
"source": "https://github.com/php-fig/http-factory/tree/master"
|
||||||
},
|
},
|
||||||
"time": "2024-04-15T12:06:14+00:00"
|
"time": "2019-04-30T12:38:16+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/http-message",
|
"name": "psr/http-message",
|
||||||
"version": "2.0",
|
"version": "1.0.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/http-message.git",
|
"url": "https://github.com/php-fig/http-message.git",
|
||||||
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
|
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
|
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||||
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
|
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.2 || ^8.0"
|
"php": ">=5.3.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "2.0.x-dev"
|
"dev-master": "1.0.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -1322,7 +1267,7 @@
|
|||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "PHP-FIG",
|
"name": "PHP-FIG",
|
||||||
"homepage": "https://www.php-fig.org/"
|
"homepage": "http://www.php-fig.org/"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Common interface for HTTP messages",
|
"description": "Common interface for HTTP messages",
|
||||||
@ -1336,9 +1281,9 @@
|
|||||||
"response"
|
"response"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/php-fig/http-message/tree/2.0"
|
"source": "https://github.com/php-fig/http-message/tree/master"
|
||||||
},
|
},
|
||||||
"time": "2023-04-04T09:54:51+00:00"
|
"time": "2016-08-06T14:39:51+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/log",
|
"name": "psr/log",
|
||||||
@ -1436,22 +1381,22 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sentry/sdk",
|
"name": "sentry/sdk",
|
||||||
"version": "3.6.0",
|
"version": "3.3.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/getsentry/sentry-php-sdk.git",
|
"url": "https://github.com/getsentry/sentry-php-sdk.git",
|
||||||
"reference": "24c235ff2027401cbea099bf88689e1a1f197c7a"
|
"reference": "d0678fc7274dbb03046ed05cb24eb92945bedf8e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/24c235ff2027401cbea099bf88689e1a1f197c7a",
|
"url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/d0678fc7274dbb03046ed05cb24eb92945bedf8e",
|
||||||
"reference": "24c235ff2027401cbea099bf88689e1a1f197c7a",
|
"reference": "d0678fc7274dbb03046ed05cb24eb92945bedf8e",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"http-interop/http-factory-guzzle": "^1.0",
|
"http-interop/http-factory-guzzle": "^1.0",
|
||||||
"sentry/sentry": "^3.22",
|
"sentry/sentry": "^3.9",
|
||||||
"symfony/http-client": "^4.3|^5.0|^6.0|^7.0"
|
"symfony/http-client": "^4.3|^5.0|^6.0"
|
||||||
},
|
},
|
||||||
"type": "metapackage",
|
"type": "metapackage",
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
@ -1477,7 +1422,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/getsentry/sentry-php-sdk/issues",
|
"issues": "https://github.com/getsentry/sentry-php-sdk/issues",
|
||||||
"source": "https://github.com/getsentry/sentry-php-sdk/tree/3.6.0"
|
"source": "https://github.com/getsentry/sentry-php-sdk/tree/3.3.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1489,38 +1434,38 @@
|
|||||||
"type": "custom"
|
"type": "custom"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-12-04T10:49:33+00:00"
|
"time": "2022-10-11T09:05:00+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sentry/sentry",
|
"name": "sentry/sentry",
|
||||||
"version": "3.22.1",
|
"version": "3.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/getsentry/sentry-php.git",
|
"url": "https://github.com/getsentry/sentry-php.git",
|
||||||
"reference": "8859631ba5ab15bc1af420b0eeed19ecc6c9d81d"
|
"reference": "4902f43640963ed45517fd7c1da7fdd5511bb304"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/8859631ba5ab15bc1af420b0eeed19ecc6c9d81d",
|
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/4902f43640963ed45517fd7c1da7fdd5511bb304",
|
||||||
"reference": "8859631ba5ab15bc1af420b0eeed19ecc6c9d81d",
|
"reference": "4902f43640963ed45517fd7c1da7fdd5511bb304",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-json": "*",
|
"ext-json": "*",
|
||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"guzzlehttp/promises": "^1.5.3|^2.0",
|
"guzzlehttp/promises": "^1.4",
|
||||||
|
"guzzlehttp/psr7": "^1.8.4|^2.1.1",
|
||||||
"jean85/pretty-package-versions": "^1.5|^2.0.4",
|
"jean85/pretty-package-versions": "^1.5|^2.0.4",
|
||||||
"php": "^7.2|^8.0",
|
"php": "^7.2|^8.0",
|
||||||
"php-http/async-client-implementation": "^1.0",
|
"php-http/async-client-implementation": "^1.0",
|
||||||
"php-http/client-common": "^1.5|^2.0",
|
"php-http/client-common": "^1.5|^2.0",
|
||||||
"php-http/discovery": "^1.15",
|
"php-http/discovery": "^1.11",
|
||||||
"php-http/httplug": "^1.1|^2.0",
|
"php-http/httplug": "^1.1|^2.0",
|
||||||
"php-http/message": "^1.5",
|
"php-http/message": "^1.5",
|
||||||
"php-http/message-factory": "^1.1",
|
|
||||||
"psr/http-factory": "^1.0",
|
"psr/http-factory": "^1.0",
|
||||||
"psr/http-factory-implementation": "^1.0",
|
"psr/http-message-implementation": "^1.0",
|
||||||
"psr/log": "^1.0|^2.0|^3.0",
|
"psr/log": "^1.0|^2.0|^3.0",
|
||||||
"symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0|^7.0",
|
"symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0",
|
||||||
"symfony/polyfill-php80": "^1.17"
|
"symfony/polyfill-php80": "^1.17"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
@ -1529,7 +1474,6 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"friendsofphp/php-cs-fixer": "^2.19|3.4.*",
|
"friendsofphp/php-cs-fixer": "^2.19|3.4.*",
|
||||||
"guzzlehttp/psr7": "^1.8.4|^2.1.1",
|
|
||||||
"http-interop/http-factory-guzzle": "^1.0",
|
"http-interop/http-factory-guzzle": "^1.0",
|
||||||
"monolog/monolog": "^1.6|^2.0|^3.0",
|
"monolog/monolog": "^1.6|^2.0|^3.0",
|
||||||
"nikic/php-parser": "^4.10.3",
|
"nikic/php-parser": "^4.10.3",
|
||||||
@ -1546,6 +1490,11 @@
|
|||||||
"monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
|
"monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.12.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"files": [
|
"files": [
|
||||||
"src/functions.php"
|
"src/functions.php"
|
||||||
@ -1556,7 +1505,7 @@
|
|||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
"license": [
|
"license": [
|
||||||
"MIT"
|
"BSD-3-Clause"
|
||||||
],
|
],
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -1577,7 +1526,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/getsentry/sentry-php/issues",
|
"issues": "https://github.com/getsentry/sentry-php/issues",
|
||||||
"source": "https://github.com/getsentry/sentry-php/tree/3.22.1"
|
"source": "https://github.com/getsentry/sentry-php/tree/3.12.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1589,61 +1538,62 @@
|
|||||||
"type": "custom"
|
"type": "custom"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-11-13T11:47:28+00:00"
|
"time": "2022-11-22T10:57:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sentry/sentry-symfony",
|
"name": "sentry/sentry-symfony",
|
||||||
"version": "4.14.0",
|
"version": "4.5.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/getsentry/sentry-symfony.git",
|
"url": "https://github.com/getsentry/sentry-symfony.git",
|
||||||
"reference": "001c4cfd8fe93cbb00edaca903ffbfac28259170"
|
"reference": "04e1f298a3a7ab477e09f4382189538473ad0a58"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/getsentry/sentry-symfony/zipball/001c4cfd8fe93cbb00edaca903ffbfac28259170",
|
"url": "https://api.github.com/repos/getsentry/sentry-symfony/zipball/04e1f298a3a7ab477e09f4382189538473ad0a58",
|
||||||
"reference": "001c4cfd8fe93cbb00edaca903ffbfac28259170",
|
"reference": "04e1f298a3a7ab477e09f4382189538473ad0a58",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"guzzlehttp/psr7": "^1.7 || ^2.0",
|
|
||||||
"jean85/pretty-package-versions": "^1.5 || ^2.0",
|
"jean85/pretty-package-versions": "^1.5 || ^2.0",
|
||||||
"php": "^7.2||^8.0",
|
"php": "^7.2||^8.0",
|
||||||
"sentry/sdk": "^3.6",
|
"php-http/discovery": "^1.11",
|
||||||
"sentry/sentry": "^3.22.1",
|
"sentry/sdk": "^3.3",
|
||||||
"symfony/cache-contracts": "^1.1||^2.4||^3.0",
|
"symfony/cache-contracts": "^1.1||^2.4||^3.0",
|
||||||
"symfony/config": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/config": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/console": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/console": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/dependency-injection": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/dependency-injection": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/event-dispatcher": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/event-dispatcher": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/http-kernel": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/http-kernel": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/polyfill-php80": "^1.22",
|
"symfony/polyfill-php80": "^1.22",
|
||||||
"symfony/psr-http-message-bridge": "^1.2||^2.0||^6.4||^7.0",
|
"symfony/psr-http-message-bridge": "^1.2||^2.0",
|
||||||
"symfony/security-core": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/security-core": "^4.4.20||^5.0.11||^6.0"
|
||||||
"symfony/security-http": "^4.4.20||^5.0.11||^6.0||^7.0"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/dbal": "^2.13||^3.3||^4.0",
|
"doctrine/dbal": "^2.13||^3.0",
|
||||||
"doctrine/doctrine-bundle": "^2.6",
|
"doctrine/doctrine-bundle": "^1.12||^2.5",
|
||||||
"friendsofphp/php-cs-fixer": "^2.19||^3.40",
|
"friendsofphp/php-cs-fixer": "^2.19||^3.6",
|
||||||
"masterminds/html5": "^2.8",
|
"jangregor/phpstan-prophecy": "^1.0",
|
||||||
|
"monolog/monolog": "^1.3||^2.0",
|
||||||
|
"phpspec/prophecy": "!=1.11.0",
|
||||||
|
"phpspec/prophecy-phpunit": "^1.1||^2.0",
|
||||||
"phpstan/extension-installer": "^1.0",
|
"phpstan/extension-installer": "^1.0",
|
||||||
"phpstan/phpstan": "^1.3",
|
"phpstan/phpstan": "^1.3",
|
||||||
"phpstan/phpstan-phpunit": "^1.0",
|
"phpstan/phpstan-phpunit": "^1.0",
|
||||||
"phpstan/phpstan-symfony": "^1.0",
|
"phpstan/phpstan-symfony": "^1.0",
|
||||||
"phpunit/phpunit": "^8.5.14||^9.3.9",
|
"phpunit/phpunit": "^8.5.14||^9.3.9",
|
||||||
"symfony/browser-kit": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/browser-kit": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/cache": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/cache": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/dom-crawler": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/dom-crawler": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/framework-bundle": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/framework-bundle": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/http-client": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/http-client": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/messenger": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/messenger": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/monolog-bundle": "^3.4",
|
"symfony/monolog-bundle": "^3.4",
|
||||||
"symfony/phpunit-bridge": "^5.2.6||^6.0||^7.0",
|
"symfony/phpunit-bridge": "^5.2.6||^6.0",
|
||||||
"symfony/process": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/process": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/twig-bundle": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/twig-bundle": "^4.4.20||^5.0.11||^6.0",
|
||||||
"symfony/yaml": "^4.4.20||^5.0.11||^6.0||^7.0",
|
"symfony/yaml": "^4.4.20||^5.0.11||^6.0",
|
||||||
"vimeo/psalm": "^4.3||^5.16.0"
|
"vimeo/psalm": "^4.3"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"doctrine/doctrine-bundle": "Allow distributed tracing of database queries using Sentry.",
|
"doctrine/doctrine-bundle": "Allow distributed tracing of database queries using Sentry.",
|
||||||
@ -1654,9 +1604,10 @@
|
|||||||
"type": "symfony-bundle",
|
"type": "symfony-bundle",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"releases/1.x": "1.x-dev",
|
"dev-master": "4.4.x-dev",
|
||||||
|
"releases/3.2.x": "3.2.x-dev",
|
||||||
"releases/2.x": "2.x-dev",
|
"releases/2.x": "2.x-dev",
|
||||||
"releases/3.2.x": "3.2.x-dev"
|
"releases/1.x": "1.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -1669,7 +1620,7 @@
|
|||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
"license": [
|
"license": [
|
||||||
"MIT"
|
"Apache-2.0"
|
||||||
],
|
],
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -1691,7 +1642,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/getsentry/sentry-symfony/issues",
|
"issues": "https://github.com/getsentry/sentry-symfony/issues",
|
||||||
"source": "https://github.com/getsentry/sentry-symfony/tree/4.14.0"
|
"source": "https://github.com/getsentry/sentry-symfony/tree/4.5.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1703,7 +1654,7 @@
|
|||||||
"type": "custom"
|
"type": "custom"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-02-26T09:27:19+00:00"
|
"time": "2022-11-28T12:37:44+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/apache-pack",
|
"name": "symfony/apache-pack",
|
||||||
@ -1733,16 +1684,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/asset",
|
"name": "symfony/asset",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.13",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/asset.git",
|
"url": "https://github.com/symfony/asset.git",
|
||||||
"reference": "b7a18eaff1d717c321b4f13403413f8815bf9cb0"
|
"reference": "9aa867206711cb6fcca51ef127ba52a018170be9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/asset/zipball/b7a18eaff1d717c321b4f13403413f8815bf9cb0",
|
"url": "https://api.github.com/repos/symfony/asset/zipball/9aa867206711cb6fcca51ef127ba52a018170be9",
|
||||||
"reference": "b7a18eaff1d717c321b4f13403413f8815bf9cb0",
|
"reference": "9aa867206711cb6fcca51ef127ba52a018170be9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1787,7 +1738,7 @@
|
|||||||
"description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
|
"description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/asset/tree/v5.4.45"
|
"source": "https://github.com/symfony/asset/tree/v5.4.13"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1803,20 +1754,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-22T13:05:35+00:00"
|
"time": "2022-08-31T08:17:19+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/cache",
|
"name": "symfony/cache",
|
||||||
"version": "v5.4.46",
|
"version": "v5.4.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/cache.git",
|
"url": "https://github.com/symfony/cache.git",
|
||||||
"reference": "0fe08ee32cec2748fbfea10c52d3ee02049e0f6b"
|
"reference": "60e87188abbacd29ccde44d69c5392a33e888e98"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/cache/zipball/0fe08ee32cec2748fbfea10c52d3ee02049e0f6b",
|
"url": "https://api.github.com/repos/symfony/cache/zipball/60e87188abbacd29ccde44d69c5392a33e888e98",
|
||||||
"reference": "0fe08ee32cec2748fbfea10c52d3ee02049e0f6b",
|
"reference": "60e87188abbacd29ccde44d69c5392a33e888e98",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1844,8 +1795,8 @@
|
|||||||
"require-dev": {
|
"require-dev": {
|
||||||
"cache/integration-tests": "dev-master",
|
"cache/integration-tests": "dev-master",
|
||||||
"doctrine/cache": "^1.6|^2.0",
|
"doctrine/cache": "^1.6|^2.0",
|
||||||
"doctrine/dbal": "^2.13.1|^3|^4",
|
"doctrine/dbal": "^2.13.1|^3.0",
|
||||||
"predis/predis": "^1.1|^2.0",
|
"predis/predis": "^1.1",
|
||||||
"psr/simple-cache": "^1.0|^2.0",
|
"psr/simple-cache": "^1.0|^2.0",
|
||||||
"symfony/config": "^4.4|^5.0|^6.0",
|
"symfony/config": "^4.4|^5.0|^6.0",
|
||||||
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
||||||
@ -1884,7 +1835,7 @@
|
|||||||
"psr6"
|
"psr6"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/cache/tree/v5.4.46"
|
"source": "https://github.com/symfony/cache/tree/v5.4.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1900,20 +1851,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-04T11:43:55+00:00"
|
"time": "2022-10-27T07:55:40+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/cache-contracts",
|
"name": "symfony/cache-contracts",
|
||||||
"version": "v2.5.4",
|
"version": "v2.5.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/cache-contracts.git",
|
"url": "https://github.com/symfony/cache-contracts.git",
|
||||||
"reference": "517c3a3619dadfa6952c4651767fcadffb4df65e"
|
"reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/cache-contracts/zipball/517c3a3619dadfa6952c4651767fcadffb4df65e",
|
"url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
|
||||||
"reference": "517c3a3619dadfa6952c4651767fcadffb4df65e",
|
"reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1925,12 +1876,12 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"thanks": {
|
|
||||||
"url": "https://github.com/symfony/contracts",
|
|
||||||
"name": "symfony/contracts"
|
|
||||||
},
|
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "2.5-dev"
|
"dev-main": "2.5-dev"
|
||||||
|
},
|
||||||
|
"thanks": {
|
||||||
|
"name": "symfony/contracts",
|
||||||
|
"url": "https://github.com/symfony/contracts"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -1963,7 +1914,7 @@
|
|||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/cache-contracts/tree/v2.5.4"
|
"source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1979,20 +1930,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-01-02T09:53:40+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/config",
|
"name": "symfony/config",
|
||||||
"version": "v5.4.46",
|
"version": "v5.4.11",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/config.git",
|
"url": "https://github.com/symfony/config.git",
|
||||||
"reference": "977c88a02d7d3f16904a81907531b19666a08e78"
|
"reference": "ec79e03125c1d2477e43dde8528535d90cc78379"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/config/zipball/977c88a02d7d3f16904a81907531b19666a08e78",
|
"url": "https://api.github.com/repos/symfony/config/zipball/ec79e03125c1d2477e43dde8528535d90cc78379",
|
||||||
"reference": "977c88a02d7d3f16904a81907531b19666a08e78",
|
"reference": "ec79e03125c1d2477e43dde8528535d90cc78379",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2042,7 +1993,7 @@
|
|||||||
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
|
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/config/tree/v5.4.46"
|
"source": "https://github.com/symfony/config/tree/v5.4.11"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2058,20 +2009,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-30T07:58:02+00:00"
|
"time": "2022-07-20T13:00:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/console",
|
"name": "symfony/console",
|
||||||
"version": "v5.4.47",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/console.git",
|
"url": "https://github.com/symfony/console.git",
|
||||||
"reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed"
|
"reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/console/zipball/c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed",
|
"url": "https://api.github.com/repos/symfony/console/zipball/8e9b9c8dfb33af6057c94e1b44846bee700dc5ef",
|
||||||
"reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed",
|
"reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2136,12 +2087,12 @@
|
|||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"cli",
|
"cli",
|
||||||
"command-line",
|
"command line",
|
||||||
"console",
|
"console",
|
||||||
"terminal"
|
"terminal"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/console/tree/v5.4.47"
|
"source": "https://github.com/symfony/console/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2157,20 +2108,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-06T11:30:55+00:00"
|
"time": "2022-11-25T14:09:27+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/dependency-injection",
|
"name": "symfony/dependency-injection",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/dependency-injection.git",
|
"url": "https://github.com/symfony/dependency-injection.git",
|
||||||
"reference": "e5ca16dee39ef7d63e552ff0bf0a2526a1142c92"
|
"reference": "a93e1863500940780fc1235f52d54397be2d14b3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e5ca16dee39ef7d63e552ff0bf0a2526a1142c92",
|
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a93e1863500940780fc1235f52d54397be2d14b3",
|
||||||
"reference": "e5ca16dee39ef7d63e552ff0bf0a2526a1142c92",
|
"reference": "a93e1863500940780fc1235f52d54397be2d14b3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2230,7 +2181,7 @@
|
|||||||
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
|
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/dependency-injection/tree/v5.4.48"
|
"source": "https://github.com/symfony/dependency-injection/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2246,20 +2197,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-20T10:51:57+00:00"
|
"time": "2022-11-25T07:33:13+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/deprecation-contracts",
|
"name": "symfony/deprecation-contracts",
|
||||||
"version": "v3.5.1",
|
"version": "v3.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||||
"reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
|
"reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
|
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3",
|
||||||
"reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
|
"reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2267,12 +2218,12 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"thanks": {
|
|
||||||
"url": "https://github.com/symfony/contracts",
|
|
||||||
"name": "symfony/contracts"
|
|
||||||
},
|
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.5-dev"
|
"dev-main": "3.3-dev"
|
||||||
|
},
|
||||||
|
"thanks": {
|
||||||
|
"name": "symfony/contracts",
|
||||||
|
"url": "https://github.com/symfony/contracts"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -2297,7 +2248,7 @@
|
|||||||
"description": "A generic function and convention to trigger deprecation notices",
|
"description": "A generic function and convention to trigger deprecation notices",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
|
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2313,20 +2264,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:20:29+00:00"
|
"time": "2022-11-25T10:21:52+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/dotenv",
|
"name": "symfony/dotenv",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.5",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/dotenv.git",
|
"url": "https://github.com/symfony/dotenv.git",
|
||||||
"reference": "08013403089c8a126c968179179b817a552841ab"
|
"reference": "83a2310904a4f5d4f42526227b5a578ac82232a9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/dotenv/zipball/08013403089c8a126c968179179b817a552841ab",
|
"url": "https://api.github.com/repos/symfony/dotenv/zipball/83a2310904a4f5d4f42526227b5a578ac82232a9",
|
||||||
"reference": "08013403089c8a126c968179179b817a552841ab",
|
"reference": "83a2310904a4f5d4f42526227b5a578ac82232a9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2368,7 +2319,7 @@
|
|||||||
"environment"
|
"environment"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/dotenv/tree/v5.4.48"
|
"source": "https://github.com/symfony/dotenv/tree/v5.4.5"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2384,20 +2335,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-27T09:33:00+00:00"
|
"time": "2022-02-15T17:04:12+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/error-handler",
|
"name": "symfony/error-handler",
|
||||||
"version": "v5.4.46",
|
"version": "v5.4.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/error-handler.git",
|
"url": "https://github.com/symfony/error-handler.git",
|
||||||
"reference": "d19ede7a2cafb386be9486c580649d0f9e3d0363"
|
"reference": "539cf1428b8442303c6e876ad7bf5a7babd91091"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/d19ede7a2cafb386be9486c580649d0f9e3d0363",
|
"url": "https://api.github.com/repos/symfony/error-handler/zipball/539cf1428b8442303c6e876ad7bf5a7babd91091",
|
||||||
"reference": "d19ede7a2cafb386be9486c580649d0f9e3d0363",
|
"reference": "539cf1428b8442303c6e876ad7bf5a7babd91091",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2439,7 +2390,7 @@
|
|||||||
"description": "Provides tools to manage errors and ease debugging PHP code",
|
"description": "Provides tools to manage errors and ease debugging PHP code",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/error-handler/tree/v5.4.46"
|
"source": "https://github.com/symfony/error-handler/tree/v5.4.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2455,20 +2406,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-05T14:17:06+00:00"
|
"time": "2022-10-27T06:32:25+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/event-dispatcher",
|
"name": "symfony/event-dispatcher",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||||
"reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9"
|
"reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/72982eb416f61003e9bb6e91f8b3213600dcf9e9",
|
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc",
|
||||||
"reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9",
|
"reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2524,7 +2475,7 @@
|
|||||||
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.45"
|
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2540,34 +2491,37 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-05-05T16:45:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/event-dispatcher-contracts",
|
"name": "symfony/event-dispatcher-contracts",
|
||||||
"version": "v3.5.1",
|
"version": "v3.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
|
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
|
||||||
"reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
|
"reference": "0782b0b52a737a05b4383d0df35a474303cabdae"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
|
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0782b0b52a737a05b4383d0df35a474303cabdae",
|
||||||
"reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
|
"reference": "0782b0b52a737a05b4383d0df35a474303cabdae",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1",
|
"php": ">=8.1",
|
||||||
"psr/event-dispatcher": "^1"
|
"psr/event-dispatcher": "^1"
|
||||||
},
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/event-dispatcher-implementation": ""
|
||||||
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"thanks": {
|
|
||||||
"url": "https://github.com/symfony/contracts",
|
|
||||||
"name": "symfony/contracts"
|
|
||||||
},
|
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.5-dev"
|
"dev-main": "3.3-dev"
|
||||||
|
},
|
||||||
|
"thanks": {
|
||||||
|
"name": "symfony/contracts",
|
||||||
|
"url": "https://github.com/symfony/contracts"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -2600,7 +2554,7 @@
|
|||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
|
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2616,83 +2570,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:20:29+00:00"
|
"time": "2022-11-25T10:21:52+00:00"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/expression-language",
|
|
||||||
"version": "v5.4.45",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/expression-language.git",
|
|
||||||
"reference": "a784b66edc4c151eb05076d04707906ee2c209a9"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/expression-language/zipball/a784b66edc4c151eb05076d04707906ee2c209a9",
|
|
||||||
"reference": "a784b66edc4c151eb05076d04707906ee2c209a9",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.2.5",
|
|
||||||
"symfony/cache": "^4.4|^5.0|^6.0",
|
|
||||||
"symfony/service-contracts": "^1.1|^2|^3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Component\\ExpressionLanguage\\": ""
|
|
||||||
},
|
|
||||||
"exclude-from-classmap": [
|
|
||||||
"/Tests/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Provides an engine that can compile and evaluate expressions",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"support": {
|
|
||||||
"source": "https://github.com/symfony/expression-language/tree/v5.4.45"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://symfony.com/sponsor",
|
|
||||||
"type": "custom"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://github.com/fabpot",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
|
||||||
"type": "tidelift"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2024-10-04T14:55:40+00:00"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/filesystem",
|
"name": "symfony/filesystem",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.13",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/filesystem.git",
|
"url": "https://github.com/symfony/filesystem.git",
|
||||||
"reference": "57c8294ed37d4a055b77057827c67f9558c95c54"
|
"reference": "ac09569844a9109a5966b9438fc29113ce77cf51"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/57c8294ed37d4a055b77057827c67f9558c95c54",
|
"url": "https://api.github.com/repos/symfony/filesystem/zipball/ac09569844a9109a5966b9438fc29113ce77cf51",
|
||||||
"reference": "57c8294ed37d4a055b77057827c67f9558c95c54",
|
"reference": "ac09569844a9109a5966b9438fc29113ce77cf51",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2701,9 +2592,6 @@
|
|||||||
"symfony/polyfill-mbstring": "~1.8",
|
"symfony/polyfill-mbstring": "~1.8",
|
||||||
"symfony/polyfill-php80": "^1.16"
|
"symfony/polyfill-php80": "^1.16"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
|
||||||
"symfony/process": "^5.4|^6.4"
|
|
||||||
},
|
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
@ -2730,7 +2618,7 @@
|
|||||||
"description": "Provides basic utilities for the filesystem",
|
"description": "Provides basic utilities for the filesystem",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/filesystem/tree/v5.4.45"
|
"source": "https://github.com/symfony/filesystem/tree/v5.4.13"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2746,20 +2634,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-22T13:05:35+00:00"
|
"time": "2022-09-21T19:53:16+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/finder",
|
"name": "symfony/finder",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.11",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/finder.git",
|
"url": "https://github.com/symfony/finder.git",
|
||||||
"reference": "63741784cd7b9967975eec610b256eed3ede022b"
|
"reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/finder/zipball/63741784cd7b9967975eec610b256eed3ede022b",
|
"url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c",
|
||||||
"reference": "63741784cd7b9967975eec610b256eed3ede022b",
|
"reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2793,7 +2681,7 @@
|
|||||||
"description": "Finds files and directories via an intuitive fluent interface",
|
"description": "Finds files and directories via an intuitive fluent interface",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/finder/tree/v5.4.45"
|
"source": "https://github.com/symfony/finder/tree/v5.4.11"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2809,29 +2697,26 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-28T13:32:08+00:00"
|
"time": "2022-07-29T07:37:50+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/flex",
|
"name": "symfony/flex",
|
||||||
"version": "v2.5.0",
|
"version": "v2.2.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/flex.git",
|
"url": "https://github.com/symfony/flex.git",
|
||||||
"reference": "8ce1acd9842abe0e9b4c4a0bd3f259859516c018"
|
"reference": "0763da1bdcce1d48c06778d48249905c26d34a72"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/flex/zipball/8ce1acd9842abe0e9b4c4a0bd3f259859516c018",
|
"url": "https://api.github.com/repos/symfony/flex/zipball/0763da1bdcce1d48c06778d48249905c26d34a72",
|
||||||
"reference": "8ce1acd9842abe0e9b4c4a0bd3f259859516c018",
|
"reference": "0763da1bdcce1d48c06778d48249905c26d34a72",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"composer-plugin-api": "^2.1",
|
"composer-plugin-api": "^2.1",
|
||||||
"php": ">=8.0"
|
"php": ">=8.0"
|
||||||
},
|
},
|
||||||
"conflict": {
|
|
||||||
"composer/semver": "<1.7.2"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"composer/composer": "^2.1",
|
"composer/composer": "^2.1",
|
||||||
"symfony/dotenv": "^5.4|^6.0",
|
"symfony/dotenv": "^5.4|^6.0",
|
||||||
@ -2861,7 +2746,7 @@
|
|||||||
"description": "Composer plugin for Symfony",
|
"description": "Composer plugin for Symfony",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/symfony/flex/issues",
|
"issues": "https://github.com/symfony/flex/issues",
|
||||||
"source": "https://github.com/symfony/flex/tree/v2.5.0"
|
"source": "https://github.com/symfony/flex/tree/v2.2.3"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2877,20 +2762,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-03-03T07:50:46+00:00"
|
"time": "2022-08-07T09:39:47+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/form",
|
"name": "symfony/form",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/form.git",
|
"url": "https://github.com/symfony/form.git",
|
||||||
"reference": "c1974a723cdee8a273cb49ce13fada5c1667706a"
|
"reference": "5d3790b31935deff2506b2687ae18b3cf8f50405"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/form/zipball/c1974a723cdee8a273cb49ce13fada5c1667706a",
|
"url": "https://api.github.com/repos/symfony/form/zipball/5d3790b31935deff2506b2687ae18b3cf8f50405",
|
||||||
"reference": "c1974a723cdee8a273cb49ce13fada5c1667706a",
|
"reference": "5d3790b31935deff2506b2687ae18b3cf8f50405",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2907,15 +2792,16 @@
|
|||||||
"symfony/service-contracts": "^1.1|^2|^3"
|
"symfony/service-contracts": "^1.1|^2|^3"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
|
"phpunit/phpunit": "<5.4.3",
|
||||||
"symfony/console": "<4.4",
|
"symfony/console": "<4.4",
|
||||||
"symfony/dependency-injection": "<4.4",
|
"symfony/dependency-injection": "<4.4",
|
||||||
"symfony/doctrine-bridge": "<5.4.21|>=6,<6.2.7",
|
"symfony/doctrine-bridge": "<4.4",
|
||||||
"symfony/error-handler": "<4.4.5",
|
"symfony/error-handler": "<4.4.5",
|
||||||
"symfony/framework-bundle": "<4.4",
|
"symfony/framework-bundle": "<4.4",
|
||||||
"symfony/http-kernel": "<4.4",
|
"symfony/http-kernel": "<4.4",
|
||||||
"symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
|
"symfony/translation": "<4.4",
|
||||||
"symfony/translation-contracts": "<1.1.7",
|
"symfony/translation-contracts": "<1.1.7",
|
||||||
"symfony/twig-bridge": "<5.4.21|>=6,<6.2.7"
|
"symfony/twig-bridge": "<4.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/collections": "^1.0|^2.0",
|
"doctrine/collections": "^1.0|^2.0",
|
||||||
@ -2927,7 +2813,7 @@
|
|||||||
"symfony/http-kernel": "^4.4|^5.0|^6.0",
|
"symfony/http-kernel": "^4.4|^5.0|^6.0",
|
||||||
"symfony/intl": "^4.4|^5.0|^6.0",
|
"symfony/intl": "^4.4|^5.0|^6.0",
|
||||||
"symfony/security-csrf": "^4.4|^5.0|^6.0",
|
"symfony/security-csrf": "^4.4|^5.0|^6.0",
|
||||||
"symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
|
"symfony/translation": "^4.4|^5.0|^6.0",
|
||||||
"symfony/uid": "^5.1|^6.0",
|
"symfony/uid": "^5.1|^6.0",
|
||||||
"symfony/validator": "^4.4.17|^5.1.9|^6.0",
|
"symfony/validator": "^4.4.17|^5.1.9|^6.0",
|
||||||
"symfony/var-dumper": "^4.4|^5.0|^6.0"
|
"symfony/var-dumper": "^4.4|^5.0|^6.0"
|
||||||
@ -2963,7 +2849,7 @@
|
|||||||
"description": "Allows to easily create, process and reuse HTML forms",
|
"description": "Allows to easily create, process and reuse HTML forms",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/form/tree/v5.4.45"
|
"source": "https://github.com/symfony/form/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2979,20 +2865,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-08T07:27:17+00:00"
|
"time": "2022-11-25T18:56:07+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/framework-bundle",
|
"name": "symfony/framework-bundle",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/framework-bundle.git",
|
"url": "https://github.com/symfony/framework-bundle.git",
|
||||||
"reference": "3d70f14176422d4d8ee400b6acae4e21f7c25ca2"
|
"reference": "70bfb2e76b8d97b2b19058bd65046b4cc1f04e3d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/3d70f14176422d4d8ee400b6acae4e21f7c25ca2",
|
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/70bfb2e76b8d97b2b19058bd65046b4cc1f04e3d",
|
||||||
"reference": "3d70f14176422d4d8ee400b6acae4e21f7c25ca2",
|
"reference": "70bfb2e76b8d97b2b19058bd65046b4cc1f04e3d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3000,13 +2886,13 @@
|
|||||||
"php": ">=7.2.5",
|
"php": ">=7.2.5",
|
||||||
"symfony/cache": "^5.2|^6.0",
|
"symfony/cache": "^5.2|^6.0",
|
||||||
"symfony/config": "^5.3|^6.0",
|
"symfony/config": "^5.3|^6.0",
|
||||||
"symfony/dependency-injection": "^5.4.44|^6.0.5",
|
"symfony/dependency-injection": "^5.4.5|^6.0.5",
|
||||||
"symfony/deprecation-contracts": "^2.1|^3",
|
"symfony/deprecation-contracts": "^2.1|^3",
|
||||||
"symfony/error-handler": "^4.4.1|^5.0.1|^6.0",
|
"symfony/error-handler": "^4.4.1|^5.0.1|^6.0",
|
||||||
"symfony/event-dispatcher": "^5.1|^6.0",
|
"symfony/event-dispatcher": "^5.1|^6.0",
|
||||||
"symfony/filesystem": "^4.4|^5.0|^6.0",
|
"symfony/filesystem": "^4.4|^5.0|^6.0",
|
||||||
"symfony/finder": "^4.4|^5.0|^6.0",
|
"symfony/finder": "^4.4|^5.0|^6.0",
|
||||||
"symfony/http-foundation": "^5.4.24|^6.2.11",
|
"symfony/http-foundation": "^5.3|^6.0",
|
||||||
"symfony/http-kernel": "^5.4|^6.0",
|
"symfony/http-kernel": "^5.4|^6.0",
|
||||||
"symfony/polyfill-mbstring": "~1.0",
|
"symfony/polyfill-mbstring": "~1.0",
|
||||||
"symfony/polyfill-php80": "^1.16",
|
"symfony/polyfill-php80": "^1.16",
|
||||||
@ -3019,8 +2905,9 @@
|
|||||||
"doctrine/persistence": "<1.3",
|
"doctrine/persistence": "<1.3",
|
||||||
"phpdocumentor/reflection-docblock": "<3.2.2",
|
"phpdocumentor/reflection-docblock": "<3.2.2",
|
||||||
"phpdocumentor/type-resolver": "<1.4.0",
|
"phpdocumentor/type-resolver": "<1.4.0",
|
||||||
|
"phpunit/phpunit": "<5.4.3",
|
||||||
"symfony/asset": "<5.3",
|
"symfony/asset": "<5.3",
|
||||||
"symfony/console": "<5.2.5|>=7.0",
|
"symfony/console": "<5.2.5",
|
||||||
"symfony/dom-crawler": "<4.4",
|
"symfony/dom-crawler": "<4.4",
|
||||||
"symfony/dotenv": "<5.1",
|
"symfony/dotenv": "<5.1",
|
||||||
"symfony/form": "<5.2",
|
"symfony/form": "<5.2",
|
||||||
@ -3031,7 +2918,6 @@
|
|||||||
"symfony/mime": "<4.4",
|
"symfony/mime": "<4.4",
|
||||||
"symfony/property-access": "<5.3",
|
"symfony/property-access": "<5.3",
|
||||||
"symfony/property-info": "<4.4",
|
"symfony/property-info": "<4.4",
|
||||||
"symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6",
|
|
||||||
"symfony/security-csrf": "<5.3",
|
"symfony/security-csrf": "<5.3",
|
||||||
"symfony/serializer": "<5.2",
|
"symfony/serializer": "<5.2",
|
||||||
"symfony/service-contracts": ">=3.0",
|
"symfony/service-contracts": ">=3.0",
|
||||||
@ -3039,12 +2925,12 @@
|
|||||||
"symfony/translation": "<5.3",
|
"symfony/translation": "<5.3",
|
||||||
"symfony/twig-bridge": "<4.4",
|
"symfony/twig-bridge": "<4.4",
|
||||||
"symfony/twig-bundle": "<4.4",
|
"symfony/twig-bundle": "<4.4",
|
||||||
"symfony/validator": "<5.3.11",
|
"symfony/validator": "<5.2",
|
||||||
"symfony/web-profiler-bundle": "<4.4",
|
"symfony/web-profiler-bundle": "<4.4",
|
||||||
"symfony/workflow": "<5.2"
|
"symfony/workflow": "<5.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/annotations": "^1.13.1|^2",
|
"doctrine/annotations": "^1.13.1",
|
||||||
"doctrine/cache": "^1.11|^2.0",
|
"doctrine/cache": "^1.11|^2.0",
|
||||||
"doctrine/persistence": "^1.3|^2|^3",
|
"doctrine/persistence": "^1.3|^2|^3",
|
||||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
||||||
@ -3072,11 +2958,11 @@
|
|||||||
"symfony/string": "^5.0|^6.0",
|
"symfony/string": "^5.0|^6.0",
|
||||||
"symfony/translation": "^5.3|^6.0",
|
"symfony/translation": "^5.3|^6.0",
|
||||||
"symfony/twig-bundle": "^4.4|^5.0|^6.0",
|
"symfony/twig-bundle": "^4.4|^5.0|^6.0",
|
||||||
"symfony/validator": "^5.3.11|^6.0",
|
"symfony/validator": "^5.2|^6.0",
|
||||||
"symfony/web-link": "^4.4|^5.0|^6.0",
|
"symfony/web-link": "^4.4|^5.0|^6.0",
|
||||||
"symfony/workflow": "^5.2|^6.0",
|
"symfony/workflow": "^5.2|^6.0",
|
||||||
"symfony/yaml": "^4.4|^5.0|^6.0",
|
"symfony/yaml": "^4.4|^5.0|^6.0",
|
||||||
"twig/twig": "^2.10|^3.0.4"
|
"twig/twig": "^2.10|^3.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-apcu": "For best performance of the system caches",
|
"ext-apcu": "For best performance of the system caches",
|
||||||
@ -3114,7 +3000,7 @@
|
|||||||
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
|
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/framework-bundle/tree/v5.4.45"
|
"source": "https://github.com/symfony/framework-bundle/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3130,27 +3016,27 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-22T13:05:35+00:00"
|
"time": "2022-11-25T14:26:10+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-client",
|
"name": "symfony/http-client",
|
||||||
"version": "v5.4.49",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-client.git",
|
"url": "https://github.com/symfony/http-client.git",
|
||||||
"reference": "d77d8e212cde7b5c4a64142bf431522f19487c28"
|
"reference": "0f43af12a27733a060b92396b7bde84a4376da0a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/d77d8e212cde7b5c4a64142bf431522f19487c28",
|
"url": "https://api.github.com/repos/symfony/http-client/zipball/0f43af12a27733a060b92396b7bde84a4376da0a",
|
||||||
"reference": "d77d8e212cde7b5c4a64142bf431522f19487c28",
|
"reference": "0f43af12a27733a060b92396b7bde84a4376da0a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2.5",
|
"php": ">=7.2.5",
|
||||||
"psr/log": "^1|^2|^3",
|
"psr/log": "^1|^2|^3",
|
||||||
"symfony/deprecation-contracts": "^2.1|^3",
|
"symfony/deprecation-contracts": "^2.1|^3",
|
||||||
"symfony/http-client-contracts": "^2.5.4",
|
"symfony/http-client-contracts": "^2.4",
|
||||||
"symfony/polyfill-php73": "^1.11",
|
"symfony/polyfill-php73": "^1.11",
|
||||||
"symfony/polyfill-php80": "^1.16",
|
"symfony/polyfill-php80": "^1.16",
|
||||||
"symfony/service-contracts": "^1.0|^2|^3"
|
"symfony/service-contracts": "^1.0|^2|^3"
|
||||||
@ -3166,10 +3052,9 @@
|
|||||||
"amphp/http-client": "^4.2.1",
|
"amphp/http-client": "^4.2.1",
|
||||||
"amphp/http-tunnel": "^1.0",
|
"amphp/http-tunnel": "^1.0",
|
||||||
"amphp/socket": "^1.1",
|
"amphp/socket": "^1.1",
|
||||||
"guzzlehttp/promises": "^1.4|^2.0",
|
"guzzlehttp/promises": "^1.4",
|
||||||
"nyholm/psr7": "^1.0",
|
"nyholm/psr7": "^1.0",
|
||||||
"php-http/httplug": "^1.0|^2.0",
|
"php-http/httplug": "^1.0|^2.0",
|
||||||
"php-http/message-factory": "^1.0",
|
|
||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
||||||
"symfony/http-kernel": "^4.4.13|^5.1.5|^6.0",
|
"symfony/http-kernel": "^4.4.13|^5.1.5|^6.0",
|
||||||
@ -3201,11 +3086,8 @@
|
|||||||
],
|
],
|
||||||
"description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
|
"description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"keywords": [
|
|
||||||
"http"
|
|
||||||
],
|
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-client/tree/v5.4.49"
|
"source": "https://github.com/symfony/http-client/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3221,20 +3103,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-28T08:37:04+00:00"
|
"time": "2022-11-09T11:27:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-client-contracts",
|
"name": "symfony/http-client-contracts",
|
||||||
"version": "v2.5.5",
|
"version": "v2.5.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-client-contracts.git",
|
"url": "https://github.com/symfony/http-client-contracts.git",
|
||||||
"reference": "48ef1d0a082885877b664332b9427662065a360c"
|
"reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/48ef1d0a082885877b664332b9427662065a360c",
|
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
|
||||||
"reference": "48ef1d0a082885877b664332b9427662065a360c",
|
"reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3245,12 +3127,12 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"thanks": {
|
|
||||||
"url": "https://github.com/symfony/contracts",
|
|
||||||
"name": "symfony/contracts"
|
|
||||||
},
|
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "2.5-dev"
|
"dev-main": "2.5-dev"
|
||||||
|
},
|
||||||
|
"thanks": {
|
||||||
|
"name": "symfony/contracts",
|
||||||
|
"url": "https://github.com/symfony/contracts"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -3283,7 +3165,7 @@
|
|||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-client-contracts/tree/v2.5.5"
|
"source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3299,20 +3181,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-28T08:37:04+00:00"
|
"time": "2022-04-12T15:48:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-foundation",
|
"name": "symfony/http-foundation",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-foundation.git",
|
"url": "https://github.com/symfony/http-foundation.git",
|
||||||
"reference": "3f38b8af283b830e1363acd79e5bc3412d055341"
|
"reference": "5032c5849aef24741e1970cb03511b0dd131d838"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/3f38b8af283b830e1363acd79e5bc3412d055341",
|
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/5032c5849aef24741e1970cb03511b0dd131d838",
|
||||||
"reference": "3f38b8af283b830e1363acd79e5bc3412d055341",
|
"reference": "5032c5849aef24741e1970cb03511b0dd131d838",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3322,7 +3204,7 @@
|
|||||||
"symfony/polyfill-php80": "^1.16"
|
"symfony/polyfill-php80": "^1.16"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"predis/predis": "^1.0|^2.0",
|
"predis/predis": "~1.0",
|
||||||
"symfony/cache": "^4.4|^5.0|^6.0",
|
"symfony/cache": "^4.4|^5.0|^6.0",
|
||||||
"symfony/dependency-injection": "^5.4|^6.0",
|
"symfony/dependency-injection": "^5.4|^6.0",
|
||||||
"symfony/expression-language": "^4.4|^5.0|^6.0",
|
"symfony/expression-language": "^4.4|^5.0|^6.0",
|
||||||
@ -3359,7 +3241,7 @@
|
|||||||
"description": "Defines an object-oriented layer for the HTTP specification",
|
"description": "Defines an object-oriented layer for the HTTP specification",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-foundation/tree/v5.4.48"
|
"source": "https://github.com/symfony/http-foundation/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3375,20 +3257,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-13T18:58:02+00:00"
|
"time": "2022-11-07T08:06:40+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-kernel",
|
"name": "symfony/http-kernel",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-kernel.git",
|
"url": "https://github.com/symfony/http-kernel.git",
|
||||||
"reference": "c2dbfc92b851404567160d1ecf3fb7d9b7bde9b0"
|
"reference": "b432c57c5de73634b1859093c1f58e3cd84455a1"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/c2dbfc92b851404567160d1ecf3fb7d9b7bde9b0",
|
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/b432c57c5de73634b1859093c1f58e3cd84455a1",
|
||||||
"reference": "c2dbfc92b851404567160d1ecf3fb7d9b7bde9b0",
|
"reference": "b432c57c5de73634b1859093c1f58e3cd84455a1",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3397,7 +3279,7 @@
|
|||||||
"symfony/deprecation-contracts": "^2.1|^3",
|
"symfony/deprecation-contracts": "^2.1|^3",
|
||||||
"symfony/error-handler": "^4.4|^5.0|^6.0",
|
"symfony/error-handler": "^4.4|^5.0|^6.0",
|
||||||
"symfony/event-dispatcher": "^5.0|^6.0",
|
"symfony/event-dispatcher": "^5.0|^6.0",
|
||||||
"symfony/http-foundation": "^5.4.21|^6.2.7",
|
"symfony/http-foundation": "^5.3.7|^6.0",
|
||||||
"symfony/polyfill-ctype": "^1.8",
|
"symfony/polyfill-ctype": "^1.8",
|
||||||
"symfony/polyfill-php73": "^1.9",
|
"symfony/polyfill-php73": "^1.9",
|
||||||
"symfony/polyfill-php80": "^1.16"
|
"symfony/polyfill-php80": "^1.16"
|
||||||
@ -3437,7 +3319,6 @@
|
|||||||
"symfony/stopwatch": "^4.4|^5.0|^6.0",
|
"symfony/stopwatch": "^4.4|^5.0|^6.0",
|
||||||
"symfony/translation": "^4.4|^5.0|^6.0",
|
"symfony/translation": "^4.4|^5.0|^6.0",
|
||||||
"symfony/translation-contracts": "^1.1|^2|^3",
|
"symfony/translation-contracts": "^1.1|^2|^3",
|
||||||
"symfony/var-dumper": "^4.4.31|^5.4",
|
|
||||||
"twig/twig": "^2.13|^3.0.4"
|
"twig/twig": "^2.13|^3.0.4"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
@ -3472,7 +3353,7 @@
|
|||||||
"description": "Provides a structured process for converting a Request into a Response",
|
"description": "Provides a structured process for converting a Request into a Response",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-kernel/tree/v5.4.48"
|
"source": "https://github.com/symfony/http-kernel/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3488,20 +3369,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-27T12:43:17+00:00"
|
"time": "2022-11-28T18:08:58+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/lock",
|
"name": "symfony/lock",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/lock.git",
|
"url": "https://github.com/symfony/lock.git",
|
||||||
"reference": "f85ebc5346a2f0e4f9e347e9154922a6d4665c65"
|
"reference": "109a20faa6119578b46457ef8cffb9389e20e5ca"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/lock/zipball/f85ebc5346a2f0e4f9e347e9154922a6d4665c65",
|
"url": "https://api.github.com/repos/symfony/lock/zipball/109a20faa6119578b46457ef8cffb9389e20e5ca",
|
||||||
"reference": "f85ebc5346a2f0e4f9e347e9154922a6d4665c65",
|
"reference": "109a20faa6119578b46457ef8cffb9389e20e5ca",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3514,8 +3395,8 @@
|
|||||||
"doctrine/dbal": "<2.13"
|
"doctrine/dbal": "<2.13"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/dbal": "^2.13|^3|^4",
|
"doctrine/dbal": "^2.13|^3.0",
|
||||||
"predis/predis": "^1.0|^2.0"
|
"predis/predis": "~1.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -3551,7 +3432,7 @@
|
|||||||
"semaphore"
|
"semaphore"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/lock/tree/v5.4.45"
|
"source": "https://github.com/symfony/lock/tree/v5.4.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3567,20 +3448,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-21T20:36:41+00:00"
|
"time": "2022-10-27T07:55:40+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/options-resolver",
|
"name": "symfony/options-resolver",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.11",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/options-resolver.git",
|
"url": "https://github.com/symfony/options-resolver.git",
|
||||||
"reference": "74e5b6f0db3e8589e6cfd5efb317a1fc2bb52fb6"
|
"reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/74e5b6f0db3e8589e6cfd5efb317a1fc2bb52fb6",
|
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/54f14e36aa73cb8f7261d7686691fd4d75ea2690",
|
||||||
"reference": "74e5b6f0db3e8589e6cfd5efb317a1fc2bb52fb6",
|
"reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3620,7 +3501,7 @@
|
|||||||
"options"
|
"options"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/options-resolver/tree/v5.4.45"
|
"source": "https://github.com/symfony/options-resolver/tree/v5.4.11"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3636,25 +3517,24 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-07-20T13:00:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/password-hasher",
|
"name": "symfony/password-hasher",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.11",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/password-hasher.git",
|
"url": "https://github.com/symfony/password-hasher.git",
|
||||||
"reference": "6c5993b24505f98b90ca4896448012bbec54c7c8"
|
"reference": "b0169ed8f09a4ae39eb119218ea1685079a9b179"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/password-hasher/zipball/6c5993b24505f98b90ca4896448012bbec54c7c8",
|
"url": "https://api.github.com/repos/symfony/password-hasher/zipball/b0169ed8f09a4ae39eb119218ea1685079a9b179",
|
||||||
"reference": "6c5993b24505f98b90ca4896448012bbec54c7c8",
|
"reference": "b0169ed8f09a4ae39eb119218ea1685079a9b179",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2.5",
|
"php": ">=7.2.5",
|
||||||
"symfony/deprecation-contracts": "^2.1|^3",
|
|
||||||
"symfony/polyfill-php80": "^1.15"
|
"symfony/polyfill-php80": "^1.15"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
@ -3694,7 +3574,7 @@
|
|||||||
"password"
|
"password"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/password-hasher/tree/v5.4.45"
|
"source": "https://github.com/symfony/password-hasher/tree/v5.4.11"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3710,33 +3590,36 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-07-20T13:00:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-grapheme",
|
"name": "symfony/polyfill-intl-grapheme",
|
||||||
"version": "v1.31.0",
|
"version": "v1.27.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
|
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
|
||||||
"reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
|
"reference": "511a08c03c1960e08a883f4cffcacd219b758354"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
|
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
|
||||||
"reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
|
"reference": "511a08c03c1960e08a883f4cffcacd219b758354",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2"
|
"php": ">=7.1"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-intl": "For best performance"
|
"ext-intl": "For best performance"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "1.27-dev"
|
||||||
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"url": "https://github.com/symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"name": "symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -3772,7 +3655,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3788,33 +3671,36 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2022-11-03T14:55:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-icu",
|
"name": "symfony/polyfill-intl-icu",
|
||||||
"version": "v1.31.0",
|
"version": "v1.27.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-intl-icu.git",
|
"url": "https://github.com/symfony/polyfill-intl-icu.git",
|
||||||
"reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78"
|
"reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78",
|
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/a3d9148e2c363588e05abbdd4ee4f971f0a5330c",
|
||||||
"reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78",
|
"reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2"
|
"php": ">=7.1"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-intl": "For best performance and support of other locales than \"en\""
|
"ext-intl": "For best performance and support of other locales than \"en\""
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "1.27-dev"
|
||||||
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"url": "https://github.com/symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"name": "symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -3856,7 +3742,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.27.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3872,33 +3758,36 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2022-11-03T14:55:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-normalizer",
|
"name": "symfony/polyfill-intl-normalizer",
|
||||||
"version": "v1.31.0",
|
"version": "v1.27.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||||
"reference": "3833d7255cc303546435cb650316bff708a1c75c"
|
"reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
|
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
|
||||||
"reference": "3833d7255cc303546435cb650316bff708a1c75c",
|
"reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2"
|
"php": ">=7.1"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-intl": "For best performance"
|
"ext-intl": "For best performance"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "1.27-dev"
|
||||||
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"url": "https://github.com/symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"name": "symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -3937,7 +3826,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3953,24 +3842,24 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2022-11-03T14:55:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-mbstring",
|
"name": "symfony/polyfill-mbstring",
|
||||||
"version": "v1.31.0",
|
"version": "v1.27.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||||
"reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
|
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
|
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||||
"reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
|
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2"
|
"php": ">=7.1"
|
||||||
},
|
},
|
||||||
"provide": {
|
"provide": {
|
||||||
"ext-mbstring": "*"
|
"ext-mbstring": "*"
|
||||||
@ -3980,9 +3869,12 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "1.27-dev"
|
||||||
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"url": "https://github.com/symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"name": "symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -4017,7 +3909,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4033,30 +3925,33 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2022-11-03T14:55:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-php73",
|
"name": "symfony/polyfill-php73",
|
||||||
"version": "v1.31.0",
|
"version": "v1.27.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-php73.git",
|
"url": "https://github.com/symfony/polyfill-php73.git",
|
||||||
"reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb"
|
"reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
|
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
|
||||||
"reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
|
"reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2"
|
"php": ">=7.1"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "1.27-dev"
|
||||||
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"url": "https://github.com/symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"name": "symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -4093,7 +3988,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4109,30 +4004,33 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2022-11-03T14:55:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-php80",
|
"name": "symfony/polyfill-php80",
|
||||||
"version": "v1.31.0",
|
"version": "v1.27.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||||
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
|
"reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
|
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
|
||||||
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
|
"reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2"
|
"php": ">=7.1"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "1.27-dev"
|
||||||
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"url": "https://github.com/symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"name": "symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -4173,7 +4071,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4189,30 +4087,33 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2022-11-03T14:55:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-php81",
|
"name": "symfony/polyfill-php81",
|
||||||
"version": "v1.31.0",
|
"version": "v1.27.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-php81.git",
|
"url": "https://github.com/symfony/polyfill-php81.git",
|
||||||
"reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
|
"reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
|
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
|
||||||
"reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
|
"reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2"
|
"php": ">=7.1"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "1.27-dev"
|
||||||
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"url": "https://github.com/symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"name": "symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -4249,7 +4150,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0"
|
"source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4265,20 +4166,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2022-11-03T14:55:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/property-access",
|
"name": "symfony/property-access",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/property-access.git",
|
"url": "https://github.com/symfony/property-access.git",
|
||||||
"reference": "111e7ed617509f1a9139686055d234aad6e388e0"
|
"reference": "0f3e8f40a1d3da90f674b3dd772e4777ccde4273"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/property-access/zipball/111e7ed617509f1a9139686055d234aad6e388e0",
|
"url": "https://api.github.com/repos/symfony/property-access/zipball/0f3e8f40a1d3da90f674b3dd772e4777ccde4273",
|
||||||
"reference": "111e7ed617509f1a9139686055d234aad6e388e0",
|
"reference": "0f3e8f40a1d3da90f674b3dd772e4777ccde4273",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -4326,11 +4227,11 @@
|
|||||||
"injection",
|
"injection",
|
||||||
"object",
|
"object",
|
||||||
"property",
|
"property",
|
||||||
"property-path",
|
"property path",
|
||||||
"reflection"
|
"reflection"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/property-access/tree/v5.4.45"
|
"source": "https://github.com/symfony/property-access/tree/v5.4.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4346,20 +4247,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-10-27T07:55:40+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/property-info",
|
"name": "symfony/property-info",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/property-info.git",
|
"url": "https://github.com/symfony/property-info.git",
|
||||||
"reference": "a0396295ad585f95fccd690bc6a281e5bd303902"
|
"reference": "9dd148c4fbfc231fa4bff00def8dc16a2cd89944"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/property-info/zipball/a0396295ad585f95fccd690bc6a281e5bd303902",
|
"url": "https://api.github.com/repos/symfony/property-info/zipball/9dd148c4fbfc231fa4bff00def8dc16a2cd89944",
|
||||||
"reference": "a0396295ad585f95fccd690bc6a281e5bd303902",
|
"reference": "9dd148c4fbfc231fa4bff00def8dc16a2cd89944",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -4374,9 +4275,9 @@
|
|||||||
"symfony/dependency-injection": "<4.4"
|
"symfony/dependency-injection": "<4.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/annotations": "^1.10.4|^2",
|
"doctrine/annotations": "^1.10.4",
|
||||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
||||||
"phpstan/phpdoc-parser": "^1.0|^2.0",
|
"phpstan/phpdoc-parser": "^1.0",
|
||||||
"symfony/cache": "^4.4|^5.0|^6.0",
|
"symfony/cache": "^4.4|^5.0|^6.0",
|
||||||
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
||||||
"symfony/serializer": "^4.4|^5.0|^6.0"
|
"symfony/serializer": "^4.4|^5.0|^6.0"
|
||||||
@ -4421,7 +4322,7 @@
|
|||||||
"validator"
|
"validator"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/property-info/tree/v5.4.48"
|
"source": "https://github.com/symfony/property-info/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4437,37 +4338,36 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-25T16:14:41+00:00"
|
"time": "2022-11-19T17:41:50+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/psr-http-message-bridge",
|
"name": "symfony/psr-http-message-bridge",
|
||||||
"version": "v2.3.1",
|
"version": "v2.1.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/psr-http-message-bridge.git",
|
"url": "https://github.com/symfony/psr-http-message-bridge.git",
|
||||||
"reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e"
|
"reference": "a125b93ef378c492e274f217874906fb9babdebb"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e",
|
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/a125b93ef378c492e274f217874906fb9babdebb",
|
||||||
"reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e",
|
"reference": "a125b93ef378c492e274f217874906fb9babdebb",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2.5",
|
"php": ">=7.1",
|
||||||
"psr/http-message": "^1.0 || ^2.0",
|
"psr/http-message": "^1.0",
|
||||||
"symfony/deprecation-contracts": "^2.5 || ^3.0",
|
"symfony/http-foundation": "^4.4 || ^5.0 || ^6.0"
|
||||||
"symfony/http-foundation": "^5.4 || ^6.0"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"nyholm/psr7": "^1.1",
|
"nyholm/psr7": "^1.1",
|
||||||
"psr/log": "^1.1 || ^2 || ^3",
|
"psr/log": "^1.1 || ^2 || ^3",
|
||||||
"symfony/browser-kit": "^5.4 || ^6.0",
|
"symfony/browser-kit": "^4.4 || ^5.0 || ^6.0",
|
||||||
"symfony/config": "^5.4 || ^6.0",
|
"symfony/config": "^4.4 || ^5.0 || ^6.0",
|
||||||
"symfony/event-dispatcher": "^5.4 || ^6.0",
|
"symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0",
|
||||||
"symfony/framework-bundle": "^5.4 || ^6.0",
|
"symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0",
|
||||||
"symfony/http-kernel": "^5.4 || ^6.0",
|
"symfony/http-kernel": "^4.4 || ^5.0 || ^6.0",
|
||||||
"symfony/phpunit-bridge": "^6.2"
|
"symfony/phpunit-bridge": "^5.4@dev || ^6.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
|
"nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
|
||||||
@ -4475,7 +4375,7 @@
|
|||||||
"type": "symfony-bridge",
|
"type": "symfony-bridge",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "2.3-dev"
|
"dev-main": "2.1-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -4510,7 +4410,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/symfony/psr-http-message-bridge/issues",
|
"issues": "https://github.com/symfony/psr-http-message-bridge/issues",
|
||||||
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1"
|
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.4"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4526,20 +4426,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-07-26T11:53:26+00:00"
|
"time": "2022-11-28T22:46:34+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/rate-limiter",
|
"name": "symfony/rate-limiter",
|
||||||
"version": "v5.4.47",
|
"version": "v5.4.11",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/rate-limiter.git",
|
"url": "https://github.com/symfony/rate-limiter.git",
|
||||||
"reference": "c902bf796ca6c9656c3cc8185b53afb9acbb7c72"
|
"reference": "1a3a43eeb498290100e4a1559f4a48be14900bc2"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/rate-limiter/zipball/c902bf796ca6c9656c3cc8185b53afb9acbb7c72",
|
"url": "https://api.github.com/repos/symfony/rate-limiter/zipball/1a3a43eeb498290100e4a1559f4a48be14900bc2",
|
||||||
"reference": "c902bf796ca6c9656c3cc8185b53afb9acbb7c72",
|
"reference": "1a3a43eeb498290100e4a1559f4a48be14900bc2",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -4580,7 +4480,7 @@
|
|||||||
"rate-limiter"
|
"rate-limiter"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/rate-limiter/tree/v5.4.47"
|
"source": "https://github.com/symfony/rate-limiter/tree/v5.4.11"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4596,20 +4496,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-07T11:51:21+00:00"
|
"time": "2022-07-20T13:00:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/routing",
|
"name": "symfony/routing",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/routing.git",
|
"url": "https://github.com/symfony/routing.git",
|
||||||
"reference": "dd08c19879a9b37ff14fd30dcbdf99a4cf045db1"
|
"reference": "5c9b129efe9abce9470e384bf65d8a7e262eee69"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/routing/zipball/dd08c19879a9b37ff14fd30dcbdf99a4cf045db1",
|
"url": "https://api.github.com/repos/symfony/routing/zipball/5c9b129efe9abce9470e384bf65d8a7e262eee69",
|
||||||
"reference": "dd08c19879a9b37ff14fd30dcbdf99a4cf045db1",
|
"reference": "5c9b129efe9abce9470e384bf65d8a7e262eee69",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -4624,7 +4524,7 @@
|
|||||||
"symfony/yaml": "<4.4"
|
"symfony/yaml": "<4.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/annotations": "^1.12|^2",
|
"doctrine/annotations": "^1.12",
|
||||||
"psr/log": "^1|^2|^3",
|
"psr/log": "^1|^2|^3",
|
||||||
"symfony/config": "^5.3|^6.0",
|
"symfony/config": "^5.3|^6.0",
|
||||||
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
||||||
@ -4670,7 +4570,7 @@
|
|||||||
"url"
|
"url"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/routing/tree/v5.4.48"
|
"source": "https://github.com/symfony/routing/tree/v5.4.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4686,20 +4586,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-12T18:20:21+00:00"
|
"time": "2022-10-13T14:10:41+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/runtime",
|
"name": "symfony/runtime",
|
||||||
"version": "v5.4.46",
|
"version": "v5.4.11",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/runtime.git",
|
"url": "https://github.com/symfony/runtime.git",
|
||||||
"reference": "242b4d773c004fa258e1b412f3f49fc2ac78353a"
|
"reference": "c32ac27a8abebe4e6375cd12a4f78ba78e9c742f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/runtime/zipball/242b4d773c004fa258e1b412f3f49fc2ac78353a",
|
"url": "https://api.github.com/repos/symfony/runtime/zipball/c32ac27a8abebe4e6375cd12a4f78ba78e9c742f",
|
||||||
"reference": "242b4d773c004fa258e1b412f3f49fc2ac78353a",
|
"reference": "c32ac27a8abebe4e6375cd12a4f78ba78e9c742f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -4712,7 +4612,7 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"composer/composer": "^1.0.2|^2.0",
|
"composer/composer": "^1.0.2|^2.0",
|
||||||
"symfony/console": "^4.4.30|^5.4.9|^6.0.9",
|
"symfony/console": "^4.4.30|^5.3.7|^6.0",
|
||||||
"symfony/dotenv": "^5.1|^6.0",
|
"symfony/dotenv": "^5.1|^6.0",
|
||||||
"symfony/http-foundation": "^4.4.30|^5.3.7|^6.0",
|
"symfony/http-foundation": "^4.4.30|^5.3.7|^6.0",
|
||||||
"symfony/http-kernel": "^4.4.30|^5.3.7|^6.0"
|
"symfony/http-kernel": "^4.4.30|^5.3.7|^6.0"
|
||||||
@ -4746,11 +4646,8 @@
|
|||||||
],
|
],
|
||||||
"description": "Enables decoupling PHP applications from global state",
|
"description": "Enables decoupling PHP applications from global state",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"keywords": [
|
|
||||||
"runtime"
|
|
||||||
],
|
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/runtime/tree/v5.4.46"
|
"source": "https://github.com/symfony/runtime/tree/v5.4.11"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4766,27 +4663,27 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-06T08:58:41+00:00"
|
"time": "2022-06-27T16:58:25+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/security-bundle",
|
"name": "symfony/security-bundle",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.11",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/security-bundle.git",
|
"url": "https://github.com/symfony/security-bundle.git",
|
||||||
"reference": "d6081d1b9118f944df90bb77444a8617eba01542"
|
"reference": "86b49feb056b840f2b79a03fcfa2d378d6d34234"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/security-bundle/zipball/d6081d1b9118f944df90bb77444a8617eba01542",
|
"url": "https://api.github.com/repos/symfony/security-bundle/zipball/86b49feb056b840f2b79a03fcfa2d378d6d34234",
|
||||||
"reference": "d6081d1b9118f944df90bb77444a8617eba01542",
|
"reference": "86b49feb056b840f2b79a03fcfa2d378d6d34234",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-xml": "*",
|
"ext-xml": "*",
|
||||||
"php": ">=7.2.5",
|
"php": ">=7.2.5",
|
||||||
"symfony/config": "^4.4|^5.0|^6.0",
|
"symfony/config": "^4.4|^5.0|^6.0",
|
||||||
"symfony/dependency-injection": "^5.4.43|^6.4.11",
|
"symfony/dependency-injection": "^5.3|^6.0",
|
||||||
"symfony/deprecation-contracts": "^2.1|^3",
|
"symfony/deprecation-contracts": "^2.1|^3",
|
||||||
"symfony/event-dispatcher": "^5.1|^6.0",
|
"symfony/event-dispatcher": "^5.1|^6.0",
|
||||||
"symfony/http-foundation": "^5.3|^6.0",
|
"symfony/http-foundation": "^5.3|^6.0",
|
||||||
@ -4796,8 +4693,7 @@
|
|||||||
"symfony/security-core": "^5.4|^6.0",
|
"symfony/security-core": "^5.4|^6.0",
|
||||||
"symfony/security-csrf": "^4.4|^5.0|^6.0",
|
"symfony/security-csrf": "^4.4|^5.0|^6.0",
|
||||||
"symfony/security-guard": "^5.3",
|
"symfony/security-guard": "^5.3",
|
||||||
"symfony/security-http": "^5.4.30|^6.3.6",
|
"symfony/security-http": "^5.4|^6.0"
|
||||||
"symfony/service-contracts": "^1.10|^2|^3"
|
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"symfony/browser-kit": "<4.4",
|
"symfony/browser-kit": "<4.4",
|
||||||
@ -4807,7 +4703,7 @@
|
|||||||
"symfony/twig-bundle": "<4.4"
|
"symfony/twig-bundle": "<4.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/annotations": "^1.10.4|^2",
|
"doctrine/annotations": "^1.10.4",
|
||||||
"symfony/asset": "^4.4|^5.0|^6.0",
|
"symfony/asset": "^4.4|^5.0|^6.0",
|
||||||
"symfony/browser-kit": "^4.4|^5.0|^6.0",
|
"symfony/browser-kit": "^4.4|^5.0|^6.0",
|
||||||
"symfony/console": "^4.4|^5.0|^6.0",
|
"symfony/console": "^4.4|^5.0|^6.0",
|
||||||
@ -4853,7 +4749,7 @@
|
|||||||
"description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
|
"description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/security-bundle/tree/v5.4.45"
|
"source": "https://github.com/symfony/security-bundle/tree/v5.4.11"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4869,20 +4765,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-07-20T13:00:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/security-core",
|
"name": "symfony/security-core",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/security-core.git",
|
"url": "https://github.com/symfony/security-core.git",
|
||||||
"reference": "cca947b1a74bdbc21c4d6288a4abb938d9a7eaba"
|
"reference": "4ef922cd626a43b570522cb1616e3d678664c9a0"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/security-core/zipball/cca947b1a74bdbc21c4d6288a4abb938d9a7eaba",
|
"url": "https://api.github.com/repos/symfony/security-core/zipball/4ef922cd626a43b570522cb1616e3d678664c9a0",
|
||||||
"reference": "cca947b1a74bdbc21c4d6288a4abb938d9a7eaba",
|
"reference": "4ef922cd626a43b570522cb1616e3d678664c9a0",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -4898,7 +4794,6 @@
|
|||||||
"symfony/http-foundation": "<5.3",
|
"symfony/http-foundation": "<5.3",
|
||||||
"symfony/ldap": "<4.4",
|
"symfony/ldap": "<4.4",
|
||||||
"symfony/security-guard": "<4.4",
|
"symfony/security-guard": "<4.4",
|
||||||
"symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
|
|
||||||
"symfony/validator": "<5.2"
|
"symfony/validator": "<5.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
@ -4910,7 +4805,7 @@
|
|||||||
"symfony/expression-language": "^4.4|^5.0|^6.0",
|
"symfony/expression-language": "^4.4|^5.0|^6.0",
|
||||||
"symfony/http-foundation": "^5.3|^6.0",
|
"symfony/http-foundation": "^5.3|^6.0",
|
||||||
"symfony/ldap": "^4.4|^5.0|^6.0",
|
"symfony/ldap": "^4.4|^5.0|^6.0",
|
||||||
"symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
|
"symfony/translation": "^4.4|^5.0|^6.0",
|
||||||
"symfony/validator": "^5.2|^6.0"
|
"symfony/validator": "^5.2|^6.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
@ -4947,7 +4842,7 @@
|
|||||||
"description": "Symfony Security Component - Core Library",
|
"description": "Symfony Security Component - Core Library",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/security-core/tree/v5.4.48"
|
"source": "https://github.com/symfony/security-core/tree/v5.4.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -4963,25 +4858,24 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-27T08:58:20+00:00"
|
"time": "2022-10-23T10:30:41+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/security-csrf",
|
"name": "symfony/security-csrf",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.11",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/security-csrf.git",
|
"url": "https://github.com/symfony/security-csrf.git",
|
||||||
"reference": "28dcafc3220f12264bb2aabe2389a2163458c1f4"
|
"reference": "b97ab244b6dda80abb84a4a236d682871695db4a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/security-csrf/zipball/28dcafc3220f12264bb2aabe2389a2163458c1f4",
|
"url": "https://api.github.com/repos/symfony/security-csrf/zipball/b97ab244b6dda80abb84a4a236d682871695db4a",
|
||||||
"reference": "28dcafc3220f12264bb2aabe2389a2163458c1f4",
|
"reference": "b97ab244b6dda80abb84a4a236d682871695db4a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2.5",
|
"php": ">=7.2.5",
|
||||||
"symfony/deprecation-contracts": "^2.1|^3",
|
|
||||||
"symfony/polyfill-php80": "^1.16",
|
"symfony/polyfill-php80": "^1.16",
|
||||||
"symfony/security-core": "^4.4|^5.0|^6.0"
|
"symfony/security-core": "^4.4|^5.0|^6.0"
|
||||||
},
|
},
|
||||||
@ -5020,7 +4914,7 @@
|
|||||||
"description": "Symfony Security Component - CSRF Library",
|
"description": "Symfony Security Component - CSRF Library",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/security-csrf/tree/v5.4.45"
|
"source": "https://github.com/symfony/security-csrf/tree/v5.4.11"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5036,25 +4930,24 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-07-20T13:00:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/security-guard",
|
"name": "symfony/security-guard",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.13",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/security-guard.git",
|
"url": "https://github.com/symfony/security-guard.git",
|
||||||
"reference": "f3da3dbec38aaedaf287ffeb4e3a90994af37faa"
|
"reference": "83f647fcdc17aa14908f0e02a302d3d9d0f63fbc"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/security-guard/zipball/f3da3dbec38aaedaf287ffeb4e3a90994af37faa",
|
"url": "https://api.github.com/repos/symfony/security-guard/zipball/83f647fcdc17aa14908f0e02a302d3d9d0f63fbc",
|
||||||
"reference": "f3da3dbec38aaedaf287ffeb4e3a90994af37faa",
|
"reference": "83f647fcdc17aa14908f0e02a302d3d9d0f63fbc",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2.5",
|
"php": ">=7.2.5",
|
||||||
"symfony/deprecation-contracts": "^2.1|^3",
|
|
||||||
"symfony/polyfill-php80": "^1.15",
|
"symfony/polyfill-php80": "^1.15",
|
||||||
"symfony/security-core": "^5.0",
|
"symfony/security-core": "^5.0",
|
||||||
"symfony/security-http": "^5.3"
|
"symfony/security-http": "^5.3"
|
||||||
@ -5088,7 +4981,7 @@
|
|||||||
"description": "Symfony Security Component - Guard",
|
"description": "Symfony Security Component - Guard",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/security-guard/tree/v5.4.45"
|
"source": "https://github.com/symfony/security-guard/tree/v5.4.13"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5104,20 +4997,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-09-28T13:19:49+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/security-http",
|
"name": "symfony/security-http",
|
||||||
"version": "v5.4.47",
|
"version": "v5.4.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/security-http.git",
|
"url": "https://github.com/symfony/security-http.git",
|
||||||
"reference": "cde02b002e0447075430e6a84482e38f2fd9268d"
|
"reference": "142d48153a453dbd49e880eef6bc77e4ba162dff"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/security-http/zipball/cde02b002e0447075430e6a84482e38f2fd9268d",
|
"url": "https://api.github.com/repos/symfony/security-http/zipball/142d48153a453dbd49e880eef6bc77e4ba162dff",
|
||||||
"reference": "cde02b002e0447075430e6a84482e38f2fd9268d",
|
"reference": "142d48153a453dbd49e880eef6bc77e4ba162dff",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -5128,8 +5021,7 @@
|
|||||||
"symfony/polyfill-mbstring": "~1.0",
|
"symfony/polyfill-mbstring": "~1.0",
|
||||||
"symfony/polyfill-php80": "^1.16",
|
"symfony/polyfill-php80": "^1.16",
|
||||||
"symfony/property-access": "^4.4|^5.0|^6.0",
|
"symfony/property-access": "^4.4|^5.0|^6.0",
|
||||||
"symfony/security-core": "^5.4.19|~6.0.19|~6.1.11|^6.2.5",
|
"symfony/security-core": "^5.4|^6.0"
|
||||||
"symfony/service-contracts": "^1.10|^2|^3"
|
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"symfony/event-dispatcher": "<4.3",
|
"symfony/event-dispatcher": "<4.3",
|
||||||
@ -5174,7 +5066,7 @@
|
|||||||
"description": "Symfony Security Component - HTTP Integration",
|
"description": "Symfony Security Component - HTTP Integration",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/security-http/tree/v5.4.47"
|
"source": "https://github.com/symfony/security-http/tree/v5.4.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5190,20 +5082,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-07T14:12:41+00:00"
|
"time": "2022-10-23T10:30:41+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/service-contracts",
|
"name": "symfony/service-contracts",
|
||||||
"version": "v2.5.4",
|
"version": "v2.5.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/service-contracts.git",
|
"url": "https://github.com/symfony/service-contracts.git",
|
||||||
"reference": "f37b419f7aea2e9abf10abd261832cace12e3300"
|
"reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/f37b419f7aea2e9abf10abd261832cace12e3300",
|
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
|
||||||
"reference": "f37b419f7aea2e9abf10abd261832cace12e3300",
|
"reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -5219,12 +5111,12 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"thanks": {
|
|
||||||
"url": "https://github.com/symfony/contracts",
|
|
||||||
"name": "symfony/contracts"
|
|
||||||
},
|
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "2.5-dev"
|
"dev-main": "2.5-dev"
|
||||||
|
},
|
||||||
|
"thanks": {
|
||||||
|
"name": "symfony/contracts",
|
||||||
|
"url": "https://github.com/symfony/contracts"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -5257,7 +5149,7 @@
|
|||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/service-contracts/tree/v2.5.4"
|
"source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5273,20 +5165,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-05-30T19:17:29+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/string",
|
"name": "symfony/string",
|
||||||
"version": "v5.4.47",
|
"version": "v5.4.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/string.git",
|
"url": "https://github.com/symfony/string.git",
|
||||||
"reference": "136ca7d72f72b599f2631aca474a4f8e26719799"
|
"reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/string/zipball/136ca7d72f72b599f2631aca474a4f8e26719799",
|
"url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed",
|
||||||
"reference": "136ca7d72f72b599f2631aca474a4f8e26719799",
|
"reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -5343,7 +5235,7 @@
|
|||||||
"utf8"
|
"utf8"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/string/tree/v5.4.47"
|
"source": "https://github.com/symfony/string/tree/v5.4.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5359,20 +5251,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-10T20:33:58+00:00"
|
"time": "2022-10-05T15:16:54+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation",
|
"name": "symfony/translation",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.14",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation.git",
|
"url": "https://github.com/symfony/translation.git",
|
||||||
"reference": "98f26acc99341ca4bab345fb14d7b1d7cb825bed"
|
"reference": "f0ed07675863aa6e3939df8b1bc879450b585cab"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation/zipball/98f26acc99341ca4bab345fb14d7b1d7cb825bed",
|
"url": "https://api.github.com/repos/symfony/translation/zipball/f0ed07675863aa6e3939df8b1bc879450b585cab",
|
||||||
"reference": "98f26acc99341ca4bab345fb14d7b1d7cb825bed",
|
"reference": "f0ed07675863aa6e3939df8b1bc879450b585cab",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -5440,7 +5332,7 @@
|
|||||||
"description": "Provides tools to internationalize your application",
|
"description": "Provides tools to internationalize your application",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/translation/tree/v5.4.45"
|
"source": "https://github.com/symfony/translation/tree/v5.4.14"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5456,20 +5348,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-10-07T08:01:20+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation-contracts",
|
"name": "symfony/translation-contracts",
|
||||||
"version": "v2.5.4",
|
"version": "v2.5.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation-contracts.git",
|
"url": "https://github.com/symfony/translation-contracts.git",
|
||||||
"reference": "450d4172653f38818657022252f9d81be89ee9a8"
|
"reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/450d4172653f38818657022252f9d81be89ee9a8",
|
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
|
||||||
"reference": "450d4172653f38818657022252f9d81be89ee9a8",
|
"reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -5480,12 +5372,12 @@
|
|||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"thanks": {
|
|
||||||
"url": "https://github.com/symfony/contracts",
|
|
||||||
"name": "symfony/contracts"
|
|
||||||
},
|
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "2.5-dev"
|
"dev-main": "2.5-dev"
|
||||||
|
},
|
||||||
|
"thanks": {
|
||||||
|
"name": "symfony/contracts",
|
||||||
|
"url": "https://github.com/symfony/contracts"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -5518,7 +5410,7 @@
|
|||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/translation-contracts/tree/v2.5.4"
|
"source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5534,20 +5426,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-06-27T16:58:25+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/twig-bridge",
|
"name": "symfony/twig-bridge",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/twig-bridge.git",
|
"url": "https://github.com/symfony/twig-bridge.git",
|
||||||
"reference": "853a0c9aa40123a9feeb335c865b659d94e49e5d"
|
"reference": "227d5030714c024bf4bc760b5762224070d4288c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/853a0c9aa40123a9feeb335c865b659d94e49e5d",
|
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/227d5030714c024bf4bc760b5762224070d4288c",
|
||||||
"reference": "853a0c9aa40123a9feeb335c865b659d94e49e5d",
|
"reference": "227d5030714c024bf4bc760b5762224070d4288c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -5560,22 +5452,22 @@
|
|||||||
"phpdocumentor/reflection-docblock": "<3.2.2",
|
"phpdocumentor/reflection-docblock": "<3.2.2",
|
||||||
"phpdocumentor/type-resolver": "<1.4.0",
|
"phpdocumentor/type-resolver": "<1.4.0",
|
||||||
"symfony/console": "<5.3",
|
"symfony/console": "<5.3",
|
||||||
"symfony/form": "<5.4.21|>=6,<6.2.7",
|
"symfony/form": "<5.3",
|
||||||
"symfony/http-foundation": "<5.3",
|
"symfony/http-foundation": "<5.3",
|
||||||
"symfony/http-kernel": "<4.4",
|
"symfony/http-kernel": "<4.4",
|
||||||
"symfony/translation": "<5.2",
|
"symfony/translation": "<5.2",
|
||||||
"symfony/workflow": "<5.2"
|
"symfony/workflow": "<5.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/annotations": "^1.12|^2",
|
"doctrine/annotations": "^1.12",
|
||||||
"egulias/email-validator": "^2.1.10|^3|^4",
|
"egulias/email-validator": "^2.1.10|^3",
|
||||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
||||||
"symfony/asset": "^4.4|^5.0|^6.0",
|
"symfony/asset": "^4.4|^5.0|^6.0",
|
||||||
"symfony/console": "^5.3|^6.0",
|
"symfony/console": "^5.3|^6.0",
|
||||||
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
||||||
"symfony/expression-language": "^4.4|^5.0|^6.0",
|
"symfony/expression-language": "^4.4|^5.0|^6.0",
|
||||||
"symfony/finder": "^4.4|^5.0|^6.0",
|
"symfony/finder": "^4.4|^5.0|^6.0",
|
||||||
"symfony/form": "^5.4.21|^6.2.7",
|
"symfony/form": "^5.3|^6.0",
|
||||||
"symfony/http-foundation": "^5.3|^6.0",
|
"symfony/http-foundation": "^5.3|^6.0",
|
||||||
"symfony/http-kernel": "^4.4|^5.0|^6.0",
|
"symfony/http-kernel": "^4.4|^5.0|^6.0",
|
||||||
"symfony/intl": "^4.4|^5.0|^6.0",
|
"symfony/intl": "^4.4|^5.0|^6.0",
|
||||||
@ -5587,7 +5479,7 @@
|
|||||||
"symfony/security-core": "^4.4|^5.0|^6.0",
|
"symfony/security-core": "^4.4|^5.0|^6.0",
|
||||||
"symfony/security-csrf": "^4.4|^5.0|^6.0",
|
"symfony/security-csrf": "^4.4|^5.0|^6.0",
|
||||||
"symfony/security-http": "^4.4|^5.0|^6.0",
|
"symfony/security-http": "^4.4|^5.0|^6.0",
|
||||||
"symfony/serializer": "^5.4.35|~6.3.12|^6.4.3",
|
"symfony/serializer": "^5.2|^6.0",
|
||||||
"symfony/stopwatch": "^4.4|^5.0|^6.0",
|
"symfony/stopwatch": "^4.4|^5.0|^6.0",
|
||||||
"symfony/translation": "^5.2|^6.0",
|
"symfony/translation": "^5.2|^6.0",
|
||||||
"symfony/web-link": "^4.4|^5.0|^6.0",
|
"symfony/web-link": "^4.4|^5.0|^6.0",
|
||||||
@ -5639,7 +5531,7 @@
|
|||||||
"description": "Provides integration for Twig with various Symfony components",
|
"description": "Provides integration for Twig with various Symfony components",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/twig-bridge/tree/v5.4.48"
|
"source": "https://github.com/symfony/twig-bridge/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5655,26 +5547,25 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-22T08:19:51+00:00"
|
"time": "2022-11-04T07:37:26+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/twig-bundle",
|
"name": "symfony/twig-bundle",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/twig-bundle.git",
|
"url": "https://github.com/symfony/twig-bundle.git",
|
||||||
"reference": "e1ca56e1dc7791eb19f0aff71d3d94e6a91cc8f9"
|
"reference": "c992b4474c3a31f3c40a1ca593d213833f91b818"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/e1ca56e1dc7791eb19f0aff71d3d94e6a91cc8f9",
|
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c992b4474c3a31f3c40a1ca593d213833f91b818",
|
||||||
"reference": "e1ca56e1dc7791eb19f0aff71d3d94e6a91cc8f9",
|
"reference": "c992b4474c3a31f3c40a1ca593d213833f91b818",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2.5",
|
"php": ">=7.2.5",
|
||||||
"symfony/config": "^4.4|^5.0|^6.0",
|
"symfony/config": "^4.4|^5.0|^6.0",
|
||||||
"symfony/deprecation-contracts": "^2.1|^3",
|
|
||||||
"symfony/http-foundation": "^4.4|^5.0|^6.0",
|
"symfony/http-foundation": "^4.4|^5.0|^6.0",
|
||||||
"symfony/http-kernel": "^5.0|^6.0",
|
"symfony/http-kernel": "^5.0|^6.0",
|
||||||
"symfony/polyfill-ctype": "~1.8",
|
"symfony/polyfill-ctype": "~1.8",
|
||||||
@ -5689,7 +5580,7 @@
|
|||||||
"symfony/translation": "<5.0"
|
"symfony/translation": "<5.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/annotations": "^1.10.4|^2",
|
"doctrine/annotations": "^1.10.4",
|
||||||
"doctrine/cache": "^1.0|^2.0",
|
"doctrine/cache": "^1.0|^2.0",
|
||||||
"symfony/asset": "^4.4|^5.0|^6.0",
|
"symfony/asset": "^4.4|^5.0|^6.0",
|
||||||
"symfony/dependency-injection": "^5.3|^6.0",
|
"symfony/dependency-injection": "^5.3|^6.0",
|
||||||
@ -5729,7 +5620,7 @@
|
|||||||
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
|
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/twig-bundle/tree/v5.4.45"
|
"source": "https://github.com/symfony/twig-bundle/tree/v5.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5745,20 +5636,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-04-03T13:03:10+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/validator",
|
"name": "symfony/validator",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/validator.git",
|
"url": "https://github.com/symfony/validator.git",
|
||||||
"reference": "883667679d93d6c30f1b7490d669801712d3be2f"
|
"reference": "0fb0c50f18f4517a8ea59d1cc87bff231402a7e3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/validator/zipball/883667679d93d6c30f1b7490d669801712d3be2f",
|
"url": "https://api.github.com/repos/symfony/validator/zipball/0fb0c50f18f4517a8ea59d1cc87bff231402a7e3",
|
||||||
"reference": "883667679d93d6c30f1b7490d669801712d3be2f",
|
"reference": "0fb0c50f18f4517a8ea59d1cc87bff231402a7e3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -5775,18 +5666,19 @@
|
|||||||
"doctrine/annotations": "<1.13",
|
"doctrine/annotations": "<1.13",
|
||||||
"doctrine/cache": "<1.11",
|
"doctrine/cache": "<1.11",
|
||||||
"doctrine/lexer": "<1.1",
|
"doctrine/lexer": "<1.1",
|
||||||
|
"phpunit/phpunit": "<5.4.3",
|
||||||
"symfony/dependency-injection": "<4.4",
|
"symfony/dependency-injection": "<4.4",
|
||||||
"symfony/expression-language": "<5.1",
|
"symfony/expression-language": "<5.1",
|
||||||
"symfony/http-kernel": "<4.4",
|
"symfony/http-kernel": "<4.4",
|
||||||
"symfony/intl": "<4.4",
|
"symfony/intl": "<4.4",
|
||||||
"symfony/property-info": "<5.3",
|
"symfony/property-info": "<5.3",
|
||||||
"symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
|
"symfony/translation": "<4.4",
|
||||||
"symfony/yaml": "<4.4"
|
"symfony/yaml": "<4.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/annotations": "^1.13|^2",
|
"doctrine/annotations": "^1.13",
|
||||||
"doctrine/cache": "^1.11|^2.0",
|
"doctrine/cache": "^1.11|^2.0",
|
||||||
"egulias/email-validator": "^2.1.10|^3|^4",
|
"egulias/email-validator": "^2.1.10|^3",
|
||||||
"symfony/cache": "^4.4|^5.0|^6.0",
|
"symfony/cache": "^4.4|^5.0|^6.0",
|
||||||
"symfony/config": "^4.4|^5.0|^6.0",
|
"symfony/config": "^4.4|^5.0|^6.0",
|
||||||
"symfony/console": "^4.4|^5.0|^6.0",
|
"symfony/console": "^4.4|^5.0|^6.0",
|
||||||
@ -5798,9 +5690,9 @@
|
|||||||
"symfony/http-kernel": "^4.4|^5.0|^6.0",
|
"symfony/http-kernel": "^4.4|^5.0|^6.0",
|
||||||
"symfony/intl": "^4.4|^5.0|^6.0",
|
"symfony/intl": "^4.4|^5.0|^6.0",
|
||||||
"symfony/mime": "^4.4|^5.0|^6.0",
|
"symfony/mime": "^4.4|^5.0|^6.0",
|
||||||
"symfony/property-access": "^5.4|^6.0",
|
"symfony/property-access": "^4.4|^5.0|^6.0",
|
||||||
"symfony/property-info": "^5.3|^6.0",
|
"symfony/property-info": "^5.3|^6.0",
|
||||||
"symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
|
"symfony/translation": "^4.4|^5.0|^6.0",
|
||||||
"symfony/yaml": "^4.4|^5.0|^6.0"
|
"symfony/yaml": "^4.4|^5.0|^6.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
@ -5821,8 +5713,7 @@
|
|||||||
"Symfony\\Component\\Validator\\": ""
|
"Symfony\\Component\\Validator\\": ""
|
||||||
},
|
},
|
||||||
"exclude-from-classmap": [
|
"exclude-from-classmap": [
|
||||||
"/Tests/",
|
"/Tests/"
|
||||||
"/Resources/bin/"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
@ -5842,7 +5733,7 @@
|
|||||||
"description": "Provides tools to validate values",
|
"description": "Provides tools to validate values",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/validator/tree/v5.4.48"
|
"source": "https://github.com/symfony/validator/tree/v5.4.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5858,20 +5749,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-27T08:58:20+00:00"
|
"time": "2022-10-27T08:04:35+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/var-dumper",
|
"name": "symfony/var-dumper",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.14",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/var-dumper.git",
|
"url": "https://github.com/symfony/var-dumper.git",
|
||||||
"reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8"
|
"reference": "6894d06145fefebd9a4c7272baa026a1c394a430"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/42f18f170aa86d612c3559cfb3bd11a375df32c8",
|
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/6894d06145fefebd9a4c7272baa026a1c394a430",
|
||||||
"reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8",
|
"reference": "6894d06145fefebd9a4c7272baa026a1c394a430",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -5880,12 +5771,12 @@
|
|||||||
"symfony/polyfill-php80": "^1.16"
|
"symfony/polyfill-php80": "^1.16"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
|
"phpunit/phpunit": "<5.4.3",
|
||||||
"symfony/console": "<4.4"
|
"symfony/console": "<4.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"ext-iconv": "*",
|
"ext-iconv": "*",
|
||||||
"symfony/console": "^4.4|^5.0|^6.0",
|
"symfony/console": "^4.4|^5.0|^6.0",
|
||||||
"symfony/http-kernel": "^4.4|^5.0|^6.0",
|
|
||||||
"symfony/process": "^4.4|^5.0|^6.0",
|
"symfony/process": "^4.4|^5.0|^6.0",
|
||||||
"symfony/uid": "^5.1|^6.0",
|
"symfony/uid": "^5.1|^6.0",
|
||||||
"twig/twig": "^2.13|^3.0.4"
|
"twig/twig": "^2.13|^3.0.4"
|
||||||
@ -5931,7 +5822,7 @@
|
|||||||
"dump"
|
"dump"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/var-dumper/tree/v5.4.48"
|
"source": "https://github.com/symfony/var-dumper/tree/v5.4.14"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -5947,30 +5838,28 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-08T15:21:10+00:00"
|
"time": "2022-10-07T08:01:20+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/var-exporter",
|
"name": "symfony/var-exporter",
|
||||||
"version": "v6.4.20",
|
"version": "v5.4.10",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/var-exporter.git",
|
"url": "https://github.com/symfony/var-exporter.git",
|
||||||
"reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2"
|
"reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/998df255e9e6a15a36ae35e9c6cd818c17cf92a2",
|
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/8fc03ee75eeece3d9be1ef47d26d79bea1afb340",
|
||||||
"reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2",
|
"reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1",
|
"php": ">=7.2.5",
|
||||||
"symfony/deprecation-contracts": "^2.5|^3"
|
"symfony/polyfill-php80": "^1.16"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"symfony/property-access": "^6.4|^7.0",
|
"symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
|
||||||
"symfony/serializer": "^6.4|^7.0",
|
|
||||||
"symfony/var-dumper": "^5.4|^6.0|^7.0"
|
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -6003,12 +5892,10 @@
|
|||||||
"export",
|
"export",
|
||||||
"hydrate",
|
"hydrate",
|
||||||
"instantiate",
|
"instantiate",
|
||||||
"lazy-loading",
|
|
||||||
"proxy",
|
|
||||||
"serialize"
|
"serialize"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/var-exporter/tree/v6.4.20"
|
"source": "https://github.com/symfony/var-exporter/tree/v5.4.10"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -6024,26 +5911,26 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-03-13T09:55:08+00:00"
|
"time": "2022-05-27T12:56:18+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/web-profiler-bundle",
|
"name": "symfony/web-profiler-bundle",
|
||||||
"version": "v5.4.48",
|
"version": "v5.4.14",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/web-profiler-bundle.git",
|
"url": "https://github.com/symfony/web-profiler-bundle.git",
|
||||||
"reference": "4afb0399456b966be92410d2bbd6146cc3ce2174"
|
"reference": "e41ebd5411908bc8afdc848ccf68918ecb243c02"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/4afb0399456b966be92410d2bbd6146cc3ce2174",
|
"url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/e41ebd5411908bc8afdc848ccf68918ecb243c02",
|
||||||
"reference": "4afb0399456b966be92410d2bbd6146cc3ce2174",
|
"reference": "e41ebd5411908bc8afdc848ccf68918ecb243c02",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2.5",
|
"php": ">=7.2.5",
|
||||||
"symfony/config": "^4.4|^5.0|^6.0",
|
"symfony/config": "^4.4|^5.0|^6.0",
|
||||||
"symfony/framework-bundle": "^5.3|^6.0,<6.4",
|
"symfony/framework-bundle": "^5.3|^6.0",
|
||||||
"symfony/http-kernel": "^5.3|^6.0",
|
"symfony/http-kernel": "^5.3|^6.0",
|
||||||
"symfony/polyfill-php80": "^1.16",
|
"symfony/polyfill-php80": "^1.16",
|
||||||
"symfony/routing": "^4.4|^5.0|^6.0",
|
"symfony/routing": "^4.4|^5.0|^6.0",
|
||||||
@ -6088,7 +5975,7 @@
|
|||||||
"description": "Provides a development tool that gives detailed information about the execution of any request",
|
"description": "Provides a development tool that gives detailed information about the execution of any request",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.48"
|
"source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.14"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -6104,20 +5991,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-19T09:26:40+00:00"
|
"time": "2022-10-01T21:59:28+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/webpack-encore-bundle",
|
"name": "symfony/webpack-encore-bundle",
|
||||||
"version": "v1.17.2",
|
"version": "v1.16.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/webpack-encore-bundle.git",
|
"url": "https://github.com/symfony/webpack-encore-bundle.git",
|
||||||
"reference": "471ebbc03072dad6e31840dc317bc634a32785f5"
|
"reference": "bb399930c0299866258b616a74a27b50b94c5d45"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/471ebbc03072dad6e31840dc317bc634a32785f5",
|
"url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/bb399930c0299866258b616a74a27b50b94c5d45",
|
||||||
"reference": "471ebbc03072dad6e31840dc317bc634a32785f5",
|
"reference": "bb399930c0299866258b616a74a27b50b94c5d45",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -6139,8 +6026,8 @@
|
|||||||
"type": "symfony-bundle",
|
"type": "symfony-bundle",
|
||||||
"extra": {
|
"extra": {
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"url": "https://github.com/symfony/webpack-encore",
|
"name": "symfony/webpack-encore",
|
||||||
"name": "symfony/webpack-encore"
|
"url": "https://github.com/symfony/webpack-encore"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -6161,7 +6048,7 @@
|
|||||||
"description": "Integration with your Symfony app & Webpack Encore!",
|
"description": "Integration with your Symfony app & Webpack Encore!",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/symfony/webpack-encore-bundle/issues",
|
"issues": "https://github.com/symfony/webpack-encore-bundle/issues",
|
||||||
"source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.17.2"
|
"source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.16.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -6177,20 +6064,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-09-26T14:36:28+00:00"
|
"time": "2022-10-18T15:21:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/yaml",
|
"name": "symfony/yaml",
|
||||||
"version": "v5.4.45",
|
"version": "v5.4.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/yaml.git",
|
"url": "https://github.com/symfony/yaml.git",
|
||||||
"reference": "a454d47278cc16a5db371fe73ae66a78a633371e"
|
"reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/a454d47278cc16a5db371fe73ae66a78a633371e",
|
"url": "https://api.github.com/repos/symfony/yaml/zipball/ebd37c71f62d5ec5f6e27de3e06fee492d4c6298",
|
||||||
"reference": "a454d47278cc16a5db371fe73ae66a78a633371e",
|
"reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -6236,7 +6123,7 @@
|
|||||||
"description": "Loads and dumps YAML files",
|
"description": "Loads and dumps YAML files",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/yaml/tree/v5.4.45"
|
"source": "https://github.com/symfony/yaml/tree/v5.4.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -6252,41 +6139,38 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
"time": "2022-11-25T16:04:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "twig/twig",
|
"name": "twig/twig",
|
||||||
"version": "v3.20.0",
|
"version": "v3.4.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/twigphp/Twig.git",
|
"url": "https://github.com/twigphp/Twig.git",
|
||||||
"reference": "3468920399451a384bef53cf7996965f7cd40183"
|
"reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/3468920399451a384bef53cf7996965f7cd40183",
|
"url": "https://api.github.com/repos/twigphp/Twig/zipball/c38fd6b0b7f370c198db91ffd02e23b517426b58",
|
||||||
"reference": "3468920399451a384bef53cf7996965f7cd40183",
|
"reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1.0",
|
"php": ">=7.2.5",
|
||||||
"symfony/deprecation-contracts": "^2.5|^3",
|
|
||||||
"symfony/polyfill-ctype": "^1.8",
|
"symfony/polyfill-ctype": "^1.8",
|
||||||
"symfony/polyfill-mbstring": "^1.3"
|
"symfony/polyfill-mbstring": "^1.3"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpstan/phpstan": "^2.0",
|
"psr/container": "^1.0",
|
||||||
"psr/container": "^1.0|^2.0",
|
"symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
|
||||||
"symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
|
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.4-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"files": [
|
|
||||||
"src/Resources/core.php",
|
|
||||||
"src/Resources/debug.php",
|
|
||||||
"src/Resources/escaper.php",
|
|
||||||
"src/Resources/string_loader.php"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Twig\\": "src/"
|
"Twig\\": "src/"
|
||||||
}
|
}
|
||||||
@ -6319,7 +6203,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/twigphp/Twig/issues",
|
"issues": "https://github.com/twigphp/Twig/issues",
|
||||||
"source": "https://github.com/twigphp/Twig/tree/v3.20.0"
|
"source": "https://github.com/twigphp/Twig/tree/v3.4.3"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -6331,93 +6215,13 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-02-13T08:34:43+00:00"
|
"time": "2022-09-28T08:42:51+00:00"
|
||||||
}
|
|
||||||
],
|
|
||||||
"packages-dev": [
|
|
||||||
{
|
|
||||||
"name": "symfony/debug-bundle",
|
|
||||||
"version": "v5.4.45",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/debug-bundle.git",
|
|
||||||
"reference": "653c7629d036ef24ac5de54a157aecdc400d2570"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/debug-bundle/zipball/653c7629d036ef24ac5de54a157aecdc400d2570",
|
|
||||||
"reference": "653c7629d036ef24ac5de54a157aecdc400d2570",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-xml": "*",
|
|
||||||
"php": ">=7.2.5",
|
|
||||||
"symfony/http-kernel": "^4.4|^5.0|^6.0",
|
|
||||||
"symfony/polyfill-php80": "^1.16",
|
|
||||||
"symfony/twig-bridge": "^4.4|^5.0|^6.0",
|
|
||||||
"symfony/var-dumper": "^4.4|^5.0|^6.0"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"symfony/config": "<4.4",
|
|
||||||
"symfony/dependency-injection": "<5.2"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"symfony/config": "^4.4|^5.0|^6.0",
|
|
||||||
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
|
||||||
"symfony/web-profiler-bundle": "^4.4|^5.0|^6.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"symfony/config": "For service container configuration",
|
|
||||||
"symfony/dependency-injection": "For using as a service from the container"
|
|
||||||
},
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Bundle\\DebugBundle\\": ""
|
|
||||||
},
|
|
||||||
"exclude-from-classmap": [
|
|
||||||
"/Tests/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"support": {
|
|
||||||
"source": "https://github.com/symfony/debug-bundle/tree/v5.4.45"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://symfony.com/sponsor",
|
|
||||||
"type": "custom"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://github.com/fabpot",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
|
||||||
"type": "tidelift"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2024-09-25T14:11:13+00:00"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"packages-dev": [],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"stability-flags": {},
|
"stability-flags": [],
|
||||||
"prefer-stable": true,
|
"prefer-stable": true,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
@ -6425,6 +6229,6 @@
|
|||||||
"ext-ctype": "*",
|
"ext-ctype": "*",
|
||||||
"ext-iconv": "*"
|
"ext-iconv": "*"
|
||||||
},
|
},
|
||||||
"platform-dev": {},
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.6.0"
|
"plugin-api-version": "2.3.0"
|
||||||
}
|
}
|
||||||
|
@ -7,5 +7,4 @@ return [
|
|||||||
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
||||||
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
|
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
|
||||||
Sentry\SentryBundle\SentryBundle::class => ['all' => true],
|
Sentry\SentryBundle\SentryBundle::class => ['all' => true],
|
||||||
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
|
|
||||||
];
|
];
|
||||||
|
@ -8,8 +8,8 @@ framework:
|
|||||||
# Other options include:
|
# Other options include:
|
||||||
|
|
||||||
# Redis
|
# Redis
|
||||||
app: cache.adapter.redis
|
#app: cache.adapter.redis
|
||||||
default_redis_provider: '%env(REDIS_DSN)%'
|
#default_redis_provider: redis://localhost
|
||||||
|
|
||||||
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
|
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
|
||||||
#app: cache.adapter.apcu
|
#app: cache.adapter.apcu
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
when@dev:
|
|
||||||
debug:
|
|
||||||
# Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
|
|
||||||
# See the "server:dump" command to start a new server.
|
|
||||||
dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"
|
|
@ -12,7 +12,7 @@ framework:
|
|||||||
# Enables session support. Note that the session will ONLY be started if you read or write from it.
|
# Enables session support. Note that the session will ONLY be started if you read or write from it.
|
||||||
# Remove or comment this section to explicitly disable session support.
|
# Remove or comment this section to explicitly disable session support.
|
||||||
session:
|
session:
|
||||||
handler_id: '%env(REDIS_DSN)%'
|
handler_id: null
|
||||||
cookie_secure: auto
|
cookie_secure: auto
|
||||||
cookie_samesite: lax
|
cookie_samesite: lax
|
||||||
storage_factory_id: session.storage.factory.native
|
storage_factory_id: session.storage.factory.native
|
||||||
@ -25,7 +25,6 @@ framework:
|
|||||||
#fragments: true
|
#fragments: true
|
||||||
php_errors:
|
php_errors:
|
||||||
log: true
|
log: true
|
||||||
error_controller: App\Controller\CustomErrorController::show
|
|
||||||
|
|
||||||
when@test:
|
when@test:
|
||||||
framework:
|
framework:
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
services:
|
|
||||||
Psr\Http\Message\RequestFactoryInterface: '@http_discovery.psr17_factory'
|
|
||||||
Psr\Http\Message\ResponseFactoryInterface: '@http_discovery.psr17_factory'
|
|
||||||
Psr\Http\Message\ServerRequestFactoryInterface: '@http_discovery.psr17_factory'
|
|
||||||
Psr\Http\Message\StreamFactoryInterface: '@http_discovery.psr17_factory'
|
|
||||||
Psr\Http\Message\UploadedFileFactoryInterface: '@http_discovery.psr17_factory'
|
|
||||||
Psr\Http\Message\UriFactoryInterface: '@http_discovery.psr17_factory'
|
|
||||||
|
|
||||||
http_discovery.psr17_factory:
|
|
||||||
class: Http\Discovery\Psr17Factory
|
|
@ -37,7 +37,6 @@ security:
|
|||||||
access_control:
|
access_control:
|
||||||
- { path: ^/login, roles: PUBLIC_ACCESS }
|
- { path: ^/login, roles: PUBLIC_ACCESS }
|
||||||
- { path: ^/connect, roles: ROLE_USER }
|
- { path: ^/connect, roles: ROLE_USER }
|
||||||
- { path: ^/health, roles: PUBLIC_ACCESS }
|
|
||||||
# - { path: ^/connect, roles: [IS_AUTHENTICATED_FULLY, ROLE_USER] }
|
# - { path: ^/connect, roles: [IS_AUTHENTICATED_FULLY, ROLE_USER] }
|
||||||
|
|
||||||
when@test:
|
when@test:
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
twig:
|
twig:
|
||||||
globals:
|
globals:
|
||||||
locales: "%app.supported_locales%"
|
locales: "%locales%"
|
||||||
url_link: "%env(URL_LINK)%"
|
default_path: '%kernel.project_dir%/templates'
|
||||||
default_path: "%kernel.project_dir%/templates"
|
|
||||||
form_themes:
|
form_themes:
|
||||||
- "bootstrap_5_layout.html.twig"
|
- 'bootstrap_5_layout.html.twig'
|
||||||
- "altcha.html.twig"
|
|
||||||
when@test:
|
when@test:
|
||||||
twig:
|
twig:
|
||||||
strict_variables: true
|
strict_variables: true
|
||||||
|
@ -2,10 +2,6 @@ controllers:
|
|||||||
resource: ../../src/Controller/
|
resource: ../../src/Controller/
|
||||||
type: annotation
|
type: annotation
|
||||||
|
|
||||||
controllers_flag:
|
|
||||||
resource: ../../src/Flag/Controller/
|
|
||||||
type: annotation
|
|
||||||
|
|
||||||
kernel:
|
kernel:
|
||||||
resource: ../../src/Kernel.php
|
resource: ../../src/Kernel.php
|
||||||
type: annotation
|
type: annotation
|
||||||
|
@ -27,7 +27,7 @@ parameters:
|
|||||||
locales: '%env(APP_LOCALES)%'
|
locales: '%env(APP_LOCALES)%'
|
||||||
app.supported_locales: ~
|
app.supported_locales: ~
|
||||||
|
|
||||||
env(PEPPER): ~
|
env(PEPPER): ""
|
||||||
pepper: '%env(resolve:PEPPER)%'
|
pepper: '%env(resolve:PEPPER)%'
|
||||||
services:
|
services:
|
||||||
# default configuration for services in *this* file
|
# default configuration for services in *this* file
|
||||||
@ -75,23 +75,3 @@ services:
|
|||||||
$securityPattern: '%security_pattern%'
|
$securityPattern: '%security_pattern%'
|
||||||
# add more service definitions when explicit configuration is needed
|
# add more service definitions when explicit configuration is needed
|
||||||
# please note that last definitions always *replace* previous ones
|
# please note that last definitions always *replace* previous ones
|
||||||
|
|
||||||
App\Altcha\Form\AltchaType:
|
|
||||||
arguments:
|
|
||||||
$altchaHost: "%env(ALTCHA_HOST)%"
|
|
||||||
$altchaBaseUrl: "%env(ALTCHA_BASE_URL)%"
|
|
||||||
$altchaDebug: "%env(bool:ALTCHA_DEBUG)%"
|
|
||||||
$altchaWorkers: "%env(ALTCHA_WORKERS)%"
|
|
||||||
$altchaDelay: "%env(ALTCHA_DELAY)%"
|
|
||||||
$altchaMockError: "%env(bool:ALTCHA_MOCK_ERROR)%"
|
|
||||||
tags:
|
|
||||||
- { name: form.type, alias: altcha}
|
|
||||||
|
|
||||||
App\Form\LoginType:
|
|
||||||
arguments:
|
|
||||||
$altchaEnabled: "%env(bool:ALTCHA_ENABLED)%"
|
|
||||||
|
|
||||||
App\Altcha\AltchaValidator:
|
|
||||||
arguments:
|
|
||||||
$altchaHost: "%env(ALTCHA_HOST)%"
|
|
||||||
$altchaBaseUrl: "%env(ALTCHA_BASE_URL)%"
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
sql_login:
|
sql_login:
|
||||||
login_column_name: email
|
login_column_name: email
|
||||||
password_column_name: password
|
password_column_name: password
|
||||||
salt_column_name: salt
|
salt_column_name: ~
|
||||||
table_name: usager
|
table_name: usager
|
||||||
data_to_fetch:
|
data_to_fetch:
|
||||||
- email
|
- email
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS usager (
|
||||||
|
email VARCHAR ( 100 ) UNIQUE NOT NULL,
|
||||||
|
password VARCHAR ( 255 ) NOT NULL,
|
||||||
|
lastname VARCHAR ( 255 ) NOT NULL,
|
||||||
|
firstname VARCHAR ( 255 ) NOT NULL
|
||||||
|
);
|
||||||
|
INSERT INTO usager (email, password, lastname, firstname) VALUES
|
||||||
|
('test1@test.com', '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92', 'Sassot', 'Charles'),
|
||||||
|
('test2@test.com', '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92', 'Dubois', 'Angela'),
|
||||||
|
('test3@test.com', '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92', 'Dupont', 'Henri'),
|
||||||
|
('test4@test.com', '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92', 'Durand', 'Isabelle');
|
||||||
|
GRANT ALL PRIVILEGES ON lasql.* TO lasql@localhost identified by 'lasql';
|
15
containers/compose/postgres/init-db.d/fill_lasql.sql
Normal file
15
containers/compose/postgres/init-db.d/fill_lasql.sql
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS usager (
|
||||||
|
email VARCHAR ( 100 ) UNIQUE NOT NULL,
|
||||||
|
password VARCHAR ( 255 ) NOT NULL,
|
||||||
|
salt VARCHAR (255),
|
||||||
|
lastname VARCHAR ( 255 ) NOT NULL,
|
||||||
|
firstname VARCHAR ( 255 ) NOT NULL
|
||||||
|
);
|
||||||
|
INSERT INTO usager (email, password, salt, lastname, firstname) VALUES
|
||||||
|
('test1@test.com', '8ad4025044b77ae6a5e3fcf99e53e44b15db9a4ecf468be21cbc6b9fbdae6d9f', 'cesaltestunexemple', 'Locke', 'John'),
|
||||||
|
('test3@test.com', '504ae1c3e2f5fdaf41f868164dabcef21e17059f5f388b452718a1ce92692c67', 'cesaltestunautreexemple', 'Dupont', 'Henri');
|
||||||
|
|
||||||
|
INSERT INTO usager (email, password, lastname, firstname) VALUES
|
||||||
|
('test4@test.com', '$2a$12$91AHN7WFXieeadvUfZ88mO.9N7oS5adeXbdERnRno9oLAbqqDW4IG', 'Durand', 'Isabelle'),
|
||||||
|
('test2@test.com', '50626fa21f45a275cea0efff13ff78fd02234cade322da08b7191c7e9150141d', 'Dubois', 'Angela');
|
||||||
|
GRANT ALL PRIVILEGES ON DATABASE usager TO lasql
|
@ -3,17 +3,19 @@ services:
|
|||||||
hydra-sql:
|
hydra-sql:
|
||||||
container_name: hydra-sql
|
container_name: hydra-sql
|
||||||
build:
|
build:
|
||||||
context: .
|
context: ./containers/hydra-sql
|
||||||
dockerfile: ./misc/images/hydra-sql-standalone/Dockerfile
|
|
||||||
args:
|
args:
|
||||||
- HTTP_PROXY=${HTTP_PROXY}
|
- HTTP_PROXY=${HTTP_PROXY}
|
||||||
- HTTPS_PROXY=${HTTPS_PROXY}
|
- HTTPS_PROXY=${HTTPS_PROXY}
|
||||||
- http_proxy=${http_proxy}
|
- http_proxy=${http_proxy}
|
||||||
- https_proxy=${https_proxy}
|
- https_proxy=${https_proxy}
|
||||||
|
user: ${FIXUID:-1000}:${FIXGID:-1000}
|
||||||
ports:
|
ports:
|
||||||
- 8082:8071
|
- 8080:80
|
||||||
volumes:
|
volumes:
|
||||||
- .:/app
|
- .:/var/www
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- $HOME/.ssh:/root/.host-ssh:ro
|
||||||
tmpfs:
|
tmpfs:
|
||||||
- /var/www/var/logs:uid=${FIXUID:-1000},gid=${FIXGID:-1000}
|
- /var/www/var/logs:uid=${FIXUID:-1000},gid=${FIXGID:-1000}
|
||||||
- /var/www/var/cache:uid=${FIXUID:-1000},gid=${FIXGID:-1000}
|
- /var/www/var/cache:uid=${FIXUID:-1000},gid=${FIXGID:-1000}
|
||||||
@ -21,27 +23,23 @@ services:
|
|||||||
- /tmp
|
- /tmp
|
||||||
links:
|
links:
|
||||||
- hydra
|
- hydra
|
||||||
depends_on:
|
|
||||||
- redis
|
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- "localhost:127.0.0.1"
|
- "localhost:127.0.0.1"
|
||||||
- "localhost:host-gateway"
|
- "localhost:host-gateway"
|
||||||
- "host.docker.internal:host-gateway"
|
- "host.docker.internal:host-gateway"
|
||||||
environment:
|
environment:
|
||||||
- APP_ENV=dev
|
|
||||||
- PHP_FPM_MEMORY_LIMIT=128m
|
|
||||||
- APP_LOCALES=fr,en
|
- APP_LOCALES=fr,en
|
||||||
- HYDRA_ADMIN_BASE_URL=http://hydra:4445
|
- HYDRA_ADMIN_BASE_URL=http://hydra:4445
|
||||||
- TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR,localhost
|
- TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR,localhost
|
||||||
- ISSUER_URL=http://localhost:8000
|
- ISSUER_URL=http://localhost:8000
|
||||||
- BASE_URL=http://localhost:8082
|
- BASE_URL=http://localhost:8080
|
||||||
- DB_USER=lasql
|
- DB_USER=lasql
|
||||||
- DB_PASSWORD=lasql
|
- DB_PASSWORD=lasql
|
||||||
- DEFAULT_LOCALE=fr
|
- DEFAULT_LOCALE=fr
|
||||||
- DSN_REMOTE_DATABASE=pgsql:host='postgres';port=5432;dbname=lasql;
|
- DSN_REMOTE_DATABASE=pgsql:host='postgres';port=5432;dbname=lasql;
|
||||||
- HASH_ALGO_LEGACY="sha256"
|
- HASH_ALGO_LEGACY=sha256
|
||||||
- SECURITY_PATTERN=password,salt,pepper
|
- SECURITY_PATTERN=password,salt,pepper
|
||||||
- CADDY_HTTP_PORT=8071
|
|
||||||
|
|
||||||
oidc-test:
|
oidc-test:
|
||||||
image: bornholm/oidc-test:v0.0.0-1-g936a77e
|
image: bornholm/oidc-test:v0.0.0-1-g936a77e
|
||||||
@ -60,17 +58,16 @@ services:
|
|||||||
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
hydra:
|
hydra:
|
||||||
image: cadoles/hydra-v1:v0.0.0-151-gc9c6fb1
|
image: docker.io/cadoles/hydra-v1:latest
|
||||||
volumes:
|
volumes:
|
||||||
- ./misc/compose/hydra/clients.d:/etc/hydra/clients.d
|
- ./containers/compose/hydra/clients.d:/etc/hydra/clients.d
|
||||||
environment:
|
environment:
|
||||||
- LOG_LEAK_SENSITIVE_VALUES=true
|
- LOG_LEAK_SENSITIVE_VALUES=true
|
||||||
- HYDRA_ALLOW_INSECURE=yes
|
- HYDRA_ALLOW_INSECURE=yes
|
||||||
- HYDRA_URLS_SELF_ISSUER=http://localhost:8081/
|
- HYDRA_URLS_SELF_ISSUER=http://localhost:8081/
|
||||||
- HYDRA_URLS_LOGOUT=http://localhost:8082/logout
|
- HYDRA_URLS_LOGOUT=http://localhost:8080/logout
|
||||||
- HYDRA_URLS_LOGIN=http://localhost:8082/
|
- HYDRA_URLS_LOGIN=http://localhost:8080/
|
||||||
- HYDRA_URLS_CONSENT=http://localhost:8082/connect/consent
|
- HYDRA_URLS_CONSENT=http://localhost:8080/connect/consent
|
||||||
- HYDRA_URLS_ERROR=http://localhost:8082/error
|
|
||||||
- HYDRA_LEVEL=debug
|
- HYDRA_LEVEL=debug
|
||||||
- HYDRA_DSN=postgres://lasql:lasql@postgres:5432/hydra
|
- HYDRA_DSN=postgres://lasql:lasql@postgres:5432/hydra
|
||||||
- HYDRA_WAIT4X_DATABASE_DSN=postgres://lasql:lasql@postgres:5432/hydra?sslmode=disable
|
- HYDRA_WAIT4X_DATABASE_DSN=postgres://lasql:lasql@postgres:5432/hydra?sslmode=disable
|
||||||
@ -81,14 +78,7 @@ services:
|
|||||||
links:
|
links:
|
||||||
- postgres
|
- postgres
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:4444/.well-known/openid-configuration"]
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"http://127.0.0.1:4444/.well-known/openid-configuration",
|
|
||||||
]
|
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 10
|
retries: 10
|
||||||
@ -103,7 +93,7 @@ services:
|
|||||||
POSTGRES_DB: lasql
|
POSTGRES_DB: lasql
|
||||||
POSTGRES_PASSWORD: lasql
|
POSTGRES_PASSWORD: lasql
|
||||||
volumes:
|
volumes:
|
||||||
- ./misc/compose/postgres/init-db.d:/docker-entrypoint-initdb.d/:ro
|
- ./containers/compose/postgres/init-db.d:/docker-entrypoint-initdb.d/:ro
|
||||||
- postgres:/var/lib/pgsql/data
|
- postgres:/var/lib/pgsql/data
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
|
||||||
@ -117,7 +107,7 @@ services:
|
|||||||
PGADMIN_DEFAULT_PASSWORD: admin
|
PGADMIN_DEFAULT_PASSWORD: admin
|
||||||
PGADMIN_SERVER_JSON_FILE: /pgadminfile/server.json
|
PGADMIN_SERVER_JSON_FILE: /pgadminfile/server.json
|
||||||
volumes:
|
volumes:
|
||||||
- ./misc/compose/pgadmin:/pgadminfile/:ro
|
- ./containers/compose/pgadmin:/pgadminfile/:ro
|
||||||
mariadb:
|
mariadb:
|
||||||
image: mariadb:10.10
|
image: mariadb:10.10
|
||||||
environment:
|
environment:
|
||||||
@ -127,20 +117,9 @@ services:
|
|||||||
MYSQL_ROOT_PASSWORD: lasql
|
MYSQL_ROOT_PASSWORD: lasql
|
||||||
TZ: Europe/Paris
|
TZ: Europe/Paris
|
||||||
volumes:
|
volumes:
|
||||||
- ./misc/compose/mariadb/init-db.d:/docker-entrypoint-initdb.d/:ro
|
- ./containers/compose/mariadb/init-db.d:/docker-entrypoint-initdb.d/:ro
|
||||||
- mariadb:/var/lib/mysql
|
- mariadb:/var/lib/mysql
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
redis:
|
|
||||||
image: redis:7.2-rc2-alpine
|
|
||||||
environment:
|
|
||||||
- TZ=Europe/Paris
|
|
||||||
volumes:
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
|
|
||||||
altcha:
|
|
||||||
image: reg.cadoles.com/cadoles/altcha:2024.10.29-develop.1213.22e038b
|
|
||||||
environment:
|
|
||||||
ALTCHA_HMAC_KEY: 'change_me'
|
|
||||||
volumes:
|
volumes:
|
||||||
postgres:
|
postgres:
|
||||||
mariadb:
|
mariadb:
|
@ -1,15 +0,0 @@
|
|||||||
CREATE TABLE IF NOT EXISTS usager (
|
|
||||||
email VARCHAR ( 100 ) UNIQUE NOT NULL,
|
|
||||||
password VARCHAR ( 255 ) NOT NULL,
|
|
||||||
salt VARCHAR (255),
|
|
||||||
lastname VARCHAR ( 255 ) NOT NULL,
|
|
||||||
firstname VARCHAR ( 255 ) NOT NULL
|
|
||||||
);
|
|
||||||
INSERT INTO usager (email, password, salt, lastname, firstname) VALUES
|
|
||||||
/* Bcrypt */
|
|
||||||
('test1@test.com', '$2y$10$cpgbS9OkiH9tQTh0QOyAgeWhyg1GSTIzjAlb8DXNW5VGM.2TTPMgK', '','Locke', 'John'),
|
|
||||||
/* SHA256 */
|
|
||||||
('test2@test.com', '34631c8f2a3e00900c463a00d5eab046e9060ac6ff752fc88a0ce549e7a500d2', 'cesaltestunexemple', 'Durand', 'Isabelle'),
|
|
||||||
/* SSHA */
|
|
||||||
('test3@test.com', '{SSHA}xip81P5Ga8dx07WZJ0Y9lJ2RGapjZXNhbHRlc3R1bmF1dHJlZXhlbXBsZQ==', '', 'Dupont', 'Henri');
|
|
||||||
GRANT ALL PRIVILEGES ON lasql.* TO lasql@localhost identified by 'lasql';
|
|
@ -1,15 +0,0 @@
|
|||||||
CREATE TABLE IF NOT EXISTS usager (
|
|
||||||
email VARCHAR ( 100 ) UNIQUE NOT NULL,
|
|
||||||
password VARCHAR ( 255 ) NOT NULL,
|
|
||||||
salt VARCHAR (255),
|
|
||||||
lastname VARCHAR ( 255 ) NOT NULL,
|
|
||||||
firstname VARCHAR ( 255 ) NOT NULL
|
|
||||||
);
|
|
||||||
INSERT INTO usager (email, password, salt, lastname, firstname) VALUES
|
|
||||||
/* Bcrypt */
|
|
||||||
('test1@test.com', '$2y$10$cpgbS9OkiH9tQTh0QOyAgeWhyg1GSTIzjAlb8DXNW5VGM.2TTPMgK', '','Locke', 'John'),
|
|
||||||
/* SHA256 */
|
|
||||||
('test2@test.com', '34631c8f2a3e00900c463a00d5eab046e9060ac6ff752fc88a0ce549e7a500d2', 'cesaltestunexemple', 'Durand', 'Isabelle'),
|
|
||||||
/* SSHA */
|
|
||||||
('test3@test.com', '{SSHA}xip81P5Ga8dx07WZJ0Y9lJ2RGapjZXNhbHRlc3R1bmF1dHJlZXhlbXBsZQ==', '', 'Dupont', 'Henri');
|
|
||||||
GRANT ALL PRIVILEGES ON DATABASE usager TO lasql
|
|
@ -1,17 +0,0 @@
|
|||||||
ARG NODE_OPTIONS="--openssl-legacy-provider"
|
|
||||||
ARG PHP_PKG_VERSION="8.1.22-r0"
|
|
||||||
ARG ADDITIONAL_PACKAGES="bash=5.2.15-r0 \
|
|
||||||
build-base=0.5-r3 \
|
|
||||||
php81-gd=${PHP_PKG_VERSION} \
|
|
||||||
php81-xsl=${PHP_PKG_VERSION} \
|
|
||||||
php81-pdo=${PHP_PKG_VERSION} \
|
|
||||||
php81-pgsql=${PHP_PKG_VERSION} \
|
|
||||||
php81-pdo_pgsql=${PHP_PKG_VERSION} \
|
|
||||||
php81-soap=${PHP_PKG_VERSION} \
|
|
||||||
php81-ldap=${PHP_PKG_VERSION} \
|
|
||||||
php81-pdo_mysql=${PHP_PKG_VERSION} \
|
|
||||||
php81-bcmath=${PHP_PKG_VERSION} \
|
|
||||||
php81-pecl-xdebug"
|
|
||||||
|
|
||||||
FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-base-2024.10.4-stable.1529.b630c69
|
|
||||||
RUN chown 1000:www-data -R /app
|
|
@ -1,18 +0,0 @@
|
|||||||
ARG NODE_OPTIONS="--openssl-legacy-provider"
|
|
||||||
ARG PHP_PKG_VERSION="8.1.22-r0"
|
|
||||||
ARG ADDITIONAL_PACKAGES="bash=5.2.15-r0 \
|
|
||||||
build-base=0.5-r3 \
|
|
||||||
php81-gd=${PHP_PKG_VERSION} \
|
|
||||||
php81-xsl=${PHP_PKG_VERSION} \
|
|
||||||
php81-pdo=${PHP_PKG_VERSION} \
|
|
||||||
php81-pgsql=${PHP_PKG_VERSION} \
|
|
||||||
php81-pdo_pgsql=${PHP_PKG_VERSION} \
|
|
||||||
php81-soap=${PHP_PKG_VERSION} \
|
|
||||||
php81-ldap=${PHP_PKG_VERSION} \
|
|
||||||
php81-pdo_mysql=${PHP_PKG_VERSION} \
|
|
||||||
php81-bcmath=${PHP_PKG_VERSION} \
|
|
||||||
php81-pecl-xdebug"
|
|
||||||
|
|
||||||
FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-standalone-2024.10.4-stable.1529.b630c69
|
|
||||||
RUN chown 1000:www-data -R /app
|
|
||||||
USER www-data
|
|
9819
package-lock.json
generated
9819
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -2,12 +2,13 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.17.0",
|
"@babel/core": "^7.17.0",
|
||||||
"@babel/preset-env": "^7.16.0",
|
"@babel/preset-env": "^7.16.0",
|
||||||
|
"@hotwired/stimulus": "^3.0.0",
|
||||||
|
"@symfony/stimulus-bridge": "^3.2.0",
|
||||||
"@symfony/webpack-encore": "^4.1.2",
|
"@symfony/webpack-encore": "^4.1.2",
|
||||||
"core-js": "^3.23.0",
|
"core-js": "^3.23.0",
|
||||||
"regenerator-runtime": "^0.13.9",
|
"regenerator-runtime": "^0.13.9",
|
||||||
"webpack": "^5.94.0",
|
"webpack": "^5.74.0",
|
||||||
"webpack-cli": "^4.10.0",
|
"webpack-cli": "^4.10.0",
|
||||||
"file-loader": "^6.2.0",
|
|
||||||
"webpack-notifier": "^1.15.0"
|
"webpack-notifier": "^1.15.0"
|
||||||
},
|
},
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
@ -25,7 +26,6 @@
|
|||||||
"jquery": "^3.6.1",
|
"jquery": "^3.6.1",
|
||||||
"postcss-loader": "^7.0.2",
|
"postcss-loader": "^7.0.2",
|
||||||
"sass": "^1.56.2",
|
"sass": "^1.56.2",
|
||||||
"sass-loader": "^13.2.0",
|
"sass-loader": "^13.2.0"
|
||||||
"altcha": "^1.0.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
public/build/app/138.js
Normal file
2
public/build/app/138.js
Normal file
File diff suppressed because one or more lines are too long
30
public/build/app/138.js.LICENSE.txt
Normal file
30
public/build/app/138.js.LICENSE.txt
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap v5.2.3 (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sizzle CSS Selector Engine v2.3.9
|
||||||
|
* https://sizzlejs.com/
|
||||||
|
*
|
||||||
|
* Copyright JS Foundation and other contributors
|
||||||
|
* Released under the MIT license
|
||||||
|
* https://js.foundation/
|
||||||
|
*
|
||||||
|
* Date: 2022-12-19
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* jQuery JavaScript Library v3.6.3
|
||||||
|
* https://jquery.com/
|
||||||
|
*
|
||||||
|
* Includes Sizzle.js
|
||||||
|
* https://sizzlejs.com/
|
||||||
|
*
|
||||||
|
* Copyright OpenJS Foundation and other contributors
|
||||||
|
* Released under the MIT license
|
||||||
|
* https://jquery.org/license
|
||||||
|
*
|
||||||
|
* Date: 2022-12-20T21:28Z
|
||||||
|
*/
|
1
public/build/app/3.js
Normal file
1
public/build/app/3.js
Normal file
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[524],{28:(e,s,u)=>{u(953)}},e=>{e.O(0,[953],(()=>{return s=28,e(e.s=s);var s}));e.O()}]);
|
(self.webpackChunk=self.webpackChunk||[]).push([[143],{4180:(t,e,r)=>{var n={"./hello_controller.js":4695};function o(t){var e=i(t);return r(e)}function i(t){if(!r.o(n,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return n[t]}o.keys=function(){return Object.keys(n)},o.resolve=i,t.exports=o,o.id=4180},8205:(t,e,r)=>{"use strict";r.d(e,{Z:()=>n});const n={}},4695:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>s});r(8304),r(4812),r(489),r(1539),r(2419),r(8011),r(9070),r(6649),r(6078),r(2526),r(1817),r(9653),r(2165),r(6992),r(8783),r(3948);function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var r=0;r<e.length;r++){var o=e[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,(i=o.key,u=void 0,u=function(t,e){if("object"!==n(t)||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,e||"default");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(i,"string"),"symbol"===n(u)?u:String(u)),o)}var i,u}function u(t,e){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},u(t,e)}function c(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}function f(t,e){if(e&&("object"===n(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}var s=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&u(t,e)}(l,t);var e,r,n,f=c(l);function l(){return o(this,l),f.apply(this,arguments)}return e=l,(r=[{key:"connect",value:function(){this.element.textContent="Hello Stimulus! Edit me in assets/controllers/hello_controller.js"}}])&&i(e.prototype,r),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),l}(r(6599).Qr)},9437:(t,e,r)=>{"use strict";(0,r(2192).x)(r(4180))}},t=>{t.O(0,[3],(()=>{return e=9437,t(t.s=e);var e}));t.O()}]);
|
2
public/build/app/bootstrap-css.js
vendored
2
public/build/app/bootstrap-css.js
vendored
@ -1 +1 @@
|
|||||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[505],{843:()=>{}},s=>{var e;e=843,s(s.s=e)}]);
|
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[113],{9218:()=>{}},s=>{var e;e=9218,s(s.s=e)}]);
|
2
public/build/app/bootstrap-js.js
vendored
2
public/build/app/bootstrap-js.js
vendored
@ -1 +1 @@
|
|||||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[513],{675:(e,s,u)=>{u(336)}},e=>{e.O(0,[336],(()=>{return s=675,e(e.s=s);var s}));e.O()}]);
|
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[144],{2576:(e,s,u)=>{u(3138)}},e=>{e.O(0,[138],(()=>{return s=2576,e(e.s=s);var s}));e.O()}]);
|
@ -3,7 +3,7 @@
|
|||||||
"app": {
|
"app": {
|
||||||
"js": [
|
"js": [
|
||||||
"/build/app/runtime.js",
|
"/build/app/runtime.js",
|
||||||
"/build/app/953.js",
|
"/build/app/3.js",
|
||||||
"/build/app/app.js"
|
"/build/app/app.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
@ -22,7 +22,7 @@
|
|||||||
"bootstrap-js": {
|
"bootstrap-js": {
|
||||||
"js": [
|
"js": [
|
||||||
"/build/app/runtime.js",
|
"/build/app/runtime.js",
|
||||||
"/build/app/336.js",
|
"/build/app/138.js",
|
||||||
"/build/app/bootstrap-js.js"
|
"/build/app/bootstrap-js.js"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,6 @@
|
|||||||
"build/app/bootstrap-css.js": "/build/app/bootstrap-css.js",
|
"build/app/bootstrap-css.js": "/build/app/bootstrap-css.js",
|
||||||
"build/app/bootstrap-js.js": "/build/app/bootstrap-js.js",
|
"build/app/bootstrap-js.js": "/build/app/bootstrap-js.js",
|
||||||
"build/app/runtime.js": "/build/app/runtime.js",
|
"build/app/runtime.js": "/build/app/runtime.js",
|
||||||
"build/app/336.js": "/build/app/336.js",
|
"build/app/3.js": "/build/app/3.js",
|
||||||
"build/app/953.js": "/build/app/953.js"
|
"build/app/138.js": "/build/app/138.js"
|
||||||
}
|
}
|
@ -1 +1 @@
|
|||||||
(()=>{"use strict";var e,r={},o={};function t(e){var n=o[e];if(void 0!==n)return n.exports;var l=o[e]={exports:{}};return r[e].call(l.exports,l,l.exports,t),l.exports}t.m=r,e=[],t.O=(r,o,n,l)=>{if(!o){var a=1/0;for(u=0;u<e.length;u++){for(var[o,n,l]=e[u],i=!0,f=0;f<o.length;f++)(!1&l||a>=l)&&Object.keys(t.O).every((e=>t.O[e](o[f])))?o.splice(f--,1):(i=!1,l<a&&(a=l));if(i){e.splice(u--,1);var p=n();void 0!==p&&(r=p)}}return r}l=l||0;for(var u=e.length;u>0&&e[u-1][2]>l;u--)e[u]=e[u-1];e[u]=[o,n,l]},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={121:0};t.O.j=r=>0===e[r];var r=(r,o)=>{var n,l,[a,i,f]=o,p=0;if(a.some((r=>0!==e[r]))){for(n in i)t.o(i,n)&&(t.m[n]=i[n]);if(f)var u=f(t)}for(r&&r(o);p<a.length;p++)l=a[p],t.o(e,l)&&e[l]&&e[l][0](),e[l]=0;return t.O(u)},o=self.webpackChunk=self.webpackChunk||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})()})();
|
(()=>{"use strict";var e,r={},t={};function o(e){var n=t[e];if(void 0!==n)return n.exports;var i=t[e]={exports:{}};return r[e].call(i.exports,i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,t,n,i)=>{if(!t){var l=1/0;for(s=0;s<e.length;s++){for(var[t,n,i]=e[s],a=!0,u=0;u<t.length;u++)(!1&i||l>=i)&&Object.keys(o.O).every((e=>o.O[e](t[u])))?t.splice(u--,1):(a=!1,i<l&&(l=i));if(a){e.splice(s--,1);var f=n();void 0!==f&&(r=f)}}return r}i=i||0;for(var s=e.length;s>0&&e[s-1][2]>i;s--)e[s]=e[s-1];e[s]=[t,n,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={666:0};o.O.j=r=>0===e[r];var r=(r,t)=>{var n,i,[l,a,u]=t,f=0;if(l.some((r=>0!==e[r]))){for(n in a)o.o(a,n)&&(o.m[n]=a[n]);if(u)var s=u(o)}for(r&&r(t);f<l.length;f++)i=l[f],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return o.O(s)},t=self.webpackChunk=self.webpackChunk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();
|
@ -3,28 +3,11 @@
|
|||||||
"theme": {
|
"theme": {
|
||||||
"js": [
|
"js": [
|
||||||
"/build/theme/runtime.js",
|
"/build/theme/runtime.js",
|
||||||
"/build/theme/869.js",
|
|
||||||
"/build/theme/theme.js"
|
"/build/theme/theme.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
"/build/theme/theme.css"
|
"/build/theme/theme.css"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"bootstrap-css": {
|
|
||||||
"js": [
|
|
||||||
"/build/theme/runtime.js",
|
|
||||||
"/build/theme/bootstrap-css.js"
|
|
||||||
],
|
|
||||||
"css": [
|
|
||||||
"/build/theme/bootstrap-css.css"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bootstrap-js": {
|
|
||||||
"js": [
|
|
||||||
"/build/theme/runtime.js",
|
|
||||||
"/build/theme/336.js",
|
|
||||||
"/build/theme/bootstrap-js.js"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,27 +1,5 @@
|
|||||||
{
|
{
|
||||||
"build/theme/theme.css": "/build/theme/theme.css",
|
"build/theme/theme.css": "/build/theme/theme.css",
|
||||||
"build/theme/theme.js": "/build/theme/theme.js",
|
"build/theme/theme.js": "/build/theme/theme.js",
|
||||||
"build/theme/bootstrap-css.css": "/build/theme/bootstrap-css.css",
|
"build/theme/runtime.js": "/build/theme/runtime.js"
|
||||||
"build/theme/bootstrap-css.js": "/build/theme/bootstrap-css.js",
|
|
||||||
"build/theme/bootstrap-js.js": "/build/theme/bootstrap-js.js",
|
|
||||||
"build/theme/runtime.js": "/build/theme/runtime.js",
|
|
||||||
"build/theme/869.js": "/build/theme/869.js",
|
|
||||||
"build/theme/336.js": "/build/theme/336.js",
|
|
||||||
"build/theme/images/oswald-regular-webfont.svg": "/build/theme/images/oswald-regular-webfont.03cdd684.svg",
|
|
||||||
"build/theme/images/oswald-bold-webfont.svg": "/build/theme/images/oswald-bold-webfont.9a1ed0ec.svg",
|
|
||||||
"build/theme/fonts/oswald-regular-webfont.ttf": "/build/theme/fonts/oswald-regular-webfont.c8502113.ttf",
|
|
||||||
"build/theme/fonts/oswald-bold-webfont.ttf": "/build/theme/fonts/oswald-bold-webfont.53c08c7b.ttf",
|
|
||||||
"build/theme/fonts/oswald-regular-webfont.woff": "/build/theme/fonts/oswald-regular-webfont.9e86c28e.woff",
|
|
||||||
"build/theme/fonts/oswald-bold-webfont.woff": "/build/theme/fonts/oswald-bold-webfont.fec2b538.woff",
|
|
||||||
"build/theme/fonts/oswald-regular-webfont.eot": "/build/theme/fonts/oswald-regular-webfont.edc12574.eot",
|
|
||||||
"build/theme/fonts/oswald-bold-webfont.eot": "/build/theme/fonts/oswald-bold-webfont.8f109a09.eot",
|
|
||||||
"build/theme/fonts/oswald-regular-webfont.woff2": "/build/theme/fonts/oswald-regular-webfont.009d0db9.woff2",
|
|
||||||
"build/theme/fonts/oswald-bold-webfont.woff2": "/build/theme/fonts/oswald-bold-webfont.6747e0fa.woff2",
|
|
||||||
"build/theme/images/franceconnect-fr-hover.png": "/build/theme/images/franceconnect-fr-hover.c0795590.png",
|
|
||||||
"build/theme/images/franceconnect-en-hover.png": "/build/theme/images/franceconnect-en-hover.bcc1e2f3.png",
|
|
||||||
"build/theme/images/MSEConnect-hover-fr.png": "/build/theme/images/MSEConnect-hover-fr.81c82e3e.png",
|
|
||||||
"build/theme/images/MSEConnect-hover-en.png": "/build/theme/images/MSEConnect-hover-en.32a6d3eb.png",
|
|
||||||
"build/theme/images/instagram-hover.png": "/build/theme/images/instagram-hover.5965b4e3.png",
|
|
||||||
"build/theme/images/x-hover.png": "/build/theme/images/x-hover.759179b7.png",
|
|
||||||
"build/theme/images/facebook-hover.png": "/build/theme/images/facebook-hover.4a346412.png"
|
|
||||||
}
|
}
|
@ -1 +1 @@
|
|||||||
(()=>{"use strict";var e,r={},t={};function o(e){var n=t[e];if(void 0!==n)return n.exports;var i=t[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,e=[],o.O=(r,t,n,i)=>{if(!t){var l=1/0;for(s=0;s<e.length;s++){for(var[t,n,i]=e[s],a=!0,f=0;f<t.length;f++)(!1&i||l>=i)&&Object.keys(o.O).every((e=>o.O[e](t[f])))?t.splice(f--,1):(a=!1,i<l&&(l=i));if(a){e.splice(s--,1);var u=n();void 0!==u&&(r=u)}}return r}i=i||0;for(var s=e.length;s>0&&e[s-1][2]>i;s--)e[s]=e[s-1];e[s]=[t,n,i]},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={121:0};o.O.j=r=>0===e[r];var r=(r,t)=>{var n,i,[l,a,f]=t,u=0;if(l.some((r=>0!==e[r]))){for(n in a)o.o(a,n)&&(o.m[n]=a[n]);if(f)var s=f(o)}for(r&&r(t);u<l.length;u++)i=l[u],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return o.O(s)},t=self.webpackChunk=self.webpackChunk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();
|
(()=>{"use strict";var e,r={},o={};function t(e){var n=o[e];if(void 0!==n)return n.exports;var l=o[e]={exports:{}};return r[e](l,l.exports,t),l.exports}t.m=r,e=[],t.O=(r,o,n,l)=>{if(!o){var a=1/0;for(p=0;p<e.length;p++){for(var[o,n,l]=e[p],i=!0,f=0;f<o.length;f++)(!1&l||a>=l)&&Object.keys(t.O).every((e=>t.O[e](o[f])))?o.splice(f--,1):(i=!1,l<a&&(a=l));if(i){e.splice(p--,1);var u=n();void 0!==u&&(r=u)}}return r}l=l||0;for(var p=e.length;p>0&&e[p-1][2]>l;p--)e[p]=e[p-1];e[p]=[o,n,l]},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={666:0};t.O.j=r=>0===e[r];var r=(r,o)=>{var n,l,[a,i,f]=o,u=0;if(a.some((r=>0!==e[r]))){for(n in i)t.o(i,n)&&(t.m[n]=i[n]);if(f)var p=f(t)}for(r&&r(o);u<a.length;u++)l=a[u],t.o(e,l)&&e[l]&&e[l][0](),e[l]=0;return t.O(p)},o=self.webpackChunk=self.webpackChunk||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})()})();
|
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[694],{5895:(e,t,n)=>{n(8953),n(8476),n(5086),n(9389),n(557),n(9693);document.addEventListener("DOMContentLoaded",(function(){[].forEach.call(document.querySelectorAll(".language-change"),(function(e){e.addEventListener("click",(function(t){t.preventDefault();var n=e.getAttribute("data-lang");return function(e){for(var t=e+"=",n=document.cookie.split(";"),r=0;r<n.length;r++){for(var a=n[r];" "==a.charAt(0);)a=a.substring(1,a.length);if(0==a.indexOf(t))return a.substring(t.length,a.length)}return null}("mselang")!=n&&(function(e,t,n){var r="";if(n){var a=new Date;a.setTime(a.getTime()+24*n*60*60*1e3),r="; expires="+a.toUTCString()}for(var o=window.location.hostname.split(".").reverse(),i="",l=o.length-1;l>=0;l--)i+=o[l],l>0&&(i+=".");document.cookie=e+"="+(t||"")+r+"; path=/; domain="+i}("mselang",n,!1),location.reload()),!1}))}));var e=document.forms.login,t=document.getElementById("loader");e.addEventListener("submit",(function(e){t.style.display="flex"}))}))}},e=>{e.O(0,[869],(()=>{return t=5895,e(e.s=t);var t}));e.O()}]);
|
(self.webpackChunk=self.webpackChunk||[]).push([[505],{755:(s,e,k)=>{k(634),k(681)},634:()=>{},681:(s,e,k)=>{"use strict";k.r(e)}},s=>{var e;e=755,s(s.s=e)}]);
|
201
readme.md
201
readme.md
@ -3,65 +3,105 @@
|
|||||||
Une [LoginApp](https://www.ory.sh/docs/hydra/concepts/login) pour le serveur OpenID Connect [Ory/Hydra](https://github.com/ory/hydra).
|
Une [LoginApp](https://www.ory.sh/docs/hydra/concepts/login) pour le serveur OpenID Connect [Ory/Hydra](https://github.com/ory/hydra).
|
||||||
Elle permet de se connecter à une base de donnée et de vérifier un mot de passe donné sur une mire locale puis d'aller chercher des données demandées
|
Elle permet de se connecter à une base de donnée et de vérifier un mot de passe donné sur une mire locale puis d'aller chercher des données demandées
|
||||||
|
|
||||||
## Image
|
## Usage
|
||||||
|
|
||||||
- L'image standalone est construite en utilisant l'utilisateur `www-data` pour lancer supervisor (qui va lancer le process php-fpm et caddy, avec ce même user)
|
Dans le cas d'utilsation du thème pour personaliser la page de login
|
||||||
- C'est pour cela qu'on fini par "USER www-data" à la fin de `misc/images/hydra-oidc-standalone/Dockerfile`, sinon le conteneur `hydra-sql` ne tournera pas
|
|
||||||
|
|
||||||
## Configuration
|
### Développement
|
||||||
|
|
||||||
### Variables d'environnement
|
Un environnement Docker Compose est proposé comme support de développement.
|
||||||
|
|
||||||
| Variable | Description | Valeur par défaut | Utilisation |
|
Afin de démarrer celui-ci:
|
||||||
| ----------------------------------- | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------- |
|
|
||||||
| `APP_ENV` | Environnement symfony | prod | dev:prod |
|
|
||||||
| `APP_DEBUG` | Console de debug symofny | false | true:false |
|
|
||||||
| `HYDRA_ADMIN_BASE_URL` | Url d'admin Hydra ou dispatcher | http://hydra:4445 | obligatoire |
|
|
||||||
| `BASE_URL` | Url d'accès | http://localhost:8080 | obligatoire |
|
|
||||||
| `DSN_REMOTE_DATABASE` | DSN de la BDD | postgresql://lasql:lasql@postgres:5432/lasql?serverVersion=15&chartset=utf8 | |
|
|
||||||
| `DB_USER` | User de connection à la BDD | lasql | obligatoire |
|
|
||||||
| `DB_PASSWORD` | PAssword de l'utilisateur de la BDD | lasql | obligatoire |
|
|
||||||
| `APP_LOCALES` | Langues disponibles dans l'application | fr,en | obligatoire |
|
|
||||||
| `HASH_ALGO_LEGACY` | ALgorythme de Hashage par défaut | sha256 | |
|
|
||||||
| `SECURITY_PATTERN` | Séquence à employer pour le hashage du mot de passe | password,salt,pepper | obligatoire |
|
|
||||||
| `PEPPER` | Pepper utilisé pour le Hashage | | |
|
|
||||||
| `REDIS_DSN` | DSN du serveur Redis | redis://redis:6379 | obligatoire |
|
|
||||||
| `URL_LINK` | Url pouvant être utilisée dans les liens des templates | | |
|
|
||||||
| `CADDY_HTTP_PORT` | Port d'écoute de l'application | 8080 | |
|
|
||||||
| `CADDY_HTTPS_PORT` | Port d'écoute de l'application | 8443 | |
|
|
||||||
| `CADDY_DATA_FS` | Chemin vers le répertoire utilisé pour le stockage de caddy | /tmp/caddy | |
|
|
||||||
| `CADDY_APP_ROOT_PUBLIC` | Chemin vers le répertoire utilisé pour servire les fichiers | /app/public | |
|
|
||||||
| `CADDY_PHP_INDEX` | Nom du fichier a utiliser pour servir l'application | index.php | |
|
|
||||||
| `CADDY_APP_UPSTREAM_BACKEND_SERVER` | Adresse du serveur backend FastCGI PHP vers lequel doit être diriger les requêtes PHP. | unix//tmp/php-fpm.sock | |
|
|
||||||
| `CADDY_TRUSTED_PROXIES` | Spécification des adresses IP /plage IP étant sur pour transmettre les requetes HTTP | private_ranges | |
|
|
||||||
| `CADDY_LOG_FORMAT` | Spécification du format des logs | console | |
|
|
||||||
| `CADDY_LOG_LEVEL` | Spécification du niveau de verbosité des logs | INFO | |
|
|
||||||
| `PHP_FPM_MEMORY_LIMIT` | Spécification de la mémoire limite maximale alloué au processus PHP-FPM | 128M | |
|
|
||||||
| `PHP_FPM_DISPLAY_ERRORS` | Afficahge des erreurs dans la sortie du serveur web. | off | |
|
|
||||||
| `PHP_FPM_LISTEN` | Spécification du serveur sur lequel PHP FPM écoute les connexion. | /tmp/php-fpm.sock | |
|
|
||||||
| `PHP_FPM_LOG_LEVEL` | Spécification du niveau de verbosité des logs PHP-FPM | notice | |
|
|
||||||
| `PHP_FPM_PM` | Définition du mode de gestion des processus PHP-FPM | dynamic | |
|
|
||||||
| `PHP_FPM_PM_MAX_CHILDREN` | Définition du nombre maximum de processus enfants que PHP-FPM peut générer | 5 | |
|
|
||||||
| `PHP_FPM_PM_START_SERVERS` | Définition du nombre de processus enfants que PHP-FPM va démarrer au lancement de PHP-FPM | 2 | |
|
|
||||||
| `PHP_FPM_PM_MIN_SPARE_SERVERS` | Définition du nombre minimum de processus enfants inactifs que PHP-FPM doit conserver en réserve. | 1 | |
|
|
||||||
| `PHP_FPM_PM_MAX_SPARE_SERVERS` | Définition du nombre maximum de processus enfants inactifs que PHP-FPM peut conserver en réserve. | 3 | |
|
|
||||||
| `XDG_DATA_HOME` | Définition du répertoire de base pour le stockage des données spécifiques à l'utilisateur. | /tmp/data | |
|
|
||||||
|
|
||||||
### Algorithmes de hashage compatibles
|
```bash
|
||||||
|
|
||||||
La login app est compatible par défaut avec toutes les méthodes de hashage de PHP et avec SSHA. Aucune configuration supplémentaire n'est nécessaire.
|
# Démarrer l'environnement docker-compose
|
||||||
|
make up
|
||||||
|
|
||||||
### Pattern de hashage
|
# fermer l'environnement
|
||||||
|
make down
|
||||||
|
|
||||||
Définir dans la variable `SECURITY_PATTERN` le pattern utilisé avec les mots clés: password | salt | pepper séparé par des virgules pour représenter la séquence à employer pour le hashage du mot de passe.
|
```
|
||||||
Exemple : `SECURITY_PATTERN="salt,password,pepper"`
|
|
||||||
|
|
||||||
### Schéma de base de donnée
|
## Variables d'environnement
|
||||||
|
```
|
||||||
|
DB_USER="lasql"
|
||||||
|
DB_PASSWORD="lasql"
|
||||||
|
|
||||||
Permet d'adapter les requetes SQL à la base de donnée utilisée en indiquant les noms de colonnes de celle-ci.
|
ISSUER_URL="http://localhost:8000"
|
||||||
|
BASE_URL='http://localhost:8080'
|
||||||
|
# connexion hydra
|
||||||
|
HYDRA_ADMIN_BASE_URL='http://hydra:4445'
|
||||||
|
DSN_REMOTE_DATABASE="pgsql:host='postgres';port=5432;dbname=lasql"
|
||||||
|
APP_LOCALES="fr,en"
|
||||||
|
HASH_ALGO_LEGACY="sha256, bcrypt"
|
||||||
|
SECURITY_PATTERN="password,salt,pepper"
|
||||||
|
PEPPER=
|
||||||
|
```
|
||||||
|
## Tests password
|
||||||
|
|
||||||
```yaml
|
Dans le cas où plusieurs méthodes de hashage cohabitent (migration de méthode par exemple dans l'application principale), toutes les méthode seront testées pour comparer les hashs jusqu'à un succès
|
||||||
# config/sql_login_configuration/sql_login.yaml
|
|
||||||
|
## Pattern de hashage
|
||||||
|
|
||||||
|
```
|
||||||
|
Définir le pattern utilisé avec les mots clés autorisé: password | salt | pepper dans un string, séparé par des virgules pour représenter la séquence à employer pour le hashage du mot de passe.
|
||||||
|
```
|
||||||
|
### Postgres
|
||||||
|
|
||||||
|
```
|
||||||
|
Les mot de passe inscrits en bdd sont hachés en tenant compte du salt si non vide (cf données de la bdd plus bas) et du pepper inscrit en variable d'environnement (généré avec : bin2hex(random_bytes(32) pour l'exemple), le pepper peut être vide
|
||||||
|
Indiquer le nom de la colonne contenant le salt:
|
||||||
|
Il faut inscrire dans slq_login_configuration salt_column_name: salt
|
||||||
|
Indiquer le pepper utilisé:
|
||||||
|
et conserver le pepper dans service.yaml
|
||||||
|
env(PEPPER): "257d62c24cd352c21b51c26dba678c8ff05011a89022aec106185bf67c69aa8b"
|
||||||
|
|
||||||
|
```
|
||||||
|
### mariadb
|
||||||
|
```
|
||||||
|
En plus de tester la connexion à une différente base de donnée, on teste le hashage de password sans salt ni pepper
|
||||||
|
Il faut mettre dans sql_login_configuration salt_column_name: ~
|
||||||
|
et dans service.yaml
|
||||||
|
env(PEPPER): ~
|
||||||
|
|
||||||
|
```
|
||||||
|
### test connexion mariadb
|
||||||
|
```
|
||||||
|
Modifier la variable d'environnement avec cette valeur
|
||||||
|
DSN_REMOTE_DATABASE="mysql:host=mariadb;port=3306;dbname=lasql;"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Données de test
|
||||||
|
|
||||||
|
### postgres
|
||||||
|
```
|
||||||
|
|email|password|salt|lastname|firstname
|
||||||
|
|test1@test.com| 8ad4025044b77ae6a5e3fcf99e53e44b15db9a4ecf468be21cbc6b9fbdae6d9f| cesaltestunexemple| Locke|John|
|
||||||
|
|test2@test.com| 50626fa21f45a275cea0efff13ff78fd02234cade322da08b7191c7e9150141d| NULL| Dubois| Angela|
|
||||||
|
|test3@test.com| 504ae1c3e2f5fdaf41f868164dabcef21e17059f5f388b452718a1ce92692c67| cesaltestunautreexemple| Dupont| Henri|
|
||||||
|
|test4@test.com| $2a$12$91AHN7WFXieeadvUfZ88mO.9N7oS5adeXbdERnRno9oLAbqqDW4IG| NULL| Durand|Isabelle|
|
||||||
|
|
||||||
|
A noter que le hash de test4 est en bcrypt
|
||||||
|
```
|
||||||
|
|
||||||
|
### mariadb (sans salt)
|
||||||
|
```
|
||||||
|
|email|password|lastname|firstname
|
||||||
|
|test1@test.com| 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92| Sassot|Charles|
|
||||||
|
|test2@test.com| 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92| Dubois| Angela|
|
||||||
|
|test3@test.com| 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92| Dupont| Henri|
|
||||||
|
|test4@test.com| 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92| Durand|Isabelle|
|
||||||
|
```
|
||||||
|
|
||||||
|
Mot de passe = '123456' hashé en par sha256
|
||||||
|
|
||||||
|
## configuration
|
||||||
|
Permet d'adapter les requetes SQL en indiquant les noms de colonnes nécessaires.
|
||||||
|
|
||||||
|
pdo_configuration/pdo.yaml
|
||||||
|
```
|
||||||
sql_login:
|
sql_login:
|
||||||
login_column_name: email
|
login_column_name: email
|
||||||
password_column_name: password
|
password_column_name: password
|
||||||
@ -71,62 +111,15 @@ sql_login:
|
|||||||
- email
|
- email
|
||||||
- lastname
|
- lastname
|
||||||
- firstname
|
- firstname
|
||||||
subject_rewrite_expression: 'firstname~"."~lastname~"@exemple.com"'
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Environnement de développement
|
#### Conteneurs
|
||||||
|
|
||||||
### Tester
|
|Nom|Description|Port(s) hôte utilisé(s)|
|
||||||
|
|---|-----------|------------------|
|
||||||
Se rendre sur [http://localhost:8000/](http://localhost:8000/) et cliquer `Login` pour commencer une nouvelle connexion.
|
|`oidc-test`|Application factice permettant de tester l'authentification OpenID Connect|`8080`|
|
||||||
3 utilisateurs d'exemple sont disponible pour les tests:
|
|`hydra`|Serveur Ory/Hydra|`8081`|
|
||||||
| Login | Mot de passe | Algorithme |
|
|`hydra-sql`|Login/Consent/Logout App (ce projet)|`8082`|
|
||||||
|-------|--------------|------------|
|
|`postgres`| Base de donnée postgres support du test et pour hydra|`5432`
|
||||||
| test1@test.com | 123456 | Bcrypt |
|
|`mariadb`| Base de donnée mariadb support du test|`3306`
|
||||||
| test2@test.com | 123456 | SHA256 |
|
|`pgadmin`| pour administrer la base de donnée |`8085`
|
||||||
| test3@test.com | 123456 | SSHA |
|
|
||||||
|
|
||||||
### Base de donnée
|
|
||||||
|
|
||||||
2 bases de données différentes sont disponible pour les tests.
|
|
||||||
Pour choisir la base de donnée à utiliser, modifier les d'environnement relatives à la base de donnée.
|
|
||||||
|
|
||||||
- **URL Postgres**: `postgresql://lasql:lasql@mariadb:3306/lasql?serverVersion=15&chartset=utf8`
|
|
||||||
- **URL Mariadb**: `mysql://lasql:lasql@postgres:5432/lasql`
|
|
||||||
|
|
||||||
### Redis
|
|
||||||
|
|
||||||
La variable `REDIS_DSN` est obligatoire. Hydra-sql utilise dorénavant Redis pour le stockage du cache et des session. Compatible Redis Sentinel
|
|
||||||
ex : `'redis:?host[redis1:26379]&host[redis2:26379]&host[redis3:26379]&redis_sentinel=mymaster'`
|
|
||||||
|
|
||||||
### Liste des ports
|
|
||||||
|
|
||||||
| Nom | Description | Port(s) hôte utilisé(s) |
|
|
||||||
| ----------- | -------------------------------------------------------------------------- | ----------------------- |
|
|
||||||
| `oidc-test` | Application factice permettant de tester l'authentification OpenID Connect | `8080` |
|
|
||||||
| `hydra` | Serveur Ory/Hydra | `8081` |
|
|
||||||
| `hydra-sql` | Login/Consent/Logout App (ce projet) | `8082` |
|
|
||||||
| `postgres` | Base de donnée postgres support du test et pour hydra | `5432` |
|
|
||||||
| `mariadb` | Base de donnée mariadb support du test | `3306` |
|
|
||||||
| `pgadmin` | pour administrer la base de donnée | `8085` |
|
|
||||||
|
|
||||||
### Configuration d'Altcha
|
|
||||||
|
|
||||||
Altcha est activable/désactivable par un feature flag disponible à la route /flag/altcha (port 8082 par défaut).
|
|
||||||
La valeur de ce flag est stockée dans Redis (clé `altcha`) afin de pouvoir la modifier à la volée. Par sécurité, un fallback sur la variable d'environnement `ALTCHA_ENABLED` est effectué si la clé n'existe pas dans Redis.
|
|
||||||
|
|
||||||
Exemple de désactivation:
|
|
||||||
```shell
|
|
||||||
curl --request PUT \
|
|
||||||
--url https://dev.mse.local/auth/sql/flag/altcha \
|
|
||||||
--header 'Content-Type: application/json' \
|
|
||||||
--data '{"flagValue": false}'
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### build du sql theme
|
|
||||||
|
|
||||||
copier les images et les fonts dans les dossier ./assets
|
|
||||||
modifier si besoin le fichier theme-entrypoints.js
|
|
||||||
|
|
||||||
lancer un `npm run build`
|
|
@ -1,48 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Altcha;
|
|
||||||
|
|
||||||
use App\Altcha\Form\AltchaModel;
|
|
||||||
use Symfony\Component\Form\DataTransformerInterface;
|
|
||||||
|
|
||||||
class AltchaTransformer implements DataTransformerInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function reverseTransform($value): AltchaModel
|
|
||||||
{
|
|
||||||
if (empty($value)) {
|
|
||||||
return new AltchaModel();
|
|
||||||
}
|
|
||||||
|
|
||||||
$decodedValue = base64_decode($value);
|
|
||||||
$data = json_decode($decodedValue);
|
|
||||||
|
|
||||||
$model = new AltchaModel();
|
|
||||||
|
|
||||||
foreach ($data as $property => $value) {
|
|
||||||
$model->{$property} = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $model;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function transform($value): string
|
|
||||||
{
|
|
||||||
if (empty($value)) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
$json = json_encode($value);
|
|
||||||
|
|
||||||
if (false === $json) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
return base64_encode($json);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Altcha;
|
|
||||||
|
|
||||||
use Symfony\Component\Form\FormError;
|
|
||||||
use Symfony\Component\Form\FormEvent;
|
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
|
||||||
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
|
||||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
|
||||||
|
|
||||||
class AltchaValidator
|
|
||||||
{
|
|
||||||
public function __construct(
|
|
||||||
private readonly string $altchaHost,
|
|
||||||
private readonly string $altchaBaseUrl,
|
|
||||||
private readonly HttpClientInterface $httpClient,
|
|
||||||
private readonly TranslatorInterface $translator
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
|
|
||||||
public function validate(FormEvent $formEvent): void
|
|
||||||
{
|
|
||||||
$form = $formEvent->getForm();
|
|
||||||
$data = $form->getData();
|
|
||||||
|
|
||||||
$response = $this->httpClient->request(
|
|
||||||
'POST',
|
|
||||||
$this->altchaHost.$this->altchaBaseUrl.'/verify',
|
|
||||||
[
|
|
||||||
'body' => json_encode($data),
|
|
||||||
'headers' => [
|
|
||||||
'Content-Type' => 'application/json',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
);
|
|
||||||
|
|
||||||
if (Response::HTTP_OK !== $response->getStatusCode()) {
|
|
||||||
$form->addError(new FormError($this->translator->trans('altcha.validator.server_validation_error', [], 'form')));
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$content = $response->getContent();
|
|
||||||
$parsedResponse = json_decode($content);
|
|
||||||
|
|
||||||
if (true !== $parsedResponse->success) {
|
|
||||||
$form->addError(new FormError($this->translator->trans('altcha.validator.server_validation_error', [], 'form')));
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Altcha\Form;
|
|
||||||
|
|
||||||
use Symfony\Component\Validator\Constraints as Assert;
|
|
||||||
|
|
||||||
class AltchaModel
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @Assert\NotBlank()
|
|
||||||
* @Assert\Regex("/^(SHA-1|SHA-256|SHA-512)$/")
|
|
||||||
*/
|
|
||||||
public string $algorithm;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Assert\NotBlank()
|
|
||||||
*/
|
|
||||||
public string $challenge;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Assert\NotBlank()
|
|
||||||
*/
|
|
||||||
public string $salt;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Assert\NotBlank()
|
|
||||||
*/
|
|
||||||
public int $number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Assert\NotBlank()
|
|
||||||
*/
|
|
||||||
public string $signature;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Assert\NotBlank()
|
|
||||||
*/
|
|
||||||
public int $took;
|
|
||||||
}
|
|
@ -1,81 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Altcha\Form;
|
|
||||||
|
|
||||||
use App\Altcha\AltchaTransformer;
|
|
||||||
use App\Altcha\AltchaValidator;
|
|
||||||
use Symfony\Component\Form\AbstractType;
|
|
||||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
|
||||||
use Symfony\Component\Form\FormEvents;
|
|
||||||
use Symfony\Component\Form\FormInterface;
|
|
||||||
use Symfony\Component\Form\FormView;
|
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
|
||||||
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
|
||||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
|
||||||
|
|
||||||
class AltchaType extends AbstractType
|
|
||||||
{
|
|
||||||
public function __construct(
|
|
||||||
private readonly string $altchaHost,
|
|
||||||
private readonly string $altchaBaseUrl,
|
|
||||||
private readonly string $altchaDebug,
|
|
||||||
private readonly string $altchaWorkers,
|
|
||||||
private readonly string $altchaDelay,
|
|
||||||
private readonly string $altchaMockError,
|
|
||||||
private readonly AltchaValidator $altchaValidator,
|
|
||||||
private readonly HttpClientInterface $httpClient,
|
|
||||||
private readonly TranslatorInterface $translator
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
|
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
|
||||||
{
|
|
||||||
$builder->addModelTransformer(new AltchaTransformer());
|
|
||||||
|
|
||||||
$builder->addEventListener(FormEvents::POST_SUBMIT, [$this->altchaValidator, 'validate']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function buildView(FormView $view, FormInterface $form, array $options)
|
|
||||||
{
|
|
||||||
$translations = [
|
|
||||||
'label' => $this->translator->trans('altcha.widget.label', [], 'form'),
|
|
||||||
'verified' => $this->translator->trans('altcha.widget.verified', [], 'form'),
|
|
||||||
'verifying' => $this->translator->trans('altcha.widget.verifying', [], 'form'),
|
|
||||||
'waitAlert' => $this->translator->trans('altcha.widget.waitalert', [], 'form'),
|
|
||||||
'error' => $this->translator->trans('altcha.widget.error', [], 'form'),
|
|
||||||
'expired' => $this->translator->trans('altcha.widget.expired', [], 'form'),
|
|
||||||
];
|
|
||||||
$view->vars['translations'] = json_encode($translations);
|
|
||||||
$view->vars['challengeJson'] = $this->requestChallenge();
|
|
||||||
$view->vars['debug'] = $this->altchaDebug;
|
|
||||||
$view->vars['workers'] = $this->altchaWorkers;
|
|
||||||
$view->vars['delay'] = $this->altchaDelay;
|
|
||||||
$view->vars['mockError'] = $this->altchaMockError;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function requestChallenge(): string
|
|
||||||
{
|
|
||||||
$resp = $this->httpClient->request('GET', $this->altchaHost.$this->altchaBaseUrl.'/request');
|
|
||||||
if (Response::HTTP_OK === $resp->getStatusCode()) {
|
|
||||||
return $resp->getContent();
|
|
||||||
}
|
|
||||||
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getParent(): string
|
|
||||||
{
|
|
||||||
return TextType::class;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getName(): string
|
|
||||||
{
|
|
||||||
return $this->getBlockPrefix();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getBlockPrefix(): string
|
|
||||||
{
|
|
||||||
return 'altcha';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Controller;
|
|
||||||
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
||||||
use Symfony\Component\ErrorHandler\Exception\FlattenException;
|
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
|
||||||
|
|
||||||
class CustomErrorController extends AbstractController
|
|
||||||
{
|
|
||||||
#[Route(path: '/error', name: 'custom_error_controller')]
|
|
||||||
public function show(FlattenException $exception): Response
|
|
||||||
{
|
|
||||||
$statusCode = $exception->getStatusCode();
|
|
||||||
$message = $exception->getMessage();
|
|
||||||
|
|
||||||
return $this->render('error.html.twig', [
|
|
||||||
'statusCode' => $statusCode,
|
|
||||||
'message' => $message,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,7 +4,6 @@ namespace App\Controller;
|
|||||||
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
|
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
|
||||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
|
||||||
@ -18,7 +17,7 @@ class LocaleController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[Route(path: 'locale/{locale?}', name: 'locale_change')]
|
#[Route(path: 'locale/{locale?}', name: 'locale_change')]
|
||||||
public function changeLocal(?string $locale, Request $request): RedirectResponse
|
public function changeLocal(?string $locale, Request $request)
|
||||||
{
|
{
|
||||||
if (empty($locale)) {
|
if (empty($locale)) {
|
||||||
$locale = $this->params->get('default_locale');
|
$locale = $this->params->get('default_locale');
|
||||||
|
@ -5,21 +5,17 @@ namespace App\Controller;
|
|||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
use App\Hydra\Client;
|
use App\Hydra\Client;
|
||||||
use App\Hydra\HydraService;
|
use App\Hydra\HydraService;
|
||||||
use App\SQLLogin\SQLLoginRequest;
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
|
|
||||||
use Symfony\Component\Finder\Exception\AccessDeniedException;
|
|
||||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
|
||||||
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
|
||||||
class MainController extends AbstractController
|
class MainController extends AbstractController
|
||||||
{
|
{
|
||||||
private HydraService $hydra;
|
public HydraService $hydra;
|
||||||
private Client $client;
|
public Client $client;
|
||||||
private SessionInterface $session;
|
public SessionInterface $session;
|
||||||
|
|
||||||
public function __construct(SessionInterface $session, HydraService $hydra, Client $client)
|
public function __construct(SessionInterface $session, HydraService $hydra, Client $client)
|
||||||
{
|
{
|
||||||
@ -29,44 +25,18 @@ class MainController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/', name: 'app_home')]
|
#[Route('/', name: 'app_home')]
|
||||||
public function home(Request $request): RedirectResponse
|
public function home(Request $request)
|
||||||
{
|
{
|
||||||
return $this->hydra->handleLoginRequest($request);
|
return $this->hydra->handleLoginRequest($request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
#[Route('/connect/login-accept', name: 'app_login_accept')]
|
||||||
* Route de Healthcheck (notament pour kubernetes)
|
public function loginAccept(Request $request)
|
||||||
*/
|
|
||||||
#[Route('/health', name: 'health')]
|
|
||||||
public function health(Request $request): Response
|
|
||||||
{
|
|
||||||
return new Response('healthy', 200);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[Route('/connect/login-accept', name: 'app_login_accept', methods: ['GET'])]
|
|
||||||
public function loginAccept(SQLLoginRequest $sqlLoginRequest): RedirectResponse
|
|
||||||
{
|
{
|
||||||
|
/** @var User */
|
||||||
$user = $this->getUser();
|
$user = $this->getUser();
|
||||||
|
$loginAcceptRes = $this->client->acceptLoginRequest($this->session->get('challenge'), [
|
||||||
if (!$user instanceof User) {
|
'subject' => $user->getLogin(),
|
||||||
throw new AccessDeniedException();
|
|
||||||
}
|
|
||||||
$challenge = $this->session->get('challenge');
|
|
||||||
if (!$challenge) {
|
|
||||||
return new RedirectResponse($this->getParameter('issuer_url'));
|
|
||||||
}
|
|
||||||
|
|
||||||
$subject = $user->getLogin();
|
|
||||||
|
|
||||||
$subjectRewriteExpression = $sqlLoginRequest->getSubjectRewriteExpression();
|
|
||||||
if (null != $subjectRewriteExpression) {
|
|
||||||
$expressionLanguage = new ExpressionLanguage();
|
|
||||||
|
|
||||||
$subject = $expressionLanguage->evaluate($subjectRewriteExpression, $user->getAttributes());
|
|
||||||
}
|
|
||||||
|
|
||||||
$loginAcceptRes = $this->client->acceptLoginRequest($challenge, [
|
|
||||||
'subject' => $subject,
|
|
||||||
'remember' => true,
|
'remember' => true,
|
||||||
])->toArray();
|
])->toArray();
|
||||||
|
|
||||||
@ -74,7 +44,7 @@ class MainController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/connect/consent', name: 'app_consent')]
|
#[Route('/connect/consent', name: 'app_consent')]
|
||||||
public function consent(Request $request): RedirectResponse
|
public function consent(Request $request)
|
||||||
{
|
{
|
||||||
return $this->hydra->handleConsentRequest($request);
|
return $this->hydra->handleConsentRequest($request);
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ use Symfony\Contracts\Translation\TranslatorInterface;
|
|||||||
class SecurityController extends AbstractController
|
class SecurityController extends AbstractController
|
||||||
{
|
{
|
||||||
#[Route('/login', name: 'app_login')]
|
#[Route('/login', name: 'app_login')]
|
||||||
public function login(ParameterBagInterface $params, AuthenticationUtils $authenticationUtils, Request $request, TranslatorInterface $trans): Response|RedirectResponse
|
public function login(ParameterBagInterface $params, AuthenticationUtils $authenticationUtils, Request $request, TranslatorInterface $trans): Response
|
||||||
{
|
{
|
||||||
// Si l'utilisateur est déjà connecté on le renvoie sur la page du site demandeur
|
// Si l'utilisateur est déjà connecté on le renvoie sur la page du site demandeur
|
||||||
if ($this->getUser()) {
|
if ($this->getUser()) {
|
||||||
@ -29,12 +29,16 @@ class SecurityController extends AbstractController
|
|||||||
$error = $authenticationUtils->getLastAuthenticationError();
|
$error = $authenticationUtils->getLastAuthenticationError();
|
||||||
if ($error) {
|
if ($error) {
|
||||||
if ($request->getSession()->has(SQLLoginUserAuthenticator::ERROR_LOGIN)) {
|
if ($request->getSession()->has(SQLLoginUserAuthenticator::ERROR_LOGIN)) {
|
||||||
$loginForm->addError(new FormError($trans->trans('error.login', [], 'messages')));
|
$loginForm->get('login')->addError(new FormError($trans->trans('error.login', [], 'messages')));
|
||||||
$request->getSession()->remove(SQLLoginUserAuthenticator::ERROR_LOGIN);
|
$request->getSession()->remove(SQLLoginUserAuthenticator::ERROR_LOGIN);
|
||||||
}
|
}
|
||||||
if ($request->getSession()->has(SQLLoginUserAuthenticator::TECHNICAL_ERROR)) {
|
if ($request->getSession()->has(SQLLoginUserAuthenticator::ERROR_PASSWORD)) {
|
||||||
$loginForm->addError(new FormError($trans->trans('error.technical', [], 'messages')));
|
$loginForm->get('password')->addError(new FormError($trans->trans('error.password', [], 'messages')));
|
||||||
$request->getSession()->remove(SQLLoginUserAuthenticator::TECHNICAL_ERROR);
|
$request->getSession()->remove(SQLLoginUserAuthenticator::ERROR_PASSWORD);
|
||||||
|
}
|
||||||
|
if ($request->getSession()->has(SQLLoginUserAuthenticator::ERROR_SQL_LOGIN)) {
|
||||||
|
$loginForm->addError(new FormError($trans->trans('error.sql_login', [], 'messages')));
|
||||||
|
$request->getSession()->remove(SQLLoginUserAuthenticator::ERROR_SQL_LOGIN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +48,7 @@ class SecurityController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/logout', name: 'logout')]
|
#[Route('/logout', name: 'logout')]
|
||||||
public function logout(Request $request): void
|
public function logout(Request $request)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,6 @@ class SQLLoginConfiguration implements ConfigurationInterface
|
|||||||
->arrayNode(SQLLoginRequest::DATA_TO_FETCH)
|
->arrayNode(SQLLoginRequest::DATA_TO_FETCH)
|
||||||
->scalarPrototype()->end()
|
->scalarPrototype()->end()
|
||||||
->end()
|
->end()
|
||||||
->scalarNode(SQLLoginRequest::SUBJECT_REWRITE_EXPRESSION)->defaultNull()->end()
|
|
||||||
->end();
|
->end();
|
||||||
|
|
||||||
return $treeBuilder;
|
return $treeBuilder;
|
||||||
|
@ -6,7 +6,7 @@ use Symfony\Component\Security\Core\User\UserInterface;
|
|||||||
|
|
||||||
class User implements UserInterface
|
class User implements UserInterface
|
||||||
{
|
{
|
||||||
private array $attributes = [];
|
protected array $attributes = [];
|
||||||
private string $login;
|
private string $login;
|
||||||
private string $password;
|
private string $password;
|
||||||
private bool $rememberMe;
|
private bool $rememberMe;
|
||||||
|
@ -16,7 +16,7 @@ class LocaleSubscriber implements EventSubscriberInterface
|
|||||||
$this->defaultLocale = $defaultLocale;
|
$this->defaultLocale = $defaultLocale;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onKernelRequest(RequestEvent $event): void
|
public function onKernelRequest(RequestEvent $event)
|
||||||
{
|
{
|
||||||
$request = $event->getRequest();
|
$request = $event->getRequest();
|
||||||
if (!$request->hasPreviousSession()) {
|
if (!$request->hasPreviousSession()) {
|
||||||
@ -32,7 +32,7 @@ class LocaleSubscriber implements EventSubscriberInterface
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getSubscribedEvents(): array
|
public static function getSubscribedEvents()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
KernelEvents::REQUEST => [['onKernelRequest', 20]],
|
KernelEvents::REQUEST => [['onKernelRequest', 20]],
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Flag\Controller;
|
|
||||||
|
|
||||||
use App\Flag\FlagAccessor;
|
|
||||||
use App\Flag\FlagEnum;
|
|
||||||
use Psr\Cache\CacheItemPoolInterface;
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
||||||
use Symfony\Component\HttpFoundation\Exception\JsonException;
|
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
|
||||||
|
|
||||||
class FlagController extends AbstractController
|
|
||||||
{
|
|
||||||
#[Route('/flag/{flagName}', name: 'flag_update', methods: ['PUT'])]
|
|
||||||
public function updateFlag(CacheItemPoolInterface $cache, Request $request, string $flagName): Response
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
FlagEnum::from($flagName);
|
|
||||||
$flagValue = \json_decode($request->getContent(), true, flags: JSON_THROW_ON_ERROR)[FlagAccessor::FLAG_VALUE];
|
|
||||||
} catch (\ValueError $e) {
|
|
||||||
throw new \InvalidArgumentException('invalid flag name provided');
|
|
||||||
} catch (JsonException $e) {
|
|
||||||
throw new \InvalidArgumentException('invalid json format');
|
|
||||||
}
|
|
||||||
|
|
||||||
$flag = $cache->getItem($flagName);
|
|
||||||
$flag->set($flagValue);
|
|
||||||
$cache->save($flag);
|
|
||||||
|
|
||||||
return new JsonResponse(
|
|
||||||
[\sprintf('flag %s has been %s.', $flagName, $flagValue ? 'enabled' : 'disabled')]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Flag;
|
|
||||||
|
|
||||||
use Psr\Cache\CacheItemPoolInterface;
|
|
||||||
|
|
||||||
class FlagAccessor
|
|
||||||
{
|
|
||||||
public const FLAG_VALUE = 'flagValue';
|
|
||||||
|
|
||||||
public function __construct(
|
|
||||||
private readonly CacheItemPoolInterface $cache
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
|
|
||||||
public function isFlagEnabled(FlagEnum $flagName, bool $fallbackValue = false): bool
|
|
||||||
{
|
|
||||||
$flagValue = $this->cache->getItem($flagName->value)->get();
|
|
||||||
|
|
||||||
if (null === $flagValue) {
|
|
||||||
return $fallbackValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (bool) $flagValue;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Flag;
|
|
||||||
|
|
||||||
enum FlagEnum: string
|
|
||||||
{
|
|
||||||
case Altcha = 'altcha';
|
|
||||||
}
|
|
@ -2,10 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Form;
|
namespace App\Form;
|
||||||
|
|
||||||
use App\Altcha\Form\AltchaType;
|
|
||||||
use App\Flag\FlagAccessor;
|
|
||||||
use App\Flag\FlagEnum;
|
|
||||||
use Symfony\Component\Form\AbstractType;
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
@ -13,12 +11,6 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
|
|||||||
|
|
||||||
class LoginType extends AbstractType
|
class LoginType extends AbstractType
|
||||||
{
|
{
|
||||||
public function __construct(
|
|
||||||
private readonly FlagAccessor $flagAccessor,
|
|
||||||
private readonly bool $altchaEnabled
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
|
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||||
{
|
{
|
||||||
$builder
|
$builder
|
||||||
@ -30,15 +22,12 @@ class LoginType extends AbstractType
|
|||||||
'translation_domain' => 'form',
|
'translation_domain' => 'form',
|
||||||
'label' => 'form.label.password',
|
'label' => 'form.label.password',
|
||||||
])
|
])
|
||||||
;
|
->add('_remember_me', CheckboxType::class, [
|
||||||
|
'required' => false,
|
||||||
if ($this->flagAccessor->isFlagEnabled(FlagEnum::Altcha, $this->altchaEnabled)) {
|
|
||||||
$builder->add('altcha', AltchaType::class, [
|
|
||||||
'translation_domain' => 'form',
|
'translation_domain' => 'form',
|
||||||
'label' => 'altcha.widget.title',
|
'label' => 'form.label.remember_me',
|
||||||
'required' => true,
|
])
|
||||||
]);
|
;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function configureOptions(OptionsResolver $resolver): void
|
public function configureOptions(OptionsResolver $resolver): void
|
||||||
|
@ -8,28 +8,25 @@ use Symfony\Contracts\HttpClient\ResponseInterface;
|
|||||||
|
|
||||||
class Client
|
class Client
|
||||||
{
|
{
|
||||||
private const MAX_RETRY = 3;
|
protected $client;
|
||||||
private const SLEEP_TIME = [
|
|
||||||
5,
|
|
||||||
500,
|
|
||||||
5000,
|
|
||||||
];
|
|
||||||
|
|
||||||
public function __construct(
|
protected $hydraAdminBaseUrl;
|
||||||
private readonly HttpClientInterface $client,
|
|
||||||
private readonly string $hydraAdminBaseUrl
|
public function __construct(HttpClientInterface $client, string $hydraAdminBaseUrl)
|
||||||
) {
|
{
|
||||||
|
$this->client = $client;
|
||||||
|
$this->hydraAdminBaseUrl = $hydraAdminBaseUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fetchLoginRequestInfo(string $loginChallenge): ResponseInterface
|
public function fetchLoginRequestInfo(string $loginChallenge): ResponseInterface
|
||||||
{
|
{
|
||||||
$response = $this->client->request(
|
$response = $this->client->request(
|
||||||
'GET',
|
'GET',
|
||||||
$this->hydraAdminBaseUrl.'/oauth2/auth/requests/login',
|
$this->hydraAdminBaseUrl . '/oauth2/auth/requests/login',
|
||||||
[
|
[
|
||||||
'query' => [
|
'query' => [
|
||||||
'login_challenge' => $loginChallenge,
|
'login_challenge' => $loginChallenge,
|
||||||
],
|
]
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -38,6 +35,7 @@ class Client
|
|||||||
throw new InvalidChallengeException();
|
throw new InvalidChallengeException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,11 +43,11 @@ class Client
|
|||||||
{
|
{
|
||||||
$response = $this->client->request(
|
$response = $this->client->request(
|
||||||
'GET',
|
'GET',
|
||||||
$this->hydraAdminBaseUrl.'/oauth2/auth/requests/logout',
|
$this->hydraAdminBaseUrl . '/oauth2/auth/requests/logout',
|
||||||
[
|
[
|
||||||
'query' => [
|
'query' => [
|
||||||
'logout_challenge' => $logoutChallenge,
|
'logout_challenge' => $logoutChallenge,
|
||||||
],
|
]
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -58,38 +56,27 @@ class Client
|
|||||||
throw new InvalidChallengeException();
|
throw new InvalidChallengeException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fetchConsentRequestInfo(string $consentChallenge): ResponseInterface
|
public function fetchConsentRequestInfo(string $consentChallenge): ResponseInterface
|
||||||
{
|
{
|
||||||
$attempt = 0;
|
|
||||||
while ($attempt < self::MAX_RETRY) {
|
|
||||||
$response = $this->client->request(
|
$response = $this->client->request(
|
||||||
'GET',
|
'GET',
|
||||||
$this->hydraAdminBaseUrl.'/oauth2/auth/requests/consent',
|
$this->hydraAdminBaseUrl . '/oauth2/auth/requests/consent',
|
||||||
[
|
[
|
||||||
'query' => [
|
'query' => [
|
||||||
'consent_challenge' => $consentChallenge,
|
'consent_challenge' => $consentChallenge,
|
||||||
],
|
]
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$status = $response->getStatusCode();
|
switch ($response->getStatusCode()) {
|
||||||
if (503 === $status) {
|
|
||||||
++$attempt;
|
|
||||||
usleep(1000 * self::SLEEP_TIME[$attempt] + rand(1, 5) * 1000);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
switch ($status) {
|
|
||||||
case 404:
|
case 404:
|
||||||
throw new InvalidChallengeException();
|
throw new InvalidChallengeException();
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (self::MAX_RETRY === $attempt) {
|
|
||||||
throw new \Exception(sprintf('Fetch consent a rencontré une erreur %s après %s tentatives', $response->getStatusCode(), self::MAX_RETRY));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
@ -98,13 +85,13 @@ class Client
|
|||||||
{
|
{
|
||||||
$response = $this->client->request(
|
$response = $this->client->request(
|
||||||
'PUT',
|
'PUT',
|
||||||
$this->hydraAdminBaseUrl.'/oauth2/auth/requests/login/accept',
|
$this->hydraAdminBaseUrl . '/oauth2/auth/requests/login/accept',
|
||||||
[
|
[
|
||||||
'query' => [
|
'query' => [
|
||||||
'login_challenge' => $loginChallenge,
|
'login_challenge' => $loginChallenge,
|
||||||
],
|
],
|
||||||
'headers' => [
|
'headers' => [
|
||||||
'Content-Type' => 'application/json',
|
'Content-Type' => 'application/json'
|
||||||
],
|
],
|
||||||
'body' => json_encode($payload),
|
'body' => json_encode($payload),
|
||||||
]
|
]
|
||||||
@ -117,13 +104,13 @@ class Client
|
|||||||
{
|
{
|
||||||
$response = $this->client->request(
|
$response = $this->client->request(
|
||||||
'PUT',
|
'PUT',
|
||||||
$this->hydraAdminBaseUrl.'/oauth2/auth/requests/consent/accept',
|
$this->hydraAdminBaseUrl . '/oauth2/auth/requests/consent/accept',
|
||||||
[
|
[
|
||||||
'query' => [
|
'query' => [
|
||||||
'consent_challenge' => $consentChallenge,
|
'consent_challenge' => $consentChallenge,
|
||||||
],
|
],
|
||||||
'headers' => [
|
'headers' => [
|
||||||
'Content-Type' => 'application/json',
|
'Content-Type' => 'application/json'
|
||||||
],
|
],
|
||||||
'body' => json_encode($payload),
|
'body' => json_encode($payload),
|
||||||
]
|
]
|
||||||
@ -136,13 +123,13 @@ class Client
|
|||||||
{
|
{
|
||||||
$response = $this->client->request(
|
$response = $this->client->request(
|
||||||
'PUT',
|
'PUT',
|
||||||
$this->hydraAdminBaseUrl.'/oauth2/auth/requests/logout/accept',
|
$this->hydraAdminBaseUrl . '/oauth2/auth/requests/logout/accept',
|
||||||
[
|
[
|
||||||
'query' => [
|
'query' => [
|
||||||
'logout_challenge' => $logoutChallenge,
|
'logout_challenge' => $logoutChallenge,
|
||||||
],
|
],
|
||||||
'headers' => [
|
'headers' => [
|
||||||
'Content-Type' => 'application/json',
|
'Content-Type' => 'application/json'
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Hydra;
|
namespace App\Hydra;
|
||||||
|
|
||||||
use App\Entity\User;
|
|
||||||
use App\Hydra\Exception\InvalidChallengeException;
|
use App\Hydra\Exception\InvalidChallengeException;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\Exception\BadRequestException;
|
use Symfony\Component\HttpFoundation\Exception\BadRequestException;
|
||||||
@ -10,14 +9,13 @@ use Symfony\Component\HttpFoundation\RedirectResponse;
|
|||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
||||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||||
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
|
|
||||||
|
|
||||||
class HydraService extends AbstractController
|
class HydraService extends AbstractController
|
||||||
{
|
{
|
||||||
private SessionInterface $session;
|
public SessionInterface $session;
|
||||||
private Client $client;
|
public Client $client;
|
||||||
private TokenStorageInterface $tokenStorage;
|
public TokenStorageInterface $tokenStorage;
|
||||||
private string $baseUrl;
|
public string $baseUrl;
|
||||||
|
|
||||||
public function __construct(Client $client, SessionInterface $session, TokenStorageInterface $tokenStorage, string $baseUrl)
|
public function __construct(Client $client, SessionInterface $session, TokenStorageInterface $tokenStorage, string $baseUrl)
|
||||||
{
|
{
|
||||||
@ -27,7 +25,7 @@ class HydraService extends AbstractController
|
|||||||
$this->baseUrl = $baseUrl;
|
$this->baseUrl = $baseUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function handleLoginRequest(Request $request): RedirectResponse
|
public function handleLoginRequest(Request $request)
|
||||||
{
|
{
|
||||||
$challenge = $request->query->get('login_challenge');
|
$challenge = $request->query->get('login_challenge');
|
||||||
// S'il n'y a pas de challenge, on déclenche une bad request
|
// S'il n'y a pas de challenge, on déclenche une bad request
|
||||||
@ -39,7 +37,7 @@ class HydraService extends AbstractController
|
|||||||
$loginRequestInfo = $res->toArray();
|
$loginRequestInfo = $res->toArray();
|
||||||
if (200 !== $res->getStatusCode()) {
|
if (200 !== $res->getStatusCode()) {
|
||||||
$this->session->clear();
|
$this->session->clear();
|
||||||
throw new BadRequestException();
|
throw new BadRequestException('pas de code 200');
|
||||||
}
|
}
|
||||||
// si le challenge est validé par hydra, on le stocke en session pour l'utiliser par la suite et on redirige vers une route interne protégée qui va déclencher l'identification FranceConnect
|
// si le challenge est validé par hydra, on le stocke en session pour l'utiliser par la suite et on redirige vers une route interne protégée qui va déclencher l'identification FranceConnect
|
||||||
$this->session->set('challenge', $loginRequestInfo['challenge']);
|
$this->session->set('challenge', $loginRequestInfo['challenge']);
|
||||||
@ -47,7 +45,7 @@ class HydraService extends AbstractController
|
|||||||
return new RedirectResponse($this->baseUrl.'/connect/login-accept');
|
return new RedirectResponse($this->baseUrl.'/connect/login-accept');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function handleConsentRequest(Request $request): RedirectResponse
|
public function handleConsentRequest(Request $request)
|
||||||
{
|
{
|
||||||
$challenge = $request->query->get('consent_challenge');
|
$challenge = $request->query->get('consent_challenge');
|
||||||
if (!$challenge) {
|
if (!$challenge) {
|
||||||
@ -55,10 +53,8 @@ class HydraService extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
$consentRequestInfo = $this->client->fetchConsentRequestInfo($challenge)->toArray();
|
$consentRequestInfo = $this->client->fetchConsentRequestInfo($challenge)->toArray();
|
||||||
|
/** @var User */
|
||||||
$user = $this->getUser();
|
$user = $this->getUser();
|
||||||
if (!$user instanceof User) {
|
|
||||||
throw new AccessDeniedException('Utilisateur non autorisé.');
|
|
||||||
}
|
|
||||||
$consentAcceptResponse = $this->client->acceptConsentRequest($consentRequestInfo['challenge'], [
|
$consentAcceptResponse = $this->client->acceptConsentRequest($consentRequestInfo['challenge'], [
|
||||||
'grant_scope' => $consentRequestInfo['requested_scope'],
|
'grant_scope' => $consentRequestInfo['requested_scope'],
|
||||||
'session' => [
|
'session' => [
|
||||||
@ -69,7 +65,7 @@ class HydraService extends AbstractController
|
|||||||
return new RedirectResponse($consentAcceptResponse['redirect_to']);
|
return new RedirectResponse($consentAcceptResponse['redirect_to']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function handleLogoutRequest(Request $request): RedirectResponse
|
public function handleLogoutRequest(Request $request)
|
||||||
{
|
{
|
||||||
$logoutChallenge = $request->get('logout_challenge');
|
$logoutChallenge = $request->get('logout_challenge');
|
||||||
if (empty($logoutChallenge)) {
|
if (empty($logoutChallenge)) {
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\SQLLogin\Exception;
|
|
||||||
|
|
||||||
use Exception;
|
|
||||||
|
|
||||||
class DataToFetchConfigurationException extends Exception
|
|
||||||
{
|
|
||||||
}
|
|
@ -4,6 +4,6 @@ namespace App\SQLLogin\Exception;
|
|||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
|
||||||
class EmptyResultException extends Exception
|
class InvalidSQLLoginAlgoException extends Exception
|
||||||
{
|
{
|
||||||
}
|
}
|
@ -4,6 +4,6 @@ namespace App\SQLLogin\Exception;
|
|||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
|
||||||
class SecurityPatternConfigurationException extends Exception
|
class InvalidSQLLoginConfigurationException extends Exception
|
||||||
{
|
{
|
||||||
}
|
}
|
@ -4,6 +4,6 @@ namespace App\SQLLogin\Exception;
|
|||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
|
||||||
class NullDataToFetchException extends Exception
|
class InvalidSQLLoginException extends Exception
|
||||||
{
|
{
|
||||||
}
|
}
|
@ -7,13 +7,32 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|||||||
|
|
||||||
class SQLLoginConnect extends AbstractController
|
class SQLLoginConnect extends AbstractController
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var Singleton
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
private static $_instance = null;
|
private static $_instance = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructeur de la classe
|
||||||
|
*
|
||||||
|
* @param void
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function __construct()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode qui crée l'unique instance de la classe
|
* Méthode qui crée l'unique instance de la classe
|
||||||
* si elle n'existe pas encore puis la retourne.
|
* si elle n'existe pas encore puis la retourne.
|
||||||
|
*
|
||||||
|
* @param void
|
||||||
|
*
|
||||||
|
* @return SQLLoginConnect
|
||||||
*/
|
*/
|
||||||
public static function getInstance(): SQLLoginConnect
|
public static function getInstance()
|
||||||
{
|
{
|
||||||
if (is_null(self::$_instance)) {
|
if (is_null(self::$_instance)) {
|
||||||
self::$_instance = new SQLLoginConnect();
|
self::$_instance = new SQLLoginConnect();
|
||||||
@ -22,7 +41,7 @@ class SQLLoginConnect extends AbstractController
|
|||||||
return self::$_instance;
|
return self::$_instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function connect($urlDatabase, $dbUser, $dbPassword): PDO
|
public function connect($urlDatabase, $dbUser, $dbPassword)
|
||||||
{
|
{
|
||||||
return new PDO($urlDatabase, $dbUser, $dbPassword);
|
return new PDO($urlDatabase, $dbUser, $dbPassword);
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
namespace App\SQLLogin;
|
namespace App\SQLLogin;
|
||||||
|
|
||||||
use App\SQLLogin\Exception\NullDataToFetchException;
|
|
||||||
|
|
||||||
class SQLLoginRequest
|
class SQLLoginRequest
|
||||||
{
|
{
|
||||||
public const DATA_TO_FETCH = 'data_to_fetch';
|
public const DATA_TO_FETCH = 'data_to_fetch';
|
||||||
@ -12,12 +10,11 @@ class SQLLoginRequest
|
|||||||
public const PASSWORD_COLUMN_NAME = 'password_column_name';
|
public const PASSWORD_COLUMN_NAME = 'password_column_name';
|
||||||
public const PASSWORD_NEED_UPGRADE = 'password_need_upgrade';
|
public const PASSWORD_NEED_UPGRADE = 'password_need_upgrade';
|
||||||
public const TABLE_NAME = 'table_name';
|
public const TABLE_NAME = 'table_name';
|
||||||
public const SUBJECT_REWRITE_EXPRESSION = 'subject_rewrite_expression';
|
|
||||||
|
|
||||||
private array $config;
|
protected array $config;
|
||||||
private string $dsn;
|
protected string $dsn;
|
||||||
private string $user;
|
protected string $user;
|
||||||
private string $password;
|
protected string $password;
|
||||||
|
|
||||||
public function __construct(string $dsn, string $user, string $password, array $config = [])
|
public function __construct(string $dsn, string $user, string $password, array $config = [])
|
||||||
{
|
{
|
||||||
@ -67,42 +64,28 @@ class SQLLoginRequest
|
|||||||
return $this->config[self::DATA_TO_FETCH];
|
return $this->config[self::DATA_TO_FETCH];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getSubjectRewriteExpression(): ?string
|
public function getRequestScope()
|
||||||
{
|
{
|
||||||
return $this->config[self::SUBJECT_REWRITE_EXPRESSION];
|
$scope = '';
|
||||||
|
foreach ($this->config[self::DATA_TO_FETCH] as $data) {
|
||||||
|
$scope .= $data.',';
|
||||||
}
|
}
|
||||||
|
$scope = substr($scope, 0, -1);
|
||||||
|
|
||||||
private function getDataFields(): array
|
return 'SELECT '.$scope.' FROM '.$this->getTableName().' WHERE '.$this->getLoginColumnName().' = :'.$this->getLoginColumnName().';';
|
||||||
{
|
|
||||||
if (!$this->config[self::DATA_TO_FETCH]) {
|
|
||||||
throw new NullDataToFetchException();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->config[self::DATA_TO_FETCH];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construction de la string pour la requête préparée selon la configuration yaml
|
* Construction de la string pour la requête préparée selon la configuration yaml
|
||||||
* intègre la récupération du mot de passe hashé, du salt et de besoin d'upgrade de la méthode de hashage
|
* intègre la récupération du mot de passe hashé, du salt et de besoin d'upgrade de la méthode de hashage
|
||||||
*/
|
*/
|
||||||
private function getPasswordFields(): array
|
public function getRequestPassword()
|
||||||
{
|
{
|
||||||
$fields[] = $this->getPasswordColumnName();
|
$fields = $this->getPasswordColumnName();
|
||||||
if (!empty($this->getSaltColumnName())) {
|
if (!empty($this->getSaltColumnName())) {
|
||||||
$fields[] = $this->getSaltColumnName();
|
$fields .= ', '.$this->getSaltColumnName();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $fields;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Construction de la string pour la requête préparée selon la configuration yaml
|
|
||||||
* intègre la récupération du mot de passe hashé, du salt et de besoin d'upgrade de la méthode de hashage
|
|
||||||
*/
|
|
||||||
public function getDatasRequest(): string
|
|
||||||
{
|
|
||||||
$fields = join(',', array_merge($this->getPasswordFields(), $this->getDataFields()));
|
|
||||||
|
|
||||||
return 'SELECT '.$fields.' FROM '.$this->getTableName().' WHERE '.$this->getLoginColumnName().' = :'.$this->getLoginColumnName().';';
|
return 'SELECT '.$fields.' FROM '.$this->getTableName().' WHERE '.$this->getLoginColumnName().' = :'.$this->getLoginColumnName().';';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Security\Hasher;
|
namespace App\Security\Hasher;
|
||||||
|
|
||||||
|
use App\SQLLogin\Exception\InvalidSQLLoginConfigurationException;
|
||||||
use App\SQLLogin\Exception\InvalidSQLPasswordException;
|
use App\SQLLogin\Exception\InvalidSQLPasswordException;
|
||||||
use App\SQLLogin\Exception\SecurityPatternConfigurationException;
|
|
||||||
use Psr\Log\LoggerInterface;
|
|
||||||
use Symfony\Component\PasswordHasher\Exception\InvalidPasswordException;
|
use Symfony\Component\PasswordHasher\Exception\InvalidPasswordException;
|
||||||
use Symfony\Component\PasswordHasher\Hasher\CheckPasswordLengthTrait;
|
use Symfony\Component\PasswordHasher\Hasher\CheckPasswordLengthTrait;
|
||||||
use Symfony\Component\PasswordHasher\LegacyPasswordHasherInterface;
|
use Symfony\Component\PasswordHasher\LegacyPasswordHasherInterface;
|
||||||
@ -20,7 +19,7 @@ class PasswordEncoder implements LegacyPasswordHasherInterface
|
|||||||
protected array $hashAlgoLegacy;
|
protected array $hashAlgoLegacy;
|
||||||
protected array $securityPattern;
|
protected array $securityPattern;
|
||||||
|
|
||||||
public function __construct(?string $pepper, string $hashAlgoLegacy, string $securityPattern, private LoggerInterface $loggerInterface)
|
public function __construct(?string $pepper, string $hashAlgoLegacy, string $securityPattern)
|
||||||
{
|
{
|
||||||
$this->pepper = $pepper;
|
$this->pepper = $pepper;
|
||||||
$this->hashAlgoLegacy = explode(',', $hashAlgoLegacy);
|
$this->hashAlgoLegacy = explode(',', $hashAlgoLegacy);
|
||||||
@ -30,7 +29,7 @@ class PasswordEncoder implements LegacyPasswordHasherInterface
|
|||||||
/**
|
/**
|
||||||
* Pas utilisé, mais on doit le garder pour le implements
|
* Pas utilisé, mais on doit le garder pour le implements
|
||||||
*/
|
*/
|
||||||
public function hash(string $plainPassword, ?string $salt = null): string
|
public function hash(string $plainPassword, string $salt = null): string
|
||||||
{
|
{
|
||||||
if ($this->isPasswordTooLong($plainPassword)) {
|
if ($this->isPasswordTooLong($plainPassword)) {
|
||||||
throw new InvalidPasswordException();
|
throw new InvalidPasswordException();
|
||||||
@ -39,7 +38,7 @@ class PasswordEncoder implements LegacyPasswordHasherInterface
|
|||||||
return hash($plainPassword.$salt, $this->hashAlgoLegacy[0]);
|
return hash($plainPassword.$salt, $this->hashAlgoLegacy[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function verify(string $hashedPassword, string $plainPassword, ?string $salt = null): bool
|
public function verify(string $hashedPassword, string $plainPassword, string $salt = null): bool
|
||||||
{
|
{
|
||||||
if ('' === $plainPassword || $this->isPasswordTooLong($plainPassword)) {
|
if ('' === $plainPassword || $this->isPasswordTooLong($plainPassword)) {
|
||||||
return false;
|
return false;
|
||||||
@ -47,20 +46,20 @@ class PasswordEncoder implements LegacyPasswordHasherInterface
|
|||||||
|
|
||||||
$completedPassword = $this->getPasswordToHash($plainPassword, $salt);
|
$completedPassword = $this->getPasswordToHash($plainPassword, $salt);
|
||||||
|
|
||||||
if (str_starts_with($hashedPassword, '{SSHA}') && $this->compareSsha($hashedPassword, $plainPassword)) {
|
foreach ($this->hashAlgoLegacy as $algo) {
|
||||||
|
if ('ssha' === $algo && $this->compareSsha($hashedPassword, $completedPassword)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if ($this->isObsoleteAlgo($algo)) {
|
||||||
|
if (hash_equals(hash($algo, $completedPassword), $hashedPassword)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if (password_verify($completedPassword, $hashedPassword)) {
|
if (password_verify($completedPassword, $hashedPassword)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (hash_algos() as $algo) {
|
|
||||||
if (hash_equals($hashedPassword, hash($algo, $completedPassword))) {
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new InvalidSQLPasswordException();
|
throw new InvalidSQLPasswordException();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,8 +75,13 @@ class PasswordEncoder implements LegacyPasswordHasherInterface
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne la string à hasher en fonction du pattern indiqué
|
* Retourne la string à hasher en fonction du pattern indiqué
|
||||||
|
*
|
||||||
|
* @param mixed $plainTextPassword
|
||||||
|
* @param mixed $salt
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected function getPasswordToHash(string $plainTextPassword, ?string $salt = null): string
|
protected function getPasswordToHash($plainTextPassword, $salt)
|
||||||
{
|
{
|
||||||
$arrayRef = [
|
$arrayRef = [
|
||||||
self::PASSWORD_PATTERN => $plainTextPassword,
|
self::PASSWORD_PATTERN => $plainTextPassword,
|
||||||
@ -87,8 +91,7 @@ class PasswordEncoder implements LegacyPasswordHasherInterface
|
|||||||
|
|
||||||
foreach ($this->securityPattern as $term) {
|
foreach ($this->securityPattern as $term) {
|
||||||
if (self::PEPPER_PATTERN !== $term && self::PASSWORD_PATTERN !== $term && self::SALT_PATTERN !== $term) {
|
if (self::PEPPER_PATTERN !== $term && self::PASSWORD_PATTERN !== $term && self::SALT_PATTERN !== $term) {
|
||||||
$this->loggerInterface->critical('La configuration du security pattern est invalide, les termes autorisés sont : '.self::PASSWORD_PATTERN.', '.self::SALT_PATTERN.' et '.self::PEPPER_PATTERN);
|
throw new InvalidSQLLoginConfigurationException();
|
||||||
throw new SecurityPatternConfigurationException('La configuration du security pattern est invalide, les termes autorisés sont : '.self::PASSWORD_PATTERN.', '.self::SALT_PATTERN.' et '.self::PEPPER_PATTERN);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$completedPlainPassword = '';
|
$completedPlainPassword = '';
|
||||||
@ -99,7 +102,7 @@ class PasswordEncoder implements LegacyPasswordHasherInterface
|
|||||||
return $completedPlainPassword;
|
return $completedPlainPassword;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function compareSsha(string $hashPassword, string $plainPassword): bool
|
protected function compareSsha($hashPassword, $plainPassword)
|
||||||
{
|
{
|
||||||
$base_64_hash_with_salt = substr($hashPassword, 6);
|
$base_64_hash_with_salt = substr($hashPassword, 6);
|
||||||
$hash_with_salt = base64_decode($base_64_hash_with_salt);
|
$hash_with_salt = base64_decode($base_64_hash_with_salt);
|
||||||
|
@ -5,40 +5,36 @@ namespace App\Security;
|
|||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
use App\Security\Hasher\PasswordEncoder;
|
use App\Security\Hasher\PasswordEncoder;
|
||||||
use App\Service\SQLLoginService;
|
use App\Service\SQLLoginService;
|
||||||
use App\SQLLogin\Exception\DataToFetchConfigurationException;
|
|
||||||
use App\SQLLogin\Exception\EmptyResultException;
|
|
||||||
use App\SQLLogin\Exception\InvalidSQLPasswordException;
|
use App\SQLLogin\Exception\InvalidSQLPasswordException;
|
||||||
use App\SQLLogin\Exception\SecurityPatternConfigurationException;
|
|
||||||
use App\SQLLogin\SQLLoginRequest;
|
|
||||||
use PDOException;
|
use PDOException;
|
||||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
||||||
use Symfony\Component\Security\Core\Exception\AuthenticationException;
|
use Symfony\Component\Security\Core\Exception\AuthenticationException;
|
||||||
use Symfony\Component\Security\Core\Security;
|
use Symfony\Component\Security\Core\Security;
|
||||||
use Symfony\Component\Security\Http\Authenticator\AbstractLoginFormAuthenticator;
|
use Symfony\Component\Security\Http\Authenticator\AbstractLoginFormAuthenticator;
|
||||||
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\RememberMeBadge;
|
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\RememberMeBadge;
|
||||||
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
|
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
|
||||||
|
use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
|
||||||
use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
|
use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
|
||||||
|
|
||||||
class SQLLoginUserAuthenticator extends AbstractLoginFormAuthenticator
|
class SQLLoginUserAuthenticator extends AbstractLoginFormAuthenticator
|
||||||
{
|
{
|
||||||
public const LOGIN_ROUTE = 'app_login';
|
public const LOGIN_ROUTE = 'app_login';
|
||||||
public const ERROR_LOGIN = 'error_login';
|
public const ERROR_LOGIN = 'error_login';
|
||||||
public const TECHNICAL_ERROR = 'technical_error';
|
public const ERROR_PASSWORD = 'error_password';
|
||||||
|
public const ERROR_SQL_LOGIN = 'error_sql_login';
|
||||||
|
|
||||||
private string $baseUrl;
|
protected string $baseUrl;
|
||||||
|
private SQLLoginService $sqlLoginService;
|
||||||
|
private PasswordEncoder $passwordHasher;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(string $baseUrl, SQLLoginService $sqlLoginService, PasswordEncoder $passwordHasher)
|
||||||
string $baseUrl,
|
{
|
||||||
private SQLLoginService $sqlLoginService,
|
|
||||||
private PasswordEncoder $passwordHasher,
|
|
||||||
private SQLLoginRequest $sqlLoginRequest
|
|
||||||
) {
|
|
||||||
$this->baseUrl = $baseUrl;
|
$this->baseUrl = $baseUrl;
|
||||||
$this->sqlLoginService = $sqlLoginService;
|
$this->sqlLoginService = $sqlLoginService;
|
||||||
$this->passwordHasher = $passwordHasher;
|
$this->passwordHasher = $passwordHasher;
|
||||||
$this->sqlLoginRequest = $sqlLoginRequest;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,57 +47,38 @@ class SQLLoginUserAuthenticator extends AbstractLoginFormAuthenticator
|
|||||||
return self::LOGIN_ROUTE === $request->attributes->get('_route') && $request->isMethod('POST');
|
return self::LOGIN_ROUTE === $request->attributes->get('_route') && $request->isMethod('POST');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey): RedirectResponse
|
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey): ?Response
|
||||||
{
|
{
|
||||||
return new RedirectResponse($this->baseUrl.'/connect/login-accept');
|
return new RedirectResponse($this->baseUrl.'/connect/login-accept');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onAuthenticationFailure(Request $request, AuthenticationException $exception): RedirectResponse
|
public function onAuthenticationFailure(Request $request, AuthenticationException $exception): Response
|
||||||
{
|
{
|
||||||
$request->getSession()->set(Security::AUTHENTICATION_ERROR, $exception);
|
$request->getSession()->set(Security::AUTHENTICATION_ERROR, $exception);
|
||||||
|
|
||||||
return new RedirectResponse($this->baseUrl.'/login');
|
return new RedirectResponse($this->baseUrl.'/login');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function authenticate(Request $request): SelfValidatingPassport
|
public function authenticate(Request $request): Passport
|
||||||
{
|
{
|
||||||
$form = $request->request->get('login');
|
$form = $request->request->get('login');
|
||||||
$login = $form['login'];
|
$login = $form['login'];
|
||||||
$plaintextPassword = $form['password'];
|
$plaintextPassword = $form['password'];
|
||||||
$rememberMe = isset($form['_remember_me']) ? true : false;
|
$rememberMe = isset($form['_remember_me']) ? true : false;
|
||||||
$session = $request->getSession();
|
|
||||||
try {
|
try {
|
||||||
$datas = $this->sqlLoginService->fetchPasswordAndDatas($login);
|
// requête préparée
|
||||||
} catch (EmptyResultException $e) {
|
list($remoteHashedPassword, $remoteSalt) = $this->sqlLoginService->fetchPassword($login);
|
||||||
$session->set(self::ERROR_LOGIN, true);
|
} catch (PDOException $e) {
|
||||||
throw new AuthenticationException();
|
$request->getSession()->set(self::ERROR_SQL_LOGIN, true);
|
||||||
} catch (DataToFetchConfigurationException|PDOException $e) {
|
|
||||||
\Sentry\captureException($e);
|
|
||||||
$session->set(self::TECHNICAL_ERROR, true);
|
|
||||||
throw new AuthenticationException();
|
throw new AuthenticationException();
|
||||||
}
|
}
|
||||||
$remoteHashedPassword = $datas[$this->sqlLoginRequest->getPasswordColumnName()];
|
if ($remoteHashedPassword) {
|
||||||
unset($datas[$this->sqlLoginRequest->getPasswordColumnName()]);
|
|
||||||
$remoteSalt = null;
|
|
||||||
if ($this->sqlLoginRequest->getSaltColumnName() && isset($datas[$this->sqlLoginRequest->getSaltColumnName()])) {
|
|
||||||
$remoteSalt = $datas[$this->sqlLoginRequest->getSaltColumnName()];
|
|
||||||
unset($datas[$this->sqlLoginRequest->getSaltColumnName()]);
|
|
||||||
}
|
|
||||||
if (null === $remoteHashedPassword) {
|
|
||||||
$remoteHashedPassword = '';
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
// Comparaison remote hash et hash du input password + salt
|
// Comparaison remote hash et hash du input password + salt
|
||||||
$this->passwordHasher->verify($remoteHashedPassword, $plaintextPassword, $remoteSalt);
|
$this->passwordHasher->verify($remoteHashedPassword, $plaintextPassword, $remoteSalt);
|
||||||
} catch (InvalidSQLPasswordException $e) {
|
$attributes = $this->sqlLoginService->fetchDatas($login);
|
||||||
$session->set(self::ERROR_LOGIN, true);
|
$user = new User($login, $remoteHashedPassword, $attributes, $rememberMe);
|
||||||
throw new AuthenticationException();
|
|
||||||
} catch (SecurityPatternConfigurationException $e) {
|
|
||||||
\Sentry\captureException($e);
|
|
||||||
$session->set(self::TECHNICAL_ERROR, true);
|
|
||||||
throw new AuthenticationException();
|
|
||||||
}
|
|
||||||
$user = new User($login, $remoteHashedPassword, $datas, $rememberMe);
|
|
||||||
$loader = function (string $userIdentifier) use ($user) {
|
$loader = function (string $userIdentifier) use ($user) {
|
||||||
return $user->getLogin() == $userIdentifier ? $user : null;
|
return $user->getLogin() == $userIdentifier ? $user : null;
|
||||||
};
|
};
|
||||||
@ -112,6 +89,16 @@ class SQLLoginUserAuthenticator extends AbstractLoginFormAuthenticator
|
|||||||
$passport->setAttribute('attributes', $user->getAttributes());
|
$passport->setAttribute('attributes', $user->getAttributes());
|
||||||
|
|
||||||
return $passport;
|
return $passport;
|
||||||
|
} catch (InvalidSQLPasswordException $e) {
|
||||||
|
$request->getSession()->set(self::ERROR_PASSWORD, true);
|
||||||
|
throw new AuthenticationException();
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
$request->getSession()->set(self::ERROR_SQL_LOGIN, true);
|
||||||
|
throw new AuthenticationException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$request->getSession()->set(self::ERROR_LOGIN, true);
|
||||||
|
throw new AuthenticationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getLoginUrl(Request $request): string
|
protected function getLoginUrl(Request $request): string
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user