9 |
10 | Permission is hereby granted, free of charge, to any person obtaining a copy
11 | of this software and associated documentation files (the "Software"), to deal
12 | in the Software without restriction, including without limitation the rights
13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14 | copies of the Software, and to permit persons to whom the Software is
15 | furnished to do so, subject to the following conditions:
16 |
17 | The above copyright notice and this permission notice shall be included in
18 | all copies or substantial portions of the Software.
19 |
20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26 | THE SOFTWARE.
27 |
--------------------------------------------------------------------------------
/vendor/guzzlehttp/psr7/src/DroppingStream.php:
--------------------------------------------------------------------------------
1 | stream = $stream;
30 | $this->maxLength = $maxLength;
31 | }
32 |
33 | public function write($string): int
34 | {
35 | $diff = $this->maxLength - $this->stream->getSize();
36 |
37 | // Begin returning 0 when the underlying stream is too large.
38 | if ($diff <= 0) {
39 | return 0;
40 | }
41 |
42 | // Write the stream or a subset of the stream if needed.
43 | if (strlen($string) < $diff) {
44 | return $this->stream->write($string);
45 | }
46 |
47 | return $this->stream->write(substr($string, 0, $diff));
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/vendor/guzzlehttp/psr7/src/Exception/MalformedUriException.php:
--------------------------------------------------------------------------------
1 | filename = $filename;
35 | $this->mode = $mode;
36 |
37 | // unsetting the property forces the first access to go through
38 | // __get().
39 | unset($this->stream);
40 | }
41 |
42 | /**
43 | * Creates the underlying stream lazily when required.
44 | */
45 | protected function createStream(): StreamInterface
46 | {
47 | return Utils::streamFor(Utils::tryFopen($this->filename, $this->mode));
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/vendor/guzzlehttp/psr7/src/NoSeekStream.php:
--------------------------------------------------------------------------------
1 | @,;:\\\"/[\]?={}\x01-\x20\x7F]++):[ \t]*+((?:[ \t]*+[\x21-\x7E\x80-\xFF]++)*+)[ \t]*+\r?\n)m";
22 | public const HEADER_FOLD_REGEX = "(\r?\n[ \t]++)";
23 | }
24 |
--------------------------------------------------------------------------------
/vendor/guzzlehttp/psr7/src/UriComparator.php:
--------------------------------------------------------------------------------
1 | getHost(), $modified->getHost()) !== 0) {
23 | return true;
24 | }
25 |
26 | if ($original->getScheme() !== $modified->getScheme()) {
27 | return true;
28 | }
29 |
30 | if (self::computePort($original) !== self::computePort($modified)) {
31 | return true;
32 | }
33 |
34 | return false;
35 | }
36 |
37 | private static function computePort(UriInterface $uri): int
38 | {
39 | $port = $uri->getPort();
40 |
41 | if (null !== $port) {
42 | return $port;
43 | }
44 |
45 | return 'https' === $uri->getScheme() ? 443 : 80;
46 | }
47 |
48 | private function __construct()
49 | {
50 | // cannot be instantiated
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/vendor/psr/http-factory/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 PHP-FIG
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/psr/http-factory/README.md:
--------------------------------------------------------------------------------
1 | HTTP Factories
2 | ==============
3 |
4 | This repository holds all interfaces related to [PSR-17 (HTTP Factories)][psr-url].
5 |
6 | Note that this is not a HTTP Factory implementation of its own. It is merely interfaces that describe the components of a HTTP Factory.
7 |
8 | The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist.
9 |
10 | [psr-url]: https://www.php-fig.org/psr/psr-17/
11 | [package-url]: https://packagist.org/packages/psr/http-factory
12 | [implementation-url]: https://packagist.org/providers/psr/http-factory-implementation
13 |
--------------------------------------------------------------------------------
/vendor/psr/http-factory/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "psr/http-factory",
3 | "description": "Common interfaces for PSR-7 HTTP message factories",
4 | "keywords": [
5 | "psr",
6 | "psr-7",
7 | "psr-17",
8 | "http",
9 | "factory",
10 | "message",
11 | "request",
12 | "response"
13 | ],
14 | "license": "MIT",
15 | "authors": [
16 | {
17 | "name": "PHP-FIG",
18 | "homepage": "https://www.php-fig.org/"
19 | }
20 | ],
21 | "require": {
22 | "php": ">=7.0.0",
23 | "psr/http-message": "^1.0 || ^2.0"
24 | },
25 | "autoload": {
26 | "psr-4": {
27 | "Psr\\Http\\Message\\": "src/"
28 | }
29 | },
30 | "extra": {
31 | "branch-alias": {
32 | "dev-master": "1.0.x-dev"
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/vendor/psr/http-factory/src/RequestFactoryInterface.php:
--------------------------------------------------------------------------------
1 | = 5.3.
5 |
6 | [](https://travis-ci.org/ralouphie/getallheaders)
7 | [](https://coveralls.io/r/ralouphie/getallheaders?branch=master)
8 | [](https://packagist.org/packages/ralouphie/getallheaders)
9 | [](https://packagist.org/packages/ralouphie/getallheaders)
10 | [](https://packagist.org/packages/ralouphie/getallheaders)
11 |
12 |
13 | This is a simple polyfill for [`getallheaders()`](http://www.php.net/manual/en/function.getallheaders.php).
14 |
15 | ## Install
16 |
17 | For PHP version **`>= 5.6`**:
18 |
19 | ```
20 | composer require ralouphie/getallheaders
21 | ```
22 |
23 | For PHP version **`< 5.6`**:
24 |
25 | ```
26 | composer require ralouphie/getallheaders "^2"
27 | ```
28 |
--------------------------------------------------------------------------------
/vendor/ralouphie/getallheaders/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ralouphie/getallheaders",
3 | "description": "A polyfill for getallheaders.",
4 | "license": "MIT",
5 | "authors": [
6 | {
7 | "name": "Ralph Khattar",
8 | "email": "ralph.khattar@gmail.com"
9 | }
10 | ],
11 | "require": {
12 | "php": ">=5.6"
13 | },
14 | "require-dev": {
15 | "phpunit/phpunit": "^5 || ^6.5",
16 | "php-coveralls/php-coveralls": "^2.1"
17 | },
18 | "autoload": {
19 | "files": ["src/getallheaders.php"]
20 | },
21 | "autoload-dev": {
22 | "psr-4": {
23 | "getallheaders\\Tests\\": "tests/"
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on:
4 | push:
5 | pull_request:
6 |
7 | jobs:
8 | PHPUnit:
9 | name: PHPUnit (PHP ${{ matrix.php }})(${{ matrix.env }})
10 | runs-on: ubuntu-20.04
11 | strategy:
12 | matrix:
13 | env:
14 | - client
15 | - server
16 | php:
17 | - 7.4
18 | - 7.3
19 | - 7.2
20 | - 7.1
21 | - 7.0
22 | - 5.6
23 | steps:
24 | - uses: actions/checkout@v2
25 | - name: Setup PHP
26 | uses: shivammathur/setup-php@v2
27 | with:
28 | php-version: ${{ matrix.php }}
29 | coverage: xdebug
30 | - run: docker pull crossbario/autobahn-testsuite
31 | - run: composer install
32 |
33 | - run: sh tests/ab/run_ab_tests.sh
34 | env:
35 | ABTEST: ${{ matrix.env }}
36 | SKIP_DEFLATE: _skip_deflate
37 | if: ${{ matrix.php <= 5.6 }}
38 |
39 | - run: sh tests/ab/run_ab_tests.sh
40 | env:
41 | ABTEST: ${{ matrix.env }}
42 | if: ${{ matrix.php >= 7.0 }}
43 | - run: vendor/bin/phpunit --verbose
44 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/.gitignore:
--------------------------------------------------------------------------------
1 | composer.lock
2 | vendor
3 | tests/ab/reports
4 | reports
5 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011 Chris Boden
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is furnished
8 | to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/README.md:
--------------------------------------------------------------------------------
1 | # RFC6455 - The WebSocket Protocol
2 |
3 | [](https://github.com/ratchetphp/RFC6455/actions)
4 | [](http://socketo.me/reports/rfc-server/index.html)
5 |
6 | This library a protocol handler for the RFC6455 specification.
7 | It contains components for both server and client side handshake and messaging protocol negotation.
8 |
9 | Aspects that are left open to interpretation in the specification are also left open in this library.
10 | It is up to the implementation to determine how those interpretations are to be dealt with.
11 |
12 | This library is independent, framework agnostic, and does not deal with any I/O.
13 | HTTP upgrade negotiation integration points are handled with PSR-7 interfaces.
14 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ratchet/rfc6455",
3 | "type": "library",
4 | "description": "RFC6455 WebSocket protocol handler",
5 | "keywords": ["WebSockets", "websocket", "RFC6455"],
6 | "homepage": "http://socketo.me",
7 | "license": "MIT",
8 | "authors": [
9 | {
10 | "name": "Chris Boden"
11 | , "email": "cboden@gmail.com"
12 | , "role": "Developer"
13 | },
14 | {
15 | "name": "Matt Bonneau",
16 | "role": "Developer"
17 | }
18 | ],
19 | "support": {
20 | "issues": "https://github.com/ratchetphp/RFC6455/issues",
21 | "chat": "https://gitter.im/reactphp/reactphp"
22 | },
23 | "autoload": {
24 | "psr-4": {
25 | "Ratchet\\RFC6455\\": "src"
26 | }
27 | },
28 | "require": {
29 | "php": ">=5.4.2",
30 | "guzzlehttp/psr7": "^2 || ^1.7"
31 | },
32 | "require-dev": {
33 | "phpunit/phpunit": "^5.7",
34 | "react/socket": "^1.3"
35 | },
36 | "scripts": {
37 | "abtest-client": "ABTEST=client && sh tests/ab/run_ab_tests.sh",
38 | "abtest-server": "ABTEST=server && sh tests/ab/run_ab_tests.sh",
39 | "phpunit": "phpunit --colors=always",
40 | "test": [
41 | "@abtest-client",
42 | "@abtest-server",
43 | "@phpunit"
44 | ]
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/phpunit.xml.dist:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
15 | tests
16 |
17 | test/ab
18 |
19 |
20 |
21 |
22 |
23 |
24 | ./src/
25 |
26 |
27 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/src/Handshake/InvalidPermessageDeflateOptionsException.php:
--------------------------------------------------------------------------------
1 | validCloseCodes = [
9 | Frame::CLOSE_NORMAL,
10 | Frame::CLOSE_GOING_AWAY,
11 | Frame::CLOSE_PROTOCOL,
12 | Frame::CLOSE_BAD_DATA,
13 | Frame::CLOSE_BAD_PAYLOAD,
14 | Frame::CLOSE_POLICY,
15 | Frame::CLOSE_TOO_BIG,
16 | Frame::CLOSE_MAND_EXT,
17 | Frame::CLOSE_SRV_ERR,
18 | ];
19 | }
20 |
21 | public function __invoke($val) {
22 | return ($val >= 3000 && $val <= 4999) || in_array($val, $this->validCloseCodes);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/src/Messaging/DataInterface.php:
--------------------------------------------------------------------------------
1 | markTestSkipped('Autobahn TestSuite results not found');
10 | }
11 |
12 | $resultsJson = file_get_contents($fileName);
13 | $results = json_decode($resultsJson);
14 | $agentName = array_keys(get_object_vars($results))[0];
15 |
16 | foreach ($results->$agentName as $name => $result) {
17 | if ($result->behavior === "INFORMATIONAL") {
18 | continue;
19 | }
20 |
21 | $this->assertTrue(in_array($result->behavior, ["OK", "NON-STRICT"]), "Autobahn test case " . $name . " in " . $fileName);
22 | }
23 | }
24 |
25 | public function testAutobahnClientResults() {
26 | $this->verifyAutobahnResults(__DIR__ . '/ab/reports/clients/index.json');
27 | }
28 |
29 | public function testAutobahnServerResults() {
30 | $this->verifyAutobahnResults(__DIR__ . '/ab/reports/servers/index.json');
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/tests/ab/docker_bootstrap.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -x
3 |
4 | echo "Running $0"
5 |
6 | echo Adding "$1 host.ratchet.internal" to /etc/hosts file
7 |
8 | echo $1 host.ratchet.internal >> /etc/hosts
9 |
10 | echo /etc/hosts contains:
11 | cat /etc/hosts
12 | echo
13 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/tests/ab/fuzzingclient.json:
--------------------------------------------------------------------------------
1 | {
2 | "options": {
3 | "failByDrop": false
4 | }
5 | , "outdir": "/reports/servers"
6 | , "servers": [{
7 | "agent": "RatchetRFC/0.3"
8 | , "url": "ws://host.ratchet.internal:9001"
9 | , "options": {"version": 18}
10 | }]
11 | , "cases": [
12 | "*"
13 | ]
14 | , "exclude-cases": []
15 | , "exclude-agent-cases": {}
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/tests/ab/fuzzingclient_skip_deflate.json:
--------------------------------------------------------------------------------
1 | {
2 | "options": {
3 | "failByDrop": false
4 | }
5 | , "outdir": "/reports/servers"
6 | , "servers": [{
7 | "agent": "RatchetRFC/0.3"
8 | , "url": "ws://host.ratchet.internal:9001"
9 | , "options": {"version": 18}
10 | }]
11 | , "cases": ["*"]
12 | , "exclude-cases": ["12.*", "13.*"]
13 | , "exclude-agent-cases": {}
14 | }
15 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/tests/ab/fuzzingserver.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "ws://127.0.0.1:9002"
3 | , "options": {
4 | "failByDrop": false
5 | }
6 | , "outdir": "./reports/clients"
7 | , "cases": [
8 | "*"
9 | ]
10 | , "exclude-cases": []
11 | , "exclude-agent-cases": {}
12 | }
13 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/tests/ab/fuzzingserver_skip_deflate.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "ws://127.0.0.1:9002"
3 | , "options": {
4 | "failByDrop": false
5 | }
6 | , "outdir": "./reports/clients"
7 | , "cases": ["*"]
8 | , "exclude-cases": ["12.*", "13.*"]
9 | , "exclude-agent-cases": {}
10 | }
11 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/tests/bootstrap.php:
--------------------------------------------------------------------------------
1 | addPsr4('Ratchet\\RFC6455\\Test\\', __DIR__);
17 | break;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/tests/unit/Handshake/PermessageDeflateOptionsTest.php:
--------------------------------------------------------------------------------
1 | assertEquals($supported, PermessageDeflateOptions::permessageDeflateSupported($version));
29 | }
30 | }
--------------------------------------------------------------------------------
/vendor/ratchet/rfc6455/tests/unit/Handshake/ResponseVerifierTest.php:
--------------------------------------------------------------------------------
1 | _v = new ResponseVerifier;
19 | }
20 |
21 | public static function subProtocolsProvider() {
22 | return [
23 | [true, ['a'], ['a']]
24 | , [true, ['c', 'd', 'a'], ['a']]
25 | , [true, ['c, a', 'd'], ['a']]
26 | , [true, [], []]
27 | , [true, ['a', 'b'], []]
28 | , [false, ['c', 'd', 'a'], ['b', 'a']]
29 | , [false, ['a', 'b', 'c'], ['d']]
30 | ];
31 | }
32 |
33 | /**
34 | * @dataProvider subProtocolsProvider
35 | */
36 | public function testVerifySubProtocol($expected, $request, $response) {
37 | $this->assertEquals($expected, $this->_v->verifySubProtocol($request, $response));
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/vendor/react/cache/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2012 Christian Lück, Cees-Jan Kiewiet, Jan Sorgalla, Chris Boden, Igor Wiedler
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is furnished
10 | to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/react/cache/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react/cache",
3 | "description": "Async, Promise-based cache interface for ReactPHP",
4 | "keywords": ["cache", "caching", "promise", "ReactPHP"],
5 | "license": "MIT",
6 | "authors": [
7 | {
8 | "name": "Christian Lück",
9 | "homepage": "https://clue.engineering/",
10 | "email": "christian@clue.engineering"
11 | },
12 | {
13 | "name": "Cees-Jan Kiewiet",
14 | "homepage": "https://wyrihaximus.net/",
15 | "email": "reactphp@ceesjankiewiet.nl"
16 | },
17 | {
18 | "name": "Jan Sorgalla",
19 | "homepage": "https://sorgalla.com/",
20 | "email": "jsorgalla@gmail.com"
21 | },
22 | {
23 | "name": "Chris Boden",
24 | "homepage": "https://cboden.dev/",
25 | "email": "cboden@gmail.com"
26 | }
27 | ],
28 | "require": {
29 | "php": ">=5.3.0",
30 | "react/promise": "^3.0 || ^2.0 || ^1.1"
31 | },
32 | "require-dev": {
33 | "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
34 | },
35 | "autoload": {
36 | "psr-4": {
37 | "React\\Cache\\": "src/"
38 | }
39 | },
40 | "autoload-dev": {
41 | "psr-4": {
42 | "React\\Tests\\Cache\\": "tests/"
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/vendor/react/dns/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2012 Christian Lück, Cees-Jan Kiewiet, Jan Sorgalla, Chris Boden, Igor Wiedler
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is furnished
10 | to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/react/dns/src/BadServerException.php:
--------------------------------------------------------------------------------
1 | =5.3.0"
30 | },
31 | "require-dev": {
32 | "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
33 | },
34 | "suggest": {
35 | "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
36 | },
37 | "autoload": {
38 | "psr-4": {
39 | "React\\EventLoop\\": "src/"
40 | }
41 | },
42 | "autoload-dev": {
43 | "psr-4": {
44 | "React\\Tests\\EventLoop\\": "tests/"
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/vendor/react/event-loop/src/Tick/FutureTickQueue.php:
--------------------------------------------------------------------------------
1 | queue = new SplQueue();
22 | }
23 |
24 | /**
25 | * Add a callback to be invoked on a future tick of the event loop.
26 | *
27 | * Callbacks are guaranteed to be executed in the order they are enqueued.
28 | *
29 | * @param callable $listener The callback to invoke.
30 | */
31 | public function add($listener)
32 | {
33 | $this->queue->enqueue($listener);
34 | }
35 |
36 | /**
37 | * Flush the callback queue.
38 | */
39 | public function tick()
40 | {
41 | // Only invoke as many callbacks as were on the queue when tick() was called.
42 | $count = $this->queue->count();
43 |
44 | while ($count--) {
45 | \call_user_func(
46 | $this->queue->dequeue()
47 | );
48 | }
49 | }
50 |
51 | /**
52 | * Check if the next tick queue is empty.
53 | *
54 | * @return boolean
55 | */
56 | public function isEmpty()
57 | {
58 | return $this->queue->isEmpty();
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/vendor/react/event-loop/src/TimerInterface.php:
--------------------------------------------------------------------------------
1 | =5.4.0"
29 | },
30 | "require-dev": {
31 | "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.36"
32 | },
33 | "autoload": {
34 | "psr-4": {
35 | "React\\Promise\\": "src/"
36 | },
37 | "files": ["src/functions_include.php"]
38 | },
39 | "autoload-dev": {
40 | "psr-4": {
41 | "React\\Promise\\": ["tests", "tests/fixtures"]
42 | }
43 | },
44 | "keywords": [
45 | "promise",
46 | "promises"
47 | ]
48 | }
49 |
--------------------------------------------------------------------------------
/vendor/react/promise/src/CancellablePromiseInterface.php:
--------------------------------------------------------------------------------
1 | started) {
13 | return;
14 | }
15 |
16 | $this->started = true;
17 | $this->drain();
18 | }
19 |
20 | public function enqueue($cancellable)
21 | {
22 | if (!\is_object($cancellable) || !\method_exists($cancellable, 'then') || !\method_exists($cancellable, 'cancel')) {
23 | return;
24 | }
25 |
26 | $length = \array_push($this->queue, $cancellable);
27 |
28 | if ($this->started && 1 === $length) {
29 | $this->drain();
30 | }
31 | }
32 |
33 | private function drain()
34 | {
35 | for ($i = key($this->queue); isset($this->queue[$i]); $i++) {
36 | $cancellable = $this->queue[$i];
37 |
38 | $exception = null;
39 |
40 | try {
41 | $cancellable->cancel();
42 | } catch (\Throwable $exception) {
43 | } catch (\Exception $exception) {
44 | }
45 |
46 | unset($this->queue[$i]);
47 |
48 | if ($exception) {
49 | throw $exception;
50 | }
51 | }
52 |
53 | $this->queue = [];
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/vendor/react/promise/src/Exception/LengthException.php:
--------------------------------------------------------------------------------
1 | reason = $reason;
21 |
22 | $message = \sprintf('Unhandled Rejection: %s', \json_encode($reason));
23 |
24 | parent::__construct($message, 0);
25 | }
26 |
27 | public function getReason()
28 | {
29 | return $this->reason;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/vendor/react/promise/src/functions_include.php:
--------------------------------------------------------------------------------
1 | connect('localhost:80');
20 | * ```
21 | */
22 | class FixedUriConnector implements ConnectorInterface
23 | {
24 | private $uri;
25 | private $connector;
26 |
27 | /**
28 | * @param string $uri
29 | * @param ConnectorInterface $connector
30 | */
31 | public function __construct($uri, ConnectorInterface $connector)
32 | {
33 | $this->uri = $uri;
34 | $this->connector = $connector;
35 | }
36 |
37 | public function connect($_)
38 | {
39 | return $this->connector->connect($this->uri);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/vendor/react/stream/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2012 Christian Lück, Cees-Jan Kiewiet, Jan Sorgalla, Chris Boden, Igor Wiedler
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is furnished
10 | to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/symfony/deprecation-contracts/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | CHANGELOG
2 | =========
3 |
4 | The changelog is maintained for all Symfony contracts at the following URL:
5 | https://github.com/symfony/contracts/blob/main/CHANGELOG.md
6 |
--------------------------------------------------------------------------------
/vendor/symfony/deprecation-contracts/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2020-present Fabien Potencier
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is furnished
8 | to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/symfony/deprecation-contracts/README.md:
--------------------------------------------------------------------------------
1 | Symfony Deprecation Contracts
2 | =============================
3 |
4 | A generic function and convention to trigger deprecation notices.
5 |
6 | This package provides a single global function named `trigger_deprecation()` that triggers silenced deprecation notices.
7 |
8 | By using a custom PHP error handler such as the one provided by the Symfony ErrorHandler component,
9 | the triggered deprecations can be caught and logged for later discovery, both on dev and prod environments.
10 |
11 | The function requires at least 3 arguments:
12 | - the name of the Composer package that is triggering the deprecation
13 | - the version of the package that introduced the deprecation
14 | - the message of the deprecation
15 | - more arguments can be provided: they will be inserted in the message using `printf()` formatting
16 |
17 | Example:
18 | ```php
19 | trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use "%s" instead.', 'bitcoin', 'fabcoin');
20 | ```
21 |
22 | This will generate the following message:
23 | `Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.`
24 |
25 | While not recommended, the deprecation notices can be completely ignored by declaring an empty
26 | `function trigger_deprecation() {}` in your application.
27 |
--------------------------------------------------------------------------------
/vendor/symfony/deprecation-contracts/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "symfony/deprecation-contracts",
3 | "type": "library",
4 | "description": "A generic function and convention to trigger deprecation notices",
5 | "homepage": "https://symfony.com",
6 | "license": "MIT",
7 | "authors": [
8 | {
9 | "name": "Nicolas Grekas",
10 | "email": "p@tchwork.com"
11 | },
12 | {
13 | "name": "Symfony Community",
14 | "homepage": "https://symfony.com/contributors"
15 | }
16 | ],
17 | "require": {
18 | "php": ">=8.1"
19 | },
20 | "autoload": {
21 | "files": [
22 | "function.php"
23 | ]
24 | },
25 | "minimum-stability": "dev",
26 | "extra": {
27 | "branch-alias": {
28 | "dev-main": "3.4-dev"
29 | },
30 | "thanks": {
31 | "name": "symfony/contracts",
32 | "url": "https://github.com/symfony/contracts"
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/vendor/symfony/deprecation-contracts/function.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | if (!function_exists('trigger_deprecation')) {
13 | /**
14 | * Triggers a silenced deprecation notice.
15 | *
16 | * @param string $package The name of the Composer package that is triggering the deprecation
17 | * @param string $version The version of the package that introduced the deprecation
18 | * @param string $message The message of the deprecation
19 | * @param mixed ...$args Values to insert in the message using printf() formatting
20 | *
21 | * @author Nicolas Grekas
22 | */
23 | function trigger_deprecation(string $package, string $version, string $message, mixed ...$args): void
24 | {
25 | @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), \E_USER_DEPRECATED);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/ChainRequestMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation;
13 |
14 | /**
15 | * ChainRequestMatcher verifies that all checks match against a Request instance.
16 | *
17 | * @author Fabien Potencier
18 | */
19 | class ChainRequestMatcher implements RequestMatcherInterface
20 | {
21 | /**
22 | * @param iterable $matchers
23 | */
24 | public function __construct(private iterable $matchers)
25 | {
26 | }
27 |
28 | public function matches(Request $request): bool
29 | {
30 | foreach ($this->matchers as $matcher) {
31 | if (!$matcher->matches($request)) {
32 | return false;
33 | }
34 | }
35 |
36 | return true;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Exception/BadRequestException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Exception;
13 |
14 | /**
15 | * Raised when a user sends a malformed request.
16 | */
17 | class BadRequestException extends \UnexpectedValueException implements RequestExceptionInterface
18 | {
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Exception/ConflictingHeadersException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Exception;
13 |
14 | /**
15 | * The HTTP request contains headers with conflicting information.
16 | *
17 | * @author Magnus Nordlander
18 | */
19 | class ConflictingHeadersException extends \UnexpectedValueException implements RequestExceptionInterface
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Exception/JsonException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Exception;
13 |
14 | /**
15 | * Thrown by Request::toArray() when the content cannot be JSON-decoded.
16 | *
17 | * @author Tobias Nyholm
18 | */
19 | final class JsonException extends \UnexpectedValueException implements RequestExceptionInterface
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Exception/RequestExceptionInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Exception;
13 |
14 | /**
15 | * Interface for Request exceptions.
16 | *
17 | * Exceptions implementing this interface should trigger an HTTP 400 response in the application code.
18 | */
19 | interface RequestExceptionInterface
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Exception/SessionNotFoundException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Exception;
13 |
14 | /**
15 | * Raised when a session does not exist. This happens in the following cases:
16 | * - the session is not enabled
17 | * - attempt to read a session outside a request context (ie. cli script).
18 | *
19 | * @author Jérémy Derussé
20 | */
21 | class SessionNotFoundException extends \LogicException implements RequestExceptionInterface
22 | {
23 | public function __construct(string $message = 'There is currently no session available.', int $code = 0, \Throwable $previous = null)
24 | {
25 | parent::__construct($message, $code, $previous);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Exception/SuspiciousOperationException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Exception;
13 |
14 | /**
15 | * Raised when a user has performed an operation that should be considered
16 | * suspicious from a security perspective.
17 | */
18 | class SuspiciousOperationException extends \UnexpectedValueException implements RequestExceptionInterface
19 | {
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/AccessDeniedException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when the access on a file was denied.
16 | *
17 | * @author Bernhard Schussek
18 | */
19 | class AccessDeniedException extends FileException
20 | {
21 | public function __construct(string $path)
22 | {
23 | parent::__construct(sprintf('The file %s could not be accessed', $path));
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/CannotWriteFileException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when an UPLOAD_ERR_CANT_WRITE error occurred with UploadedFile.
16 | *
17 | * @author Florent Mata
18 | */
19 | class CannotWriteFileException extends FileException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/ExtensionFileException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when an UPLOAD_ERR_EXTENSION error occurred with UploadedFile.
16 | *
17 | * @author Florent Mata
18 | */
19 | class ExtensionFileException extends FileException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/FileException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when an error occurred in the component File.
16 | *
17 | * @author Bernhard Schussek
18 | */
19 | class FileException extends \RuntimeException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/FileNotFoundException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when a file was not found.
16 | *
17 | * @author Bernhard Schussek
18 | */
19 | class FileNotFoundException extends FileException
20 | {
21 | public function __construct(string $path)
22 | {
23 | parent::__construct(sprintf('The file "%s" does not exist', $path));
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/FormSizeFileException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when an UPLOAD_ERR_FORM_SIZE error occurred with UploadedFile.
16 | *
17 | * @author Florent Mata
18 | */
19 | class FormSizeFileException extends FileException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/IniSizeFileException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when an UPLOAD_ERR_INI_SIZE error occurred with UploadedFile.
16 | *
17 | * @author Florent Mata
18 | */
19 | class IniSizeFileException extends FileException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/NoFileException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when an UPLOAD_ERR_NO_FILE error occurred with UploadedFile.
16 | *
17 | * @author Florent Mata
18 | */
19 | class NoFileException extends FileException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/NoTmpDirFileException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when an UPLOAD_ERR_NO_TMP_DIR error occurred with UploadedFile.
16 | *
17 | * @author Florent Mata
18 | */
19 | class NoTmpDirFileException extends FileException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/PartialFileException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when an UPLOAD_ERR_PARTIAL error occurred with UploadedFile.
16 | *
17 | * @author Florent Mata
18 | */
19 | class PartialFileException extends FileException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/UnexpectedTypeException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | class UnexpectedTypeException extends FileException
15 | {
16 | public function __construct(mixed $value, string $expectedType)
17 | {
18 | parent::__construct(sprintf('Expected argument of type %s, %s given', $expectedType, get_debug_type($value)));
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Exception/UploadException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File\Exception;
13 |
14 | /**
15 | * Thrown when an error occurred during file upload.
16 | *
17 | * @author Bernhard Schussek
18 | */
19 | class UploadException extends FileException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/File/Stream.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\File;
13 |
14 | /**
15 | * A PHP stream of unknown size.
16 | *
17 | * @author Nicolas Grekas
18 | */
19 | class Stream extends File
20 | {
21 | public function getSize(): int|false
22 | {
23 | return false;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2004-present Fabien Potencier
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is furnished
8 | to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/README.md:
--------------------------------------------------------------------------------
1 | HttpFoundation Component
2 | ========================
3 |
4 | The HttpFoundation component defines an object-oriented layer for the HTTP
5 | specification.
6 |
7 | Resources
8 | ---------
9 |
10 | * [Documentation](https://symfony.com/doc/current/components/http_foundation.html)
11 | * [Contributing](https://symfony.com/doc/current/contributing/index.html)
12 | * [Report issues](https://github.com/symfony/symfony/issues) and
13 | [send Pull Requests](https://github.com/symfony/symfony/pulls)
14 | in the [main Symfony repository](https://github.com/symfony/symfony)
15 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RateLimiter/PeekableRequestRateLimiterInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RateLimiter;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 | use Symfony\Component\RateLimiter\RateLimit;
16 |
17 | /**
18 | * A request limiter which allows peeking ahead.
19 | *
20 | * This is valuable to reduce the cache backend load in scenarios
21 | * like a login when we only want to consume a token on login failure,
22 | * and where the majority of requests will be successful and thus not
23 | * need to consume a token.
24 | *
25 | * This way we can peek ahead before allowing the request through, and
26 | * only consume if the request failed (1 backend op). This is compared
27 | * to always consuming and then resetting the limit if the request
28 | * is successful (2 backend ops).
29 | *
30 | * @author Jordi Boggiano
31 | */
32 | interface PeekableRequestRateLimiterInterface extends RequestRateLimiterInterface
33 | {
34 | public function peek(Request $request): RateLimit;
35 | }
36 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RateLimiter/RequestRateLimiterInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RateLimiter;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 | use Symfony\Component\RateLimiter\RateLimit;
16 |
17 | /**
18 | * A special type of limiter that deals with requests.
19 | *
20 | * This allows to limit on different types of information
21 | * from the requests.
22 | *
23 | * @author Wouter de Jong
24 | */
25 | interface RequestRateLimiterInterface
26 | {
27 | public function consume(Request $request): RateLimit;
28 |
29 | public function reset(Request $request): void;
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RequestMatcher/AttributesRequestMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RequestMatcher;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 | use Symfony\Component\HttpFoundation\RequestMatcherInterface;
16 |
17 | /**
18 | * Checks the Request attributes matches all regular expressions.
19 | *
20 | * @author Fabien Potencier
21 | */
22 | class AttributesRequestMatcher implements RequestMatcherInterface
23 | {
24 | /**
25 | * @param array $regexps
26 | */
27 | public function __construct(private array $regexps)
28 | {
29 | }
30 |
31 | public function matches(Request $request): bool
32 | {
33 | foreach ($this->regexps as $key => $regexp) {
34 | $attribute = $request->attributes->get($key);
35 | if (!\is_string($attribute)) {
36 | return false;
37 | }
38 | if (!preg_match('{'.$regexp.'}', $attribute)) {
39 | return false;
40 | }
41 | }
42 |
43 | return true;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RequestMatcher/ExpressionRequestMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RequestMatcher;
13 |
14 | use Symfony\Component\ExpressionLanguage\Expression;
15 | use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
16 | use Symfony\Component\HttpFoundation\Request;
17 | use Symfony\Component\HttpFoundation\RequestMatcherInterface;
18 |
19 | /**
20 | * ExpressionRequestMatcher uses an expression to match a Request.
21 | *
22 | * @author Fabien Potencier
23 | */
24 | class ExpressionRequestMatcher implements RequestMatcherInterface
25 | {
26 | public function __construct(
27 | private ExpressionLanguage $language,
28 | private Expression|string $expression,
29 | ) {
30 | }
31 |
32 | public function matches(Request $request): bool
33 | {
34 | return $this->language->evaluate($this->expression, [
35 | 'request' => $request,
36 | 'method' => $request->getMethod(),
37 | 'path' => rawurldecode($request->getPathInfo()),
38 | 'host' => $request->getHost(),
39 | 'ip' => $request->getClientIp(),
40 | 'attributes' => $request->attributes->all(),
41 | ]);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RequestMatcher/HostRequestMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RequestMatcher;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 | use Symfony\Component\HttpFoundation\RequestMatcherInterface;
16 |
17 | /**
18 | * Checks the Request URL host name matches a regular expression.
19 | *
20 | * @author Fabien Potencier
21 | */
22 | class HostRequestMatcher implements RequestMatcherInterface
23 | {
24 | public function __construct(private string $regexp)
25 | {
26 | }
27 |
28 | public function matches(Request $request): bool
29 | {
30 | return preg_match('{'.$this->regexp.'}i', $request->getHost());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RequestMatcher/IpsRequestMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RequestMatcher;
13 |
14 | use Symfony\Component\HttpFoundation\IpUtils;
15 | use Symfony\Component\HttpFoundation\Request;
16 | use Symfony\Component\HttpFoundation\RequestMatcherInterface;
17 |
18 | /**
19 | * Checks the client IP of a Request.
20 | *
21 | * @author Fabien Potencier
22 | */
23 | class IpsRequestMatcher implements RequestMatcherInterface
24 | {
25 | private array $ips;
26 |
27 | /**
28 | * @param string[]|string $ips A specific IP address or a range specified using IP/netmask like 192.168.1.0/24
29 | * Strings can contain a comma-delimited list of IPs/ranges
30 | */
31 | public function __construct(array|string $ips)
32 | {
33 | $this->ips = array_reduce((array) $ips, static fn (array $ips, string $ip) => array_merge($ips, preg_split('/\s*,\s*/', $ip)), []);
34 | }
35 |
36 | public function matches(Request $request): bool
37 | {
38 | if (!$this->ips) {
39 | return true;
40 | }
41 |
42 | return IpUtils::checkIp($request->getClientIp() ?? '', $this->ips);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RequestMatcher/IsJsonRequestMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RequestMatcher;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 | use Symfony\Component\HttpFoundation\RequestMatcherInterface;
16 |
17 | /**
18 | * Checks the Request content is valid JSON.
19 | *
20 | * @author Fabien Potencier
21 | */
22 | class IsJsonRequestMatcher implements RequestMatcherInterface
23 | {
24 | public function matches(Request $request): bool
25 | {
26 | return json_validate($request->getContent());
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RequestMatcher/PathRequestMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RequestMatcher;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 | use Symfony\Component\HttpFoundation\RequestMatcherInterface;
16 |
17 | /**
18 | * Checks the Request URL path info matches a regular expression.
19 | *
20 | * @author Fabien Potencier
21 | */
22 | class PathRequestMatcher implements RequestMatcherInterface
23 | {
24 | public function __construct(private string $regexp)
25 | {
26 | }
27 |
28 | public function matches(Request $request): bool
29 | {
30 | return preg_match('{'.$this->regexp.'}', rawurldecode($request->getPathInfo()));
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RequestMatcher/PortRequestMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RequestMatcher;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 | use Symfony\Component\HttpFoundation\RequestMatcherInterface;
16 |
17 | /**
18 | * Checks the HTTP port of a Request.
19 | *
20 | * @author Fabien Potencier
21 | */
22 | class PortRequestMatcher implements RequestMatcherInterface
23 | {
24 | public function __construct(private int $port)
25 | {
26 | }
27 |
28 | public function matches(Request $request): bool
29 | {
30 | return $request->getPort() === $this->port;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RequestMatcher/SchemeRequestMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\RequestMatcher;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 | use Symfony\Component\HttpFoundation\RequestMatcherInterface;
16 |
17 | /**
18 | * Checks the HTTP scheme of a Request.
19 | *
20 | * @author Fabien Potencier
21 | */
22 | class SchemeRequestMatcher implements RequestMatcherInterface
23 | {
24 | /**
25 | * @var string[]
26 | */
27 | private array $schemes;
28 |
29 | /**
30 | * @param string[]|string $schemes A scheme or a list of schemes
31 | * Strings can contain a comma-delimited list of schemes
32 | */
33 | public function __construct(array|string $schemes)
34 | {
35 | $this->schemes = array_reduce(array_map('strtolower', (array) $schemes), static fn (array $schemes, string $scheme) => array_merge($schemes, preg_split('/\s*,\s*/', $scheme)), []);
36 | }
37 |
38 | public function matches(Request $request): bool
39 | {
40 | if (!$this->schemes) {
41 | return true;
42 | }
43 |
44 | return \in_array($request->getScheme(), $this->schemes, true);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/RequestMatcherInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation;
13 |
14 | /**
15 | * RequestMatcherInterface is an interface for strategies to match a Request.
16 | *
17 | * @author Fabien Potencier
18 | */
19 | interface RequestMatcherInterface
20 | {
21 | /**
22 | * Decides whether the rule(s) implemented by the strategy matches the supplied request.
23 | */
24 | public function matches(Request $request): bool;
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Session\Attribute;
13 |
14 | use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
15 |
16 | /**
17 | * Attributes store.
18 | *
19 | * @author Drak
20 | */
21 | interface AttributeBagInterface extends SessionBagInterface
22 | {
23 | /**
24 | * Checks if an attribute is defined.
25 | */
26 | public function has(string $name): bool;
27 |
28 | /**
29 | * Returns an attribute.
30 | */
31 | public function get(string $name, mixed $default = null): mixed;
32 |
33 | /**
34 | * Sets an attribute.
35 | *
36 | * @return void
37 | */
38 | public function set(string $name, mixed $value);
39 |
40 | /**
41 | * Returns attributes.
42 | *
43 | * @return array
44 | */
45 | public function all(): array;
46 |
47 | /**
48 | * @return void
49 | */
50 | public function replace(array $attributes);
51 |
52 | /**
53 | * Removes an attribute.
54 | *
55 | * @return mixed The removed value or null when it does not exist
56 | */
57 | public function remove(string $name): mixed;
58 | }
59 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Session/FlashBagAwareSessionInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Session;
13 |
14 | use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
15 |
16 | /**
17 | * Interface for session with a flashbag.
18 | */
19 | interface FlashBagAwareSessionInterface extends SessionInterface
20 | {
21 | public function getFlashBag(): FlashBagInterface;
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Session/SessionBagInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Session;
13 |
14 | /**
15 | * Session Bag store.
16 | *
17 | * @author Drak
18 | */
19 | interface SessionBagInterface
20 | {
21 | /**
22 | * Gets this bag's name.
23 | */
24 | public function getName(): string;
25 |
26 | /**
27 | * Initializes the Bag.
28 | *
29 | * @return void
30 | */
31 | public function initialize(array &$array);
32 |
33 | /**
34 | * Gets the storage key for this bag.
35 | */
36 | public function getStorageKey(): string;
37 |
38 | /**
39 | * Clears out data from bag.
40 | *
41 | * @return mixed Whatever data was contained
42 | */
43 | public function clear(): mixed;
44 | }
45 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Session/SessionFactory.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Session;
13 |
14 | use Symfony\Component\HttpFoundation\RequestStack;
15 | use Symfony\Component\HttpFoundation\Session\Storage\SessionStorageFactoryInterface;
16 |
17 | // Help opcache.preload discover always-needed symbols
18 | class_exists(Session::class);
19 |
20 | /**
21 | * @author Jérémy Derussé
22 | */
23 | class SessionFactory implements SessionFactoryInterface
24 | {
25 | private RequestStack $requestStack;
26 | private SessionStorageFactoryInterface $storageFactory;
27 | private ?\Closure $usageReporter;
28 |
29 | public function __construct(RequestStack $requestStack, SessionStorageFactoryInterface $storageFactory, callable $usageReporter = null)
30 | {
31 | $this->requestStack = $requestStack;
32 | $this->storageFactory = $storageFactory;
33 | $this->usageReporter = null === $usageReporter ? null : $usageReporter(...);
34 | }
35 |
36 | public function createSession(): SessionInterface
37 | {
38 | return new Session($this->storageFactory->createStorage($this->requestStack->getMainRequest()), null, null, $this->usageReporter);
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Session/SessionFactoryInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Session;
13 |
14 | /**
15 | * @author Kevin Bond
16 | */
17 | interface SessionFactoryInterface
18 | {
19 | public function createSession(): SessionInterface;
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Session/Storage/Handler/IdentityMarshaller.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
13 |
14 | use Symfony\Component\Cache\Marshaller\MarshallerInterface;
15 |
16 | /**
17 | * @author Ahmed TAILOULOUTE
18 | */
19 | class IdentityMarshaller implements MarshallerInterface
20 | {
21 | public function marshall(array $values, ?array &$failed): array
22 | {
23 | foreach ($values as $key => $value) {
24 | if (!\is_string($value)) {
25 | throw new \LogicException(sprintf('%s accepts only string as data.', __METHOD__));
26 | }
27 | }
28 |
29 | return $values;
30 | }
31 |
32 | public function unmarshall(string $value): string
33 | {
34 | return $value;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Session\Storage;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 |
16 | // Help opcache.preload discover always-needed symbols
17 | class_exists(MockFileSessionStorage::class);
18 |
19 | /**
20 | * @author Jérémy Derussé
21 | */
22 | class MockFileSessionStorageFactory implements SessionStorageFactoryInterface
23 | {
24 | private ?string $savePath;
25 | private string $name;
26 | private ?MetadataBag $metaBag;
27 |
28 | /**
29 | * @see MockFileSessionStorage constructor.
30 | */
31 | public function __construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null)
32 | {
33 | $this->savePath = $savePath;
34 | $this->name = $name;
35 | $this->metaBag = $metaBag;
36 | }
37 |
38 | public function createStorage(?Request $request): SessionStorageInterface
39 | {
40 | return new MockFileSessionStorage($this->savePath, $this->name, $this->metaBag);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Session/Storage/SessionStorageFactoryInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Session\Storage;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 |
16 | /**
17 | * @author Jérémy Derussé
18 | */
19 | interface SessionStorageFactoryInterface
20 | {
21 | /**
22 | * Creates a new instance of SessionStorageInterface.
23 | */
24 | public function createStorage(?Request $request): SessionStorageInterface;
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Test/Constraint/RequestAttributeValueSame.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Test\Constraint;
13 |
14 | use PHPUnit\Framework\Constraint\Constraint;
15 | use Symfony\Component\HttpFoundation\Request;
16 |
17 | final class RequestAttributeValueSame extends Constraint
18 | {
19 | private string $name;
20 | private string $value;
21 |
22 | public function __construct(string $name, string $value)
23 | {
24 | $this->name = $name;
25 | $this->value = $value;
26 | }
27 |
28 | public function toString(): string
29 | {
30 | return sprintf('has attribute "%s" with value "%s"', $this->name, $this->value);
31 | }
32 |
33 | /**
34 | * @param Request $request
35 | */
36 | protected function matches($request): bool
37 | {
38 | return $this->value === $request->attributes->get($this->name);
39 | }
40 |
41 | /**
42 | * @param Request $request
43 | */
44 | protected function failureDescription($request): string
45 | {
46 | return 'the Request '.$this->toString();
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Test/Constraint/ResponseHasHeader.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Test\Constraint;
13 |
14 | use PHPUnit\Framework\Constraint\Constraint;
15 | use Symfony\Component\HttpFoundation\Response;
16 |
17 | final class ResponseHasHeader extends Constraint
18 | {
19 | private string $headerName;
20 |
21 | public function __construct(string $headerName)
22 | {
23 | $this->headerName = $headerName;
24 | }
25 |
26 | public function toString(): string
27 | {
28 | return sprintf('has header "%s"', $this->headerName);
29 | }
30 |
31 | /**
32 | * @param Response $response
33 | */
34 | protected function matches($response): bool
35 | {
36 | return $response->headers->has($this->headerName);
37 | }
38 |
39 | /**
40 | * @param Response $response
41 | */
42 | protected function failureDescription($response): string
43 | {
44 | return 'the Response '.$this->toString();
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Test/Constraint/ResponseHeaderSame.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Test\Constraint;
13 |
14 | use PHPUnit\Framework\Constraint\Constraint;
15 | use Symfony\Component\HttpFoundation\Response;
16 |
17 | final class ResponseHeaderSame extends Constraint
18 | {
19 | private string $headerName;
20 | private string $expectedValue;
21 |
22 | public function __construct(string $headerName, string $expectedValue)
23 | {
24 | $this->headerName = $headerName;
25 | $this->expectedValue = $expectedValue;
26 | }
27 |
28 | public function toString(): string
29 | {
30 | return sprintf('has header "%s" with value "%s"', $this->headerName, $this->expectedValue);
31 | }
32 |
33 | /**
34 | * @param Response $response
35 | */
36 | protected function matches($response): bool
37 | {
38 | return $this->expectedValue === $response->headers->get($this->headerName, null);
39 | }
40 |
41 | /**
42 | * @param Response $response
43 | */
44 | protected function failureDescription($response): string
45 | {
46 | return 'the Response '.$this->toString();
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Test/Constraint/ResponseIsRedirected.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Test\Constraint;
13 |
14 | use PHPUnit\Framework\Constraint\Constraint;
15 | use Symfony\Component\HttpFoundation\Response;
16 |
17 | final class ResponseIsRedirected extends Constraint
18 | {
19 | public function toString(): string
20 | {
21 | return 'is redirected';
22 | }
23 |
24 | /**
25 | * @param Response $response
26 | */
27 | protected function matches($response): bool
28 | {
29 | return $response->isRedirect();
30 | }
31 |
32 | /**
33 | * @param Response $response
34 | */
35 | protected function failureDescription($response): string
36 | {
37 | return 'the Response '.$this->toString();
38 | }
39 |
40 | /**
41 | * @param Response $response
42 | */
43 | protected function additionalFailureDescription($response): string
44 | {
45 | return (string) $response;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Test/Constraint/ResponseIsSuccessful.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Test\Constraint;
13 |
14 | use PHPUnit\Framework\Constraint\Constraint;
15 | use Symfony\Component\HttpFoundation\Response;
16 |
17 | final class ResponseIsSuccessful extends Constraint
18 | {
19 | public function toString(): string
20 | {
21 | return 'is successful';
22 | }
23 |
24 | /**
25 | * @param Response $response
26 | */
27 | protected function matches($response): bool
28 | {
29 | return $response->isSuccessful();
30 | }
31 |
32 | /**
33 | * @param Response $response
34 | */
35 | protected function failureDescription($response): string
36 | {
37 | return 'the Response '.$this->toString();
38 | }
39 |
40 | /**
41 | * @param Response $response
42 | */
43 | protected function additionalFailureDescription($response): string
44 | {
45 | return (string) $response;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Test/Constraint/ResponseIsUnprocessable.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Test\Constraint;
13 |
14 | use PHPUnit\Framework\Constraint\Constraint;
15 | use Symfony\Component\HttpFoundation\Response;
16 |
17 | final class ResponseIsUnprocessable extends Constraint
18 | {
19 | public function toString(): string
20 | {
21 | return 'is unprocessable';
22 | }
23 |
24 | /**
25 | * @param Response $other
26 | */
27 | protected function matches($other): bool
28 | {
29 | return Response::HTTP_UNPROCESSABLE_ENTITY === $other->getStatusCode();
30 | }
31 |
32 | /**
33 | * @param Response $other
34 | */
35 | protected function failureDescription($other): string
36 | {
37 | return 'the Response '.$this->toString();
38 | }
39 |
40 | /**
41 | * @param Response $other
42 | */
43 | protected function additionalFailureDescription($other): string
44 | {
45 | return (string) $other;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/Test/Constraint/ResponseStatusCodeSame.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\HttpFoundation\Test\Constraint;
13 |
14 | use PHPUnit\Framework\Constraint\Constraint;
15 | use Symfony\Component\HttpFoundation\Response;
16 |
17 | final class ResponseStatusCodeSame extends Constraint
18 | {
19 | private int $statusCode;
20 |
21 | public function __construct(int $statusCode)
22 | {
23 | $this->statusCode = $statusCode;
24 | }
25 |
26 | public function toString(): string
27 | {
28 | return 'status code is '.$this->statusCode;
29 | }
30 |
31 | /**
32 | * @param Response $response
33 | */
34 | protected function matches($response): bool
35 | {
36 | return $this->statusCode === $response->getStatusCode();
37 | }
38 |
39 | /**
40 | * @param Response $response
41 | */
42 | protected function failureDescription($response): string
43 | {
44 | return 'the Response '.$this->toString();
45 | }
46 |
47 | /**
48 | * @param Response $response
49 | */
50 | protected function additionalFailureDescription($response): string
51 | {
52 | return (string) $response;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/vendor/symfony/http-foundation/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "symfony/http-foundation",
3 | "type": "library",
4 | "description": "Defines an object-oriented layer for the HTTP specification",
5 | "keywords": [],
6 | "homepage": "https://symfony.com",
7 | "license": "MIT",
8 | "authors": [
9 | {
10 | "name": "Fabien Potencier",
11 | "email": "fabien@symfony.com"
12 | },
13 | {
14 | "name": "Symfony Community",
15 | "homepage": "https://symfony.com/contributors"
16 | }
17 | ],
18 | "require": {
19 | "php": ">=8.1",
20 | "symfony/deprecation-contracts": "^2.5|^3",
21 | "symfony/polyfill-mbstring": "~1.1",
22 | "symfony/polyfill-php83": "^1.27"
23 | },
24 | "require-dev": {
25 | "doctrine/dbal": "^2.13.1|^3.0",
26 | "predis/predis": "^1.1|^2.0",
27 | "symfony/cache": "^5.4|^6.0",
28 | "symfony/dependency-injection": "^5.4|^6.0",
29 | "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
30 | "symfony/mime": "^5.4|^6.0",
31 | "symfony/expression-language": "^5.4|^6.0",
32 | "symfony/rate-limiter": "^5.2|^6.0"
33 | },
34 | "conflict": {
35 | "symfony/cache": "<6.2"
36 | },
37 | "autoload": {
38 | "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" },
39 | "exclude-from-classmap": [
40 | "/Tests/"
41 | ]
42 | },
43 | "minimum-stability": "dev"
44 | }
45 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-mbstring/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015-2019 Fabien Potencier
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is furnished
8 | to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-mbstring/README.md:
--------------------------------------------------------------------------------
1 | Symfony Polyfill / Mbstring
2 | ===========================
3 |
4 | This component provides a partial, native PHP implementation for the
5 | [Mbstring](https://php.net/mbstring) extension.
6 |
7 | More information can be found in the
8 | [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
9 |
10 | License
11 | =======
12 |
13 | This library is released under the [MIT license](LICENSE).
14 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-mbstring/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "symfony/polyfill-mbstring",
3 | "type": "library",
4 | "description": "Symfony polyfill for the Mbstring extension",
5 | "keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"],
6 | "homepage": "https://symfony.com",
7 | "license": "MIT",
8 | "authors": [
9 | {
10 | "name": "Nicolas Grekas",
11 | "email": "p@tchwork.com"
12 | },
13 | {
14 | "name": "Symfony Community",
15 | "homepage": "https://symfony.com/contributors"
16 | }
17 | ],
18 | "require": {
19 | "php": ">=7.1"
20 | },
21 | "provide": {
22 | "ext-mbstring": "*"
23 | },
24 | "autoload": {
25 | "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" },
26 | "files": [ "bootstrap.php" ]
27 | },
28 | "suggest": {
29 | "ext-mbstring": "For best performance"
30 | },
31 | "minimum-stability": "dev",
32 | "extra": {
33 | "branch-alias": {
34 | "dev-main": "1.27-dev"
35 | },
36 | "thanks": {
37 | "name": "symfony/polyfill",
38 | "url": "https://github.com/symfony/polyfill"
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php80/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2020 Fabien Potencier
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is furnished
8 | to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php80/README.md:
--------------------------------------------------------------------------------
1 | Symfony Polyfill / Php80
2 | ========================
3 |
4 | This component provides features added to PHP 8.0 core:
5 |
6 | - [`Stringable`](https://php.net/stringable) interface
7 | - [`fdiv`](https://php.net/fdiv)
8 | - [`ValueError`](https://php.net/valueerror) class
9 | - [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class
10 | - `FILTER_VALIDATE_BOOL` constant
11 | - [`get_debug_type`](https://php.net/get_debug_type)
12 | - [`PhpToken`](https://php.net/phptoken) class
13 | - [`preg_last_error_msg`](https://php.net/preg_last_error_msg)
14 | - [`str_contains`](https://php.net/str_contains)
15 | - [`str_starts_with`](https://php.net/str_starts_with)
16 | - [`str_ends_with`](https://php.net/str_ends_with)
17 | - [`get_resource_id`](https://php.net/get_resource_id)
18 |
19 | More information can be found in the
20 | [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
21 |
22 | License
23 | =======
24 |
25 | This library is released under the [MIT license](LICENSE).
26 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | #[Attribute(Attribute::TARGET_CLASS)]
13 | final class Attribute
14 | {
15 | public const TARGET_CLASS = 1;
16 | public const TARGET_FUNCTION = 2;
17 | public const TARGET_METHOD = 4;
18 | public const TARGET_PROPERTY = 8;
19 | public const TARGET_CLASS_CONSTANT = 16;
20 | public const TARGET_PARAMETER = 32;
21 | public const TARGET_ALL = 63;
22 | public const IS_REPEATABLE = 64;
23 |
24 | /** @var int */
25 | public $flags;
26 |
27 | public function __construct(int $flags = self::TARGET_ALL)
28 | {
29 | $this->flags = $flags;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | if (\PHP_VERSION_ID < 80000 && extension_loaded('tokenizer')) {
13 | class PhpToken extends Symfony\Polyfill\Php80\PhpToken
14 | {
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | if (\PHP_VERSION_ID < 80000) {
13 | interface Stringable
14 | {
15 | /**
16 | * @return string
17 | */
18 | public function __toString();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | if (\PHP_VERSION_ID < 80000) {
13 | class UnhandledMatchError extends Error
14 | {
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | if (\PHP_VERSION_ID < 80000) {
13 | class ValueError extends Error
14 | {
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php80/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "symfony/polyfill-php80",
3 | "type": "library",
4 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
5 | "keywords": ["polyfill", "shim", "compatibility", "portable"],
6 | "homepage": "https://symfony.com",
7 | "license": "MIT",
8 | "authors": [
9 | {
10 | "name": "Ion Bazan",
11 | "email": "ion.bazan@gmail.com"
12 | },
13 | {
14 | "name": "Nicolas Grekas",
15 | "email": "p@tchwork.com"
16 | },
17 | {
18 | "name": "Symfony Community",
19 | "homepage": "https://symfony.com/contributors"
20 | }
21 | ],
22 | "require": {
23 | "php": ">=7.1"
24 | },
25 | "autoload": {
26 | "psr-4": { "Symfony\\Polyfill\\Php80\\": "" },
27 | "files": [ "bootstrap.php" ],
28 | "classmap": [ "Resources/stubs" ]
29 | },
30 | "minimum-stability": "dev",
31 | "extra": {
32 | "branch-alias": {
33 | "dev-main": "1.27-dev"
34 | },
35 | "thanks": {
36 | "name": "symfony/polyfill",
37 | "url": "https://github.com/symfony/polyfill"
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php83/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2022 Fabien Potencier
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is furnished
8 | to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php83/Php83.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Polyfill\Php83;
13 |
14 | /**
15 | * @author Ion Bazan
16 | *
17 | * @internal
18 | */
19 | final class Php83
20 | {
21 | private const JSON_MAX_DEPTH = 0x7FFFFFFF; // see https://www.php.net/manual/en/function.json-decode.php
22 |
23 | public static function json_validate(string $json, int $depth = 512, int $flags = 0): bool
24 | {
25 | if (0 !== $flags && \defined('JSON_INVALID_UTF8_IGNORE') && \JSON_INVALID_UTF8_IGNORE !== $flags) {
26 | throw new \ValueError('json_validate(): Argument #3 ($flags) must be a valid flag (allowed flags: JSON_INVALID_UTF8_IGNORE)');
27 | }
28 |
29 | if ($depth <= 0) {
30 | throw new \ValueError('json_validate(): Argument #2 ($depth) must be greater than 0');
31 | }
32 |
33 | if ($depth >= self::JSON_MAX_DEPTH) {
34 | throw new \ValueError(sprintf('json_validate(): Argument #2 ($depth) must be less than %d', self::JSON_MAX_DEPTH));
35 | }
36 |
37 | json_decode($json, null, $depth, $flags);
38 |
39 | return \JSON_ERROR_NONE === json_last_error();
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php83/README.md:
--------------------------------------------------------------------------------
1 | Symfony Polyfill / Php83
2 | ========================
3 |
4 | This component provides features added to PHP 8.3 core:
5 |
6 | - [`json_validate`](https://wiki.php.net/rfc/json_validate)
7 |
8 | More information can be found in the
9 | [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
10 |
11 | License
12 | =======
13 |
14 | This library is released under the [MIT license](LICENSE).
15 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php83/bootstrap.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | use Symfony\Polyfill\Php83 as p;
13 |
14 | if (\PHP_VERSION_ID >= 80300) {
15 | return;
16 | }
17 |
18 | if (!function_exists('json_validate')) {
19 | function json_validate(string $json, int $depth = 512, int $flags = 0): bool { return p\Php83::json_validate($json, $depth, $flags); }
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/symfony/polyfill-php83/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "symfony/polyfill-php83",
3 | "type": "library",
4 | "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
5 | "keywords": ["polyfill", "shim", "compatibility", "portable"],
6 | "homepage": "https://symfony.com",
7 | "license": "MIT",
8 | "authors": [
9 | {
10 | "name": "Nicolas Grekas",
11 | "email": "p@tchwork.com"
12 | },
13 | {
14 | "name": "Symfony Community",
15 | "homepage": "https://symfony.com/contributors"
16 | }
17 | ],
18 | "require": {
19 | "php": ">=7.1",
20 | "symfony/polyfill-php80": "^1.14"
21 | },
22 | "autoload": {
23 | "psr-4": { "Symfony\\Polyfill\\Php83\\": "" },
24 | "files": [ "bootstrap.php" ]
25 | },
26 | "minimum-stability": "dev",
27 | "extra": {
28 | "branch-alias": {
29 | "dev-main": "1.27-dev"
30 | },
31 | "thanks": {
32 | "name": "symfony/polyfill",
33 | "url": "https://github.com/symfony/polyfill"
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/DependencyInjection/RoutingResolverPass.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\DependencyInjection;
13 |
14 | use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
15 | use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait;
16 | use Symfony\Component\DependencyInjection\ContainerBuilder;
17 | use Symfony\Component\DependencyInjection\Reference;
18 |
19 | /**
20 | * Adds tagged routing.loader services to routing.resolver service.
21 | *
22 | * @author Fabien Potencier
23 | */
24 | class RoutingResolverPass implements CompilerPassInterface
25 | {
26 | use PriorityTaggedServiceTrait;
27 |
28 | /**
29 | * @return void
30 | */
31 | public function process(ContainerBuilder $container)
32 | {
33 | if (false === $container->hasDefinition('routing.resolver')) {
34 | return;
35 | }
36 |
37 | $definition = $container->getDefinition('routing.resolver');
38 |
39 | foreach ($this->findAndSortTaggedServices('routing.loader', $container) as $id) {
40 | $definition->addMethodCall('addLoader', [new Reference($id)]);
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Exception/ExceptionInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Exception;
13 |
14 | /**
15 | * ExceptionInterface.
16 | *
17 | * @author Alexandre Salomé
18 | */
19 | interface ExceptionInterface extends \Throwable
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Exception/InvalidArgumentException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Exception;
13 |
14 | class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
15 | {
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Exception/InvalidParameterException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Exception;
13 |
14 | /**
15 | * Exception thrown when a parameter is not valid.
16 | *
17 | * @author Alexandre Salomé
18 | */
19 | class InvalidParameterException extends \InvalidArgumentException implements ExceptionInterface
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Exception/MethodNotAllowedException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Exception;
13 |
14 | /**
15 | * The resource was found but the request method is not allowed.
16 | *
17 | * This exception should trigger an HTTP 405 response in your application code.
18 | *
19 | * @author Kris Wallsmith
20 | */
21 | class MethodNotAllowedException extends \RuntimeException implements ExceptionInterface
22 | {
23 | protected $allowedMethods = [];
24 |
25 | /**
26 | * @param string[] $allowedMethods
27 | */
28 | public function __construct(array $allowedMethods, string $message = '', int $code = 0, \Throwable $previous = null)
29 | {
30 | $this->allowedMethods = array_map('strtoupper', $allowedMethods);
31 |
32 | parent::__construct($message, $code, $previous);
33 | }
34 |
35 | /**
36 | * Gets the allowed HTTP methods.
37 | *
38 | * @return string[]
39 | */
40 | public function getAllowedMethods(): array
41 | {
42 | return $this->allowedMethods;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Exception/NoConfigurationException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Exception;
13 |
14 | /**
15 | * Exception thrown when no routes are configured.
16 | *
17 | * @author Yonel Ceruto
18 | */
19 | class NoConfigurationException extends ResourceNotFoundException
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Exception/ResourceNotFoundException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Exception;
13 |
14 | /**
15 | * The resource was not found.
16 | *
17 | * This exception should trigger an HTTP 404 response in your application code.
18 | *
19 | * @author Kris Wallsmith
20 | */
21 | class ResourceNotFoundException extends \RuntimeException implements ExceptionInterface
22 | {
23 | }
24 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Exception/RouteCircularReferenceException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Exception;
13 |
14 | class RouteCircularReferenceException extends RuntimeException
15 | {
16 | public function __construct(string $routeId, array $path)
17 | {
18 | parent::__construct(sprintf('Circular reference detected for route "%s", path: "%s".', $routeId, implode(' -> ', $path)));
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Exception/RouteNotFoundException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Exception;
13 |
14 | /**
15 | * Exception thrown when a route does not exist.
16 | *
17 | * @author Alexandre Salomé
18 | */
19 | class RouteNotFoundException extends \InvalidArgumentException implements ExceptionInterface
20 | {
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Exception/RuntimeException.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Exception;
13 |
14 | class RuntimeException extends \RuntimeException implements ExceptionInterface
15 | {
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Generator/Dumper/GeneratorDumper.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Generator\Dumper;
13 |
14 | use Symfony\Component\Routing\RouteCollection;
15 |
16 | /**
17 | * GeneratorDumper is the base class for all built-in generator dumpers.
18 | *
19 | * @author Fabien Potencier
20 | */
21 | abstract class GeneratorDumper implements GeneratorDumperInterface
22 | {
23 | private RouteCollection $routes;
24 |
25 | public function __construct(RouteCollection $routes)
26 | {
27 | $this->routes = $routes;
28 | }
29 |
30 | public function getRoutes(): RouteCollection
31 | {
32 | return $this->routes;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Generator\Dumper;
13 |
14 | use Symfony\Component\Routing\RouteCollection;
15 |
16 | /**
17 | * GeneratorDumperInterface is the interface that all generator dumper classes must implement.
18 | *
19 | * @author Fabien Potencier
20 | */
21 | interface GeneratorDumperInterface
22 | {
23 | /**
24 | * Dumps a set of routes to a string representation of executable code
25 | * that can then be used to generate a URL of such a route.
26 | */
27 | public function dump(array $options = []): string;
28 |
29 | /**
30 | * Gets the routes to dump.
31 | */
32 | public function getRoutes(): RouteCollection;
33 | }
34 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2004-present Fabien Potencier
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is furnished
8 | to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Loader/ClosureLoader.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Loader;
13 |
14 | use Symfony\Component\Config\Loader\Loader;
15 | use Symfony\Component\Routing\RouteCollection;
16 |
17 | /**
18 | * ClosureLoader loads routes from a PHP closure.
19 | *
20 | * The Closure must return a RouteCollection instance.
21 | *
22 | * @author Fabien Potencier
23 | */
24 | class ClosureLoader extends Loader
25 | {
26 | /**
27 | * Loads a Closure.
28 | */
29 | public function load(mixed $closure, string $type = null): RouteCollection
30 | {
31 | return $closure($this->env);
32 | }
33 |
34 | public function supports(mixed $resource, string $type = null): bool
35 | {
36 | return $resource instanceof \Closure && (!$type || 'closure' === $type);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Loader/Configurator/AliasConfigurator.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Loader\Configurator;
13 |
14 | use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
15 | use Symfony\Component\Routing\Alias;
16 |
17 | class AliasConfigurator
18 | {
19 | private Alias $alias;
20 |
21 | public function __construct(Alias $alias)
22 | {
23 | $this->alias = $alias;
24 | }
25 |
26 | /**
27 | * Whether this alias is deprecated, that means it should not be called anymore.
28 | *
29 | * @param string $package The name of the composer package that is triggering the deprecation
30 | * @param string $version The version of the package that introduced the deprecation
31 | * @param string $message The deprecation message to use
32 | *
33 | * @return $this
34 | *
35 | * @throws InvalidArgumentException when the message template is invalid
36 | */
37 | public function deprecate(string $package, string $version, string $message): static
38 | {
39 | $this->alias->setDeprecated($package, $version, $message);
40 |
41 | return $this;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Loader/Configurator/RouteConfigurator.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Loader\Configurator;
13 |
14 | use Symfony\Component\Routing\RouteCollection;
15 |
16 | /**
17 | * @author Nicolas Grekas
18 | */
19 | class RouteConfigurator
20 | {
21 | use Traits\AddTrait;
22 | use Traits\HostTrait;
23 | use Traits\RouteTrait;
24 |
25 | protected $parentConfigurator;
26 |
27 | public function __construct(RouteCollection $collection, RouteCollection $route, string $name = '', CollectionConfigurator $parentConfigurator = null, array $prefixes = null)
28 | {
29 | $this->collection = $collection;
30 | $this->route = $route;
31 | $this->name = $name;
32 | $this->parentConfigurator = $parentConfigurator; // for GC control
33 | $this->prefixes = $prefixes;
34 | }
35 |
36 | /**
37 | * Sets the host to use for all child routes.
38 | *
39 | * @param string|array $host the host, or the localized hosts
40 | *
41 | * @return $this
42 | */
43 | final public function host(string|array $host): static
44 | {
45 | $this->addHost($this->route, $host);
46 |
47 | return $this;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Loader/ContainerLoader.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Loader;
13 |
14 | use Psr\Container\ContainerInterface;
15 |
16 | /**
17 | * A route loader that executes a service from a PSR-11 container to load the routes.
18 | *
19 | * @author Ryan Weaver
20 | */
21 | class ContainerLoader extends ObjectLoader
22 | {
23 | private ContainerInterface $container;
24 |
25 | public function __construct(ContainerInterface $container, string $env = null)
26 | {
27 | $this->container = $container;
28 | parent::__construct($env);
29 | }
30 |
31 | public function supports(mixed $resource, string $type = null): bool
32 | {
33 | return 'service' === $type && \is_string($resource);
34 | }
35 |
36 | protected function getObject(string $id): object
37 | {
38 | return $this->container->get($id);
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Loader/GlobFileLoader.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Loader;
13 |
14 | use Symfony\Component\Config\Loader\FileLoader;
15 | use Symfony\Component\Routing\RouteCollection;
16 |
17 | /**
18 | * GlobFileLoader loads files from a glob pattern.
19 | *
20 | * @author Nicolas Grekas
21 | */
22 | class GlobFileLoader extends FileLoader
23 | {
24 | public function load(mixed $resource, string $type = null): mixed
25 | {
26 | $collection = new RouteCollection();
27 |
28 | foreach ($this->glob($resource, false, $globResource) as $path => $info) {
29 | $collection->addCollection($this->import($path));
30 | }
31 |
32 | $collection->addResource($globResource);
33 |
34 | return $collection;
35 | }
36 |
37 | public function supports(mixed $resource, string $type = null): bool
38 | {
39 | return 'glob' === $type;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Matcher/CompiledUrlMatcher.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Matcher;
13 |
14 | use Symfony\Component\Routing\Matcher\Dumper\CompiledUrlMatcherTrait;
15 | use Symfony\Component\Routing\RequestContext;
16 |
17 | /**
18 | * Matches URLs based on rules dumped by CompiledUrlMatcherDumper.
19 | *
20 | * @author Nicolas Grekas
21 | */
22 | class CompiledUrlMatcher extends UrlMatcher
23 | {
24 | use CompiledUrlMatcherTrait;
25 |
26 | public function __construct(array $compiledRoutes, RequestContext $context)
27 | {
28 | $this->context = $context;
29 | [$this->matchHost, $this->staticRoutes, $this->regexpList, $this->dynamicRoutes, $this->checkCondition] = $compiledRoutes;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Matcher/Dumper/MatcherDumper.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Matcher\Dumper;
13 |
14 | use Symfony\Component\Routing\RouteCollection;
15 |
16 | /**
17 | * MatcherDumper is the abstract class for all built-in matcher dumpers.
18 | *
19 | * @author Fabien Potencier
20 | */
21 | abstract class MatcherDumper implements MatcherDumperInterface
22 | {
23 | private RouteCollection $routes;
24 |
25 | public function __construct(RouteCollection $routes)
26 | {
27 | $this->routes = $routes;
28 | }
29 |
30 | public function getRoutes(): RouteCollection
31 | {
32 | return $this->routes;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Matcher\Dumper;
13 |
14 | use Symfony\Component\Routing\RouteCollection;
15 |
16 | /**
17 | * MatcherDumperInterface is the interface that all matcher dumper classes must implement.
18 | *
19 | * @author Fabien Potencier
20 | */
21 | interface MatcherDumperInterface
22 | {
23 | /**
24 | * Dumps a set of routes to a string representation of executable code
25 | * that can then be used to match a request against these routes.
26 | */
27 | public function dump(array $options = []): string;
28 |
29 | /**
30 | * Gets the routes to dump.
31 | */
32 | public function getRoutes(): RouteCollection;
33 | }
34 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Matcher;
13 |
14 | /**
15 | * RedirectableUrlMatcherInterface knows how to redirect the user.
16 | *
17 | * @author Fabien Potencier
18 | */
19 | interface RedirectableUrlMatcherInterface
20 | {
21 | /**
22 | * Redirects the user to another URL and returns the parameters for the redirection.
23 | *
24 | * @param string $path The path info to redirect to
25 | * @param string $route The route name that matched
26 | * @param string|null $scheme The URL scheme (null to keep the current one)
27 | */
28 | public function redirect(string $path, string $route, string $scheme = null): array;
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/Matcher/RequestMatcherInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing\Matcher;
13 |
14 | use Symfony\Component\HttpFoundation\Request;
15 | use Symfony\Component\Routing\Exception\MethodNotAllowedException;
16 | use Symfony\Component\Routing\Exception\NoConfigurationException;
17 | use Symfony\Component\Routing\Exception\ResourceNotFoundException;
18 |
19 | /**
20 | * RequestMatcherInterface is the interface that all request matcher classes must implement.
21 | *
22 | * @author Fabien Potencier
23 | */
24 | interface RequestMatcherInterface
25 | {
26 | /**
27 | * Tries to match a request with a set of routes.
28 | *
29 | * If the matcher cannot find information, it must throw one of the exceptions documented
30 | * below.
31 | *
32 | * @throws NoConfigurationException If no routing configuration could be found
33 | * @throws ResourceNotFoundException If no matching resource could be found
34 | * @throws MethodNotAllowedException If a matching resource was found but the request method is not allowed
35 | */
36 | public function matchRequest(Request $request): array;
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/RequestContextAwareInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing;
13 |
14 | interface RequestContextAwareInterface
15 | {
16 | /**
17 | * Sets the request context.
18 | *
19 | * @return void
20 | */
21 | public function setContext(RequestContext $context);
22 |
23 | /**
24 | * Gets the request context.
25 | */
26 | public function getContext(): RequestContext;
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/RouteCompilerInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing;
13 |
14 | /**
15 | * RouteCompilerInterface is the interface that all RouteCompiler classes must implement.
16 | *
17 | * @author Fabien Potencier
18 | */
19 | interface RouteCompilerInterface
20 | {
21 | /**
22 | * Compiles the current route instance.
23 | *
24 | * @throws \LogicException If the Route cannot be compiled because the
25 | * path or host pattern is invalid
26 | */
27 | public static function compile(Route $route): CompiledRoute;
28 | }
29 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/RouterInterface.php:
--------------------------------------------------------------------------------
1 |
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 |
12 | namespace Symfony\Component\Routing;
13 |
14 | use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
15 | use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
16 |
17 | /**
18 | * RouterInterface is the interface that all Router classes must implement.
19 | *
20 | * This interface is the concatenation of UrlMatcherInterface and UrlGeneratorInterface.
21 | *
22 | * @author Fabien Potencier
23 | */
24 | interface RouterInterface extends UrlMatcherInterface, UrlGeneratorInterface
25 | {
26 | /**
27 | * Gets the RouteCollection instance associated with this Router.
28 | *
29 | * WARNING: This method should never be used at runtime as it is SLOW.
30 | * You might use it in a cache warmer though.
31 | *
32 | * @return RouteCollection
33 | */
34 | public function getRouteCollection();
35 | }
36 |
--------------------------------------------------------------------------------
/vendor/symfony/routing/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "symfony/routing",
3 | "type": "library",
4 | "description": "Maps an HTTP request to a set of configuration variables",
5 | "keywords": ["routing", "router", "url", "uri"],
6 | "homepage": "https://symfony.com",
7 | "license": "MIT",
8 | "authors": [
9 | {
10 | "name": "Fabien Potencier",
11 | "email": "fabien@symfony.com"
12 | },
13 | {
14 | "name": "Symfony Community",
15 | "homepage": "https://symfony.com/contributors"
16 | }
17 | ],
18 | "require": {
19 | "php": ">=8.1"
20 | },
21 | "require-dev": {
22 | "symfony/config": "^6.2",
23 | "symfony/http-foundation": "^5.4|^6.0",
24 | "symfony/yaml": "^5.4|^6.0",
25 | "symfony/expression-language": "^5.4|^6.0",
26 | "symfony/dependency-injection": "^5.4|^6.0",
27 | "doctrine/annotations": "^1.12|^2",
28 | "psr/log": "^1|^2|^3"
29 | },
30 | "conflict": {
31 | "doctrine/annotations": "<1.12",
32 | "symfony/config": "<6.2",
33 | "symfony/dependency-injection": "<5.4",
34 | "symfony/yaml": "<5.4"
35 | },
36 | "autoload": {
37 | "psr-4": { "Symfony\\Component\\Routing\\": "" },
38 | "exclude-from-classmap": [
39 | "/Tests/"
40 | ]
41 | },
42 | "minimum-stability": "dev"
43 | }
44 |
--------------------------------------------------------------------------------