diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..95b2348
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,23 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 4
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.json]
+indent_size = 2
+
+[*.yml]
+indent_size = 2
+
+[*.yaml]
+indent_size = 2
+
+[Makefile]
+indent_style = tab
+
+[*.neon]
+indent_style = tab
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..418a22e
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,13 @@
+# Ignoring files for distribution archieves
+.github/ export-ignore
+etc/ export-ignore
+tests/ export-ignore
+var/ export-ignore
+.devcontainer.json export-ignore
+.editorconfig export-ignore
+.gitattributes export-ignore
+.gitignore export-ignore
+CONTRIBUTING.md export-ignore
+infection.json.dist export-ignore
+Makefile export-ignore
+README.md export-ignore
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 0000000..fbfd285
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1 @@
+* @WyriHaximus
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..9c4f1ea
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+github: WyriHaximus
\ No newline at end of file
diff --git a/.github/boring-cyborg.yml b/.github/boring-cyborg.yml
new file mode 100644
index 0000000..80bcb6b
--- /dev/null
+++ b/.github/boring-cyborg.yml
@@ -0,0 +1,60 @@
+labelPRBasedOnFilePath:
+ "Documentation ๐":
+ - README.md
+ - CONTRIBUTING.md
+ "Dependencies ๐ฆ":
+ - Dockerfile*
+ - composer.*
+ - package.json
+ - package-lock.json
+ - yarn.lock
+ "Docker ๐ณ":
+ - Dockerfile*
+ - .docker/**/*
+ "Image ๐ผ":
+ - "**/*.gif"
+ - "**/*.jpg"
+ - "**/*.jpeg"
+ - "**/*.png"
+ - "**/*.webp"
+ "CSS ๐ฉโ๐จ":
+ - "**/*.css"
+ "HTML ๐ทโโ๏ธ":
+ - "**/*.htm"
+ - "**/*.html"
+ "NEON ๐ฆนโโ๏ธ":
+ - "**/*.neon"
+ "MarkDown ๐":
+ - "**/*.md"
+ "YAML ๐":
+ - "**/*.yml"
+ - "**/*.yaml"
+ "JSON ๐จโ๐ผ":
+ - "**/*.json"
+ "Go ๐น":
+ - "**/*.go"
+ "JavaScript ๐ฆ":
+ - "**/*.js"
+ - package.json
+ - package-lock.json
+ - yarn.lock
+ "PHP ๐":
+ - "**/*.php"
+ - composer.*
+ "Configuration โ":
+ - .github/*
+ "CI ๐ง":
+ - .github/workflows/*
+ - .scrutinizer.yml
+ "Templates ๐ฒ":
+ - "**/*.twig"
+ - "**/*.tpl"
+ "Helm โธ":
+ - .helm/**/*
+ "Tests ๐งช":
+ - tests/**/*
+ "Source ๐ฎ":
+ - src/**/*
+
+labelerFlags:
+ labelOnPRUpdates: true
diff --git a/.github/renovate.json b/.github/renovate.json
new file mode 100644
index 0000000..c3a6d94
--- /dev/null
+++ b/.github/renovate.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": [
+ "github>WyriHaximus/renovate-config:php-package"
+ ]
+}
diff --git a/.github/settings.yml b/.github/settings.yml
new file mode 100644
index 0000000..67ba9d3
--- /dev/null
+++ b/.github/settings.yml
@@ -0,0 +1,115 @@
+repository:
+ private: false
+ has_issues: true
+ has_wiki: false
+ has_downloads: true
+ default_branch: master
+ allow_squash_merge: false
+ allow_merge_commit: true
+ allow_rebase_merge: false
+
+# Labels: define labels for Issues and Pull Requests
+labels:
+ - name: "Dependencies ๐ฆ"
+ color: 0025ff
+ description: "Pull requests that update a dependency file"
+ - name: "Image ๐ผ"
+ color: 00ffff
+ - name: "HTML ๐ทโโ๏ธ"
+ color: ffffff
+ - name: "CSS ๐ฉโ๐จ"
+ color: b3b3b3
+ - name: "JavaScript ๐ฆ"
+ color: ffff00
+ - name: "Go ๐น"
+ color: 00ADD8
+ - name: "JSON ๐จโ๐ผ"
+ color: 00ADD8
+ - name: "NEON ๐ฆนโโ๏ธ"
+ color: CE3262
+ - name: "MarkDown ๐"
+ color: 000000
+ - name: "YAML ๐"
+ color: ff1aff
+ - name: "Templates ๐ฒ"
+ color: 009933
+ - name: "Helm โธ"
+ color: 091C84
+ - name: "Tests ๐งช"
+ color: ffe6e6
+ - name: "Source ๐ฎ"
+ color: e6ffe6
+ - name: "Configuration โ"
+ color: b3b3cc
+ - name: "PHP ๐"
+ color: 8892BF
+ description: "Hypertext Pre Processor"
+ - name: "Docker ๐ณ"
+ color: 0db7ed
+ description: "Pull requests that relate to Docker"
+ - name: "CI ๐ง"
+ color: ffff00
+ - name: "Feature ๐"
+ color: 66ff99
+ - name: "Documentation ๐"
+ color: 6666ff
+ - name: "Security ๐ต๏ธโโ๏ธ"
+ color: ff0000
+ - name: "Hacktoberfest ๐"
+ color: 152347
+ - name: "Bug ๐"
+ color: d73a4a
+ description: "Something isn't working"
+ oldname: bug
+ - name: "Duplicate โ"
+ color: cfd3d7
+ description: "This issue or pull request already exists"
+ oldname: duplicate
+ - name: "Enhancement โจ"
+ color: a2eeef
+ description: "New feature or request"
+ oldname: enhancement
+ - name: "Good First Issue"
+ color: 7057ff
+ description: "Good for newcomers"
+ oldname: "good first issue"
+ - name: "Help Wanted"
+ color: 008672
+ description: "Extra attention is needed"
+ oldname: "help wanted"
+ - name: Invalid
+ color: e4e669
+ description: "This doesn't seem right"
+ oldname: invalid
+ - name: "Question โ"
+ color: d876e3
+ description: "Further information is requested"
+ oldname: question
+ - name: "Will not be fixed ๐"
+ color: ffffff
+ description: "This will not be worked on"
+ oldname: wontfix
+ - name: "Sponsor Request โค๏ธ"
+ color: fedbf0
+ description: "Issue/PR opened by sponsor"
+
+branches:
+ - name: master
+ protection:
+ required_pull_request_reviews:
+ required_approving_review_count: 1
+ dismiss_stale_reviews: true
+ require_code_owner_reviews: true
+ # Required. Require status checks to pass before merging. Set to null to disable
+ required_status_checks:
+ # Required. Require branches to be up to date before merging.
+ strict: true
+ # Required. The list of status checks to require in order to merge into this branch
+ contexts: []
+ # Required. Enforce all configured restrictions for administrators. Set to true to enforce required status checks for repository administrators. Set to null to disable.
+ enforce_admins: true
+ # Required. Restrict who can push to this branch. Team and user restrictions are only available for organization-owned repositories. Set to null to disable.
+ restrictions:
+ apps: []
+ users: []
+ teams: []
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..cd15956
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,17 @@
+name: Continuous Integration
+on:
+ push:
+ branches:
+ - 'main'
+ - 'master'
+ - 'refs/heads/v[0-9]+.[0-9]+.[0-9]+'
+ pull_request:
+## This workflow needs the `pull-request` permissions to work for the package diffing
+## Refs: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#permissions
+permissions:
+ pull-requests: write
+ contents: read
+jobs:
+ ci:
+ name: Continuous Integration
+ uses: WyriHaximus/github-workflows/.github/workflows/package.yaml@main
diff --git a/.github/workflows/release-managment.yaml b/.github/workflows/release-managment.yaml
new file mode 100644
index 0000000..c49b362
--- /dev/null
+++ b/.github/workflows/release-managment.yaml
@@ -0,0 +1,23 @@
+name: Release Management
+on:
+ pull_request:
+ types:
+ - opened
+ - labeled
+ - unlabeled
+ - synchronize
+ - reopened
+ milestone:
+ types:
+ - closed
+permissions:
+ contents: write
+ issues: write
+ pull-requests: write
+jobs:
+ release-managment:
+ name: Create Release
+ uses: WyriHaximus/github-workflows/.github/workflows/package-release-managment.yaml@main
+ with:
+ milestone: ${{ github.event.milestone.title }}
+ description: ${{ github.event.milestone.title }}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..03ad991
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+var/*
+!var/.gitkeep
+vendor/
+etc/qa/.phpunit.result.cache
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..51ad620
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,89 @@
+# set all to phony
+SHELL=bash
+
+.PHONY: *
+
+COMPOSER_SHOW_EXTENSION_LIST=$(shell composer show -t | grep -o "\-\-\(ext-\).\+" | sort | uniq | cut -d- -f4- | tr -d '\n' | grep . | sed '/^$$/d' | xargs | sed -e 's/ /, /g' | tr -cd '[:alnum:],' | sed 's/.$$//')
+SLIM_DOCKER_IMAGE=$(shell php -r 'echo count(array_intersect(["gd", "vips"], explode(",", "${COMPOSER_SHOW_EXTENSION_LIST}"))) > 0 ? "" : "-slim";')
+COMPOSER_CACHE_DIR=$(shell composer config --global cache-dir -q || echo ${HOME}/.composer-php/cache)
+PHP_VERSION:=$(shell docker run --rm -v "`pwd`:`pwd`" jess/jq jq -r -c '.config.platform.php' "`pwd`/composer.json" | php -r "echo str_replace('|', '.', explode('.', implode('|', explode('.', stream_get_contents(STDIN), 2)), 2)[0]);")
+COMPOSER_CONTAINER_CACHE_DIR=$(shell docker run --rm -it "ghcr.io/wyrihaximusnet/php:${PHP_VERSION}-nts-alpine${SLIM_DOCKER_IMAGE}-dev" composer config --global cache-dir -q || echo ${HOME}/.composer-php/cache)
+
+ifneq ("$(wildcard /.you-are-in-a-wyrihaximus.net-php-docker-image)","")
+ IN_DOCKER=TRUE
+else
+ IN_DOCKER=FALSE
+endif
+
+ifeq ("$(IN_DOCKER)","TRUE")
+ DOCKER_RUN:=
+else
+ DOCKER_RUN:=docker run --rm -it \
+ -v "`pwd`:`pwd`" \
+ -v "${COMPOSER_CACHE_DIR}:${COMPOSER_CONTAINER_CACHE_DIR}" \
+ -w "`pwd`" \
+ "ghcr.io/wyrihaximusnet/php:${PHP_VERSION}-zts-alpine${SLIM_DOCKER_IMAGE}-dev"
+endif
+
+ifneq (,$(findstring icrosoft,$(shell cat /proc/version)))
+ THREADS=1
+else
+ THREADS=$(shell nproc)
+endif
+
+all: ## Runs everything ###
+ @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | grep -v "###" | awk 'BEGIN {FS = ":.*?## "}; {printf "%s\n", $$1}' | xargs --open-tty $(MAKE)
+
+syntax-php: ## Lint PHP syntax
+ $(DOCKER_RUN) vendor/bin/parallel-lint --exclude vendor .
+
+cs-fix: ## Fix any automatically fixable code style issues
+ $(DOCKER_RUN) vendor/bin/phpcbf --parallel=$(THREADS) --cache=./var/.phpcs.cache.json --standard=./etc/qa/phpcs.xml || $(DOCKER_RUN) vendor/bin/phpcbf --parallel=$(THREADS) --cache=./var/.phpcs.cache.json --standard=./etc/qa/phpcs.xml || $(DOCKER_RUN) vendor/bin/phpcbf --parallel=$(THREADS) --cache=./var/.phpcs.cache.json --standard=./etc/qa/phpcs.xml -vvvv
+
+cs: ## Check the code for code style issues
+ $(DOCKER_RUN) vendor/bin/phpcs --parallel=$(THREADS) --cache=./var/.phpcs.cache.json --standard=./etc/qa/phpcs.xml
+
+stan: ## Run static analysis (PHPStan)
+ $(DOCKER_RUN) vendor/bin/phpstan analyse src --ansi -c ./etc/qa/phpstan.neon
+
+psalm: ## Run static analysis (Psalm)
+ $(DOCKER_RUN) vendor/bin/psalm --threads=$(THREADS) --shepherd --stats --config=./etc/qa/psalm.xml
+
+unit-testing: ## Run tests
+ $(DOCKER_RUN) vendor/bin/phpunit --colors=always -c ./etc/qa/phpunit.xml --coverage-text --coverage-html ./var/tests-unit-coverage-html --coverage-clover ./var/tests-unit-clover-coverage.xml
+ $(DOCKER_RUN) test -n "$(COVERALLS_REPO_TOKEN)" && test -n "$(COVERALLS_RUN_LOCALLY)" && test -f ./var/tests-unit-clover-coverage.xml && vendor/bin/php-coveralls -v --coverage_clover ./build/logs/clover.xml --json_path ./var/tests-unit-clover-coverage-upload.json || true
+
+unit-testing-raw: ## Run tests ###
+ php vendor/phpunit/phpunit/phpunit --colors=always -c ./etc/qa/phpunit.xml --coverage-text --coverage-html ./var/tests-unit-coverage-html --coverage-clover ./var/tests-unit-clover-coverage.xml
+ test -n "$(COVERALLS_REPO_TOKEN)" && test -n "$(COVERALLS_RUN_LOCALLY)" && test -f ./var/tests-unit-clover-coverage.xml && ./vendor/bin/php-coveralls -v --coverage_clover ./build/logs/clover.xml --json_path ./var/tests-unit-clover-coverage-upload.json || true
+
+mutation-testing: ## Run mutation testing
+ $(DOCKER_RUN) vendor/bin/roave-infection-static-analysis-plugin --ansi --log-verbosity=all --threads=$(THREADS) --psalm-config etc/qa/psalm.xml || (cat ./var/infection.log && false)
+
+mutation-testing-raw: ## Run mutation testing ###
+ php vendor/roave/infection-static-analysis-plugin/bin/roave-infection-static-analysis-plugin --ansi --log-verbosity=all --threads=$(THREADS) --psalm-config etc/qa/psalm.xml || (cat ./var/infection.log && false)
+
+composer-require-checker: ## Ensure we require every package used in this package directly
+ $(DOCKER_RUN) vendor/bin/composer-require-checker --ignore-parse-errors --ansi -vvv --config-file=./etc/qa/composer-require-checker.json
+
+composer-unused: ## Ensure we don't require any package we don't use in this package directly
+ $(DOCKER_RUN) vendor/bin/composer-unused --ansi
+
+composer-install: ## Install dependencies
+ $(DOCKER_RUN) composer install --no-progress --ansi --no-interaction --prefer-dist -o
+
+backward-compatibility-check: ## Check code for backwards incompatible changes
+ $(MAKE) backward-compatibility-check-raw || true
+
+backward-compatibility-check-raw: ## Check code for backwards incompatible changes, doesn't ignore the failure ###
+ $(DOCKER_RUN) vendor/bin/roave-backward-compatibility-check
+
+shell: ## Provides Shell access in the expected environment ###
+ $(DOCKER_RUN) ash
+
+task-list-ci: ## CI: Generate a JSON array of jobs to run, matches the commands run when running `make (|all)` ###
+ @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | grep -v "###" | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "%s\n", $$1}' | jq --raw-input --slurp -c 'split("\n")| .[0:-1]'
+
+help: ## Show this help ###
+ @printf "\033[33mUsage:\033[0m\n make [target]\n\n\033[33mTargets:\033[0m\n"
+ @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[32m%-32s\033[0m %s\n", $$1, $$2}' | tr -d '#'
diff --git a/README.md b/README.md
index 964166e..f8ea87e 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
# filesystem
+
Threading implementation of react/filesystem
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..c4ad15b
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,53 @@
+{
+ "name": "react-parallel/filesystem",
+ "description": "\uD83D\uDDC4\uFE0F\uD83E\uDDF5\uD83D\uDDC4\uFE0F\uD83D\uDDC4\uFE0F\uD83E\uDDF5 Threading filesystem adapter for react/filesystem",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
+ }
+ ],
+ "require": {
+ "php": "^8.2",
+ "react-parallel/contracts": "^2@dev",
+ "react-parallel/react-parallel": "^2@dev",
+ "react/filesystem": "^0.2@dev"
+ },
+ "require-dev": {
+ "wyrihaximus/async-test-utilities": "^8.0.4"
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "autoload": {
+ "psr-4": {
+ "ReactParallel\\Filesystem\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "ReactParallel\\Tests\\Filesystem\\": "tests/"
+ }
+ },
+ "config": {
+ "allow-plugins": {
+ "dealerdirect/phpcodesniffer-composer-installer": true,
+ "ergebnis/composer-normalize": true,
+ "icanhazstring/composer-unused": true,
+ "infection/extension-installer": true
+ },
+ "platform": {
+ "php": "8.2.13"
+ },
+ "sort-packages": true
+ },
+ "scripts": {
+ "post-install-cmd": [
+ "composer normalize"
+ ],
+ "post-update-cmd": [
+ "composer normalize"
+ ]
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..d7dab53
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,12726 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "7e7bec22e97f8b8c25ef55517de70928",
+ "packages": [
+ {
+ "name": "evenement/evenement",
+ "version": "v3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/igorw/evenement.git",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9 || ^6"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Evenement\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ }
+ ],
+ "description": "รvรฉnement is a very simple event dispatching library for PHP",
+ "keywords": [
+ "event-dispatcher",
+ "event-emitter"
+ ],
+ "support": {
+ "issues": "https://github.com/igorw/evenement/issues",
+ "source": "https://github.com/igorw/evenement/tree/v3.0.2"
+ },
+ "time": "2023-08-08T05:53:35+00:00"
+ },
+ {
+ "name": "lcobucci/clock",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/lcobucci/clock.git",
+ "reference": "6f28b826ea01306b07980cb8320ab30b966cd715"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/lcobucci/clock/zipball/6f28b826ea01306b07980cb8320ab30b966cd715",
+ "reference": "6f28b826ea01306b07980cb8320ab30b966cd715",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~8.2.0 || ~8.3.0",
+ "psr/clock": "^1.0"
+ },
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
+ "require-dev": {
+ "infection/infection": "^0.27",
+ "lcobucci/coding-standard": "^11.0.0",
+ "phpstan/extension-installer": "^1.3.1",
+ "phpstan/phpstan": "^1.10.25",
+ "phpstan/phpstan-deprecation-rules": "^1.1.3",
+ "phpstan/phpstan-phpunit": "^1.3.13",
+ "phpstan/phpstan-strict-rules": "^1.5.1",
+ "phpunit/phpunit": "^10.2.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Lcobucci\\Clock\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Luรญs Cobucci",
+ "email": "lcobucci@gmail.com"
+ }
+ ],
+ "description": "Yet another clock abstraction",
+ "support": {
+ "issues": "https://github.com/lcobucci/clock/issues",
+ "source": "https://github.com/lcobucci/clock/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/lcobucci",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/lcobucci",
+ "type": "patreon"
+ }
+ ],
+ "time": "2023-11-17T17:00:27+00:00"
+ },
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00"
+ },
+ {
+ "name": "react-parallel/contracts",
+ "version": "2.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp-parallel/contracts.git",
+ "reference": "0a1def74c62ab2cc75f2297084ceb92eab4469e7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp-parallel/contracts/zipball/0a1def74c62ab2cc75f2297084ceb92eab4469e7",
+ "reference": "0a1def74c62ab2cc75f2297084ceb92eab4469e7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.2",
+ "wyrihaximus/pool-info": "^2"
+ },
+ "require-dev": {
+ "wyrihaximus/async-test-utilities": "^7.2"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ReactParallel\\Contracts\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "https://wyrihaximus.net/"
+ }
+ ],
+ "description": "Interfaces for ReactPHP ext-parallel related packages",
+ "support": {
+ "issues": "https://github.com/reactphp-parallel/contracts/issues",
+ "source": "https://github.com/reactphp-parallel/contracts/tree/2.x"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-11T14:57:21+00:00"
+ },
+ {
+ "name": "react-parallel/event-loop",
+ "version": "2.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp-parallel/event-loop.git",
+ "reference": "e4ce63892d1d2f385acf2cbae0c1a9a7b387b53d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp-parallel/event-loop/zipball/e4ce63892d1d2f385acf2cbae0c1a9a7b387b53d",
+ "reference": "e4ce63892d1d2f385acf2cbae0c1a9a7b387b53d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-parallel": "*",
+ "php": "^8.2",
+ "react/async": "^4.2",
+ "react/event-loop": "^1.5",
+ "react/promise": "^2.11 || ^3.0",
+ "reactivex/rxphp": "^2.0.12",
+ "wyrihaximus/constants": "^1.6.0",
+ "wyrihaximus/metrics": "^1.0 || ^2",
+ "wyrihaximus/react-awaitable-observable": "^1.1",
+ "wyrihaximus/react-event-loop-rx-scheduler-hook-up": "^0.1.1"
+ },
+ "require-dev": {
+ "wyrihaximus/async-test-utilities": "^7.2"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ReactParallel\\EventLoop\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
+ }
+ ],
+ "description": "๐๐๐ Event Loop bridge to ext-parallel Events",
+ "support": {
+ "issues": "https://github.com/reactphp-parallel/event-loop/issues",
+ "source": "https://github.com/reactphp-parallel/event-loop/tree/2.x"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-12T13:52:43+00:00"
+ },
+ {
+ "name": "react-parallel/infinite-pool",
+ "version": "3.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp-parallel/infinite-pool.git",
+ "reference": "c3ce47752a6192b46ec6e7c010f22ec0c6f9f65c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp-parallel/infinite-pool/zipball/c3ce47752a6192b46ec6e7c010f22ec0c6f9f65c",
+ "reference": "c3ce47752a6192b46ec6e7c010f22ec0c6f9f65c",
+ "shasum": ""
+ },
+ "require": {
+ "ext-parallel": "*",
+ "ext-random": "*",
+ "php": "^8.2",
+ "react-parallel/contracts": "^2@dev",
+ "react-parallel/event-loop": "^2@dev",
+ "react-parallel/runtime": "^3@dev",
+ "react/event-loop": "^1.5",
+ "react/promise": "^3.1",
+ "thecodingmachine/safe": "^2.5",
+ "wyrihaximus/constants": "^1.6",
+ "wyrihaximus/metrics": "^2",
+ "wyrihaximus/pool-info": "^2.0"
+ },
+ "require-dev": {
+ "moneyphp/money": "^3.2",
+ "react-parallel/pool-tests": "^4@dev",
+ "wyrihaximus/async-test-utilities": "^7.2"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ReactParallel\\Pool\\Infinite\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
+ }
+ ],
+ "description": "โพ๏ธ Infinite pool for bridging ext-parallel and ReactPHP",
+ "support": {
+ "issues": "https://github.com/reactphp-parallel/infinite-pool/issues",
+ "source": "https://github.com/reactphp-parallel/infinite-pool/tree/3.x"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-12T13:51:09+00:00"
+ },
+ {
+ "name": "react-parallel/limited-pool",
+ "version": "2.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp-parallel/limited-pool.git",
+ "reference": "4d17590add5ae2e40f1524e13ff799fbe02e2e94"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp-parallel/limited-pool/zipball/4d17590add5ae2e40f1524e13ff799fbe02e2e94",
+ "reference": "4d17590add5ae2e40f1524e13ff799fbe02e2e94",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.2",
+ "react-parallel/contracts": "^2@dev",
+ "react/async": "^4.2",
+ "react/event-loop": "^1.5",
+ "react/promise": "^3.1",
+ "wyrihaximus/pool-info": "^2"
+ },
+ "require-dev": {
+ "ext-parallel": "*",
+ "moneyphp/money": "^3.2",
+ "react-parallel/event-loop": "^2@dev",
+ "react-parallel/infinite-pool": "^3@dev",
+ "react-parallel/pool-tests": "^4@dev",
+ "react-parallel/runtime": "^3@dev",
+ "wyrihaximus/async-test-utilities": "^7.2"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ReactParallel\\Pool\\Limited\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
+ }
+ ],
+ "description": "๐๏ธ Limited pool for ext-parallel",
+ "support": {
+ "issues": "https://github.com/reactphp-parallel/limited-pool/issues",
+ "source": "https://github.com/reactphp-parallel/limited-pool/tree/2.x"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-12T13:50:26+00:00"
+ },
+ {
+ "name": "react-parallel/object-proxy-attributes",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp-parallel/object-proxy-attributes.git",
+ "reference": "2ee1cebc5f2a4dfd75f372ff77d144c631388859"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp-parallel/object-proxy-attributes/zipball/2ee1cebc5f2a4dfd75f372ff77d144c631388859",
+ "reference": "2ee1cebc5f2a4dfd75f372ff77d144c631388859",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8 || ^7.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.11",
+ "wyrihaximus/test-utilities": "^2.9 || ^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "unused": [
+ "php"
+ ]
+ },
+ "autoload": {
+ "psr-4": {
+ "ReactParallel\\ObjectProxy\\Attribute\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
+ }
+ ],
+ "description": "๐จโ๐๐ฐ๐ฉโ๐ Attributes for react-parallel/object-proxy",
+ "support": {
+ "issues": "https://github.com/reactphp-parallel/object-proxy-attributes/issues",
+ "source": "https://github.com/reactphp-parallel/object-proxy-attributes/tree/1.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2021-11-11T08:41:45+00:00"
+ },
+ {
+ "name": "react-parallel/react-parallel",
+ "version": "2.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp-parallel/reactphp-parallel.git",
+ "reference": "42315c3fa9c9a6c7681cb036015c291816b65bde"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp-parallel/reactphp-parallel/zipball/42315c3fa9c9a6c7681cb036015c291816b65bde",
+ "reference": "42315c3fa9c9a6c7681cb036015c291816b65bde",
+ "shasum": ""
+ },
+ "require": {
+ "ext-parallel": "*",
+ "php": "^8.2",
+ "react-parallel/contracts": "^2@dev",
+ "react-parallel/event-loop": "^2@dev",
+ "react-parallel/infinite-pool": "^3@dev",
+ "react-parallel/limited-pool": "^2@dev",
+ "react-parallel/runtime": "^3@dev",
+ "react-parallel/streams": "^2@dev",
+ "react/promise": "^3.1",
+ "wyrihaximus/constants": "^1.5",
+ "wyrihaximus/metrics": "^2"
+ },
+ "require-dev": {
+ "wyrihaximus/async-test-utilities": "^7.2"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ReactParallel\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
+ }
+ ],
+ "description": "๐ Bridging ext-parallel and ReactPHP",
+ "support": {
+ "issues": "https://github.com/reactphp-parallel/reactphp-parallel/issues",
+ "source": "https://github.com/reactphp-parallel/reactphp-parallel/tree/2.x"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-12T13:50:04+00:00"
+ },
+ {
+ "name": "react-parallel/runtime",
+ "version": "3.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp-parallel/runtime.git",
+ "reference": "eb13a4b0231a530979c1ebe21f6dee79ab414c4d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp-parallel/runtime/zipball/eb13a4b0231a530979c1ebe21f6dee79ab414c4d",
+ "reference": "eb13a4b0231a530979c1ebe21f6dee79ab414c4d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-parallel": "*",
+ "php": "^8.2",
+ "react-parallel/event-loop": "^2@dev",
+ "react/event-loop": "^1.5",
+ "react/promise": "^3.1",
+ "wyrihaximus/constants": "^1.6"
+ },
+ "require-dev": {
+ "the-orville/exceptions": "^1.0",
+ "wyrihaximus/async-test-utilities": "^7.2",
+ "wyrihaximus/ticking-promise": "^3"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ReactParallel\\Runtime\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
+ }
+ ],
+ "description": "๐จ Convinence wrapper around ext-parallel Runtime for and ReactPHP",
+ "support": {
+ "issues": "https://github.com/reactphp-parallel/runtime/issues",
+ "source": "https://github.com/reactphp-parallel/runtime/tree/3.x"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-12T13:49:14+00:00"
+ },
+ {
+ "name": "react-parallel/streams",
+ "version": "2.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp-parallel/streams.git",
+ "reference": "ad715a4def989a9f6f8f465b50cab9817ed45e1e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp-parallel/streams/zipball/ad715a4def989a9f6f8f465b50cab9817ed45e1e",
+ "reference": "ad715a4def989a9f6f8f465b50cab9817ed45e1e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-parallel": "*",
+ "php": "^8.2",
+ "react-parallel/event-loop": "^2@dev",
+ "react/event-loop": "^1.5",
+ "react/promise": "^2.11 || ^3.1",
+ "reactivex/rxphp": "^2.0.12",
+ "wyrihaximus/constants": "^1.6",
+ "wyrihaximus/react-awaitable-observable": "^1.1",
+ "wyrihaximus/react-event-loop-rx-scheduler-hook-up": "^0.1.1"
+ },
+ "require-dev": {
+ "wyrihaximus/async-test-utilities": "^7.2",
+ "wyrihaximus/ticking-promise": "^3"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ReactParallel\\Streams\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
+ }
+ ],
+ "description": "๐๏ธ Streams abstraction around ext-parallel Channels for ReactPHP",
+ "support": {
+ "issues": "https://github.com/reactphp-parallel/streams/issues",
+ "source": "https://github.com/reactphp-parallel/streams/tree/2.x"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-12T13:50:41+00:00"
+ },
+ {
+ "name": "react/async",
+ "version": "v4.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/async.git",
+ "reference": "635d50e30844a484495713e8cb8d9e079c0008a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/async/zipball/635d50e30844a484495713e8cb8d9e079c0008a5",
+ "reference": "635d50e30844a484495713e8cb8d9e079c0008a5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3.2 || ^2.8 || ^1.2.1"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "1.10.39",
+ "phpunit/phpunit": "^9.6"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Async\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lรผck",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async utilities and fibers for ReactPHP",
+ "keywords": [
+ "async",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/async/issues",
+ "source": "https://github.com/reactphp/async/tree/v4.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-04T14:40:02+00:00"
+ },
+ {
+ "name": "react/event-loop",
+ "version": "v1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/event-loop.git",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "suggest": {
+ "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\EventLoop\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lรผck",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+ "keywords": [
+ "asynchronous",
+ "event-loop"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/event-loop/issues",
+ "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-11-13T13:48:05+00:00"
+ },
+ {
+ "name": "react/filesystem",
+ "version": "0.2.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/filesystem.git",
+ "reference": "385933fdf47ad2db195c859523a8d854792dbad2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/filesystem/zipball/385933fdf47ad2db195c859523a8d854792dbad2",
+ "reference": "385933fdf47ad2db195c859523a8d854792dbad2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3 || ^2.8",
+ "react/promise-stream": "^1.2",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "react/async": "^4 || ^3"
+ },
+ "suggest": {
+ "ext-eio": "* for great I/O performance",
+ "ext-uv": "* for better I/O performance"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Filesystem\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "Asynchronous filesystem abstraction.",
+ "keywords": [
+ "asynchronous",
+ "filesystem"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/filesystem/issues",
+ "source": "https://github.com/reactphp/filesystem/tree/0.2.x"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-26T08:38:46+00:00"
+ },
+ {
+ "name": "react/promise",
+ "version": "v3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "1.10.39 || 1.4.10",
+ "phpunit/phpunit": "^9.6 || ^7.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Christian Lรผck",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+ "keywords": [
+ "promise",
+ "promises"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-24T10:39:05+00:00"
+ },
+ {
+ "name": "react/promise-stream",
+ "version": "v1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise-stream.git",
+ "reference": "5c7ec3450f558deb779742e33967d837e2db7871"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise-stream/zipball/5c7ec3450f558deb779742e33967d837e2db7871",
+ "reference": "5c7ec3450f558deb779742e33967d837e2db7871",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3",
+ "react/promise": "^3 || ^2.1 || ^1.2",
+ "react/stream": "^1.0 || ^0.7 || ^0.6 || ^0.5 || ^0.4.6"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\Stream\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lรผck",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "The missing link between Promise-land and Stream-land for ReactPHP",
+ "homepage": "https://github.com/reactphp/promise-stream",
+ "keywords": [
+ "Buffer",
+ "async",
+ "promise",
+ "reactphp",
+ "stream",
+ "unwrap"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/promise-stream/issues",
+ "source": "https://github.com/reactphp/promise-stream/tree/v1.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-12-13T11:32:02+00:00"
+ },
+ {
+ "name": "react/stream",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/stream.git",
+ "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/stream/zipball/6fbc9672905c7d5a885f2da2fc696f65840f4a66",
+ "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.8",
+ "react/event-loop": "^1.2"
+ },
+ "require-dev": {
+ "clue/stream-filter": "~1.2",
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Stream\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lรผck",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
+ "keywords": [
+ "event-driven",
+ "io",
+ "non-blocking",
+ "pipe",
+ "reactphp",
+ "readable",
+ "stream",
+ "writable"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/stream/issues",
+ "source": "https://github.com/reactphp/stream/tree/v1.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-06-16T10:52:11+00:00"
+ },
+ {
+ "name": "reactivex/rxphp",
+ "version": "2.0.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ReactiveX/RxPHP.git",
+ "reference": "eee8eb20ec310632d0356ff1bcaccf5c90094ba6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ReactiveX/RxPHP/zipball/eee8eb20ec310632d0356ff1bcaccf5c90094ba6",
+ "reference": "eee8eb20ec310632d0356ff1bcaccf5c90094ba6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0",
+ "react/promise": "^3 || ~2.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5 || ^9",
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4.2",
+ "satooshi/php-coveralls": "~1.0"
+ },
+ "suggest": {
+ "react/event-loop": "Used for scheduling async operations"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Rx\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alexander",
+ "email": "iam.asm89@gmail.com"
+ },
+ {
+ "name": "David Dan",
+ "email": "davidwdan@gmail.com"
+ },
+ {
+ "name": "Matt Bonneau",
+ "email": "matt@bonneau.net"
+ }
+ ],
+ "description": "Reactive extensions for php.",
+ "homepage": "https://github.com/ReactiveX/RxPHP",
+ "keywords": [
+ "extensions",
+ "reactive",
+ "rx"
+ ],
+ "support": {
+ "issues": "https://github.com/ReactiveX/RxPHP/issues",
+ "source": "https://github.com/ReactiveX/RxPHP/tree/2.0.12"
+ },
+ "time": "2023-11-27T16:37:30+00:00"
+ },
+ {
+ "name": "thecodingmachine/safe",
+ "version": "v2.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thecodingmachine/safe.git",
+ "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+ "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.2",
+ "thecodingmachine/phpstan-strict-rules": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "deprecated/apc.php",
+ "deprecated/array.php",
+ "deprecated/datetime.php",
+ "deprecated/libevent.php",
+ "deprecated/misc.php",
+ "deprecated/password.php",
+ "deprecated/mssql.php",
+ "deprecated/stats.php",
+ "deprecated/strings.php",
+ "lib/special_cases.php",
+ "deprecated/mysqli.php",
+ "generated/apache.php",
+ "generated/apcu.php",
+ "generated/array.php",
+ "generated/bzip2.php",
+ "generated/calendar.php",
+ "generated/classobj.php",
+ "generated/com.php",
+ "generated/cubrid.php",
+ "generated/curl.php",
+ "generated/datetime.php",
+ "generated/dir.php",
+ "generated/eio.php",
+ "generated/errorfunc.php",
+ "generated/exec.php",
+ "generated/fileinfo.php",
+ "generated/filesystem.php",
+ "generated/filter.php",
+ "generated/fpm.php",
+ "generated/ftp.php",
+ "generated/funchand.php",
+ "generated/gettext.php",
+ "generated/gmp.php",
+ "generated/gnupg.php",
+ "generated/hash.php",
+ "generated/ibase.php",
+ "generated/ibmDb2.php",
+ "generated/iconv.php",
+ "generated/image.php",
+ "generated/imap.php",
+ "generated/info.php",
+ "generated/inotify.php",
+ "generated/json.php",
+ "generated/ldap.php",
+ "generated/libxml.php",
+ "generated/lzf.php",
+ "generated/mailparse.php",
+ "generated/mbstring.php",
+ "generated/misc.php",
+ "generated/mysql.php",
+ "generated/network.php",
+ "generated/oci8.php",
+ "generated/opcache.php",
+ "generated/openssl.php",
+ "generated/outcontrol.php",
+ "generated/pcntl.php",
+ "generated/pcre.php",
+ "generated/pgsql.php",
+ "generated/posix.php",
+ "generated/ps.php",
+ "generated/pspell.php",
+ "generated/readline.php",
+ "generated/rpminfo.php",
+ "generated/rrd.php",
+ "generated/sem.php",
+ "generated/session.php",
+ "generated/shmop.php",
+ "generated/sockets.php",
+ "generated/sodium.php",
+ "generated/solr.php",
+ "generated/spl.php",
+ "generated/sqlsrv.php",
+ "generated/ssdeep.php",
+ "generated/ssh2.php",
+ "generated/stream.php",
+ "generated/strings.php",
+ "generated/swoole.php",
+ "generated/uodbc.php",
+ "generated/uopz.php",
+ "generated/url.php",
+ "generated/var.php",
+ "generated/xdiff.php",
+ "generated/xml.php",
+ "generated/xmlrpc.php",
+ "generated/yaml.php",
+ "generated/yaz.php",
+ "generated/zip.php",
+ "generated/zlib.php"
+ ],
+ "classmap": [
+ "lib/DateTime.php",
+ "lib/DateTimeImmutable.php",
+ "lib/Exceptions/",
+ "deprecated/Exceptions/",
+ "generated/Exceptions/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
+ "support": {
+ "issues": "https://github.com/thecodingmachine/safe/issues",
+ "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0"
+ },
+ "time": "2023-04-05T11:54:14+00:00"
+ },
+ {
+ "name": "wyrihaximus/constants",
+ "version": "1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/php-constants.git",
+ "reference": "32ceffdd881593c7fa24d8fcbf9deb58687484cb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/php-constants/zipball/32ceffdd881593c7fa24d8fcbf9deb58687484cb",
+ "reference": "32ceffdd881593c7fa24d8fcbf9deb58687484cb",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8 || ^7 || ^5.3"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/Boolean/constants_include.php",
+ "src/ComposerAutoloader/constants_include.php",
+ "src/HTTPStatusCodes/constants_include.php",
+ "src/Numeric/constants_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "https://www.wyrihaximus.net/"
+ }
+ ],
+ "description": "Collection of constants for PHP",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/php-constants/issues",
+ "source": "https://github.com/WyriHaximus/php-constants/tree/1.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2020-11-28T12:04:43+00:00"
+ },
+ {
+ "name": "wyrihaximus/iterator-or-array-to-array",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/php-iterator-or-array-to-array.git",
+ "reference": "79b407499a3a82f269e59236e44e2119c7556c78"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/php-iterator-or-array-to-array/zipball/79b407499a3a82f269e59236e44e2119c7556c78",
+ "reference": "79b407499a3a82f269e59236e44e2119c7556c78",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8 || ^7.4"
+ },
+ "require-dev": {
+ "wyrihaximus/test-utilities": "^3.7.3"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "Like iterator_to_array but doesn't error when handed an array",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/php-iterator-or-array-to-array/issues",
+ "source": "https://github.com/WyriHaximus/php-iterator-or-array-to-array/tree/1.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "abandoned": "[...$iteratorOrArray] instead of this",
+ "time": "2021-09-05T15:12:30+00:00"
+ },
+ {
+ "name": "wyrihaximus/metrics",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/php-metrics.git",
+ "reference": "2edd4af12ddac00b29e676b4cfc3f8c310b1cb55"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/php-metrics/zipball/2edd4af12ddac00b29e676b4cfc3f8c310b1cb55",
+ "reference": "2edd4af12ddac00b29e676b4cfc3f8c310b1cb55",
+ "shasum": ""
+ },
+ "require": {
+ "lcobucci/clock": "^2.0 || ^3.0",
+ "php": "^8.1",
+ "react-parallel/object-proxy-attributes": "^1",
+ "thecodingmachine/safe": "^2.0",
+ "wyrihaximus/constants": "^1.5"
+ },
+ "require-dev": {
+ "phpbench/phpbench": "^1.2.3",
+ "wyrihaximus/test-utilities": "^5.1"
+ },
+ "type": "library",
+ "extra": {
+ "unused": [
+ "thecodingmachine/safe"
+ ]
+ },
+ "autoload": {
+ "psr-4": {
+ "WyriHaximus\\Metrics\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "๐ต๏ธโโ๏ธ Prometheus modelled metric VO's and registry",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/php-metrics/issues",
+ "source": "https://github.com/WyriHaximus/php-metrics/tree/2.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2023-01-13T23:11:41+00:00"
+ },
+ {
+ "name": "wyrihaximus/pool-info",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/php-pool-info.git",
+ "reference": "23df6dcf9c9aea1099a9af31af56f3723273f03d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/php-pool-info/zipball/23df6dcf9c9aea1099a9af31af56f3723273f03d",
+ "reference": "23df6dcf9c9aea1099a9af31af56f3723273f03d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.2",
+ "wyrihaximus/iterator-or-array-to-array": "^1.1"
+ },
+ "require-dev": {
+ "wyrihaximus/test-utilities": "^5.6"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "WyriHaximus\\PoolInfo\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "Interface for pool info metrics",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/php-pool-info/issues",
+ "source": "https://github.com/WyriHaximus/php-pool-info/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-15T21:37:49+00:00"
+ },
+ {
+ "name": "wyrihaximus/react-awaitable-observable",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/reactphp-awaitable-observable.git",
+ "reference": "b942237bef3ad20300cafd9ec1a80e8529fed77b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/reactphp-awaitable-observable/zipball/b942237bef3ad20300cafd9ec1a80e8529fed77b",
+ "reference": "b942237bef3ad20300cafd9ec1a80e8529fed77b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.2",
+ "react/async": "^4",
+ "react/promise": "^2.10 || ^3",
+ "reactivex/rxphp": "^2.0.12"
+ },
+ "require-dev": {
+ "wyrihaximus/async-test-utilities": "^7.2"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "WyriHaximus\\React\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "๐ ๏ธ Make observables foreachable using async & await",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/reactphp-awaitable-observable/issues",
+ "source": "https://github.com/WyriHaximus/reactphp-awaitable-observable/tree/1.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-30T22:01:46+00:00"
+ },
+ {
+ "name": "wyrihaximus/react-event-loop-rx-scheduler-hook-up",
+ "version": "0.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/reactphp-event-loop-rx-scheduler-hook-up.git",
+ "reference": "462e794cba3c810b77d1e8cb33be43a902673272"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/reactphp-event-loop-rx-scheduler-hook-up/zipball/462e794cba3c810b77d1e8cb33be43a902673272",
+ "reference": "462e794cba3c810b77d1e8cb33be43a902673272",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "react/event-loop": "^1.3",
+ "reactivex/rxphp": "^2.0"
+ },
+ "conflict": {
+ "azjezz/psl": "<2"
+ },
+ "require-dev": {
+ "wyrihaximus/async-test-utilities": "^5.0.25"
+ },
+ "type": "library",
+ "extra": {
+ "unused": [
+ "wyrihaximus/react-mutex",
+ "wyrihaximus/react-mutex-contracts"
+ ]
+ },
+ "autoload": {
+ "files": [
+ "src/bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "๐ช Hook up ReactPHP Event Loop to the RxPHP Scheduler",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/reactphp-event-loop-rx-scheduler-hook-up/issues",
+ "source": "https://github.com/WyriHaximus/reactphp-event-loop-rx-scheduler-hook-up/tree/0.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-26T15:05:42+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "amphp/amp",
+ "version": "v2.6.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/amphp/amp.git",
+ "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d",
+ "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "amphp/php-cs-fixer-config": "dev-master",
+ "amphp/phpunit-util": "^1",
+ "ext-json": "*",
+ "jetbrains/phpstorm-stubs": "^2019.3",
+ "phpunit/phpunit": "^7 | ^8 | ^9",
+ "react/promise": "^2",
+ "vimeo/psalm": "^3.12"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "lib/functions.php",
+ "lib/Internal/functions.php"
+ ],
+ "psr-4": {
+ "Amp\\": "lib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Daniel Lowrey",
+ "email": "rdlowrey@php.net"
+ },
+ {
+ "name": "Aaron Piotrowski",
+ "email": "aaron@trowski.com"
+ },
+ {
+ "name": "Bob Weinand",
+ "email": "bobwei9@hotmail.com"
+ },
+ {
+ "name": "Niklas Keller",
+ "email": "me@kelunik.com"
+ }
+ ],
+ "description": "A non-blocking concurrency framework for PHP applications.",
+ "homepage": "https://amphp.org/amp",
+ "keywords": [
+ "async",
+ "asynchronous",
+ "awaitable",
+ "concurrency",
+ "event",
+ "event-loop",
+ "future",
+ "non-blocking",
+ "promise"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/amphp",
+ "issues": "https://github.com/amphp/amp/issues",
+ "source": "https://github.com/amphp/amp/tree/v2.6.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/amphp",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-21T18:52:26+00:00"
+ },
+ {
+ "name": "amphp/byte-stream",
+ "version": "v1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/amphp/byte-stream.git",
+ "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc",
+ "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc",
+ "shasum": ""
+ },
+ "require": {
+ "amphp/amp": "^2",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "amphp/php-cs-fixer-config": "dev-master",
+ "amphp/phpunit-util": "^1.4",
+ "friendsofphp/php-cs-fixer": "^2.3",
+ "jetbrains/phpstorm-stubs": "^2019.3",
+ "phpunit/phpunit": "^6 || ^7 || ^8",
+ "psalm/phar": "^3.11.4"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/functions.php"
+ ],
+ "psr-4": {
+ "Amp\\ByteStream\\": "lib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Aaron Piotrowski",
+ "email": "aaron@trowski.com"
+ },
+ {
+ "name": "Niklas Keller",
+ "email": "me@kelunik.com"
+ }
+ ],
+ "description": "A stream abstraction to make working with non-blocking I/O simple.",
+ "homepage": "https://amphp.org/byte-stream",
+ "keywords": [
+ "amp",
+ "amphp",
+ "async",
+ "io",
+ "non-blocking",
+ "stream"
+ ],
+ "support": {
+ "issues": "https://github.com/amphp/byte-stream/issues",
+ "source": "https://github.com/amphp/byte-stream/tree/v1.8.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/amphp",
+ "type": "github"
+ }
+ ],
+ "time": "2024-04-13T18:00:56+00:00"
+ },
+ {
+ "name": "azjezz/psl",
+ "version": "2.9.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/azjezz/psl.git",
+ "reference": "1ade4f1a99fe07a8e06f8dee596609aa07585422"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/azjezz/psl/zipball/1ade4f1a99fe07a8e06f8dee596609aa07585422",
+ "reference": "1ade4f1a99fe07a8e06f8dee596609aa07585422",
+ "shasum": ""
+ },
+ "require": {
+ "ext-bcmath": "*",
+ "ext-intl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-sodium": "*",
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0",
+ "revolt/event-loop": "^1.0.1"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.22.0",
+ "php-coveralls/php-coveralls": "^2.6.0",
+ "php-standard-library/psalm-plugin": "^2.2.1",
+ "phpbench/phpbench": "^1.2.14",
+ "phpunit/phpunit": "^9.6.10",
+ "roave/infection-static-analysis-plugin": "^1.32.0",
+ "squizlabs/php_codesniffer": "^3.7.2",
+ "vimeo/psalm": "^5.13.1"
+ },
+ "suggest": {
+ "php-standard-library/psalm-plugin": "Psalm integration"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "hhvm/hsl",
+ "url": "https://github.com/hhvm/hsl"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/bootstrap.php"
+ ],
+ "psr-4": {
+ "Psl\\": "src/Psl"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "azjezz",
+ "email": "azjezz@protonmail.com"
+ }
+ ],
+ "description": "PHP Standard Library",
+ "support": {
+ "issues": "https://github.com/azjezz/psl/issues",
+ "source": "https://github.com/azjezz/psl/tree/2.9.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/azjezz",
+ "type": "github"
+ }
+ ],
+ "time": "2024-04-05T05:18:37+00:00"
+ },
+ {
+ "name": "beberlei/assert",
+ "version": "v3.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/beberlei/assert.git",
+ "reference": "cb70015c04be1baee6f5f5c953703347c0ac1655"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/beberlei/assert/zipball/cb70015c04be1baee6f5f5c953703347c0ac1655",
+ "reference": "cb70015c04be1baee6f5f5c953703347c0ac1655",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "php": "^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "*",
+ "phpstan/phpstan": "*",
+ "phpunit/phpunit": ">=6.0.0",
+ "yoast/phpunit-polyfills": "^0.1.0"
+ },
+ "suggest": {
+ "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/Assert/functions.php"
+ ],
+ "psr-4": {
+ "Assert\\": "lib/Assert"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Richard Quadling",
+ "email": "rquadling@gmail.com",
+ "role": "Collaborator"
+ }
+ ],
+ "description": "Thin assertion library for input validation in business models.",
+ "keywords": [
+ "assert",
+ "assertion",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/beberlei/assert/issues",
+ "source": "https://github.com/beberlei/assert/tree/v3.3.2"
+ },
+ "time": "2021-12-16T21:41:27+00:00"
+ },
+ {
+ "name": "brandembassy/mockery-tools",
+ "version": "4.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/BrandEmbassy/mockery-tools.git",
+ "reference": "de93d61feb9ccc20f91206469f8bc58bf8c8ebd4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/BrandEmbassy/mockery-tools/zipball/de93d61feb9ccc20f91206469f8bc58bf8c8ebd4",
+ "reference": "de93d61feb9ccc20f91206469f8bc58bf8c8ebd4",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "guzzlehttp/guzzle": "^6.3 || ^7.0",
+ "marc-mabe/php-enum": "^3.0 || ^4.0",
+ "mockery/mockery": "^1.6.7",
+ "nette/di": "^2.4 || ^3.0",
+ "nette/utils": "^2.4 || ^3.0",
+ "php": "^8.1",
+ "phpunit/phpunit": "^9.6 || ^10.5",
+ "ramsey/uuid": "^3.0 || ^4.0",
+ "spatie/phpunit-snapshot-assertions": "^4.2 || ^5.1"
+ },
+ "require-dev": {
+ "brandembassy/coding-standard": "^11.1",
+ "roave/security-advisories": "dev-latest"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "BrandEmbassy\\MockeryTools\\": "src/MockeryTools"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "proprietary"
+ ],
+ "support": {
+ "issues": "https://github.com/BrandEmbassy/mockery-tools/issues",
+ "source": "https://github.com/BrandEmbassy/mockery-tools/tree/4.1.3"
+ },
+ "time": "2024-02-28T13:26:35+00:00"
+ },
+ {
+ "name": "brick/math",
+ "version": "0.12.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/brick/math.git",
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1",
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "5.16.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Brick\\Math\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Arbitrary-precision arithmetic library",
+ "keywords": [
+ "Arbitrary-precision",
+ "BigInteger",
+ "BigRational",
+ "arithmetic",
+ "bigdecimal",
+ "bignum",
+ "bignumber",
+ "brick",
+ "decimal",
+ "integer",
+ "math",
+ "mathematics",
+ "rational"
+ ],
+ "support": {
+ "issues": "https://github.com/brick/math/issues",
+ "source": "https://github.com/brick/math/tree/0.12.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/BenMorel",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-29T23:19:16+00:00"
+ },
+ {
+ "name": "colinodell/json5",
+ "version": "v2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/colinodell/json5.git",
+ "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/colinodell/json5/zipball/15b063f8cb5e6deb15f0cd39123264ec0d19c710",
+ "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^7.1.3|^8.0"
+ },
+ "conflict": {
+ "scrutinizer/ocular": "1.7.*"
+ },
+ "require-dev": {
+ "mikehaertl/php-shellcommand": "^1.2.5",
+ "phpstan/phpstan": "^1.4",
+ "scrutinizer/ocular": "^1.6",
+ "squizlabs/php_codesniffer": "^2.3 || ^3.0",
+ "symfony/finder": "^4.4|^5.4|^6.0",
+ "symfony/phpunit-bridge": "^5.4|^6.0"
+ },
+ "bin": [
+ "bin/json5"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/global.php"
+ ],
+ "psr-4": {
+ "ColinODell\\Json5\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "UTF-8 compatible JSON5 parser for PHP",
+ "homepage": "https://github.com/colinodell/json5",
+ "keywords": [
+ "JSON5",
+ "json",
+ "json5_decode",
+ "json_decode"
+ ],
+ "support": {
+ "issues": "https://github.com/colinodell/json5/issues",
+ "source": "https://github.com/colinodell/json5/tree/v2.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/colinodell",
+ "type": "patreon"
+ }
+ ],
+ "time": "2022-12-27T16:44:40+00:00"
+ },
+ {
+ "name": "composer-unused/contracts",
+ "version": "0.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer-unused/contracts.git",
+ "reference": "5ec448d3ee80735dccad6a21a3266c377d0845ae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer-unused/contracts/zipball/5ec448d3ee80735dccad6a21a3266c377d0845ae",
+ "reference": "5ec448d3ee80735dccad6a21a3266c377d0845ae",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ComposerUnused\\Contracts\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Frรถmer",
+ "email": "composer-unused@icanhazstring.com"
+ }
+ ],
+ "description": "Contract repository for composer-unused",
+ "support": {
+ "issues": "https://github.com/composer-unused/contracts/issues",
+ "source": "https://github.com/composer-unused/contracts/tree/0.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/icanhazstring",
+ "type": "github"
+ }
+ ],
+ "time": "2023-03-17T00:41:49+00:00"
+ },
+ {
+ "name": "composer-unused/symbol-parser",
+ "version": "0.2.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer-unused/symbol-parser.git",
+ "reference": "96cee7244aea405e936247d42c49332d52d90ae7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer-unused/symbol-parser/zipball/96cee7244aea405e936247d42c49332d52d90ae7",
+ "reference": "96cee7244aea405e936247d42c49332d52d90ae7",
+ "shasum": ""
+ },
+ "require": {
+ "composer-unused/contracts": "^0.3",
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": "^7.4 || ^8.0",
+ "phpstan/phpdoc-parser": "^1.25",
+ "psr/container": "^1.0 || ^2.0",
+ "psr/log": "^1.1 || ^2 || ^3",
+ "symfony/finder": "^5.3 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.42",
+ "ext-ds": "*",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.6.10 || ^10.5",
+ "roave/security-advisories": "dev-master",
+ "squizlabs/php_codesniffer": "^3.9.0",
+ "symfony/serializer": "^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ComposerUnused\\SymbolParser\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Frรถmer",
+ "email": "composer-unused@icanhazstring.com"
+ }
+ ],
+ "description": "Toolkit to parse symbols from a composer package",
+ "homepage": "https://github.com/composer-unused/symbol-parser",
+ "keywords": [
+ "composer",
+ "parser",
+ "symbol"
+ ],
+ "support": {
+ "issues": "https://github.com/composer-unused/symbol-parser/issues",
+ "source": "https://github.com/composer-unused/symbol-parser"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/icanhazstring",
+ "type": "github"
+ },
+ {
+ "url": "https://paypal.me/icanhazstring",
+ "type": "other"
+ }
+ ],
+ "time": "2024-03-09T15:25:51+00:00"
+ },
+ {
+ "name": "composer/ca-bundle",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/ca-bundle.git",
+ "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c5ccfcfea312b5c5a190a21ac5cef93f74baf99",
+ "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99",
+ "shasum": ""
+ },
+ "require": {
+ "ext-openssl": "*",
+ "ext-pcre": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.10",
+ "psr/log": "^1.0",
+ "symfony/phpunit-bridge": "^4.2 || ^5",
+ "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\CaBundle\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
+ "keywords": [
+ "cabundle",
+ "cacert",
+ "certificate",
+ "ssl",
+ "tls"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/ca-bundle/issues",
+ "source": "https://github.com/composer/ca-bundle/tree/1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-03-15T14:00:32+00:00"
+ },
+ {
+ "name": "composer/class-map-generator",
+ "version": "1.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/class-map-generator.git",
+ "reference": "61804f9973685ec7bead0fb7fe022825e3cd418e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/class-map-generator/zipball/61804f9973685ec7bead0fb7fe022825e3cd418e",
+ "reference": "61804f9973685ec7bead0fb7fe022825e3cd418e",
+ "shasum": ""
+ },
+ "require": {
+ "composer/pcre": "^2.1 || ^3.1",
+ "php": "^7.2 || ^8.0",
+ "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.6",
+ "phpstan/phpstan-deprecation-rules": "^1",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/filesystem": "^5.4 || ^6",
+ "symfony/phpunit-bridge": "^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\ClassMapGenerator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Utilities to scan PHP code and generate class maps.",
+ "keywords": [
+ "classmap"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/class-map-generator/issues",
+ "source": "https://github.com/composer/class-map-generator/tree/1.3.3"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-10T11:53:54+00:00"
+ },
+ {
+ "name": "composer/composer",
+ "version": "2.7.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/composer.git",
+ "reference": "fabd995783b633829fd4280e272284b39b6ae702"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/composer/zipball/fabd995783b633829fd4280e272284b39b6ae702",
+ "reference": "fabd995783b633829fd4280e272284b39b6ae702",
+ "shasum": ""
+ },
+ "require": {
+ "composer/ca-bundle": "^1.0",
+ "composer/class-map-generator": "^1.0",
+ "composer/metadata-minifier": "^1.0",
+ "composer/pcre": "^2.1 || ^3.1",
+ "composer/semver": "^3.2.5",
+ "composer/spdx-licenses": "^1.5.7",
+ "composer/xdebug-handler": "^2.0.2 || ^3.0.3",
+ "justinrainbow/json-schema": "^5.2.11",
+ "php": "^7.2.5 || ^8.0",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
+ "react/promise": "^2.8 || ^3",
+ "seld/jsonlint": "^1.4",
+ "seld/phar-utils": "^1.2",
+ "seld/signal-handler": "^2.0",
+ "symfony/console": "^5.4.11 || ^6.0.11 || ^7",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7",
+ "symfony/finder": "^5.4 || ^6.0 || ^7",
+ "symfony/polyfill-php73": "^1.24",
+ "symfony/polyfill-php80": "^1.24",
+ "symfony/polyfill-php81": "^1.24",
+ "symfony/process": "^5.4 || ^6.0 || ^7"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.9.3",
+ "phpstan/phpstan-deprecation-rules": "^1",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1",
+ "phpstan/phpstan-symfony": "^1.2.10",
+ "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1"
+ },
+ "suggest": {
+ "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
+ "ext-zip": "Enabling the zip extension allows you to unzip archives",
+ "ext-zlib": "Allow gzip compression of HTTP requests"
+ },
+ "bin": [
+ "bin/composer"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.7-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "phpstan/rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\": "src/Composer/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "https://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.",
+ "homepage": "https://getcomposer.org/",
+ "keywords": [
+ "autoload",
+ "dependency",
+ "package"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/composer/issues",
+ "security": "https://github.com/composer/composer/security/policy",
+ "source": "https://github.com/composer/composer/tree/2.7.6"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-04T21:03:15+00:00"
+ },
+ {
+ "name": "composer/metadata-minifier",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/metadata-minifier.git",
+ "reference": "c549d23829536f0d0e984aaabbf02af91f443207"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207",
+ "reference": "c549d23829536f0d0e984aaabbf02af91f443207",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "composer/composer": "^2",
+ "phpstan/phpstan": "^0.12.55",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\MetadataMinifier\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Small utility library that handles metadata minification and expansion.",
+ "keywords": [
+ "composer",
+ "compression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/metadata-minifier/issues",
+ "source": "https://github.com/composer/metadata-minifier/tree/1.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-04-07T13:37:33+00:00"
+ },
+ {
+ "name": "composer/pcre",
+ "version": "3.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "04229f163664973f68f38f6f73d917799168ef24"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24",
+ "reference": "04229f163664973f68f38f6f73d917799168ef24",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.3",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/phpunit-bridge": "^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.1.4"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-27T13:40:54+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.4",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.3.2"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-01T19:23:25+00:00"
+ },
+ {
+ "name": "composer/spdx-licenses",
+ "version": "1.5.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/spdx-licenses.git",
+ "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+ "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.55",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Spdx\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "SPDX licenses list and validation library.",
+ "keywords": [
+ "license",
+ "spdx",
+ "validator"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/spdx-licenses/issues",
+ "source": "https://github.com/composer/spdx-licenses/tree/1.5.8"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-20T07:44:33+00:00"
+ },
+ {
+ "name": "composer/xdebug-handler",
+ "version": "3.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "shasum": ""
+ },
+ "require": {
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without Xdebug.",
+ "keywords": [
+ "Xdebug",
+ "performance"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-06T16:37:16+00:00"
+ },
+ {
+ "name": "dealerdirect/phpcodesniffer-composer-installer",
+ "version": "v1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCSStandards/composer-installer.git",
+ "reference": "4be43904336affa5c2f70744a348312336afd0da"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da",
+ "reference": "4be43904336affa5c2f70744a348312336afd0da",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0",
+ "php": ">=5.4",
+ "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0"
+ },
+ "require-dev": {
+ "composer/composer": "*",
+ "ext-json": "*",
+ "ext-zip": "*",
+ "php-parallel-lint/php-parallel-lint": "^1.3.1",
+ "phpcompatibility/php-compatibility": "^9.0",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Franck Nijhof",
+ "email": "franck.nijhof@dealerdirect.com",
+ "homepage": "http://www.frenck.nl",
+ "role": "Developer / IT Manager"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors"
+ }
+ ],
+ "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
+ "homepage": "http://www.dealerdirect.com",
+ "keywords": [
+ "PHPCodeSniffer",
+ "PHP_CodeSniffer",
+ "code quality",
+ "codesniffer",
+ "composer",
+ "installer",
+ "phpcbf",
+ "phpcs",
+ "plugin",
+ "qa",
+ "quality",
+ "standard",
+ "standards",
+ "style guide",
+ "stylecheck",
+ "tests"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCSStandards/composer-installer/issues",
+ "source": "https://github.com/PHPCSStandards/composer-installer"
+ },
+ "time": "2023-01-05T11:28:13+00:00"
+ },
+ {
+ "name": "dnoegel/php-xdg-base-dir",
+ "version": "v0.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dnoegel/php-xdg-base-dir.git",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "XdgBaseDir\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "implementation of xdg base directory specification for php",
+ "support": {
+ "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues",
+ "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1"
+ },
+ "time": "2019-12-04T15:06:13+00:00"
+ },
+ {
+ "name": "doctrine/coding-standard",
+ "version": "12.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/coding-standard.git",
+ "reference": "1b2b7dc58c68833af481fb9325c25abd40681c79"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/coding-standard/zipball/1b2b7dc58c68833af481fb9325c25abd40681c79",
+ "reference": "1b2b7dc58c68833af481fb9325c25abd40681c79",
+ "shasum": ""
+ },
+ "require": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0.0",
+ "php": "^7.2 || ^8.0",
+ "slevomat/coding-standard": "^8.11",
+ "squizlabs/php_codesniffer": "^3.7"
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Steve Mรผller",
+ "email": "st.mueller@dzh-online.de"
+ }
+ ],
+ "description": "The Doctrine Coding Standard is a set of PHPCS rules applied to all Doctrine projects.",
+ "homepage": "https://www.doctrine-project.org/projects/coding-standard.html",
+ "keywords": [
+ "checks",
+ "code",
+ "coding",
+ "cs",
+ "dev",
+ "doctrine",
+ "rules",
+ "sniffer",
+ "sniffs",
+ "standard",
+ "style"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/coding-standard/issues",
+ "source": "https://github.com/doctrine/coding-standard/tree/12.0.0"
+ },
+ "time": "2023-04-24T17:43:28+00:00"
+ },
+ {
+ "name": "doctrine/deprecations",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/deprecations.git",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9",
+ "phpstan/phpstan": "1.4.10 || 1.10.15",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psalm/plugin-phpunit": "0.18.4",
+ "psr/log": "^1 || ^2 || ^3",
+ "vimeo/psalm": "4.30.0 || 5.12.0"
+ },
+ "suggest": {
+ "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
+ "homepage": "https://www.doctrine-project.org/",
+ "support": {
+ "issues": "https://github.com/doctrine/deprecations/issues",
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
+ },
+ "time": "2024-01-30T19:34:25+00:00"
+ },
+ {
+ "name": "ecoapm/libyear",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ecoAPM/php-libyear.git",
+ "reference": "52cd81fcbfe1eab86efa45b6c3a57fa2556c4a51"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ecoAPM/php-libyear/zipball/52cd81fcbfe1eab86efa45b6c3a57fa2556c4a51",
+ "reference": "52cd81fcbfe1eab86efa45b6c3a57fa2556c4a51",
+ "shasum": ""
+ },
+ "require": {
+ "composer/semver": "3.3.2",
+ "ext-json": ">=7.4",
+ "guzzlehttp/guzzle": "7.5.0",
+ "php": ">=7.4",
+ "wp-cli/php-cli-tools": "0.11.16"
+ },
+ "require-dev": {
+ "mockery/mockery": "1.5.1",
+ "phpunit/phpunit": "9.5.27"
+ },
+ "bin": [
+ "libyear"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "LibYear\\": "src/",
+ "LibYear\\Tests\\": "tests/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "ecoAPM",
+ "email": "steve@ecoAPM.com",
+ "homepage": "https://ecoAPM.com"
+ }
+ ],
+ "description": "A simple measure of software dependency freshness",
+ "homepage": "https://libyear.com",
+ "support": {
+ "issues": "https://github.com/ecoAPM/php-libyear/issues",
+ "source": "https://github.com/ecoAPM/php-libyear/tree/2.3.0"
+ },
+ "time": "2022-12-15T21:07:09+00:00"
+ },
+ {
+ "name": "ergebnis/composer-normalize",
+ "version": "2.42.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ergebnis/composer-normalize.git",
+ "reference": "02cf2b69ad2a74c6f11a8c3f5f054b8f949df910"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/02cf2b69ad2a74c6f11a8c3f5f054b8f949df910",
+ "reference": "02cf2b69ad2a74c6f11a8c3f5f054b8f949df910",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^2.0.0",
+ "ergebnis/json": "^1.2.0",
+ "ergebnis/json-normalizer": "^4.5.0",
+ "ergebnis/json-printer": "^3.5.0",
+ "ext-json": "*",
+ "justinrainbow/json-schema": "^5.2.12",
+ "localheinz/diff": "^1.1.1",
+ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
+ },
+ "require-dev": {
+ "composer/composer": "^2.6.6",
+ "ergebnis/license": "^2.4.0",
+ "ergebnis/php-cs-fixer-config": "^6.20.0",
+ "ergebnis/phpunit-slow-test-detector": "^2.9.0",
+ "fakerphp/faker": "^1.23.1",
+ "infection/infection": "~0.26.6",
+ "phpunit/phpunit": "^9.6.16",
+ "psalm/plugin-phpunit": "~0.18.4",
+ "rector/rector": "~0.19.2",
+ "symfony/filesystem": "^5.4.25",
+ "vimeo/psalm": "^5.20.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Ergebnis\\Composer\\Normalize\\NormalizePlugin",
+ "composer-normalize": {
+ "indent-size": 2,
+ "indent-style": "space"
+ },
+ "plugin-optional": true
+ },
+ "autoload": {
+ "psr-4": {
+ "Ergebnis\\Composer\\Normalize\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Mรถller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Provides a composer plugin for normalizing composer.json.",
+ "homepage": "https://github.com/ergebnis/composer-normalize",
+ "keywords": [
+ "composer",
+ "normalize",
+ "normalizer",
+ "plugin"
+ ],
+ "support": {
+ "issues": "https://github.com/ergebnis/composer-normalize/issues",
+ "security": "https://github.com/ergebnis/composer-normalize/blob/main/.github/SECURITY.md",
+ "source": "https://github.com/ergebnis/composer-normalize"
+ },
+ "time": "2024-01-30T11:54:02+00:00"
+ },
+ {
+ "name": "ergebnis/json",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ergebnis/json.git",
+ "reference": "a457f25a5ba7ea11fc94f84d53678c5211abfce0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ergebnis/json/zipball/a457f25a5ba7ea11fc94f84d53678c5211abfce0",
+ "reference": "a457f25a5ba7ea11fc94f84d53678c5211abfce0",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
+ },
+ "require-dev": {
+ "ergebnis/data-provider": "^3.2.0",
+ "ergebnis/license": "^2.4.0",
+ "ergebnis/php-cs-fixer-config": "^6.20.0",
+ "ergebnis/phpunit-slow-test-detector": "^2.9.0",
+ "fakerphp/faker": "^1.23.1",
+ "infection/infection": "~0.26.6",
+ "phpunit/phpunit": "^9.6.16",
+ "psalm/plugin-phpunit": "~0.18.4",
+ "rector/rector": "~0.19.2",
+ "vimeo/psalm": "^5.20.0"
+ },
+ "type": "library",
+ "extra": {
+ "composer-normalize": {
+ "indent-size": 2,
+ "indent-style": "space"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ergebnis\\Json\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Mรถller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Provides a Json value object for representing a valid JSON string.",
+ "homepage": "https://github.com/ergebnis/json",
+ "keywords": [
+ "json"
+ ],
+ "support": {
+ "issues": "https://github.com/ergebnis/json/issues",
+ "security": "https://github.com/ergebnis/json/blob/main/.github/SECURITY.md",
+ "source": "https://github.com/ergebnis/json"
+ },
+ "time": "2024-01-29T15:09:24+00:00"
+ },
+ {
+ "name": "ergebnis/json-normalizer",
+ "version": "4.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ergebnis/json-normalizer.git",
+ "reference": "f0ee9e70739f121b27fac8b743e4a52b23de2152"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/f0ee9e70739f121b27fac8b743e4a52b23de2152",
+ "reference": "f0ee9e70739f121b27fac8b743e4a52b23de2152",
+ "shasum": ""
+ },
+ "require": {
+ "ergebnis/json": "^1.2.0",
+ "ergebnis/json-pointer": "^3.4.0",
+ "ergebnis/json-printer": "^3.5.0",
+ "ergebnis/json-schema-validator": "^4.2.0",
+ "ext-json": "*",
+ "justinrainbow/json-schema": "^5.2.12",
+ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
+ },
+ "require-dev": {
+ "composer/semver": "^3.4.0",
+ "ergebnis/data-provider": "^3.2.0",
+ "ergebnis/license": "^2.4.0",
+ "ergebnis/php-cs-fixer-config": "^6.20.0",
+ "ergebnis/phpunit-slow-test-detector": "^2.9.0",
+ "fakerphp/faker": "^1.23.1",
+ "infection/infection": "~0.26.6",
+ "phpunit/phpunit": "^9.6.16",
+ "psalm/plugin-phpunit": "~0.18.4",
+ "rector/rector": "~0.19.4",
+ "vimeo/psalm": "^5.20.0"
+ },
+ "suggest": {
+ "composer/semver": "If you want to use ComposerJsonNormalizer or VersionConstraintNormalizer"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Ergebnis\\Json\\Normalizer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Mรถller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.",
+ "homepage": "https://github.com/ergebnis/json-normalizer",
+ "keywords": [
+ "json",
+ "normalizer"
+ ],
+ "support": {
+ "issues": "https://github.com/ergebnis/json-normalizer/issues",
+ "security": "https://github.com/ergebnis/json-normalizer/blob/main/.github/SECURITY.md",
+ "source": "https://github.com/ergebnis/json-normalizer"
+ },
+ "time": "2024-01-30T09:10:15+00:00"
+ },
+ {
+ "name": "ergebnis/json-pointer",
+ "version": "3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ergebnis/json-pointer.git",
+ "reference": "b654757d873050622c2166f55ab25d04685261c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ergebnis/json-pointer/zipball/b654757d873050622c2166f55ab25d04685261c5",
+ "reference": "b654757d873050622c2166f55ab25d04685261c5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
+ },
+ "require-dev": {
+ "ergebnis/data-provider": "^3.2.0",
+ "ergebnis/license": "^2.4.0",
+ "ergebnis/php-cs-fixer-config": "^6.20.0",
+ "ergebnis/phpunit-slow-test-detector": "^2.9.0",
+ "fakerphp/faker": "^1.23.1",
+ "infection/infection": "~0.26.6",
+ "phpunit/phpunit": "^9.6.16",
+ "psalm/plugin-phpunit": "~0.18.4",
+ "rector/rector": "~0.19.2",
+ "vimeo/psalm": "^5.20.0"
+ },
+ "type": "library",
+ "extra": {
+ "composer-normalize": {
+ "indent-size": 2,
+ "indent-style": "space"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ergebnis\\Json\\Pointer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Mรถller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Provides an abstraction of a JSON pointer.",
+ "homepage": "https://github.com/ergebnis/json-pointer",
+ "keywords": [
+ "RFC6901",
+ "json",
+ "pointer"
+ ],
+ "support": {
+ "issues": "https://github.com/ergebnis/json-pointer/issues",
+ "security": "https://github.com/ergebnis/json-pointer/blob/main/.github/SECURITY.md",
+ "source": "https://github.com/ergebnis/json-pointer"
+ },
+ "time": "2024-01-29T16:37:15+00:00"
+ },
+ {
+ "name": "ergebnis/json-printer",
+ "version": "3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ergebnis/json-printer.git",
+ "reference": "549e16fe6de34b8c3aee7b421be12caa552f3ced"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/549e16fe6de34b8c3aee7b421be12caa552f3ced",
+ "reference": "549e16fe6de34b8c3aee7b421be12caa552f3ced",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
+ },
+ "require-dev": {
+ "ergebnis/data-provider": "^3.2.0",
+ "ergebnis/license": "^2.4.0",
+ "ergebnis/php-cs-fixer-config": "^6.20.0",
+ "ergebnis/phpunit-slow-test-detector": "^2.9.0",
+ "fakerphp/faker": "^1.23.1",
+ "infection/infection": "~0.26.6",
+ "phpunit/phpunit": "^9.6.16",
+ "psalm/plugin-phpunit": "~0.18.4",
+ "rector/rector": "~0.19.2",
+ "vimeo/psalm": "^5.20.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Ergebnis\\Json\\Printer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Mรถller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Provides a JSON printer, allowing for flexible indentation.",
+ "homepage": "https://github.com/ergebnis/json-printer",
+ "keywords": [
+ "formatter",
+ "json",
+ "printer"
+ ],
+ "support": {
+ "issues": "https://github.com/ergebnis/json-printer/issues",
+ "security": "https://github.com/ergebnis/json-printer/blob/main/.github/SECURITY.md",
+ "source": "https://github.com/ergebnis/json-printer"
+ },
+ "time": "2024-01-29T15:33:37+00:00"
+ },
+ {
+ "name": "ergebnis/json-schema-validator",
+ "version": "4.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ergebnis/json-schema-validator.git",
+ "reference": "10ed514fdc3f9b71f8a92c567afea21a2f6fa1ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ergebnis/json-schema-validator/zipball/10ed514fdc3f9b71f8a92c567afea21a2f6fa1ef",
+ "reference": "10ed514fdc3f9b71f8a92c567afea21a2f6fa1ef",
+ "shasum": ""
+ },
+ "require": {
+ "ergebnis/json": "^1.2.0",
+ "ergebnis/json-pointer": "^3.4.0",
+ "ext-json": "*",
+ "justinrainbow/json-schema": "^5.2.12",
+ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
+ },
+ "require-dev": {
+ "ergebnis/data-provider": "^3.2.0",
+ "ergebnis/license": "^2.4.0",
+ "ergebnis/php-cs-fixer-config": "^6.20.0",
+ "ergebnis/phpunit-slow-test-detector": "^2.9.0",
+ "fakerphp/faker": "^1.23.1",
+ "infection/infection": "~0.26.6",
+ "phpunit/phpunit": "^9.6.16",
+ "psalm/plugin-phpunit": "~0.18.4",
+ "rector/rector": "~0.19.2",
+ "vimeo/psalm": "^5.20.0"
+ },
+ "type": "library",
+ "extra": {
+ "composer-normalize": {
+ "indent-size": 2,
+ "indent-style": "space"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ergebnis\\Json\\SchemaValidator\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Mรถller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Provides a JSON schema validator, building on top of justinrainbow/json-schema.",
+ "homepage": "https://github.com/ergebnis/json-schema-validator",
+ "keywords": [
+ "json",
+ "schema",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/ergebnis/json-schema-validator/issues",
+ "security": "https://github.com/ergebnis/json-schema-validator/blob/main/.github/SECURITY.md",
+ "source": "https://github.com/ergebnis/json-schema-validator"
+ },
+ "time": "2024-01-29T16:50:15+00:00"
+ },
+ {
+ "name": "ergebnis/phpstan-rules",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ergebnis/phpstan-rules.git",
+ "reference": "2e9946491d39ea1eb043738309895e08f025a7a0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ergebnis/phpstan-rules/zipball/2e9946491d39ea1eb043738309895e08f025a7a0",
+ "reference": "2e9946491d39ea1eb043738309895e08f025a7a0",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "nikic/php-parser": "^4.2.3 || ^5.0.0",
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0",
+ "phpstan/phpstan": "^1.10.21"
+ },
+ "require-dev": {
+ "doctrine/orm": "^3.0.0",
+ "ergebnis/composer-normalize": "^2.42.0",
+ "ergebnis/license": "^2.4.0",
+ "ergebnis/php-cs-fixer-config": "^6.22.0",
+ "ergebnis/phpunit-slow-test-detector": "^2.10.0",
+ "nette/di": "^3.2.0",
+ "phpstan/phpstan-deprecation-rules": "^1.1.4",
+ "phpstan/phpstan-strict-rules": "^1.5.2",
+ "phpunit/phpunit": "^10.5.10",
+ "psalm/plugin-phpunit": "~0.18.4",
+ "psr/container": "^2.0.2",
+ "rector/rector": "^1.0.0",
+ "vimeo/psalm": "^5.21.1"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ergebnis\\PHPStan\\Rules\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Mรถller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Provides rules for phpstan/phpstan.",
+ "homepage": "https://github.com/ergebnis/phpstan-rules",
+ "keywords": [
+ "PHPStan",
+ "phpstan-rules"
+ ],
+ "support": {
+ "issues": "https://github.com/ergebnis/phpstan-rules/issues",
+ "security": "https://github.com/ergebnis/phpstan-rules/blob/main/.github/SECURITY.md",
+ "source": "https://github.com/ergebnis/phpstan-rules"
+ },
+ "time": "2024-02-07T17:49:28+00:00"
+ },
+ {
+ "name": "ergebnis/phpunit-slow-test-detector",
+ "version": "2.14.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ergebnis/phpunit-slow-test-detector.git",
+ "reference": "9138b0ebffdd2c579eb4b0567ef3bef8c714fdc2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ergebnis/phpunit-slow-test-detector/zipball/9138b0ebffdd2c579eb4b0567ef3bef8c714fdc2",
+ "reference": "9138b0ebffdd2c579eb4b0567ef3bef8c714fdc2",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
+ "phpunit/phpunit": "^6.5.0 || ^7.5.0 || ^8.5.19 || ^9.0.0 || ^10.0.0 || ^11.0.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.42.0",
+ "ergebnis/license": "^2.4.0",
+ "ergebnis/php-cs-fixer-config": "^6.25.1",
+ "fakerphp/faker": "~1.20.0",
+ "psalm/plugin-phpunit": "~0.19.0",
+ "psr/container": "~1.0.0",
+ "rector/rector": "^1.0.4",
+ "vimeo/psalm": "^5.23.1"
+ },
+ "type": "library",
+ "extra": {
+ "composer-normalize": {
+ "indent-size": 2,
+ "indent-style": "space"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ergebnis\\PHPUnit\\SlowTestDetector\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Mรถller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Provides facilities for detecting slow tests in phpunit/phpunit.",
+ "homepage": "https://github.com/ergebnis/phpunit-slow-test-detector",
+ "keywords": [
+ "detector",
+ "extension",
+ "phpunit",
+ "slow",
+ "test"
+ ],
+ "support": {
+ "issues": "https://github.com/ergebnis/phpunit-slow-test-detector/issues",
+ "security": "https://github.com/ergebnis/phpunit-slow-test-detector/blob/main/.github/SECURITY.md",
+ "source": "https://github.com/ergebnis/phpunit-slow-test-detector"
+ },
+ "time": "2024-04-08T06:35:34+00:00"
+ },
+ {
+ "name": "felixfbecker/advanced-json-rpc",
+ "version": "v3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git",
+ "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447",
+ "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447",
+ "shasum": ""
+ },
+ "require": {
+ "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
+ "php": "^7.1 || ^8.0",
+ "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "AdvancedJsonRpc\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Felix Becker",
+ "email": "felix.b@outlook.com"
+ }
+ ],
+ "description": "A more advanced JSONRPC implementation",
+ "support": {
+ "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues",
+ "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1"
+ },
+ "time": "2021-06-11T22:34:44+00:00"
+ },
+ {
+ "name": "felixfbecker/language-server-protocol",
+ "version": "v1.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/felixfbecker/php-language-server-protocol.git",
+ "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842",
+ "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "*",
+ "squizlabs/php_codesniffer": "^3.1",
+ "vimeo/psalm": "^4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "LanguageServerProtocol\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Felix Becker",
+ "email": "felix.b@outlook.com"
+ }
+ ],
+ "description": "PHP classes for the Language Server Protocol",
+ "keywords": [
+ "language",
+ "microsoft",
+ "php",
+ "server"
+ ],
+ "support": {
+ "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues",
+ "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2"
+ },
+ "time": "2022-03-02T22:36:06+00:00"
+ },
+ {
+ "name": "fidry/cpu-core-counter",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theofidry/cpu-core-counter.git",
+ "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42",
+ "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "fidry/makefile": "^0.2.0",
+ "fidry/php-cs-fixer-config": "^1.1.2",
+ "phpstan/extension-installer": "^1.2.0",
+ "phpstan/phpstan": "^1.9.2",
+ "phpstan/phpstan-deprecation-rules": "^1.0.0",
+ "phpstan/phpstan-phpunit": "^1.2.2",
+ "phpstan/phpstan-strict-rules": "^1.4.4",
+ "phpunit/phpunit": "^8.5.31 || ^9.5.26",
+ "webmozarts/strict-phpunit": "^7.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Fidry\\CpuCoreCounter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Thรฉo FIDRY",
+ "email": "theo.fidry@gmail.com"
+ }
+ ],
+ "description": "Tiny utility to get the number of CPU cores.",
+ "keywords": [
+ "CPU",
+ "core"
+ ],
+ "support": {
+ "issues": "https://github.com/theofidry/cpu-core-counter/issues",
+ "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theofidry",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-07T09:43:46+00:00"
+ },
+ {
+ "name": "filp/whoops",
+ "version": "2.15.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/filp/whoops.git",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0 || ^8.0",
+ "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^0.9 || ^1.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
+ "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
+ },
+ "suggest": {
+ "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
+ "whoops/soap": "Formats errors as SOAP responses"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Whoops\\": "src/Whoops/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Filipe Dobreira",
+ "homepage": "https://github.com/filp",
+ "role": "Developer"
+ }
+ ],
+ "description": "php error handling for cool kids",
+ "homepage": "https://filp.github.io/whoops/",
+ "keywords": [
+ "error",
+ "exception",
+ "handling",
+ "library",
+ "throwable",
+ "whoops"
+ ],
+ "support": {
+ "issues": "https://github.com/filp/whoops/issues",
+ "source": "https://github.com/filp/whoops/tree/2.15.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/denis-sokolov",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-03T12:00:00+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba",
+ "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.5",
+ "guzzlehttp/psr7": "^1.9 || ^2.4",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.1",
+ "ext-curl": "*",
+ "php-http/client-integration-tests": "^3.0",
+ "phpunit/phpunit": "^8.5.29 || ^9.5.23",
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
+ },
+ "suggest": {
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ },
+ "branch-alias": {
+ "dev-master": "7.5-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Mรกrk Sรกgi-Kazรกr",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-08-28T15:39:27+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "1.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e",
+ "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "^4.4 || ^5.1"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/1.5.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-21T12:31:43+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "2.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
+ "ralouphie/getallheaders": "^3.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "^0.9",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Mรกrk Sรกgi-Kazรกr",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Mรกrk Sรกgi-Kazรกr",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.6.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:05:35+00:00"
+ },
+ {
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3|^7.0|^8.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
+ },
+ "require-dev": {
+ "phpunit/php-file-iterator": "^1.4 || ^2.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "hamcrest"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
+ ],
+ "support": {
+ "issues": "https://github.com/hamcrest/hamcrest-php/issues",
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
+ },
+ "time": "2020-07-09T08:09:16+00:00"
+ },
+ {
+ "name": "icanhazstring/composer-unused",
+ "version": "0.8.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer-unused/composer-unused.git",
+ "reference": "4720206edc29a7da1913ece0e508f6d82fbcd905"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer-unused/composer-unused/zipball/4720206edc29a7da1913ece0e508f6d82fbcd905",
+ "reference": "4720206edc29a7da1913ece0e508f6d82fbcd905",
+ "shasum": ""
+ },
+ "require": {
+ "composer-unused/contracts": "^0.3",
+ "composer-unused/symbol-parser": "^0.2.1",
+ "ext-json": "*",
+ "nikic/php-parser": "^4.15",
+ "ondram/ci-detector": "^4.1",
+ "php": "^7.4 || ^8.0",
+ "phpstan/phpdoc-parser": "^1.12",
+ "psr/container": "^1.0 || ^2.0",
+ "psr/log": "^1.1 || ^2 || ^3",
+ "symfony/config": "^4.4 || ^5.4 || ^6.0 || ^7.0",
+ "symfony/console": "^4.4 || ^5.4 || ^6.0 || ^7.0",
+ "symfony/dependency-injection": "^4.4.8 || ^5.4 || ^6.0 || ^7.0",
+ "symfony/property-access": "^4.4 || ^5.4 || ^6.0 || ^7.0",
+ "symfony/serializer": "^4.4 || ^5.4 || ^6.0 || ^7.0",
+ "symfony/validator": "^4.4 || ^5.4 || ^6.0 || ^7.0",
+ "webmozart/assert": "^1.10",
+ "webmozart/glob": "^4.4"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8",
+ "codeception/verify": "^3.0",
+ "dg/bypass-finals": "^1.5",
+ "ergebnis/composer-normalize": "^2.28",
+ "ext-ds": "*",
+ "ext-zend-opcache": "*",
+ "jangregor/phpstan-prophecy": "^1.0",
+ "php-ds/php-ds": "^1.4",
+ "phpspec/prophecy-phpunit": "^2.0.2",
+ "phpstan/extension-installer": "^1.3",
+ "phpstan/phpstan": "^1.10",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.6.13",
+ "roave/security-advisories": "dev-master",
+ "squizlabs/php_codesniffer": "^3.7"
+ },
+ "bin": [
+ "bin/composer-unused"
+ ],
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": true
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ComposerUnused\\ComposerUnused\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Andreas Frรถmer",
+ "email": "composer-unused@icanhazstring.com"
+ }
+ ],
+ "description": "Show unused packages by scanning your code",
+ "homepage": "https://github.com/composer-unused/composer-unused",
+ "keywords": [
+ "composer",
+ "php-parser",
+ "static analysis",
+ "unused"
+ ],
+ "support": {
+ "issues": "https://github.com/composer-unused/composer-unused/issues",
+ "source": "https://github.com/composer-unused/composer-unused"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/icanhazstring",
+ "type": "github"
+ },
+ {
+ "url": "https://paypal.me/icanhazstring",
+ "type": "other"
+ }
+ ],
+ "time": "2023-11-30T14:35:29+00:00"
+ },
+ {
+ "name": "infection/abstract-testframework-adapter",
+ "version": "0.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/abstract-testframework-adapter.git",
+ "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/abstract-testframework-adapter/zipball/18925e20d15d1a5995bb85c9dc09e8751e1e069b",
+ "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^2.17",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Infection\\AbstractTestFramework\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com"
+ }
+ ],
+ "description": "Abstract Test Framework Adapter for Infection",
+ "support": {
+ "issues": "https://github.com/infection/abstract-testframework-adapter/issues",
+ "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-08-17T18:49:12+00:00"
+ },
+ {
+ "name": "infection/extension-installer",
+ "version": "0.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/extension-installer.git",
+ "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/extension-installer/zipball/9b351d2910b9a23ab4815542e93d541e0ca0cdcf",
+ "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1 || ^2.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.9 || ^2.0",
+ "friendsofphp/php-cs-fixer": "^2.18, <2.19",
+ "infection/infection": "^0.15.2",
+ "php-coveralls/php-coveralls": "^2.4",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12.10",
+ "phpstan/phpstan-phpunit": "^0.12.6",
+ "phpstan/phpstan-strict-rules": "^0.12.2",
+ "phpstan/phpstan-webmozart-assert": "^0.12.2",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^4.8"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Infection\\ExtensionInstaller\\Plugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "Infection\\ExtensionInstaller\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com"
+ }
+ ],
+ "description": "Infection Extension Installer",
+ "support": {
+ "issues": "https://github.com/infection/extension-installer/issues",
+ "source": "https://github.com/infection/extension-installer/tree/0.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-10-20T22:08:34+00:00"
+ },
+ {
+ "name": "infection/include-interceptor",
+ "version": "0.2.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/include-interceptor.git",
+ "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/include-interceptor/zipball/0cc76d95a79d9832d74e74492b0a30139904bdf7",
+ "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7",
+ "shasum": ""
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.16",
+ "infection/infection": "^0.15.0",
+ "phan/phan": "^2.4 || ^3",
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpstan/phpstan": "^0.12.8",
+ "phpunit/phpunit": "^8.5",
+ "vimeo/psalm": "^3.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Infection\\StreamWrapper\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com"
+ }
+ ],
+ "description": "Stream Wrapper: Include Interceptor. Allows to replace included (autoloaded) file with another one.",
+ "support": {
+ "issues": "https://github.com/infection/include-interceptor/issues",
+ "source": "https://github.com/infection/include-interceptor/tree/0.2.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-08-09T10:03:57+00:00"
+ },
+ {
+ "name": "infection/infection",
+ "version": "0.27.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/infection.git",
+ "reference": "6d55979c457eef2a5d0d80446c67ca533f201961"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/infection/zipball/6d55979c457eef2a5d0d80446c67ca533f201961",
+ "reference": "6d55979c457eef2a5d0d80446c67ca533f201961",
+ "shasum": ""
+ },
+ "require": {
+ "colinodell/json5": "^2.2",
+ "composer-runtime-api": "^2.0",
+ "composer/xdebug-handler": "^2.0 || ^3.0",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "fidry/cpu-core-counter": "^0.4.0 || ^0.5.0 || ^1.0",
+ "infection/abstract-testframework-adapter": "^0.5.0",
+ "infection/extension-installer": "^0.1.0",
+ "infection/include-interceptor": "^0.2.5",
+ "justinrainbow/json-schema": "^5.2.10",
+ "nikic/php-parser": "^4.15.1",
+ "ondram/ci-detector": "^4.1.0",
+ "php": "^8.1",
+ "sanmai/later": "^0.1.1",
+ "sanmai/pipeline": "^5.1 || ^6",
+ "sebastian/diff": "^3.0.2 || ^4.0 || ^5.0 || ^6.0",
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0",
+ "thecodingmachine/safe": "^2.1.2",
+ "webmozart/assert": "^1.11"
+ },
+ "conflict": {
+ "antecedent/patchwork": "<2.1.25",
+ "dg/bypass-finals": "<1.4.1",
+ "phpunit/php-code-coverage": ">9,<9.1.4 || >9.2.17,<9.2.21"
+ },
+ "require-dev": {
+ "brianium/paratest": "^6.11",
+ "ext-simplexml": "*",
+ "fidry/makefile": "^1.0",
+ "helmich/phpunit-json-assert": "^3.0",
+ "phpspec/prophecy": "^1.15",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpstan/extension-installer": "^1.1.0",
+ "phpstan/phpstan": "^1.10.15",
+ "phpstan/phpstan-phpunit": "^1.0.0",
+ "phpstan/phpstan-strict-rules": "^1.1.0",
+ "phpstan/phpstan-webmozart-assert": "^1.0.2",
+ "phpunit/phpunit": "^9.6",
+ "rector/rector": "^0.16.0",
+ "sidz/phpstan-rules": "^0.4.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0",
+ "thecodingmachine/phpstan-safe-rule": "^1.2.0"
+ },
+ "bin": [
+ "bin/infection"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Infection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com",
+ "homepage": "https://twitter.com/maks_rafalko"
+ },
+ {
+ "name": "Oleg Zhulnev",
+ "homepage": "https://github.com/sidz"
+ },
+ {
+ "name": "Gert de Pagter",
+ "homepage": "https://github.com/BackEndTea"
+ },
+ {
+ "name": "Thรฉo FIDRY",
+ "email": "theo.fidry@gmail.com",
+ "homepage": "https://twitter.com/tfidry"
+ },
+ {
+ "name": "Alexey Kopytko",
+ "email": "alexey@kopytko.com",
+ "homepage": "https://www.alexeykopytko.com"
+ },
+ {
+ "name": "Andreas Mรถller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.",
+ "keywords": [
+ "coverage",
+ "mutant",
+ "mutation framework",
+ "mutation testing",
+ "testing",
+ "unit testing"
+ ],
+ "support": {
+ "issues": "https://github.com/infection/infection/issues",
+ "source": "https://github.com/infection/infection/tree/0.27.11"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-20T07:48:57+00:00"
+ },
+ {
+ "name": "jetbrains/phpstorm-stubs",
+ "version": "v2023.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/JetBrains/phpstorm-stubs.git",
+ "reference": "99d8bcab934ae5362f33660b1cd4b8c4d617c40b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/99d8bcab934ae5362f33660b1cd4b8c4d617c40b",
+ "reference": "99d8bcab934ae5362f33660b1cd4b8c4d617c40b",
+ "shasum": ""
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "@stable",
+ "nikic/php-parser": "@stable",
+ "php": "^8.0",
+ "phpdocumentor/reflection-docblock": "@stable",
+ "phpunit/phpunit": "^9.6"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "PhpStormStubsMap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "description": "PHP runtime & extensions header files for PhpStorm",
+ "homepage": "https://www.jetbrains.com/phpstorm",
+ "keywords": [
+ "autocomplete",
+ "code",
+ "inference",
+ "inspection",
+ "jetbrains",
+ "phpstorm",
+ "stubs",
+ "type"
+ ],
+ "support": {
+ "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2023.3"
+ },
+ "time": "2023-11-01T18:52:29+00:00"
+ },
+ {
+ "name": "justinrainbow/json-schema",
+ "version": "v5.2.13",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jsonrainbow/json-schema.git",
+ "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793",
+ "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
+ "json-schema/json-schema-test-suite": "1.2.0",
+ "phpunit/phpunit": "^4.8.35"
+ },
+ "bin": [
+ "bin/validate-json"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "JsonSchema\\": "src/JsonSchema/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bruno Prieto Reis",
+ "email": "bruno.p.reis@gmail.com"
+ },
+ {
+ "name": "Justin Rainbow",
+ "email": "justin.rainbow@gmail.com"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ },
+ {
+ "name": "Robert Schรถnthal",
+ "email": "seroscho@googlemail.com"
+ }
+ ],
+ "description": "A library to validate a json schema.",
+ "homepage": "https://github.com/justinrainbow/json-schema",
+ "keywords": [
+ "json",
+ "schema"
+ ],
+ "support": {
+ "issues": "https://github.com/jsonrainbow/json-schema/issues",
+ "source": "https://github.com/jsonrainbow/json-schema/tree/v5.2.13"
+ },
+ "time": "2023-09-26T02:20:38+00:00"
+ },
+ {
+ "name": "localheinz/diff",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/localheinz/diff.git",
+ "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/localheinz/diff/zipball/851bb20ea8358c86f677f5f111c4ab031b1c764c",
+ "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.5 || ^8.0",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Fork of sebastian/diff for use with ergebnis/composer-normalize",
+ "homepage": "https://github.com/localheinz/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "source": "https://github.com/localheinz/diff/tree/main"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-07-06T04:49:32+00:00"
+ },
+ {
+ "name": "maglnet/composer-require-checker",
+ "version": "4.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/maglnet/ComposerRequireChecker.git",
+ "reference": "c6c555e799bee50810fd84933ca1f0b276379ccf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/maglnet/ComposerRequireChecker/zipball/c6c555e799bee50810fd84933ca1f0b276379ccf",
+ "reference": "c6c555e799bee50810fd84933ca1f0b276379ccf",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.0.0",
+ "ext-phar": "*",
+ "nikic/php-parser": "^4.19.1",
+ "php": "~8.2.0 || ~8.3.0",
+ "symfony/console": "^6.4.1 || ^7.0.1",
+ "webmozart/assert": "^1.11.0",
+ "webmozart/glob": "^4.7.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12.0.0",
+ "ext-zend-opcache": "*",
+ "phing/phing": "^2.17.4",
+ "phpstan/phpstan": "^1.10.66",
+ "phpunit/phpunit": "^10.5.16",
+ "psalm/plugin-phpunit": "^0.19.0",
+ "roave/infection-static-analysis-plugin": "^1.35.0",
+ "spatie/temporary-directory": "^2.2.1",
+ "vimeo/psalm": "^5.23.1"
+ },
+ "bin": [
+ "bin/composer-require-checker"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ComposerRequireChecker\\": "src/ComposerRequireChecker"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "http://ocramius.github.io/"
+ },
+ {
+ "name": "Matthias Glaub",
+ "email": "magl@magl.net",
+ "homepage": "http://magl.net"
+ }
+ ],
+ "description": "CLI tool to analyze composer dependencies and verify that no unknown symbols are used in the sources of a package",
+ "homepage": "https://github.com/maglnet/ComposerRequireChecker",
+ "keywords": [
+ "analysis",
+ "cli",
+ "composer",
+ "dependency",
+ "imports",
+ "require",
+ "requirements"
+ ],
+ "support": {
+ "issues": "https://github.com/maglnet/ComposerRequireChecker/issues",
+ "source": "https://github.com/maglnet/ComposerRequireChecker/tree/4.11.0"
+ },
+ "time": "2024-04-01T20:24:52+00:00"
+ },
+ {
+ "name": "marc-mabe/php-enum",
+ "version": "v4.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/marc-mabe/php-enum.git",
+ "reference": "3da42cc1daceaf98c858e56f59d1ccd52b011fdc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/3da42cc1daceaf98c858e56f59d1ccd52b011fdc",
+ "reference": "3da42cc1daceaf98c858e56f59d1ccd52b011fdc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-reflection": "*",
+ "php": "^7.1 | ^8.0"
+ },
+ "require-dev": {
+ "phpbench/phpbench": "^0.16.10 || ^1.0.4",
+ "phpstan/phpstan": "^1.3.1",
+ "phpunit/phpunit": "^7.5.20 | ^8.5.22 | ^9.5.11",
+ "vimeo/psalm": "^4.17.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.6-dev",
+ "dev-3.x": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "MabeEnum\\": "src/"
+ },
+ "classmap": [
+ "stubs/Stringable.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Marc Bennewitz",
+ "email": "dev@mabe.berlin",
+ "homepage": "https://mabe.berlin/",
+ "role": "Lead"
+ }
+ ],
+ "description": "Simple and fast implementation of enumerations with native PHP",
+ "homepage": "https://github.com/marc-mabe/php-enum",
+ "keywords": [
+ "enum",
+ "enum-map",
+ "enum-set",
+ "enumeration",
+ "enumerator",
+ "enummap",
+ "enumset",
+ "map",
+ "set",
+ "type",
+ "type-hint",
+ "typehint"
+ ],
+ "support": {
+ "issues": "https://github.com/marc-mabe/php-enum/issues",
+ "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.0"
+ },
+ "time": "2022-04-19T02:21:46+00:00"
+ },
+ {
+ "name": "mockery/mockery",
+ "version": "1.6.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699",
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699",
+ "shasum": ""
+ },
+ "require": {
+ "hamcrest/hamcrest-php": "^2.0.1",
+ "lib-pcre": ">=7.0",
+ "php": ">=7.3"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5 || ^9.6.17",
+ "symplify/easy-coding-standard": "^12.1.14"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ],
+ "psr-4": {
+ "Mockery\\": "library/Mockery"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Pรกdraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "https://github.com/padraic",
+ "role": "Author"
+ },
+ {
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "https://davedevelopment.co.uk",
+ "role": "Developer"
+ },
+ {
+ "name": "Nathanael Esayeas",
+ "email": "nathanael.esayeas@protonmail.com",
+ "homepage": "https://github.com/ghostwriter",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Mockery is a simple yet flexible PHP mock object framework",
+ "homepage": "https://github.com/mockery/mockery",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "library",
+ "mock",
+ "mock objects",
+ "mockery",
+ "stub",
+ "test",
+ "test double",
+ "testing"
+ ],
+ "support": {
+ "docs": "https://docs.mockery.io/",
+ "issues": "https://github.com/mockery/mockery/issues",
+ "rss": "https://github.com/mockery/mockery/releases.atom",
+ "security": "https://github.com/mockery/mockery/security/advisories",
+ "source": "https://github.com/mockery/mockery"
+ },
+ "time": "2024-05-16T03:13:13+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.11.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-03-08T13:26:56+00:00"
+ },
+ {
+ "name": "netresearch/jsonmapper",
+ "version": "v4.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cweiske/jsonmapper.git",
+ "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/132c75c7dd83e45353ebb9c6c9f591952995bbf0",
+ "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-reflection": "*",
+ "ext-spl": "*",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0",
+ "squizlabs/php_codesniffer": "~3.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "JsonMapper": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "OSL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "Christian Weiske",
+ "email": "cweiske@cweiske.de",
+ "homepage": "http://github.com/cweiske/jsonmapper/",
+ "role": "Developer"
+ }
+ ],
+ "description": "Map nested JSON structures onto PHP classes",
+ "support": {
+ "email": "cweiske@cweiske.de",
+ "issues": "https://github.com/cweiske/jsonmapper/issues",
+ "source": "https://github.com/cweiske/jsonmapper/tree/v4.4.1"
+ },
+ "time": "2024-01-31T06:18:54+00:00"
+ },
+ {
+ "name": "nette/di",
+ "version": "v3.1.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/di.git",
+ "reference": "2645ec3eaa17fa2ab87c5eb4eaacb1fe6dd28284"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/di/zipball/2645ec3eaa17fa2ab87c5eb4eaacb1fe6dd28284",
+ "reference": "2645ec3eaa17fa2ab87c5eb4eaacb1fe6dd28284",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "nette/neon": "^3.3 || ^4.0",
+ "nette/php-generator": "^3.5.4 || ^4.0",
+ "nette/robot-loader": "^3.2 || ~4.0.0",
+ "nette/schema": "^1.2.5",
+ "nette/utils": "^3.2.5 || ~4.0.0",
+ "php": "7.2 - 8.3"
+ },
+ "require-dev": {
+ "nette/tester": "^2.4",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "๐ Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP features.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "compiled",
+ "di",
+ "dic",
+ "factory",
+ "ioc",
+ "nette",
+ "static"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/di/issues",
+ "source": "https://github.com/nette/di/tree/v3.1.10"
+ },
+ "time": "2024-02-06T01:19:44+00:00"
+ },
+ {
+ "name": "nette/finder",
+ "version": "v2.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/finder.git",
+ "reference": "991aefb42860abeab8e003970c3809a9d83cb932"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/finder/zipball/991aefb42860abeab8e003970c3809a9d83cb932",
+ "reference": "991aefb42860abeab8e003970c3809a9d83cb932",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^2.4 || ^3.0",
+ "php": ">=7.1"
+ },
+ "conflict": {
+ "nette/nette": "<2.2"
+ },
+ "require-dev": {
+ "nette/tester": "^2.0",
+ "phpstan/phpstan": "^0.12",
+ "tracy/tracy": "^2.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "๐ Nette Finder: find files and directories with an intuitive API.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "filesystem",
+ "glob",
+ "iterator",
+ "nette"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/finder/issues",
+ "source": "https://github.com/nette/finder/tree/v2.6.0"
+ },
+ "time": "2022-10-13T01:31:15+00:00"
+ },
+ {
+ "name": "nette/neon",
+ "version": "v3.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/neon.git",
+ "reference": "457bfbf0560f600b30d9df4233af382a478bb44d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/neon/zipball/457bfbf0560f600b30d9df4233af382a478bb44d",
+ "reference": "457bfbf0560f600b30d9df4233af382a478bb44d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "8.0 - 8.3"
+ },
+ "require-dev": {
+ "nette/tester": "^2.4",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.7"
+ },
+ "bin": [
+ "bin/neon-lint"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.4-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "๐ธ Nette NEON: encodes and decodes NEON file format.",
+ "homepage": "https://ne-on.org",
+ "keywords": [
+ "export",
+ "import",
+ "neon",
+ "nette",
+ "yaml"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/neon/issues",
+ "source": "https://github.com/nette/neon/tree/v3.4.1"
+ },
+ "time": "2023-09-27T08:59:11+00:00"
+ },
+ {
+ "name": "nette/php-generator",
+ "version": "v4.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/php-generator.git",
+ "reference": "690b00d81d42d5633e4457c43ef9754573b6f9d6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/690b00d81d42d5633e4457c43ef9754573b6f9d6",
+ "reference": "690b00d81d42d5633e4457c43ef9754573b6f9d6",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^3.2.9 || ^4.0",
+ "php": "8.0 - 8.3"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.4",
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.8"
+ },
+ "suggest": {
+ "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "๐ Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.3 features.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "code",
+ "nette",
+ "php",
+ "scaffolding"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/php-generator/issues",
+ "source": "https://github.com/nette/php-generator/tree/v4.1.5"
+ },
+ "time": "2024-05-12T17:31:02+00:00"
+ },
+ {
+ "name": "nette/robot-loader",
+ "version": "v3.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/robot-loader.git",
+ "reference": "970c8f82be98ec54180c88a468cd2b057855d993"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/robot-loader/zipball/970c8f82be98ec54180c88a468cd2b057855d993",
+ "reference": "970c8f82be98ec54180c88a468cd2b057855d993",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "nette/finder": "^2.5 || ^3.0",
+ "nette/utils": "^3.0",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "nette/tester": "^2.0",
+ "phpstan/phpstan": "^0.12",
+ "tracy/tracy": "^2.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.4-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "๐ Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "autoload",
+ "class",
+ "interface",
+ "nette",
+ "trait"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/robot-loader/issues",
+ "source": "https://github.com/nette/robot-loader/tree/v3.4.2"
+ },
+ "time": "2022-12-14T15:41:06+00:00"
+ },
+ {
+ "name": "nette/schema",
+ "version": "v1.2.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/schema.git",
+ "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a",
+ "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
+ "php": "7.1 - 8.3"
+ },
+ "require-dev": {
+ "nette/tester": "^2.3 || ^2.4",
+ "phpstan/phpstan-nette": "^1.0",
+ "tracy/tracy": "^2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "๐ Nette Schema: validating data structures against a given Schema.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "config",
+ "nette"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/schema/issues",
+ "source": "https://github.com/nette/schema/tree/v1.2.5"
+ },
+ "time": "2023-10-05T20:37:59+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v3.2.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/a4175c62652f2300c8017fb7e640f9ccb11648d2",
+ "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2 <8.4"
+ },
+ "conflict": {
+ "nette/di": "<3.0.6"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "~2.0",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.3"
+ },
+ "suggest": {
+ "ext-gd": "to use Image",
+ "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+ "ext-json": "to use Nette\\Utils\\Json",
+ "ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
+ "ext-xml": "to use Strings::length() etc. when mbstring is not available"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "๐ Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "array",
+ "core",
+ "datetime",
+ "images",
+ "json",
+ "nette",
+ "paginator",
+ "password",
+ "slugify",
+ "string",
+ "unicode",
+ "utf-8",
+ "utility",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/utils/issues",
+ "source": "https://github.com/nette/utils/tree/v3.2.10"
+ },
+ "time": "2023-07-30T15:38:18+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.19.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b",
+ "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1"
+ },
+ "time": "2024-03-17T08:10:35+00:00"
+ },
+ {
+ "name": "nikolaposa/version",
+ "version": "4.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikolaposa/version.git",
+ "reference": "003fefa14f47cd44917546285e39d196af062a95"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikolaposa/version/zipball/003fefa14f47cd44917546285e39d196af062a95",
+ "reference": "003fefa14f47cd44917546285e39d196af062a95",
+ "shasum": ""
+ },
+ "require": {
+ "beberlei/assert": "^3.2",
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.44",
+ "phpstan/phpstan": "^1.10",
+ "phpstan/phpstan-beberlei-assert": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^10.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Version\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nikola Poลกa",
+ "email": "posa.nikola@gmail.com",
+ "homepage": "https://www.nikolaposa.in.rs"
+ }
+ ],
+ "description": "Value Object that represents a SemVer-compliant version number.",
+ "homepage": "https://github.com/nikolaposa/version",
+ "keywords": [
+ "semantic",
+ "semver",
+ "version",
+ "versioning"
+ ],
+ "support": {
+ "issues": "https://github.com/nikolaposa/version/issues",
+ "source": "https://github.com/nikolaposa/version/tree/4.2.0"
+ },
+ "time": "2023-12-29T22:07:54+00:00"
+ },
+ {
+ "name": "nunomaduro/collision",
+ "version": "v7.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/collision.git",
+ "reference": "49ec67fa7b002712da8526678abd651c09f375b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2",
+ "reference": "49ec67fa7b002712da8526678abd651c09f375b2",
+ "shasum": ""
+ },
+ "require": {
+ "filp/whoops": "^2.15.3",
+ "nunomaduro/termwind": "^1.15.1",
+ "php": "^8.1.0",
+ "symfony/console": "^6.3.4"
+ },
+ "conflict": {
+ "laravel/framework": ">=11.0.0"
+ },
+ "require-dev": {
+ "brianium/paratest": "^7.3.0",
+ "laravel/framework": "^10.28.0",
+ "laravel/pint": "^1.13.3",
+ "laravel/sail": "^1.25.0",
+ "laravel/sanctum": "^3.3.1",
+ "laravel/tinker": "^2.8.2",
+ "nunomaduro/larastan": "^2.6.4",
+ "orchestra/testbench-core": "^8.13.0",
+ "pestphp/pest": "^2.23.2",
+ "phpunit/phpunit": "^10.4.1",
+ "sebastian/environment": "^6.0.1",
+ "spatie/laravel-ignition": "^2.3.1"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "./src/Adapters/Phpunit/Autoload.php"
+ ],
+ "psr-4": {
+ "NunoMaduro\\Collision\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Cli error handling for console/command-line PHP applications.",
+ "keywords": [
+ "artisan",
+ "cli",
+ "command-line",
+ "console",
+ "error",
+ "handling",
+ "laravel",
+ "laravel-zero",
+ "php",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/collision/issues",
+ "source": "https://github.com/nunomaduro/collision"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2023-10-11T15:45:01+00:00"
+ },
+ {
+ "name": "nunomaduro/termwind",
+ "version": "v1.15.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/termwind.git",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "symfony/console": "^5.3.0|^6.0.0"
+ },
+ "require-dev": {
+ "ergebnis/phpstan-rules": "^1.0.",
+ "illuminate/console": "^8.0|^9.0",
+ "illuminate/support": "^8.0|^9.0",
+ "laravel/pint": "^1.0.0",
+ "pestphp/pest": "^1.21.0",
+ "pestphp/pest-plugin-mock": "^1.0",
+ "phpstan/phpstan": "^1.4.6",
+ "phpstan/phpstan-strict-rules": "^1.1.0",
+ "symfony/var-dumper": "^5.2.7|^6.0.0",
+ "thecodingmachine/phpstan-strict-rules": "^1.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Termwind\\Laravel\\TermwindServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Functions.php"
+ ],
+ "psr-4": {
+ "Termwind\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Its like Tailwind CSS, but for the console.",
+ "keywords": [
+ "cli",
+ "console",
+ "css",
+ "package",
+ "php",
+ "style"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/termwind/issues",
+ "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/xiCO2k",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-08T01:06:31+00:00"
+ },
+ {
+ "name": "ocramius/package-versions",
+ "version": "2.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Ocramius/PackageVersions.git",
+ "reference": "7b5821f854cf1e6753c4ed7ceb3b11ae83bbad4e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/7b5821f854cf1e6753c4ed7ceb3b11ae83bbad4e",
+ "reference": "7b5821f854cf1e6753c4ed7ceb3b11ae83bbad4e",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2.0",
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0"
+ },
+ "replace": {
+ "composer/package-versions-deprecated": "*"
+ },
+ "require-dev": {
+ "composer/composer": "^2.6.3",
+ "doctrine/coding-standard": "^12.0.0",
+ "ext-zip": "^1.15.0",
+ "phpunit/phpunit": "^9.6.12",
+ "roave/infection-static-analysis-plugin": "^1.33",
+ "vimeo/psalm": "^5.15.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PackageVersions\\": "src/PackageVersions"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Provides efficient querying for installed package versions (no runtime IO)",
+ "support": {
+ "issues": "https://github.com/Ocramius/PackageVersions/issues",
+ "source": "https://github.com/Ocramius/PackageVersions/tree/2.8.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Ocramius",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ocramius/package-versions",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-09-15T11:02:59+00:00"
+ },
+ {
+ "name": "ondram/ci-detector",
+ "version": "4.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/OndraM/ci-detector.git",
+ "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/OndraM/ci-detector/zipball/8b0223b5ed235fd377c75fdd1bfcad05c0f168b8",
+ "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.13.2",
+ "lmc/coding-standard": "^3.0.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.1.0",
+ "phpstan/phpstan": "^1.2.0",
+ "phpstan/phpstan-phpunit": "^1.0.0",
+ "phpunit/phpunit": "^9.6.13"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "OndraM\\CiDetector\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ondลej Machulda",
+ "email": "ondrej.machulda@gmail.com"
+ }
+ ],
+ "description": "Detect continuous integration environment and provide unified access to properties of current build",
+ "keywords": [
+ "CircleCI",
+ "Codeship",
+ "Wercker",
+ "adapter",
+ "appveyor",
+ "aws",
+ "aws codebuild",
+ "azure",
+ "azure devops",
+ "azure pipelines",
+ "bamboo",
+ "bitbucket",
+ "buddy",
+ "ci-info",
+ "codebuild",
+ "continuous integration",
+ "continuousphp",
+ "devops",
+ "drone",
+ "github",
+ "gitlab",
+ "interface",
+ "jenkins",
+ "pipelines",
+ "sourcehut",
+ "teamcity",
+ "travis"
+ ],
+ "support": {
+ "issues": "https://github.com/OndraM/ci-detector/issues",
+ "source": "https://github.com/OndraM/ci-detector/tree/4.2.0"
+ },
+ "time": "2024-03-12T13:22:30+00:00"
+ },
+ {
+ "name": "orklah/psalm-insane-comparison",
+ "version": "v2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/orklah/psalm-insane-comparison.git",
+ "reference": "d9e608e787e5ae1c994ae07095eea26029d6d0bd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/orklah/psalm-insane-comparison/zipball/d9e608e787e5ae1c994ae07095eea26029d6d0bd",
+ "reference": "d9e608e787e5ae1c994ae07095eea26029d6d0bd",
+ "shasum": ""
+ },
+ "require": {
+ "ext-simplexml": "*",
+ "php": "^7.3|^8.0",
+ "vimeo/psalm": "^4|^5|dev-master"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.0|^5"
+ },
+ "type": "psalm-plugin",
+ "extra": {
+ "psalm": {
+ "pluginClass": "Orklah\\PsalmInsaneComparison\\Plugin"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Orklah\\PsalmInsaneComparison\\": [
+ "."
+ ],
+ "Orklah\\PsalmInsaneComparison\\Hooks\\": [
+ "hooks"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "orklah"
+ }
+ ],
+ "description": "Detects possible insane comparison (\"string\" == 0) to help migrate to PHP8",
+ "support": {
+ "issues": "https://github.com/orklah/psalm-insane-comparison/issues",
+ "source": "https://github.com/orklah/psalm-insane-comparison/tree/v2.3.0"
+ },
+ "time": "2024-03-20T21:49:45+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "php-coveralls/php-coveralls",
+ "version": "v2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-coveralls/php-coveralls.git",
+ "reference": "b36fa4394e519dafaddc04ae03976bc65a25ba15"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/b36fa4394e519dafaddc04ae03976bc65a25ba15",
+ "reference": "b36fa4394e519dafaddc04ae03976bc65a25ba15",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-simplexml": "*",
+ "guzzlehttp/guzzle": "^6.0 || ^7.0",
+ "php": "^7.0 || ^8.0",
+ "psr/log": "^1.0 || ^2.0",
+ "symfony/config": "^2.1 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/console": "^2.1 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/yaml": "^2.0.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0 || ^7.0 || >=8.0 <8.5.29 || >=9.0 <9.5.23",
+ "sanmai/phpunit-legacy-adapter": "^6.1 || ^8.0"
+ },
+ "suggest": {
+ "symfony/http-kernel": "Allows Symfony integration"
+ },
+ "bin": [
+ "bin/php-coveralls"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PhpCoveralls\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kitamura Satoshi",
+ "email": "with.no.parachute@gmail.com",
+ "homepage": "https://www.facebook.com/satooshi.jp",
+ "role": "Original creator"
+ },
+ {
+ "name": "Takashi Matsuo",
+ "email": "tmatsuo@google.com"
+ },
+ {
+ "name": "Google Inc"
+ },
+ {
+ "name": "Dariusz Ruminski",
+ "email": "dariusz.ruminski@gmail.com",
+ "homepage": "https://github.com/keradus"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/php-coveralls/php-coveralls/graphs/contributors"
+ }
+ ],
+ "description": "PHP client library for Coveralls API",
+ "homepage": "https://github.com/php-coveralls/php-coveralls",
+ "keywords": [
+ "ci",
+ "coverage",
+ "github",
+ "test"
+ ],
+ "support": {
+ "issues": "https://github.com/php-coveralls/php-coveralls/issues",
+ "source": "https://github.com/php-coveralls/php-coveralls/tree/v2.7.0"
+ },
+ "time": "2023-11-22T10:21:01+00:00"
+ },
+ {
+ "name": "php-parallel-lint/php-console-color",
+ "version": "v1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-parallel-lint/PHP-Console-Color.git",
+ "reference": "7adfefd530aa2d7570ba87100a99e2483a543b88"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-parallel-lint/PHP-Console-Color/zipball/7adfefd530aa2d7570ba87100a99e2483a543b88",
+ "reference": "7adfefd530aa2d7570ba87100a99e2483a543b88",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "replace": {
+ "jakub-onderka/php-console-color": "*"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-code-style": "^2.0",
+ "php-parallel-lint/php-parallel-lint": "^1.0",
+ "php-parallel-lint/php-var-dump-check": "0.*",
+ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHP_Parallel_Lint\\PhpConsoleColor\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jakub Onderka",
+ "email": "jakub.onderka@gmail.com"
+ }
+ ],
+ "description": "Simple library for creating colored console ouput.",
+ "support": {
+ "issues": "https://github.com/php-parallel-lint/PHP-Console-Color/issues",
+ "source": "https://github.com/php-parallel-lint/PHP-Console-Color/tree/v1.0.1"
+ },
+ "time": "2021-12-25T06:49:29+00:00"
+ },
+ {
+ "name": "php-parallel-lint/php-console-highlighter",
+ "version": "v1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-parallel-lint/PHP-Console-Highlighter.git",
+ "reference": "5b4803384d3303cf8e84141039ef56c8a123138d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-parallel-lint/PHP-Console-Highlighter/zipball/5b4803384d3303cf8e84141039ef56c8a123138d",
+ "reference": "5b4803384d3303cf8e84141039ef56c8a123138d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=5.3.2",
+ "php-parallel-lint/php-console-color": "^1.0.1"
+ },
+ "replace": {
+ "jakub-onderka/php-console-highlighter": "*"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-code-style": "^2.0",
+ "php-parallel-lint/php-parallel-lint": "^1.0",
+ "php-parallel-lint/php-var-dump-check": "0.*",
+ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHP_Parallel_Lint\\PhpConsoleHighlighter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jakub Onderka",
+ "email": "acci@acci.cz",
+ "homepage": "http://www.acci.cz/"
+ }
+ ],
+ "description": "Highlight PHP code in terminal",
+ "support": {
+ "issues": "https://github.com/php-parallel-lint/PHP-Console-Highlighter/issues",
+ "source": "https://github.com/php-parallel-lint/PHP-Console-Highlighter/tree/v1.0.0"
+ },
+ "time": "2022-02-18T08:23:19+00:00"
+ },
+ {
+ "name": "php-parallel-lint/php-parallel-lint",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git",
+ "reference": "6db563514f27e19595a19f45a4bf757b6401194e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/6db563514f27e19595a19f45a4bf757b6401194e",
+ "reference": "6db563514f27e19595a19f45a4bf757b6401194e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": ">=5.3.0"
+ },
+ "replace": {
+ "grogy/php-parallel-lint": "*",
+ "jakub-onderka/php-parallel-lint": "*"
+ },
+ "require-dev": {
+ "nette/tester": "^1.3 || ^2.0",
+ "php-parallel-lint/php-console-highlighter": "0.* || ^1.0",
+ "squizlabs/php_codesniffer": "^3.6"
+ },
+ "suggest": {
+ "php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet"
+ },
+ "bin": [
+ "parallel-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "./src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jakub Onderka",
+ "email": "ahoj@jakubonderka.cz"
+ }
+ ],
+ "description": "This tool checks the syntax of PHP files about 20x faster than serial check.",
+ "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint",
+ "keywords": [
+ "lint",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues",
+ "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.4.0"
+ },
+ "time": "2024-03-27T12:14:49+00:00"
+ },
+ {
+ "name": "php-standard-library/psalm-plugin",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-standard-library/psalm-plugin.git",
+ "reference": "bf6d560ae498966150bc66a42e02744b0ee242c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-standard-library/psalm-plugin/zipball/bf6d560ae498966150bc66a42e02744b0ee242c5",
+ "reference": "bf6d560ae498966150bc66a42e02744b0ee242c5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "vimeo/psalm": ">=5.16"
+ },
+ "conflict": {
+ "azjezz/psl": "<2.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.18",
+ "roave/security-advisories": "dev-master",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "type": "psalm-plugin",
+ "extra": {
+ "psalm": {
+ "pluginClass": "Psl\\Psalm\\Plugin"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psl\\Psalm\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "azjezz",
+ "email": "azjezz@protonmail.com"
+ }
+ ],
+ "description": "Psalm plugin for the PHP Standard Library",
+ "support": {
+ "issues": "https://github.com/php-standard-library/psalm-plugin/issues",
+ "source": "https://github.com/php-standard-library/psalm-plugin/tree/2.3.0"
+ },
+ "time": "2023-11-28T12:22:48+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "time": "2020-06-27T09:03:43+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
+ "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.1",
+ "ext-filter": "*",
+ "php": "^7.4 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.7",
+ "phpstan/phpdoc-parser": "^1.7",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.5",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-webmozart-assert": "^1.2",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1"
+ },
+ "time": "2024-05-21T05:55:05+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c",
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.0",
+ "php": "^7.3 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0",
+ "phpstan/phpdoc-parser": "^1.13"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.13.9",
+ "vimeo/psalm": "^4.25"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2"
+ },
+ "time": "2024-02-23T11:10:43+00:00"
+ },
+ {
+ "name": "phpstan/phpdoc-parser",
+ "version": "1.29.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4",
+ "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^4.15",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.5",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "symfony/process": "^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
+ "support": {
+ "issues": "https://github.com/phpstan/phpdoc-parser/issues",
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1"
+ },
+ "time": "2024-05-31T08:52:43+00:00"
+ },
+ {
+ "name": "phpstan/phpstan",
+ "version": "1.11.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan.git",
+ "reference": "9100a76ce8015b9aa7125b9171ae3a76887b6c82"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9100a76ce8015b9aa7125b9171ae3a76887b6c82",
+ "reference": "9100a76ce8015b9aa7125b9171ae3a76887b6c82",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2|^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan-shim": "*"
+ },
+ "bin": [
+ "phpstan",
+ "phpstan.phar"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan - PHP Static Analysis Tool",
+ "keywords": [
+ "dev",
+ "static analysis"
+ ],
+ "support": {
+ "docs": "https://phpstan.org/user-guide/getting-started",
+ "forum": "https://github.com/phpstan/phpstan/discussions",
+ "issues": "https://github.com/phpstan/phpstan/issues",
+ "security": "https://github.com/phpstan/phpstan/security/policy",
+ "source": "https://github.com/phpstan/phpstan-src"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ondrejmirtes",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/phpstan",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-06T12:19:22+00:00"
+ },
+ {
+ "name": "phpstan/phpstan-deprecation-rules",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan-deprecation-rules.git",
+ "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/fa8cce7720fa782899a0aa97b6a41225d1bb7b26",
+ "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpstan/phpstan": "^1.11"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.",
+ "support": {
+ "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues",
+ "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.0"
+ },
+ "time": "2024-04-20T06:39:48+00:00"
+ },
+ {
+ "name": "phpstan/phpstan-mockery",
+ "version": "1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan-mockery.git",
+ "reference": "88ae85931768efd3aaf3cce4cb9cb54c4d157d03"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan-mockery/zipball/88ae85931768efd3aaf3cce4cb9cb54c4d157d03",
+ "reference": "88ae85931768efd3aaf3cce4cb9cb54c4d157d03",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpstan/phpstan": "^1.10"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.2.4",
+ "nikic/php-parser": "^4.13.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan Mockery extension",
+ "support": {
+ "issues": "https://github.com/phpstan/phpstan-mockery/issues",
+ "source": "https://github.com/phpstan/phpstan-mockery/tree/1.1.2"
+ },
+ "time": "2024-01-10T13:50:05+00:00"
+ },
+ {
+ "name": "phpstan/phpstan-phpunit",
+ "version": "1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan-phpunit.git",
+ "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/f3ea021866f4263f07ca3636bf22c64be9610c11",
+ "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpstan/phpstan": "^1.11"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<7.0"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.13.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan-strict-rules": "^1.5.1",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon",
+ "rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPUnit extensions and rules for PHPStan",
+ "support": {
+ "issues": "https://github.com/phpstan/phpstan-phpunit/issues",
+ "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.4.0"
+ },
+ "time": "2024-04-20T06:39:00+00:00"
+ },
+ {
+ "name": "phpstan/phpstan-strict-rules",
+ "version": "1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan-strict-rules.git",
+ "reference": "363f921dd8441777d4fc137deb99beb486c77df1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/363f921dd8441777d4fc137deb99beb486c77df1",
+ "reference": "363f921dd8441777d4fc137deb99beb486c77df1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpstan/phpstan": "^1.11"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.13.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan-deprecation-rules": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Extra strict and opinionated rules for PHPStan",
+ "support": {
+ "issues": "https://github.com/phpstan/phpstan-strict-rules/issues",
+ "source": "https://github.com/phpstan/phpstan-strict-rules/tree/1.6.0"
+ },
+ "time": "2024-04-20T06:37:51+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "10.1.14",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+ "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1",
+ "phpunit/php-file-iterator": "^4.0",
+ "phpunit/php-text-template": "^3.0",
+ "sebastian/code-unit-reverse-lookup": "^3.0",
+ "sebastian/complexity": "^3.0",
+ "sebastian/environment": "^6.0",
+ "sebastian/lines-of-code": "^2.0",
+ "sebastian/version": "^4.0",
+ "theseer/tokenizer": "^1.2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.1"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "10.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-12T15:33:41+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "4.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-31T06:24:48+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^10.0"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:56:09+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-31T14:07:24+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "6.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:57:52+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "10.5.20",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
+ "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.10.1",
+ "phar-io/manifest": "^2.0.3",
+ "phar-io/version": "^3.0.2",
+ "php": ">=8.1",
+ "phpunit/php-code-coverage": "^10.1.5",
+ "phpunit/php-file-iterator": "^4.0",
+ "phpunit/php-invoker": "^4.0",
+ "phpunit/php-text-template": "^3.0",
+ "phpunit/php-timer": "^6.0",
+ "sebastian/cli-parser": "^2.0",
+ "sebastian/code-unit": "^2.0",
+ "sebastian/comparator": "^5.0",
+ "sebastian/diff": "^5.0",
+ "sebastian/environment": "^6.0",
+ "sebastian/exporter": "^5.1",
+ "sebastian/global-state": "^6.0.1",
+ "sebastian/object-enumerator": "^5.0",
+ "sebastian/recursion-context": "^5.0",
+ "sebastian/type": "^4.0",
+ "sebastian/version": "^4.0"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "10.5-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-24T06:32:35+00:00"
+ },
+ {
+ "name": "psalm/plugin-mockery",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/psalm/psalm-plugin-mockery.git",
+ "reference": "876247d15f91df08240d00dac69c5135b6689283"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/psalm/psalm-plugin-mockery/zipball/876247d15f91df08240d00dac69c5135b6689283",
+ "reference": "876247d15f91df08240d00dac69c5135b6689283",
+ "shasum": ""
+ },
+ "require": {
+ "composer/package-versions-deprecated": "^1.10",
+ "composer/semver": "^1.4 || ^2.0 || ^3.0",
+ "mockery/mockery": "^1.0",
+ "php": "~7.4 || ~8.0 || ~8.1 || ~8.2",
+ "vimeo/psalm": "dev-master || ^5.0@rc || ^5.0"
+ },
+ "require-dev": {
+ "codeception/codeception": "^4.1.9",
+ "phpunit/phpunit": "^9.0",
+ "squizlabs/php_codesniffer": "^3.3.1",
+ "weirdan/codeception-psalm-module": "^0.13.1"
+ },
+ "type": "psalm-plugin",
+ "extra": {
+ "psalm": {
+ "pluginClass": "Psalm\\MockeryPlugin\\Plugin"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psalm\\MockeryPlugin\\": [
+ "."
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matt Brown",
+ "email": "github@muglug.com"
+ }
+ ],
+ "description": "Psalm plugin for Mockery",
+ "support": {
+ "issues": "https://github.com/psalm/psalm-plugin-mockery/issues",
+ "source": "https://github.com/psalm/psalm-plugin-mockery/tree/1.1.0"
+ },
+ "time": "2022-11-25T07:16:18+00:00"
+ },
+ {
+ "name": "psalm/plugin-phpunit",
+ "version": "0.19.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/psalm/psalm-plugin-phpunit.git",
+ "reference": "e344eaaa27871e79c6cb97b9efe52a735f9d1966"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e344eaaa27871e79c6cb97b9efe52a735f9d1966",
+ "reference": "e344eaaa27871e79c6cb97b9efe52a735f9d1966",
+ "shasum": ""
+ },
+ "require": {
+ "composer/package-versions-deprecated": "^1.10",
+ "composer/semver": "^1.4 || ^2.0 || ^3.0",
+ "ext-simplexml": "*",
+ "php": "^7.4 || ^8.0",
+ "vimeo/psalm": "dev-master || ^5@beta || ^5.0"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<7.5"
+ },
+ "require-dev": {
+ "codeception/codeception": "^4.0.3",
+ "php": "^7.3 || ^8.0",
+ "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0",
+ "squizlabs/php_codesniffer": "^3.3.1",
+ "weirdan/codeception-psalm-module": "^0.11.0",
+ "weirdan/prophecy-shim": "^1.0 || ^2.0"
+ },
+ "type": "psalm-plugin",
+ "extra": {
+ "psalm": {
+ "pluginClass": "Psalm\\PhpUnitPlugin\\Plugin"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psalm\\PhpUnitPlugin\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matt Brown",
+ "email": "github@muglug.com"
+ }
+ ],
+ "description": "Psalm plugin for PHPUnit",
+ "support": {
+ "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues",
+ "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.19.0"
+ },
+ "time": "2024-03-15T10:43:15+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
+ },
+ "time": "2021-11-05T16:47:00+00:00"
+ },
+ {
+ "name": "psr/http-client",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-client"
+ },
+ "time": "2023-09-23T14:17:50+00:00"
+ },
+ {
+ "name": "psr/http-factory",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory"
+ },
+ "time": "2024-04-15T12:06:14+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/2.0"
+ },
+ "time": "2023-04-04T09:54:51+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376",
+ "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/2.0.0"
+ },
+ "time": "2021-07-14T16:41:46+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "ramsey/collection",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/collection.git",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "captainhook/plugin-composer": "^5.3",
+ "ergebnis/composer-normalize": "^2.28.3",
+ "fakerphp/faker": "^1.21",
+ "hamcrest/hamcrest-php": "^2.0",
+ "jangregor/phpstan-prophecy": "^1.0",
+ "mockery/mockery": "^1.5",
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
+ "phpcsstandards/phpcsutils": "^1.0.0-rc1",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "ramsey/coding-standard": "^2.0.3",
+ "ramsey/conventional-commits": "^1.3",
+ "vimeo/psalm": "^5.4"
+ },
+ "type": "library",
+ "extra": {
+ "captainhook": {
+ "force-install": true
+ },
+ "ramsey/conventional-commits": {
+ "configFile": "conventional-commits.json"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ramsey\\Collection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ben Ramsey",
+ "email": "ben@benramsey.com",
+ "homepage": "https://benramsey.com"
+ }
+ ],
+ "description": "A PHP library for representing and manipulating collections.",
+ "keywords": [
+ "array",
+ "collection",
+ "hash",
+ "map",
+ "queue",
+ "set"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/collection/issues",
+ "source": "https://github.com/ramsey/collection/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-31T21:50:55+00:00"
+ },
+ {
+ "name": "ramsey/uuid",
+ "version": "4.7.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/uuid.git",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12",
+ "ext-json": "*",
+ "php": "^8.0",
+ "ramsey/collection": "^1.2 || ^2.0"
+ },
+ "replace": {
+ "rhumsaa/uuid": "self.version"
+ },
+ "require-dev": {
+ "captainhook/captainhook": "^5.10",
+ "captainhook/plugin-composer": "^5.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
+ "doctrine/annotations": "^1.8",
+ "ergebnis/composer-normalize": "^2.15",
+ "mockery/mockery": "^1.3",
+ "paragonie/random-lib": "^2",
+ "php-mock/php-mock": "^2.2",
+ "php-mock/php-mock-mockery": "^1.3",
+ "php-parallel-lint/php-parallel-lint": "^1.1",
+ "phpbench/phpbench": "^1.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9",
+ "ramsey/composer-repl": "^1.4",
+ "slevomat/coding-standard": "^8.4",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.9"
+ },
+ "suggest": {
+ "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
+ "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
+ "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
+ "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
+ },
+ "type": "library",
+ "extra": {
+ "captainhook": {
+ "force-install": true
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Ramsey\\Uuid\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
+ "keywords": [
+ "guid",
+ "identifier",
+ "uuid"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/uuid/issues",
+ "source": "https://github.com/ramsey/uuid/tree/4.7.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-27T21:32:50+00:00"
+ },
+ {
+ "name": "revolt/event-loop",
+ "version": "v1.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/revoltphp/event-loop.git",
+ "reference": "25de49af7223ba039f64da4ae9a28ec2d10d0254"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/25de49af7223ba039f64da4ae9a28ec2d10d0254",
+ "reference": "25de49af7223ba039f64da4ae9a28ec2d10d0254",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "jetbrains/phpstorm-stubs": "^2019.3",
+ "phpunit/phpunit": "^9",
+ "psalm/phar": "^5.15"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Revolt\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Aaron Piotrowski",
+ "email": "aaron@trowski.com"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ },
+ {
+ "name": "Christian Lรผck",
+ "email": "christian@clue.engineering"
+ },
+ {
+ "name": "Niklas Keller",
+ "email": "me@kelunik.com"
+ }
+ ],
+ "description": "Rock-solid event loop for concurrent PHP applications.",
+ "keywords": [
+ "async",
+ "asynchronous",
+ "concurrency",
+ "event",
+ "event-loop",
+ "non-blocking",
+ "scheduler"
+ ],
+ "support": {
+ "issues": "https://github.com/revoltphp/event-loop/issues",
+ "source": "https://github.com/revoltphp/event-loop/tree/v1.0.6"
+ },
+ "time": "2023-11-30T05:34:44+00:00"
+ },
+ {
+ "name": "roave/backward-compatibility-check",
+ "version": "8.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/BackwardCompatibilityCheck.git",
+ "reference": "5e533114a996f73a7551846c06c59a80185f4d16"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Roave/BackwardCompatibilityCheck/zipball/5e533114a996f73a7551846c06c59a80185f4d16",
+ "reference": "5e533114a996f73a7551846c06c59a80185f4d16",
+ "shasum": ""
+ },
+ "require": {
+ "azjezz/psl": "^2.3.1",
+ "composer/composer": "^2.6.4",
+ "nikic/php-parser": "^4.15.3",
+ "nikolaposa/version": "^4.1.0",
+ "ocramius/package-versions": "^2.7.0",
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0",
+ "roave/better-reflection": "^6.5.0",
+ "symfony/console": "^6.2.3"
+ },
+ "conflict": {
+ "revolt/event-loop": "<0.2.5",
+ "symfony/process": "<5.3.7"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12.0.0",
+ "php-standard-library/psalm-plugin": "^2.2.1",
+ "phpunit/phpunit": "^9.5.27",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "roave/infection-static-analysis-plugin": "^1.27.0",
+ "roave/security-advisories": "dev-master",
+ "squizlabs/php_codesniffer": "^3.7.1",
+ "vimeo/psalm": "^5.4.0"
+ },
+ "bin": [
+ "bin/roave-backward-compatibility-check"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Roave\\BackwardCompatibility\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "James Titcumb",
+ "email": "james@asgrim.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Tool to compare two revisions of a public API to check for BC breaks",
+ "support": {
+ "issues": "https://github.com/Roave/BackwardCompatibilityCheck/issues",
+ "source": "https://github.com/Roave/BackwardCompatibilityCheck/tree/8.6.0"
+ },
+ "time": "2023-12-20T14:01:33+00:00"
+ },
+ {
+ "name": "roave/better-reflection",
+ "version": "6.26.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/BetterReflection.git",
+ "reference": "658309b70c5afd7b9cfaad20c18aff3943cce23a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Roave/BetterReflection/zipball/658309b70c5afd7b9cfaad20c18aff3943cce23a",
+ "reference": "658309b70c5afd7b9cfaad20c18aff3943cce23a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "jetbrains/phpstorm-stubs": "2023.3",
+ "nikic/php-parser": "^4.18.0",
+ "php": "~8.2.0 || ~8.3.2",
+ "roave/signature": "^1.8.0"
+ },
+ "conflict": {
+ "thecodingmachine/safe": "<1.1.3"
+ },
+ "suggest": {
+ "composer/composer": "Required to use the ComposerSourceLocator"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Roave\\BetterReflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "James Titcumb",
+ "email": "james@asgrim.com",
+ "homepage": "https://github.com/asgrim"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ },
+ {
+ "name": "Gary Hockin",
+ "email": "gary@roave.com",
+ "homepage": "https://github.com/geeh"
+ },
+ {
+ "name": "Jaroslav Hanslรญk",
+ "email": "kukulich@kukulich.cz",
+ "homepage": "https://github.com/kukulich"
+ }
+ ],
+ "description": "Better Reflection - an improved code reflection API",
+ "support": {
+ "issues": "https://github.com/Roave/BetterReflection/issues",
+ "source": "https://github.com/Roave/BetterReflection/tree/6.26.0"
+ },
+ "time": "2024-03-11T17:43:07+00:00"
+ },
+ {
+ "name": "roave/infection-static-analysis-plugin",
+ "version": "1.36.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/infection-static-analysis-plugin.git",
+ "reference": "78a10deb2947f2ca972145ff49ab8a93d03346a0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Roave/infection-static-analysis-plugin/zipball/78a10deb2947f2ca972145ff49ab8a93d03346a0",
+ "reference": "78a10deb2947f2ca972145ff49ab8a93d03346a0",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2",
+ "infection/infection": "0.27.11",
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0",
+ "sanmai/later": "^0.1.4",
+ "vimeo/psalm": "^4.30.0 || ^5.15"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12.0.0",
+ "phpunit/phpunit": "^10.5.15"
+ },
+ "default-branch": true,
+ "bin": [
+ "bin/roave-infection-static-analysis-plugin"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Roave\\InfectionStaticAnalysis\\": "src/Roave/InfectionStaticAnalysis"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Static analysis on top of mutation testing - prevents escaped mutants from being invalid according to static analysis",
+ "support": {
+ "issues": "https://github.com/Roave/infection-static-analysis-plugin/issues",
+ "source": "https://github.com/Roave/infection-static-analysis-plugin/tree/1.36.x"
+ },
+ "time": "2024-04-30T00:42:10+00:00"
+ },
+ {
+ "name": "roave/signature",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/Signature.git",
+ "reference": "f92ce20f82c9a1df3b50fc56fbdaeb82cf4c9c5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Roave/Signature/zipball/f92ce20f82c9a1df3b50fc56fbdaeb82cf4c9c5b",
+ "reference": "f92ce20f82c9a1df3b50fc56fbdaeb82cf4c9c5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12.0.0",
+ "infection/infection": "^0.26.19",
+ "phpunit/phpunit": "^9.6.7",
+ "vimeo/psalm": "^5.9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Roave\\Signature\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Sign and verify stuff",
+ "support": {
+ "issues": "https://github.com/Roave/Signature/issues",
+ "source": "https://github.com/Roave/Signature/tree/1.8.0"
+ },
+ "time": "2023-11-25T00:11:29+00:00"
+ },
+ {
+ "name": "sanmai/later",
+ "version": "0.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sanmai/later.git",
+ "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sanmai/later/zipball/e24c4304a4b1349c2a83151a692cec0c10579f60",
+ "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^3.35.1",
+ "infection/infection": ">=0.27.6",
+ "phan/phan": ">=2",
+ "php-coveralls/php-coveralls": "^2.0",
+ "phpstan/phpstan": ">=1.4.5",
+ "phpunit/phpunit": ">=9.5 <10",
+ "vimeo/psalm": ">=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Later\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Alexey Kopytko",
+ "email": "alexey@kopytko.com"
+ }
+ ],
+ "description": "Later: deferred wrapper object",
+ "support": {
+ "issues": "https://github.com/sanmai/later/issues",
+ "source": "https://github.com/sanmai/later/tree/0.1.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sanmai",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-24T00:25:28+00:00"
+ },
+ {
+ "name": "sanmai/pipeline",
+ "version": "v6.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sanmai/pipeline.git",
+ "reference": "cbd2ea30ba8bef596b8dad1adb9c92fb2987e430"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sanmai/pipeline/zipball/cbd2ea30ba8bef596b8dad1adb9c92fb2987e430",
+ "reference": "cbd2ea30ba8bef596b8dad1adb9c92fb2987e430",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^3.17",
+ "infection/infection": ">=0.10.5",
+ "league/pipeline": "^0.3 || ^1.0",
+ "phan/phan": ">=1.1",
+ "php-coveralls/php-coveralls": "^2.4.1",
+ "phpstan/phpstan": ">=0.10",
+ "phpunit/phpunit": ">=9.4",
+ "vimeo/psalm": ">=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "v6.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Pipeline\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Alexey Kopytko",
+ "email": "alexey@kopytko.com"
+ }
+ ],
+ "description": "General-purpose collections pipeline",
+ "support": {
+ "issues": "https://github.com/sanmai/pipeline/issues",
+ "source": "https://github.com/sanmai/pipeline/tree/v6.10"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sanmai",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-16T01:33:30+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+ "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T07:12:49+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:58:43+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:59:15+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "5.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/diff": "^5.0",
+ "sebastian/exporter": "^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-14T13:18:12+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-21T08:37:17+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "5.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e",
+ "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0",
+ "symfony/process": "^6.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "security": "https://github.com/sebastianbergmann/diff/security/policy",
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T07:15:17+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "6.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "8074dbcd93529b357029f5cc5058fd3e43666984"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984",
+ "reference": "8074dbcd93529b357029f5cc5058fd3e43666984",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "https://github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "security": "https://github.com/sebastianbergmann/environment/security/policy",
+ "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-23T08:47:14+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "5.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "955288482d97c19a372d3f31006ab3f37da47adf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf",
+ "reference": "955288482d97c19a372d3f31006ab3f37da47adf",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/recursion-context": "^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T07:17:12+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "6.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+ "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "https://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T07:19:19+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-21T08:38:20+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "5.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:08:32+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:06:18+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "5.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:05:40+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:10:45+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "4.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-07T11:34:05+00:00"
+ },
+ {
+ "name": "seld/jsonlint",
+ "version": "1.10.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/jsonlint.git",
+ "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9bb7db07b5d66d90f6ebf542f09fc67d800e5259",
+ "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.5",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13"
+ },
+ "bin": [
+ "bin/jsonlint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Seld\\JsonLint\\": "src/Seld/JsonLint/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "JSON Linter",
+ "keywords": [
+ "json",
+ "linter",
+ "parser",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/jsonlint/issues",
+ "source": "https://github.com/Seldaek/jsonlint/tree/1.10.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-07T12:57:50+00:00"
+ },
+ {
+ "name": "seld/phar-utils",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/phar-utils.git",
+ "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
+ "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Seld\\PharUtils\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be"
+ }
+ ],
+ "description": "PHAR file format utilities, for when PHP phars you up",
+ "keywords": [
+ "phar"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/phar-utils/issues",
+ "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1"
+ },
+ "time": "2022-08-31T10:31:18+00:00"
+ },
+ {
+ "name": "seld/signal-handler",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/signal-handler.git",
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Seld\\Signal\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development",
+ "keywords": [
+ "posix",
+ "sigint",
+ "signal",
+ "sigterm",
+ "unix"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/signal-handler/issues",
+ "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2"
+ },
+ "time": "2023-09-03T09:24:00+00:00"
+ },
+ {
+ "name": "slevomat/coding-standard",
+ "version": "8.15.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/slevomat/coding-standard.git",
+ "reference": "7d1d957421618a3803b593ec31ace470177d7817"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/7d1d957421618a3803b593ec31ace470177d7817",
+ "reference": "7d1d957421618a3803b593ec31ace470177d7817",
+ "shasum": ""
+ },
+ "require": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0",
+ "php": "^7.2 || ^8.0",
+ "phpstan/phpdoc-parser": "^1.23.1",
+ "squizlabs/php_codesniffer": "^3.9.0"
+ },
+ "require-dev": {
+ "phing/phing": "2.17.4",
+ "php-parallel-lint/php-parallel-lint": "1.3.2",
+ "phpstan/phpstan": "1.10.60",
+ "phpstan/phpstan-deprecation-rules": "1.1.4",
+ "phpstan/phpstan-phpunit": "1.3.16",
+ "phpstan/phpstan-strict-rules": "1.5.2",
+ "phpunit/phpunit": "8.5.21|9.6.8|10.5.11"
+ },
+ "type": "phpcodesniffer-standard",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "8.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "SlevomatCodingStandard\\": "SlevomatCodingStandard/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.",
+ "keywords": [
+ "dev",
+ "phpcs"
+ ],
+ "support": {
+ "issues": "https://github.com/slevomat/coding-standard/issues",
+ "source": "https://github.com/slevomat/coding-standard/tree/8.15.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/kukulich",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-03-09T15:20:58+00:00"
+ },
+ {
+ "name": "spatie/array-to-xml",
+ "version": "3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/array-to-xml.git",
+ "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f56b220fe2db1ade4c88098d83413ebdfc3bf876",
+ "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.2",
+ "pestphp/pest": "^1.21",
+ "spatie/pest-plugin-snapshots": "^1.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\ArrayToXml\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://freek.dev",
+ "role": "Developer"
+ }
+ ],
+ "description": "Convert an array to xml",
+ "homepage": "https://github.com/spatie/array-to-xml",
+ "keywords": [
+ "array",
+ "convert",
+ "xml"
+ ],
+ "support": {
+ "source": "https://github.com/spatie/array-to-xml/tree/3.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-05-01T10:20:27+00:00"
+ },
+ {
+ "name": "spatie/phpunit-snapshot-assertions",
+ "version": "5.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/phpunit-snapshot-assertions.git",
+ "reference": "61e2eb567713c89987895b8f514a7a4d3bff89c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/phpunit-snapshot-assertions/zipball/61e2eb567713c89987895b8f514a7a4d3bff89c9",
+ "reference": "61e2eb567713c89987895b8f514a7a4d3bff89c9",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.0",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "php": "^8.1",
+ "phpunit/phpunit": "^10.0|^11.0",
+ "symfony/property-access": "^5.2|^6.2|^7.0",
+ "symfony/serializer": "^5.2|^6.2|^7.0",
+ "symfony/yaml": "^5.2|^6.2|^7.0"
+ },
+ "require-dev": {
+ "spatie/pixelmatch-php": "dev-main",
+ "spatie/ray": "^1.37"
+ },
+ "suggest": {
+ "spatie/pixelmatch-php": "Required to use the image snapshot assertions"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-v5": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Snapshots\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian De Deyne",
+ "email": "sebastian@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Snapshot testing with PHPUnit",
+ "homepage": "https://github.com/spatie/phpunit-snapshot-assertions",
+ "keywords": [
+ "assert",
+ "phpunit",
+ "phpunit-snapshot-assertions",
+ "snapshot",
+ "spatie",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/phpunit-snapshot-assertions/issues",
+ "source": "https://github.com/spatie/phpunit-snapshot-assertions/tree/5.1.6"
+ },
+ "funding": [
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "custom"
+ }
+ ],
+ "time": "2024-05-03T07:53:03+00:00"
+ },
+ {
+ "name": "squizlabs/php_codesniffer",
+ "version": "3.10.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
+ "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/8f90f7a53ce271935282967f53d0894f8f1ff877",
+ "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877",
+ "shasum": ""
+ },
+ "require": {
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
+ },
+ "bin": [
+ "bin/phpcbf",
+ "bin/phpcs"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Greg Sherwood",
+ "role": "Former lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "Current lead"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
+ }
+ ],
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "keywords": [
+ "phpcs",
+ "standards",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
+ "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
+ "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-22T21:24:41+00:00"
+ },
+ {
+ "name": "symfony/config",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/config.git",
+ "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/config/zipball/2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2",
+ "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/filesystem": "^7.1",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "symfony/finder": "<6.4",
+ "symfony/service-contracts": "<2.5"
+ },
+ "require-dev": {
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Config\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/config/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v6.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/be5854cee0e8c7b110f00d695d11debdfa1a2a91",
+ "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v6.4.8"
+ },
+ "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-05-31T14:49:08+00:00"
+ },
+ {
+ "name": "symfony/dependency-injection",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dependency-injection.git",
+ "reference": "77c636dfd86c0b60c5d184b2fd2ddf8dd11c309c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/77c636dfd86c0b60c5d184b2fd2ddf8dd11c309c",
+ "reference": "77c636dfd86c0b60c5d184b2fd2ddf8dd11c309c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/service-contracts": "^3.5",
+ "symfony/var-exporter": "^6.4|^7.0"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2",
+ "symfony/config": "<6.4",
+ "symfony/finder": "<6.4",
+ "symfony/yaml": "<6.4"
+ },
+ "provide": {
+ "psr/container-implementation": "1.1|2.0",
+ "symfony/service-implementation": "1.1|2.0|3.0"
+ },
+ "require-dev": {
+ "symfony/config": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/yaml": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DependencyInjection\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows you to standardize and centralize the way objects are constructed in your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dependency-injection/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "802e87002f919296c9f606457d9fa327a0b3d6b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/802e87002f919296c9f606457d9fa327a0b3d6b2",
+ "reference": "802e87002f919296c9f606457d9fa327a0b3d6b2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8"
+ },
+ "require-dev": {
+ "symfony/process": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/fbb0ba67688b780efbc886c1a0a0948dcf7205d6",
+ "reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
+ "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "21bd091060673a1177ae842c0ef8fe30893114d2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2",
+ "reference": "21bd091060673a1177ae842c0ef8fe30893114d2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php81",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d",
+ "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php81\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php83",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "86fcae159633351e5fd145d1c47de6c528f8caff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff",
+ "reference": "86fcae159633351e5fd145d1c47de6c528f8caff",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "symfony/polyfill-php80": "^1.14"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php83\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "febf90124323a093c7ee06fdb30e765ca3c20028"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/febf90124323a093c7ee06fdb30e765ca3c20028",
+ "reference": "febf90124323a093c7ee06fdb30e765ca3c20028",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "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": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/property-access",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/property-access.git",
+ "reference": "74e39e6a6276b8e384f34c6ddbc10a6c9a60193a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/74e39e6a6276b8e384f34c6ddbc10a6c9a60193a",
+ "reference": "74e39e6a6276b8e384f34c6ddbc10a6c9a60193a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/property-info": "^6.4|^7.0"
+ },
+ "require-dev": {
+ "symfony/cache": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PropertyAccess\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides functions to read and write from/to an object or array using a simple string notation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "access",
+ "array",
+ "extraction",
+ "index",
+ "injection",
+ "object",
+ "property",
+ "property-path",
+ "reflection"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/property-access/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/property-info",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/property-info.git",
+ "reference": "0f80f818c6728f15de30a4f89866d68e4912ae84"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/0f80f818c6728f15de30a4f89866d68e4912ae84",
+ "reference": "0f80f818c6728f15de30a4f89866d68e4912ae84",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/string": "^6.4|^7.0",
+ "symfony/type-info": "^7.1"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "<5.2",
+ "phpdocumentor/type-resolver": "<1.5.1",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/serializer": "<6.4"
+ },
+ "require-dev": {
+ "phpdocumentor/reflection-docblock": "^5.2",
+ "phpstan/phpdoc-parser": "^1.0",
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/serializer": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PropertyInfo\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kรฉvin Dunglas",
+ "email": "dunglas@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Extracts information about PHP class' properties using metadata of popular sources",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "doctrine",
+ "phpdoc",
+ "property",
+ "symfony",
+ "type",
+ "validator"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/property-info/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/serializer",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/serializer.git",
+ "reference": "74817ee48e37cce1a1b33c66ffdb750e7e048c3c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/74817ee48e37cce1a1b33c66ffdb750e7e048c3c",
+ "reference": "74817ee48e37cce1a1b33c66ffdb750e7e048c3c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/property-access": "<6.4",
+ "symfony/property-info": "<6.4",
+ "symfony/uid": "<6.4",
+ "symfony/validator": "<6.4",
+ "symfony/yaml": "<6.4"
+ },
+ "require-dev": {
+ "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0",
+ "seld/jsonlint": "^1.10",
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/filesystem": "^6.4|^7.0",
+ "symfony/form": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/type-info": "^7.1",
+ "symfony/uid": "^6.4|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0",
+ "symfony/var-exporter": "^6.4|^7.0",
+ "symfony/yaml": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Serializer\\": ""
+ },
+ "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": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/serializer/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/stopwatch",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/stopwatch.git",
+ "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d",
+ "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Stopwatch\\": ""
+ },
+ "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 way to profile code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/stopwatch/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "60bc311c74e0af215101235aa6f471bcbc032df2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/60bc311c74e0af215101235aa6f471bcbc032df2",
+ "reference": "60bc311c74e0af215101235aa6f471bcbc032df2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/translation-contracts": "<2.5"
+ },
+ "require-dev": {
+ "symfony/emoji": "^7.1",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-04T06:40:14+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/type-info",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/type-info.git",
+ "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/type-info/zipball/60b28eb733f1453287f1263ed305b96091e0d1dc",
+ "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "psr/container": "^1.1|^2.0"
+ },
+ "conflict": {
+ "phpstan/phpdoc-parser": "<1.0",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/property-info": "<6.4"
+ },
+ "require-dev": {
+ "phpstan/phpdoc-parser": "^1.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\TypeInfo\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mathias Arlaud",
+ "email": "mathias.arlaud@gmail.com"
+ },
+ {
+ "name": "Baptiste LEDUC",
+ "email": "baptiste.leduc@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Extracts PHP types information.",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "PHPStan",
+ "phpdoc",
+ "symfony",
+ "type"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/type-info/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:59:31+00:00"
+ },
+ {
+ "name": "symfony/validator",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/validator.git",
+ "reference": "fcab7598968b21c361becc930fcae8846638c4c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/fcab7598968b21c361becc930fcae8846638c4c0",
+ "reference": "fcab7598968b21c361becc930fcae8846638c4c0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php83": "^1.27",
+ "symfony/translation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "doctrine/lexer": "<1.1",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/doctrine-bridge": "<7.0",
+ "symfony/expression-language": "<6.4",
+ "symfony/http-kernel": "<6.4",
+ "symfony/intl": "<6.4",
+ "symfony/property-info": "<6.4",
+ "symfony/translation": "<6.4.3|>=7.0,<7.0.3",
+ "symfony/yaml": "<6.4"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
+ "symfony/translation": "^6.4.3|^7.0.3",
+ "symfony/type-info": "^7.1",
+ "symfony/yaml": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Validator\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/",
+ "/Resources/bin/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to validate values",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/validator/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-04T05:58:56+00:00"
+ },
+ {
+ "name": "symfony/var-exporter",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-exporter.git",
+ "reference": "db82c2b73b88734557cfc30e3270d83fa651b712"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/db82c2b73b88734557cfc30e3270d83fa651b712",
+ "reference": "db82c2b73b88734557cfc30e3270d83fa651b712",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "require-dev": {
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/serializer": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\VarExporter\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "clone",
+ "construct",
+ "export",
+ "hydrate",
+ "instantiate",
+ "lazy-loading",
+ "proxy",
+ "serialize"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-exporter/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "fa34c77015aa6720469db7003567b9f772492bf2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/fa34c77015aa6720469db7003567b9f772492bf2",
+ "reference": "fa34c77015aa6720469db7003567b9f772492bf2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<6.4"
+ },
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "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": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "thecodingmachine/phpstan-safe-rule",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thecodingmachine/phpstan-safe-rule.git",
+ "reference": "8a7b88e0d54f209a488095085f183e9174c40e1e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thecodingmachine/phpstan-safe-rule/zipball/8a7b88e0d54f209a488095085f183e9174c40e1e",
+ "reference": "8a7b88e0d54f209a488095085f183e9174c40e1e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0",
+ "phpstan/phpstan": "^1.0",
+ "thecodingmachine/safe": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^7.5.2 || ^8.0",
+ "squizlabs/php_codesniffer": "^3.4"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "phpstan-safe-rule.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "TheCodingMachine\\Safe\\PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "David Nรฉgrier",
+ "email": "d.negrier@thecodingmachine.com"
+ }
+ ],
+ "description": "A PHPStan rule to detect safety issues. Must be used in conjunction with thecodingmachine/safe",
+ "support": {
+ "issues": "https://github.com/thecodingmachine/phpstan-safe-rule/issues",
+ "source": "https://github.com/thecodingmachine/phpstan-safe-rule/tree/v1.2.0"
+ },
+ "time": "2022-01-17T10:12:29+00:00"
+ },
+ {
+ "name": "thecodingmachine/phpstan-strict-rules",
+ "version": "v1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thecodingmachine/phpstan-strict-rules.git",
+ "reference": "2ba8fa8b328c45f3b149c05def5bf96793c594b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thecodingmachine/phpstan-strict-rules/zipball/2ba8fa8b328c45f3b149c05def5bf96793c594b6",
+ "reference": "2ba8fa8b328c45f3b149c05def5bf96793c594b6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1|^8.0",
+ "phpstan/phpstan": "^1.0"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "phpstan-strict-rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "TheCodingMachine\\PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "David Nรฉgrier",
+ "email": "d.negrier@thecodingmachine.com"
+ }
+ ],
+ "description": "A set of additional rules for PHPStan based on best practices followed at TheCodingMachine",
+ "support": {
+ "issues": "https://github.com/thecodingmachine/phpstan-strict-rules/issues",
+ "source": "https://github.com/thecodingmachine/phpstan-strict-rules/tree/v1.0.0"
+ },
+ "time": "2021-11-08T09:10:49+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:36:25+00:00"
+ },
+ {
+ "name": "vimeo/psalm",
+ "version": "5.24.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vimeo/psalm.git",
+ "reference": "462c80e31c34e58cc4f750c656be3927e80e550e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vimeo/psalm/zipball/462c80e31c34e58cc4f750c656be3927e80e550e",
+ "reference": "462c80e31c34e58cc4f750c656be3927e80e550e",
+ "shasum": ""
+ },
+ "require": {
+ "amphp/amp": "^2.4.2",
+ "amphp/byte-stream": "^1.5",
+ "composer-runtime-api": "^2",
+ "composer/semver": "^1.4 || ^2.0 || ^3.0",
+ "composer/xdebug-handler": "^2.0 || ^3.0",
+ "dnoegel/php-xdg-base-dir": "^0.1.1",
+ "ext-ctype": "*",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "felixfbecker/advanced-json-rpc": "^3.1",
+ "felixfbecker/language-server-protocol": "^1.5.2",
+ "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0",
+ "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
+ "nikic/php-parser": "^4.16",
+ "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
+ "sebastian/diff": "^4.0 || ^5.0 || ^6.0",
+ "spatie/array-to-xml": "^2.17.0 || ^3.0",
+ "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7.0"
+ },
+ "conflict": {
+ "nikic/php-parser": "4.17.0"
+ },
+ "provide": {
+ "psalm/psalm": "self.version"
+ },
+ "require-dev": {
+ "amphp/phpunit-util": "^2.0",
+ "bamarni/composer-bin-plugin": "^1.4",
+ "brianium/paratest": "^6.9",
+ "ext-curl": "*",
+ "mockery/mockery": "^1.5",
+ "nunomaduro/mock-final-classes": "^1.1",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpdoc-parser": "^1.6",
+ "phpunit/phpunit": "^9.6",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.18",
+ "slevomat/coding-standard": "^8.4",
+ "squizlabs/php_codesniffer": "^3.6",
+ "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "suggest": {
+ "ext-curl": "In order to send data to shepherd",
+ "ext-igbinary": "^2.0.5 is required, used to serialize caching data"
+ },
+ "bin": [
+ "psalm",
+ "psalm-language-server",
+ "psalm-plugin",
+ "psalm-refactor",
+ "psalter"
+ ],
+ "type": "project",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev",
+ "dev-4.x": "4.x-dev",
+ "dev-3.x": "3.x-dev",
+ "dev-2.x": "2.x-dev",
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psalm\\": "src/Psalm/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matthew Brown"
+ }
+ ],
+ "description": "A static analysis tool for finding errors in PHP applications",
+ "keywords": [
+ "code",
+ "inspection",
+ "php",
+ "static analysis"
+ ],
+ "support": {
+ "docs": "https://psalm.dev/docs",
+ "issues": "https://github.com/vimeo/psalm/issues",
+ "source": "https://github.com/vimeo/psalm"
+ },
+ "time": "2024-05-01T19:32:08+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+ },
+ "time": "2022-06-03T18:03:27+00:00"
+ },
+ {
+ "name": "webmozart/glob",
+ "version": "4.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/glob.git",
+ "reference": "8a2842112d6916e61e0e15e316465b611f3abc17"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/glob/zipball/8a2842112d6916e61e0e15e316465b611f3abc17",
+ "reference": "8a2842112d6916e61e0e15e316465b611f3abc17",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3 || ^8.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "symfony/filesystem": "^5.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Glob\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "A PHP implementation of Ant's glob.",
+ "support": {
+ "issues": "https://github.com/webmozarts/glob/issues",
+ "source": "https://github.com/webmozarts/glob/tree/4.7.0"
+ },
+ "time": "2024-03-07T20:33:40+00:00"
+ },
+ {
+ "name": "wp-cli/php-cli-tools",
+ "version": "v0.11.16",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/wp-cli/php-cli-tools.git",
+ "reference": "c32e51a5c9993ad40591bc426b21f5422a5ed293"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/c32e51a5c9993ad40591bc426b21f5422a5ed293",
+ "reference": "c32e51a5c9993ad40591bc426b21f5422a5ed293",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">= 5.3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/cli/cli.php"
+ ],
+ "psr-0": {
+ "cli": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Daniel Bachhuber",
+ "email": "daniel@handbuilt.co",
+ "role": "Maintainer"
+ },
+ {
+ "name": "James Logsdon",
+ "email": "jlogsdon@php.net",
+ "role": "Developer"
+ }
+ ],
+ "description": "Console utilities for PHP",
+ "homepage": "http://github.com/wp-cli/php-cli-tools",
+ "keywords": [
+ "cli",
+ "console"
+ ],
+ "support": {
+ "issues": "https://github.com/wp-cli/php-cli-tools/issues",
+ "source": "https://github.com/wp-cli/php-cli-tools/tree/v0.11.16"
+ },
+ "time": "2022-11-03T15:19:26+00:00"
+ },
+ {
+ "name": "wyrihaximus/async-test-utilities",
+ "version": "8.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/php-async-test-utilities.git",
+ "reference": "f179b79170ea6e5ac6aa2374c32d5c5df6ff6452"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/php-async-test-utilities/zipball/f179b79170ea6e5ac6aa2374c32d5c5df6ff6452",
+ "reference": "f179b79170ea6e5ac6aa2374c32d5c5df6ff6452",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.2",
+ "phpunit/phpunit": "^10.5.19",
+ "react/async": "^4.2.0",
+ "react/event-loop": "^1.5.0",
+ "react/promise": "^3.1",
+ "wyrihaximus/phpstan-react": "^1",
+ "wyrihaximus/react-phpunit-run-tests-in-fiber": "^2.0.0",
+ "wyrihaximus/test-utilities": "^6.0.6"
+ },
+ "conflict": {
+ "composer/compoer": "<2.6.0"
+ },
+ "require-dev": {
+ "react/promise-timer": "^1.10.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "WyriHaximus\\AsyncTestUtilities\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "Test utilities for api-clients packages",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/php-async-test-utilities/issues",
+ "source": "https://github.com/WyriHaximus/php-async-test-utilities/tree/8.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-04-22T15:57:59+00:00"
+ },
+ {
+ "name": "wyrihaximus/coding-standard",
+ "version": "2.14.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/php-coding-standard.git",
+ "reference": "7530678d70ced4d41540df0e60e8811d14813058"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/php-coding-standard/zipball/7530678d70ced4d41540df0e60e8811d14813058",
+ "reference": "7530678d70ced4d41540df0e60e8811d14813058",
+ "shasum": ""
+ },
+ "require": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0.0",
+ "doctrine/coding-standard": "^12.0.0",
+ "php": "^8.1",
+ "slevomat/coding-standard": "^8.11.1",
+ "squizlabs/php_codesniffer": "^3.7.2"
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "WyriHaximus Coding Standard",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/php-coding-standard/issues",
+ "source": "https://github.com/WyriHaximus/php-coding-standard/tree/2.14.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2023-05-06T11:54:10+00:00"
+ },
+ {
+ "name": "wyrihaximus/phpstan-react",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/phpstan-reactphp.git",
+ "reference": "da07f594ea52390771aefbd3c5d850219aa75e64"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/phpstan-reactphp/zipball/da07f594ea52390771aefbd3c5d850219aa75e64",
+ "reference": "da07f594ea52390771aefbd3c5d850219aa75e64",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.2"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.18",
+ "phpstan/phpdoc-parser": "^1.24",
+ "wyrihaximus/test-utilities": "^5.6"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "WyriHaximus\\React\\PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "๐ ReactPHP extension for PHPStan",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/phpstan-reactphp/issues",
+ "source": "https://github.com/WyriHaximus/phpstan-reactphp/tree/1.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-29T20:19:44+00:00"
+ },
+ {
+ "name": "wyrihaximus/phpstan-rules-wrapper",
+ "version": "6.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/php-phpstan-rules-wrapper.git",
+ "reference": "e781d15c0316a8c72599ec50a18fce97aae12c73"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/php-phpstan-rules-wrapper/zipball/e781d15c0316a8c72599ec50a18fce97aae12c73",
+ "reference": "e781d15c0316a8c72599ec50a18fce97aae12c73",
+ "shasum": ""
+ },
+ "require": {
+ "ergebnis/phpstan-rules": "^2.2.0",
+ "php": "^8.2",
+ "phpstan/phpstan-deprecation-rules": "^1.2.0",
+ "phpstan/phpstan-mockery": "^1.1.2",
+ "phpstan/phpstan-phpunit": "^1.4.0",
+ "phpstan/phpstan-strict-rules": "^1.6.0",
+ "thecodingmachine/phpstan-safe-rule": "^1.2",
+ "thecodingmachine/phpstan-strict-rules": "^1.0"
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "๐ฏ PHPStan rules wrapper",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/php-phpstan-rules-wrapper/issues",
+ "source": "https://github.com/WyriHaximus/php-phpstan-rules-wrapper/tree/6.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-05-15T05:39:12+00:00"
+ },
+ {
+ "name": "wyrihaximus/react-phpunit-run-tests-in-fiber",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/reactphp-phpunit-run-tests-in-fiber.git",
+ "reference": "38db5c326d191f5791ec2920beb5401a7d7259c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/reactphp-phpunit-run-tests-in-fiber/zipball/38db5c326d191f5791ec2920beb5401a7d7259c7",
+ "reference": "38db5c326d191f5791ec2920beb5401a7d7259c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.2",
+ "phpunit/phpunit": "^10.5",
+ "react/async": "^4.2.0",
+ "react/event-loop": "^1.5.0",
+ "react/promise": "^3.1"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<10"
+ },
+ "require-dev": {
+ "react/promise-timer": "^1.10.0",
+ "wyrihaximus/test-utilities": "^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "WyriHaximus\\React\\PHPUnit\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "Trait to run all tests in a fiber",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/reactphp-phpunit-run-tests-in-fiber/issues",
+ "source": "https://github.com/WyriHaximus/reactphp-phpunit-run-tests-in-fiber/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-04-01T13:35:24+00:00"
+ },
+ {
+ "name": "wyrihaximus/test-utilities",
+ "version": "6.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WyriHaximus/php-test-utilities.git",
+ "reference": "f96153f539dd2e4a3bbde8ebc69fff7e974ebed5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WyriHaximus/php-test-utilities/zipball/f96153f539dd2e4a3bbde8ebc69fff7e974ebed5",
+ "reference": "f96153f539dd2e4a3bbde8ebc69fff7e974ebed5",
+ "shasum": ""
+ },
+ "require": {
+ "brandembassy/mockery-tools": "^4.1.3",
+ "ecoapm/libyear": "^2.3",
+ "ergebnis/composer-normalize": "^2.42.0",
+ "ergebnis/phpunit-slow-test-detector": "^2.14.0",
+ "icanhazstring/composer-unused": "^0.8.11",
+ "infection/infection": "^0.27.0",
+ "maglnet/composer-require-checker": "^4.11.0",
+ "mockery/mockery": "^1.6.12",
+ "nunomaduro/collision": "^7.10.0",
+ "orklah/psalm-insane-comparison": "^2.3.0",
+ "php": "^8.2",
+ "php-coveralls/php-coveralls": "^2.7.0",
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "php-standard-library/psalm-plugin": "^1.1.5 || ^2.2.1",
+ "phpstan/phpstan": "^1.11.4",
+ "phpunit/phpunit": "^10.5.20",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.19.0",
+ "roave/backward-compatibility-check": "^8.6.0",
+ "roave/infection-static-analysis-plugin": "^1.33.0",
+ "squizlabs/php_codesniffer": "^3.10.1",
+ "thecodingmachine/safe": "^2.5.0",
+ "vimeo/psalm": "^5.24.0",
+ "wyrihaximus/coding-standard": "^2.14.0",
+ "wyrihaximus/phpstan-rules-wrapper": "^6.1.0"
+ },
+ "conflict": {
+ "composer/compoer": "<2.6.0",
+ "symfony/dependency-injection": "<5.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "WyriHaximus\\TestUtilities\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "๐ ๏ธ Test utilities for api-clients packages",
+ "support": {
+ "issues": "https://github.com/WyriHaximus/php-test-utilities/issues",
+ "source": "https://github.com/WyriHaximus/php-test-utilities/tree/6.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-08T15:31:59+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": {
+ "react-parallel/contracts": 20,
+ "react-parallel/react-parallel": 20,
+ "react/filesystem": 20
+ },
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^8.2"
+ },
+ "platform-dev": [],
+ "platform-overrides": {
+ "php": "8.2.13"
+ },
+ "plugin-api-version": "2.6.0"
+}
diff --git a/etc/ci/markdown-link-checker.json b/etc/ci/markdown-link-checker.json
new file mode 100644
index 0000000..15fb56f
--- /dev/null
+++ b/etc/ci/markdown-link-checker.json
@@ -0,0 +1,10 @@
+{
+ "httpHeaders": [
+ {
+ "urls": ["https://docs.github.com/"],
+ "headers": {
+ "Accept-Encoding": "zstd, br, gzip, deflate"
+ }
+ }
+ ]
+}
diff --git a/etc/qa/composer-require-checker.json b/etc/qa/composer-require-checker.json
new file mode 100644
index 0000000..b2c0e28
--- /dev/null
+++ b/etc/qa/composer-require-checker.json
@@ -0,0 +1,18 @@
+{
+ "symbol-whitelist" : [
+ "null", "true", "false",
+ "static", "self", "parent",
+ "array", "string", "int", "float", "bool", "iterable", "callable", "void", "object", "mixed",
+ "Safe\\json_encode", "futurePromise", "WyriHaximus\\Constants\\Numeric\\ZERO"
+ ],
+ "php-core-extensions" : [
+ "Core",
+ "date",
+ "pcre",
+ "Phar",
+ "Reflection",
+ "SPL",
+ "standard"
+ ],
+ "scan-files" : []
+}
diff --git a/etc/qa/phpcs.xml b/etc/qa/phpcs.xml
new file mode 100644
index 0000000..f6c11d9
--- /dev/null
+++ b/etc/qa/phpcs.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+ ../../src
+ ../../tests
+
+
+
diff --git a/etc/qa/phpstan.neon b/etc/qa/phpstan.neon
new file mode 100644
index 0000000..bdc2171
--- /dev/null
+++ b/etc/qa/phpstan.neon
@@ -0,0 +1,11 @@
+parameters:
+ level: max
+ ergebnis:
+ noExtends:
+ classesAllowedToBeExtended:
+ - ReactParallel\EventLoop\CancelledException
+ - ReactParallel\EventLoop\CanceledFuture
+ - ReactParallel\EventLoop\KilledRuntime
+
+includes:
+ - ../../vendor/wyrihaximus/async-test-utilities/rules.neon
diff --git a/etc/qa/phpunit.xml b/etc/qa/phpunit.xml
new file mode 100644
index 0000000..5207296
--- /dev/null
+++ b/etc/qa/phpunit.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ ../../tests/
+
+
+
+
+ ../../src/
+
+
+
+
+
+
diff --git a/etc/qa/psalm.xml b/etc/qa/psalm.xml
new file mode 100644
index 0000000..82fe126
--- /dev/null
+++ b/etc/qa/psalm.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/infection.json.dist b/infection.json.dist
new file mode 100644
index 0000000..e31539a
--- /dev/null
+++ b/infection.json.dist
@@ -0,0 +1,20 @@
+{
+ "timeout": 120,
+ "source": {
+ "directories": [
+ "src"
+ ]
+ },
+ "logs": {
+ "text": "./var/infection.log",
+ "summary": "./var/infection-summary.log",
+ "json": "./var/infection.json",
+ "perMutator": "./var/infection-per-mutator.md"
+ },
+ "mutators": {
+ "@default": true
+ },
+ "phpUnit": {
+ "configDir": "./etc/qa/"
+ }
+}
diff --git a/src/Adapter.php b/src/Adapter.php
new file mode 100644
index 0000000..e5589b0
--- /dev/null
+++ b/src/Adapter.php
@@ -0,0 +1,61 @@
+internalStat($path)->then(function (Stat|null $stat) use ($path) {
+ if ($stat === null) {
+ return new NotExist($this->pool, $this, dirname($path) . DIRECTORY_SEPARATOR, basename($path));
+ }
+
+ switch (ModeTypeDetector::detect($stat->mode())) {
+ case Node\DirectoryInterface::class:
+ return $this->directory($stat->path());
+
+ break;
+ case Node\FileInterface::class:
+ return $this->file($stat->path());
+
+ break;
+ default:
+ return new Node\Unknown($stat->path(), $stat->path());
+
+ break;
+ }
+ });
+ }
+
+ public function directory(string $path): Node\DirectoryInterface
+ {
+ return new Directory($this->pool, $this, dirname($path) . DIRECTORY_SEPARATOR, basename($path));
+ }
+
+ public function file(string $path): Node\FileInterface
+ {
+ return new File($this->pool, dirname($path) . DIRECTORY_SEPARATOR, basename($path));
+ }
+}
diff --git a/src/Directory.php b/src/Directory.php
new file mode 100644
index 0000000..627862f
--- /dev/null
+++ b/src/Directory.php
@@ -0,0 +1,74 @@
+internalStat($this->path . $this->name);
+ }
+
+ public function ls(): PromiseInterface
+ {
+ return all($this->pool->run(static function (string $path, AdapterInterface $filesystem): array {
+ $promises = [];
+ foreach (scandir($path) as $node) {
+ if (in_array($node, ['.', '..'])) {
+ continue;
+ }
+
+ $promises[] = $filesystem->detect($this->path . $this->name . DIRECTORY_SEPARATOR . $node);
+ }
+
+ return $promises;
+ }, [$this->path . $this->name, $this->filesystem]));
+ }
+
+ public function unlink(): PromiseInterface
+ {
+ return resolve($this->pool->run(static function (string $path): bool {
+ if (count(scandir($path)) > 0) {
+ return false;
+ }
+
+ return rmdir($path);
+ }, [$this->path . $this->name]));
+ }
+
+ public function path(): string
+ {
+ return $this->path;
+ }
+
+ public function name(): string
+ {
+ return $this->name;
+ }
+}
diff --git a/src/File.php b/src/File.php
new file mode 100644
index 0000000..4865b24
--- /dev/null
+++ b/src/File.php
@@ -0,0 +1,72 @@
+internalStat($this->path . $this->name);
+ }
+
+ public function getContents(int $offset = 0, int|null $maxlen = null): PromiseInterface
+ {
+ return resolve($this->pool->run(static function (string $path, int $offset, int|null $maxlen): string {
+ return file_get_contents($path, false, null, $offset, $maxlen ?? (int) stat($path)['size']);
+ }, [$this->path . $this->name, $offset, $maxlen]));
+ }
+
+ public function putContents(string $contents, int $flags = 0): PromiseInterface
+ {
+ // Making sure we only pass in one flag for security reasons
+ if (($flags & FILE_APPEND) === FILE_APPEND) {
+ $flags = FILE_APPEND;
+ } else {
+ $flags = 0;
+ }
+
+ return resolve($this->pool->run(static function (string $path, string $contents, int $flags): bool|int {
+ return file_put_contents($path, $contents, $flags);
+ }, [$this->path . $this->name, $contents, $flags]));
+ }
+
+ public function unlink(): PromiseInterface
+ {
+ return resolve($this->pool->run(static function (string $path): bool {
+ return unlink($path);
+ }, [$this->path . $this->name]));
+ }
+
+ public function path(): string
+ {
+ return $this->path;
+ }
+
+ public function name(): string
+ {
+ return $this->name;
+ }
+}
diff --git a/src/NotExist.php b/src/NotExist.php
new file mode 100644
index 0000000..58cc0ee
--- /dev/null
+++ b/src/NotExist.php
@@ -0,0 +1,73 @@
+internalStat($this->path . $this->name);
+ }
+
+ public function createDirectory(): PromiseInterface
+ {
+ $this->pool->run(static function (string $path, string $name): void {
+ @mkdir($path . $name, 0777, true);
+ }, [$this->path, $this->name]);
+
+ return resolve(new Directory($this->pool, $this->filesystem, $this->path, $this->name));
+ }
+
+ public function createFile(): PromiseInterface
+ {
+ $file = new File($this->pool, $this->path, $this->name);
+
+ return $this->filesystem->detect($this->path)->then(static function (Node\NodeInterface $node): PromiseInterface {
+ if ($node instanceof Node\NotExistInterface) {
+ return $node->createDirectory();
+ }
+
+ return resolve($node);
+ })->then(static function () use ($file): PromiseInterface {
+ return $file->putContents('');
+ })->then(static function () use ($file): Node\FileInterface {
+ return $file;
+ });
+ }
+
+ public function unlink(): PromiseInterface
+ {
+ // Essentially a No-OP since it doesn't exist anyway
+ return resolve(true);
+ }
+
+ public function path(): string
+ {
+ return $this->path;
+ }
+
+ public function name(): string
+ {
+ return $this->name;
+ }
+}
diff --git a/src/StatTrait.php b/src/StatTrait.php
new file mode 100644
index 0000000..89a826a
--- /dev/null
+++ b/src/StatTrait.php
@@ -0,0 +1,28 @@
+pool->run(static function (string $path): Stat|null {
+ if (! file_exists($path)) {
+ return null;
+ }
+
+ return new Stat($path, stat($path));
+ }, [$path]));
+ }
+}
diff --git a/tests/AbstractFilesystemTestCase.php b/tests/AbstractFilesystemTestCase.php
new file mode 100644
index 0000000..4e3debf
--- /dev/null
+++ b/tests/AbstractFilesystemTestCase.php
@@ -0,0 +1,24 @@
+> */
+ final public function provideFilesystems(): iterable
+ {
+ yield 'parallel' => [
+ new Adapter(
+ (new Factory())->lowLevelPool(),
+ ),
+ ];
+ }
+}
diff --git a/tests/DirectoryTest.php b/tests/DirectoryTest.php
new file mode 100644
index 0000000..6a36054
--- /dev/null
+++ b/tests/DirectoryTest.php
@@ -0,0 +1,71 @@
+detect(__DIR__)->then(static function (DirectoryInterface $directory): PromiseInterface {
+ return $directory->stat();
+ }));
+
+ self::assertInstanceOf(Stat::class, $stat);
+ self::assertSame(stat(__DIR__)['size'], $stat->size());
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function ls(AdapterInterface $filesystem): void
+ {
+ $expectedListing = [];
+
+ $d = dir(__DIR__);
+ while (($entry = $d->read()) !== false) {
+ if ($entry === '.' || $entry === '..') {
+ continue;
+ }
+
+ $expectedListing[__DIR__ . DIRECTORY_SEPARATOR . $entry] = is_file(__DIR__ . DIRECTORY_SEPARATOR . $entry) ? FileInterface::class : DirectoryInterface::class;
+ }
+
+ $d->close();
+
+ ksort($expectedListing);
+
+ $directoryListing = await($filesystem->detect(__DIR__)->then(static function (DirectoryInterface $directory): PromiseInterface {
+ return $directory->ls();
+ }));
+
+ $listing = [];
+ foreach ($directoryListing as $node) {
+ $listing[$node->path() . $node->name()] = $node instanceof FileInterface ? FileInterface::class : DirectoryInterface::class;
+ }
+
+ ksort($listing);
+
+ self::assertSame($expectedListing, $listing);
+ }
+}
diff --git a/tests/FileTest.php b/tests/FileTest.php
new file mode 100644
index 0000000..17e933c
--- /dev/null
+++ b/tests/FileTest.php
@@ -0,0 +1,286 @@
+detect(__FILE__)->then(static function (FileInterface $file): PromiseInterface {
+ return $file->stat();
+ }));
+
+ self::assertInstanceOf(Stat::class, $stat);
+ self::assertSame(filesize(__FILE__), $stat->size());
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function getContents(AdapterInterface $filesystem): void
+ {
+ $fileContents = await($filesystem->detect(__FILE__)->then(static function (FileInterface $file): PromiseInterface {
+ return $file->getContents();
+ }));
+
+ self::assertSame(file_get_contents(__FILE__), $fileContents);
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function getContents34and5thCharacterFromFile(AdapterInterface $filesystem): void
+ {
+ $directoryName = sys_get_temp_dir() . DIRECTORY_SEPARATOR . bin2hex(random_bytes(13)) . DIRECTORY_SEPARATOR;
+ $fileName = $directoryName . bin2hex(random_bytes(13));
+ mkdir($directoryName);
+ file_put_contents($fileName, 'abcdefghijklmnopqrstuvwxyz');
+ $fileContents = await($filesystem->detect($fileName)->then(static function (FileInterface $file): PromiseInterface {
+ return $file->getContents(3, 3);
+ }));
+
+ self::assertSame('def', $fileContents);
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function putContents(AdapterInterface $filesystem): void
+ {
+ $fileName = sys_get_temp_dir() . DIRECTORY_SEPARATOR . bin2hex(random_bytes(13)) . DIRECTORY_SEPARATOR . bin2hex(random_bytes(9));
+ $fileContents = bin2hex(random_bytes(128));
+
+ $writtenLength = await($filesystem->detect($fileName)->then(static fn (NotExistInterface $notExist): PromiseInterface => $notExist->createFile())->then(static function (FileInterface $file) use ($fileContents): PromiseInterface {
+ return $file->putContents($fileContents);
+ }));
+
+ self::assertSame($writtenLength, strlen(file_get_contents($fileName)));
+ self::assertSame($fileContents, file_get_contents($fileName));
+
+ unlink($fileName);
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function putContentsMultipleBigFiles(AdapterInterface $filesystem): void
+ {
+ $directoryName = sys_get_temp_dir() . DIRECTORY_SEPARATOR . bin2hex(random_bytes(13)) . DIRECTORY_SEPARATOR;
+ await($filesystem->detect($directoryName)->then(static fn (NotExistInterface $notExist): PromiseInterface => $notExist->createDirectory()));
+ $fileNames = [];
+ $fileContents = [];
+ for ($i = 0; $i < 25; $i++) {
+ $fileNames[] = $directoryName . bin2hex(random_bytes(13));
+ }
+
+ foreach ($fileNames as $fileName) {
+ $fileContents[$fileName] = bin2hex(random_bytes(4096));
+ touch($fileName);
+ }
+
+ $promises = [];
+ foreach ($fileContents as $fileName => $fileContent) {
+ $promises[$fileName] = $filesystem->detect($fileName)->then(static function (FileInterface $file) use ($fileContent): PromiseInterface {
+ return $file->putContents($fileContent);
+ });
+ }
+
+ $writtenLengths = await(all($promises));
+
+ foreach ($writtenLengths as $fileName => $writtenLength) {
+ self::assertSame($writtenLength, strlen(file_get_contents($fileName)));
+ self::assertSame($fileContents[$fileName], file_get_contents($fileName));
+ unlink($fileName);
+ }
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function putContentsAppend(AdapterInterface $filesystem): void
+ {
+ $fileName = sys_get_temp_dir() . DIRECTORY_SEPARATOR . bin2hex(random_bytes(13)) . DIRECTORY_SEPARATOR . bin2hex(random_bytes(9));
+ $fileContentsFirst = bin2hex(random_bytes(128));
+ $fileContentsSecond = bin2hex(random_bytes(128));
+ $writtenLengthFirst = await($filesystem->detect($fileName)->then(static fn (NotExistInterface $notExist): PromiseInterface => $notExist->createFile())->then(static function (FileInterface $file) use ($fileContentsFirst): PromiseInterface {
+ return $file->putContents($fileContentsFirst);
+ }));
+
+ self::assertSame($writtenLengthFirst, strlen(file_get_contents($fileName)));
+ self::assertSame($fileContentsFirst, file_get_contents($fileName));
+
+ $writtenLengthSecond = await($filesystem->detect($fileName)->then(static function (FileInterface $file) use ($fileContentsSecond): PromiseInterface {
+ return $file->putContents($fileContentsSecond, FILE_APPEND);
+ }));
+
+ self::assertSame($writtenLengthFirst + $writtenLengthSecond, strlen(file_get_contents($fileName)));
+ self::assertSame($fileContentsFirst . $fileContentsSecond, file_get_contents($fileName));
+
+ unlink($fileName);
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function putContentsAppendBigFile(AdapterInterface $filesystem): void
+ {
+ $fileName = sys_get_temp_dir() . DIRECTORY_SEPARATOR . bin2hex(random_bytes(13)) . DIRECTORY_SEPARATOR . bin2hex(random_bytes(9));
+ await($filesystem->detect($fileName)->then(static fn (NotExistInterface $notExist): PromiseInterface => $notExist->createFile()));
+
+ $fileContents = [];
+ $writtenLength = 0;
+ for ($i = 0; $i < 13; $i++) {
+ $fileContents[] = bin2hex(random_bytes(4096));
+ }
+
+ foreach ($fileContents as $fileContent) {
+ $writtenLength += await($filesystem->detect($fileName)->then(static function (FileInterface $file) use ($fileContent): PromiseInterface {
+ return $file->putContents($fileContent, FILE_APPEND);
+ }));
+ }
+
+ self::assertSame($writtenLength, strlen(file_get_contents($fileName)));
+ self::assertSame(implode('', $fileContents), file_get_contents($fileName));
+
+ unlink($fileName);
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function putContentsAppendMultipleBigFiles(AdapterInterface $filesystem): void
+ {
+ $this->runMultipleFilesTests($filesystem, 8, 4096, 4);
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function putContentsAppendLotsOfSmallFiles(AdapterInterface $filesystem): void
+ {
+ $this->runMultipleFilesTests($filesystem, 16, 16, 4);
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function putContentsAppendLoadsOfSmallFiles(AdapterInterface $filesystem): void
+ {
+ $this->runMultipleFilesTests($filesystem, 32, 8, 8);
+ }
+
+ public function runMultipleFilesTests(AdapterInterface $filesystem, int $fileCount, int $fileSize, int $chunkCount): void
+ {
+ $directoryName = sys_get_temp_dir() . DIRECTORY_SEPARATOR . bin2hex(random_bytes(13)) . DIRECTORY_SEPARATOR;
+ mkdir($directoryName, 0777, true);
+ $fileNames = [];
+ $fileContents = [];
+ for ($i = 0; $i < $fileCount; $i++) {
+ $fileNames[] = $directoryName . bin2hex(random_bytes(13));
+ }
+
+ foreach ($fileNames as $fileName) {
+ $fileContents[$fileName] = [];
+ touch($fileName);
+ }
+
+ foreach ($fileNames as $fileName) {
+ for ($i = 0; $i < $chunkCount; $i++) {
+ $fileContents[$fileName][] = bin2hex(random_bytes($fileSize));
+ }
+ }
+
+ $promises = [];
+ foreach ($fileContents as $fileName => $fileContent) {
+ $queue = new SplQueue();
+ foreach ($fileContent as $chunk) {
+ $queue->enqueue($chunk);
+ }
+
+ $promises[$fileName] = $filesystem->detect($fileName)->then(static function (FileInterface $file) use ($queue): PromiseInterface {
+ return new Promise(static function (callable $resolve, callable $reject) use ($queue, $file): void {
+ $bytesWritten = 0;
+ $writeFunction = static function () use (&$writeFunction, &$bytesWritten, $queue, $file, $resolve, $reject): void {
+ if ($queue->count() > 0) {
+ $file->putContents($queue->dequeue(), FILE_APPEND)->then(static function (int $writtenBytes) use (&$writeFunction, &$bytesWritten): void {
+ $bytesWritten += $writtenBytes;
+ $writeFunction();
+ }, $reject);
+
+ return;
+ }
+
+ $resolve($bytesWritten);
+ };
+ $writeFunction();
+ });
+ });
+ }
+
+ $writtenLengths = await(all($promises));
+
+ foreach ($writtenLengths as $fileName => $writtenLength) {
+ self::assertSame($writtenLength, strlen(file_get_contents($fileName)));
+ self::assertSame(implode('', $fileContents[$fileName]), file_get_contents($fileName));
+ unlink($fileName);
+ }
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function unlink(AdapterInterface $filesystem): void
+ {
+ $fileName = __FILE__ . '.' . time();
+ $fileContents = bin2hex(random_bytes(2048));
+ file_put_contents($fileName, $fileContents);
+ self::assertFileExists($fileName);
+ await($filesystem->detect($fileName)->then(static function (FileInterface $file): PromiseInterface {
+ return $file->unlink();
+ }));
+
+ self::assertFileDoesNotExist($fileName);
+ }
+}
diff --git a/tests/FilesystemTest.php b/tests/FilesystemTest.php
new file mode 100644
index 0000000..b42ca86
--- /dev/null
+++ b/tests/FilesystemTest.php
@@ -0,0 +1,50 @@
+detect(__FILE__));
+
+ self::assertInstanceOf(FileInterface::class, $node);
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function directory(AdapterInterface $filesystem): void
+ {
+ $node = await($filesystem->detect(__DIR__));
+
+ self::assertInstanceOf(DirectoryInterface::class, $node);
+ }
+
+ /**
+ * @test
+ * @dataProvider provideFilesystems
+ */
+ public function notExists(AdapterInterface $filesystem): void
+ {
+ $node = await($filesystem->detect(bin2hex(random_bytes(13))));
+
+ self::assertInstanceOf(NotExistInterface::class, $node);
+ }
+}
diff --git a/tests/NotExistTest.php b/tests/NotExistTest.php
new file mode 100644
index 0000000..123f6c8
--- /dev/null
+++ b/tests/NotExistTest.php
@@ -0,0 +1,33 @@
+detect($dirName)->then(static function (NotExistInterface $notExist): PromiseInterface {
+ return $notExist->createDirectory();
+ }));
+
+ self::assertDirectoryExists($dirName);
+ }
+}
diff --git a/var/.gitkeep b/var/.gitkeep
new file mode 100644
index 0000000..e69de29