├── .gitattributes ├── .github ├── FUNDING.yml └── workflows │ └── main.yml ├── LICENSE.md ├── README.md ├── composer.json ├── composer.lock └── src ├── Icon.php ├── Item.php ├── Mods ├── Alt.php ├── Cmd.php ├── Ctrl.php ├── Fnn.php ├── Mod.php └── Shift.php ├── ScriptFilter.php ├── Traits ├── HasIcon.php └── HasVariables.php └── Variable.php /.gitattributes: -------------------------------------------------------------------------------- 1 | .gitignore export-ignore 2 | .php_cs.dist export-ignore 3 | .phpcs.xml.dist export-ignore 4 | .scrutinizer.yml export-ignore 5 | .styleci.yml export-ignore 6 | .travis.yml export-ignore 7 | phpunit.xml.dist export-ignore 8 | tests/ export-ignore 9 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: godbout 2 | ko_fi: godbout 3 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: tests 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | php: 13 | name: on macOS, PHP 14 | runs-on: macos-latest 15 | 16 | strategy: 17 | matrix: 18 | php: [8.1, 8.0] 19 | dependency-version: [prefer-lowest, prefer-stable] 20 | 21 | steps: 22 | - name: checkout code 23 | uses: actions/checkout@v2 24 | with: 25 | fetch-depth: 2 26 | 27 | - name: setup PHP 28 | uses: shivammathur/setup-php@v2 29 | with: 30 | php-version: ${{ matrix.php }} 31 | coverage: xdebug 32 | 33 | - name: do some magic Composer cache 34 | id: composer-cache 35 | run: echo "::set-output name=dir::$(composer config cache-files-dir)" 36 | - uses: actions/cache@v2 37 | with: 38 | path: ${{ steps.composer-cache.outputs.dir }} 39 | key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} 40 | restore-keys: ${{ runner.os }}-composer- 41 | 42 | - name: install dependencies 43 | run: composer update --${{ matrix.dependency-version }} 44 | 45 | - name: run tests 46 | run: composer test -- --coverage-clover=coverage.clover 47 | 48 | - name: upload code coverage 49 | run: php vendor/bin/ocular code-coverage:upload --format=php-clover coverage.clover 50 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2019 Guillaume Leclerc 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

PHP Alfred Workflow ScriptFilter

2 | 3 |

4 | Latest Stable Version 5 | Build Status 6 | Quality Score 7 | Code Coverage 8 | Total Downloads 9 |

10 | 11 | ___ 12 | 13 | ## Why 14 | 15 | Starting with Alfred 3.4.1 you can define [variables][1] for individual items and 16 | variables and icon for each various modifiers (ctrl, cmd, shift, fn, alt) of each item. 17 | That makes rendering the results for Alfred a little tougher than usual with the current tools 18 | available, hence this package. 19 | 20 | If you don't need the new fields introduced by Alfred 3.4.1 and 3.5, you might want to use 21 | Joe Tannenbaum's [package][2]. His API might be a little less heavier than mine. 22 | 23 | ## Installation 24 | 25 | ```php 26 | composer require godbout/alfred-workflow-scriptfilter 27 | ``` 28 | ## Usage 29 | 30 | The main `ScriptFilter` class is a singleton. You can create many 31 | instances of all the other classes: `Item`, `Variable`, `Icon`, and the `Mod` classes: `Ctrl`, `Fnn`, `Shift`, `Alt`, and `Cmd`. 32 | 33 | You may check the structure and options of the Alfred Script Filter JSON Format here: https://www.alfredapp.com/help/workflows/inputs/script-filter/json/ 34 | 35 | ```php 36 | require __DIR__ . '/../vendor/autoload.php'; 37 | 38 | use Godbout\Alfred\Workflow\ScriptFilter; 39 | 40 | echo ScriptFilter::output(); 41 | ``` 42 | 43 | will result in: 44 | 45 | ```json 46 | {"items":[]} 47 | ``` 48 | 49 | You can add items, variables, rerun automatically your script: 50 | 51 | ```php 52 | ScriptFilter::add( 53 | Item::create() 54 | ->uid('uidd') 55 | ->title('titlee') 56 | ->subtitle('subtitlee') 57 | ->arg('argg') 58 | ->icon( 59 | Icon::create('icon path') 60 | ) 61 | ->valid() 62 | ->match('matchh') 63 | ->autocomplete('autocompletee') 64 | ->mod( 65 | Ctrl::create() 66 | ->arg('ctrl arg') 67 | ->subtitle('ctrl subtitle') 68 | ->valid() 69 | ) 70 | ->copy('copyy') 71 | ->largetype('largetypee') 72 | ->quicklookurl('quicklookurll') 73 | ); 74 | 75 | ScriptFilter::add( 76 | Variable::create('food', 'chocolate'), 77 | Variable::create('dessert', 'red beans') 78 | ); 79 | 80 | ScriptFilter::rerun(4.5); 81 | 82 | $anotherItem = Item::create() 83 | ->icon( 84 | Icon::createFileicon('icon pathh') 85 | ) 86 | ->mods( 87 | Shift::create() 88 | ->subtitle('shift subtitle'), 89 | Fnn::create() 90 | ->arg('fn arg') 91 | ->valid(true) 92 | ); 93 | 94 | $thirdItem = Item::create() 95 | ->variables( 96 | Variable::create('guitar', 'fender'), 97 | Variable::create('amplifier', 'orange') 98 | ) 99 | ->mod( 100 | Alt::create() 101 | ->icon( 102 | Icon::createFileicon('alt icon path') 103 | ) 104 | ->variables( 105 | Variable::create('grade', 'colonel'), 106 | Variable::create('drug', 'power') 107 | ) 108 | ); 109 | 110 | ScriptFilter::add($anotherItem, $thirdItem); 111 | 112 | echo ScriptFilter::output(); 113 | ``` 114 | 115 | will result in: 116 | 117 | ```json 118 | { 119 | "rerun":4.5, 120 | "variables":{ 121 | "food":"chocolate", 122 | "dessert":"red beans" 123 | }, 124 | "items":[ 125 | { 126 | "uid":"uidd", 127 | "title":"titlee", 128 | "subtitle":"subtitlee", 129 | "arg":"argg", 130 | "icon":{ 131 | "path":"icon path" 132 | }, 133 | "valid":true, 134 | "match":"matchh", 135 | "autocomplete":"autocompletee", 136 | "mods":{ 137 | "ctrl":{ 138 | "arg":"ctrl arg", 139 | "subtitle":"ctrl subtitle", 140 | "valid":true 141 | } 142 | }, 143 | "text":{ 144 | "copy":"copyy", 145 | "largetype":"largetypee" 146 | }, 147 | "quicklookurl":"quicklookurll" 148 | }, 149 | { 150 | "icon":{ 151 | "path":"icon pathh", 152 | "type":"fileicon" 153 | }, 154 | "mods":{ 155 | "shift":{ 156 | "subtitle":"shift subtitle" 157 | }, 158 | "fn":{ 159 | "arg":"fn arg", 160 | "valid":true 161 | } 162 | } 163 | }, 164 | { 165 | "mods":{ 166 | "alt":{ 167 | "icon":{ 168 | "path":"alt icon path", 169 | "type":"fileicon" 170 | }, 171 | "variables":{ 172 | "grade":"colonel", 173 | "drug":"power" 174 | } 175 | } 176 | }, 177 | "variables":{ 178 | "guitar":"fender", 179 | "amplifier":"orange" 180 | } 181 | } 182 | ] 183 | } 184 | ``` 185 | 186 | You can sort your results ascendingly, descendingly, by title or anything else: 187 | 188 | ```php 189 | 190 | /** 191 | * Will sort the items ascendingly 192 | * based on titles. 193 | */ 194 | ScriptFilter::add(...); 195 | ScriptFilter::sortItems(); 196 | ScriptFilter::output(); 197 | 198 | /** 199 | * Will sort the items descendingly 200 | * based on subtitles. 201 | */ 202 | ScriptFilter::add(...); 203 | ScriptFilter::sortItems('desc', 'subtitle'); 204 | ScriptFilter::output(); 205 | ``` 206 | 207 | You can filter your results (you might want to do this with the input from the user) based on any field from your items: 208 | 209 | ```php 210 | 211 | /** 212 | * Only items with a title that contains 213 | * 'start' will show up in the output. 214 | */ 215 | ScriptFilter::add(...); 216 | ScriptFilter::filterItems('start'); 217 | ScriptFilter::output(); 218 | 219 | /** 220 | * Only items with a subtitle that contains 221 | * 'end' will show up in the output. 222 | */ 223 | ScriptFilter::add(...); 224 | ScriptFilter::filterItems('end', 'subtitle'); 225 | ScriptFilter::output(); 226 | ``` 227 | 228 | ## Helpers 229 | 230 | There's a couple of helpers that should make your code a bit more enjoyable to write. (Or not.) 231 | 232 | ### ScriptFilter 233 | 234 | The ScriptFilter can be written using a fluent interface: 235 | 236 | ```php 237 | ScriptFilter::create() 238 | ->item($item) 239 | ->variable(Variable::create('gender', 'undefined')) 240 | ->items($anotherItem, $oneMoreItem) 241 | ->variables($aVariable, $anotherVariable) 242 | ->rerun(4) 243 | ->item(Item::create()); 244 | ``` 245 | 246 | ### Item 247 | 248 | ```php 249 | Item::createDefault(); 250 | // same same 251 | Item::create()->default(); 252 | // same same 253 | Item::create()->type('default'); 254 | 255 | 256 | Item::createFile(); 257 | // same same 258 | Item::create()->file(); 259 | // same same 260 | Item::create()->type('file'); 261 | 262 | 263 | Item::createSkipcheck(); 264 | // same same 265 | Item::create()->skipcheck(); 266 | // same same 267 | Item::create()->type('file:skipcheck'); 268 | 269 | 270 | Item::create()->copy('text to copy'); 271 | // same same 272 | Item::create()->text('copy', 'text to copy'); 273 | 274 | 275 | Item::create()->largetype('show large'); 276 | // same same 277 | Item::create()->text('largetype', 'show large'); 278 | ``` 279 | 280 | ### Icon 281 | 282 | ```php 283 | Icon::create('~/Desktop'); 284 | // same same 285 | Icon::create()->path('~/Desktop'); 286 | 287 | 288 | Icon::createFileicon('~/Desktop'); 289 | // same same 290 | Icon::create('~/Desktop')->fileicon(); 291 | 292 | 293 | Icon::createFiletype('~/Desktop'); 294 | // same same 295 | Icon::create()->path('~/Desktop')->filetype(); 296 | ``` 297 | 298 | ### Variable 299 | 300 | ```php 301 | Variable::create('guitar', 'fender'); 302 | // same same 303 | Variable::create()->name('guitar')->value('fender'); 304 | 305 | 306 | /** 307 | * Anywhere you use the ->variable(...) fluent interface 308 | * you can pass the name and value arguments directly 309 | * if this is your thing. 310 | */ 311 | ...->variable(Variable::create('gender', 'unknown')); 312 | // same same 313 | ...->variable('gender', 'unknown'); 314 | ``` 315 | 316 | ## Full API 317 | 318 | You might want to check the tests to see the full API: [tests][3] 319 | 320 | The API should mostly help you avoid typing too much and putting wrong data 321 | where Alfred is expecting something strict. 322 | 323 | ## Alternatives 324 | 325 | * [alfred-workflow][2] by Joe Tannenbaum 326 | 327 | 328 | [1]: https://www.alfredapp.com/help/workflows/inputs/script-filter/json/#variables 329 | [2]: https://github.com/joetannenbaum/alfred-workflow 330 | [3]: https://github.com/godbout/alfred-workflow-scriptfilter/tree/master/tests 331 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "godbout/alfred-workflow-scriptfilter", 3 | "description": "Generate Alfred 3 or 4 Workflow Results in PHP with a laugh.", 4 | "keywords": [ 5 | "alfred", 6 | "workflow", 7 | "alfred-workflow", 8 | "scriptfilter", 9 | "results", 10 | "php" 11 | ], 12 | "homepage": "https://github.com/godbout/alfred-workflow-scriptfilter", 13 | "license": "MIT", 14 | "type": "library", 15 | "authors": [ 16 | { 17 | "name": "Guillaume Leclerc", 18 | "email": "guill@sleeplessmind.com.mo", 19 | "role": "Craftsman" 20 | } 21 | ], 22 | "require": { 23 | "php": "^8.0.2" 24 | }, 25 | "require-dev": { 26 | "hassankhan/config": "^3.0", 27 | "codedungeon/phpunit-result-printer": "^0.32", 28 | "phpunit/phpunit": "^9.5.20", 29 | "scrutinizer/ocular": "^1.9", 30 | "symfony/yaml": "^5.4.3" 31 | }, 32 | "autoload": { 33 | "psr-4": { 34 | "Godbout\\Alfred\\Workflow\\": "src" 35 | } 36 | }, 37 | "scripts": { 38 | "format": "php-cs-fixer fix -vvv --config=.php_cs.dist --ansi", 39 | "test": "vendor/bin/phpunit --colors=always", 40 | "test-coverage": "vendor/bin/phpunit --coverage-html coverage" 41 | }, 42 | "config": { 43 | "sort-packages": true 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "7c17c9c8a1137e07770784bec3419d20", 8 | "packages": [], 9 | "packages-dev": [ 10 | { 11 | "name": "2bj/phanybar", 12 | "version": "v1.0.0", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/2bj/Phanybar.git", 16 | "reference": "88ff671e18f30c2047a34f8cf2465a7ff93c819b" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/2bj/Phanybar/zipball/88ff671e18f30c2047a34f8cf2465a7ff93c819b", 21 | "reference": "88ff671e18f30c2047a34f8cf2465a7ff93c819b", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "php": ">=5.3.0" 26 | }, 27 | "bin": [ 28 | "bin/phanybar" 29 | ], 30 | "type": "library", 31 | "autoload": { 32 | "psr-4": { 33 | "Bakyt\\": [ 34 | "src/" 35 | ] 36 | } 37 | }, 38 | "notification-url": "https://packagist.org/downloads/", 39 | "license": [ 40 | "MIT" 41 | ], 42 | "authors": [ 43 | { 44 | "name": "Bakyt Turgumbaev", 45 | "email": "dev2bj@gmail.com" 46 | } 47 | ], 48 | "description": "Control AnyBar from your php", 49 | "keywords": [ 50 | "anybar", 51 | "phanybar" 52 | ], 53 | "support": { 54 | "issues": "https://github.com/2bj/Phanybar/issues", 55 | "source": "https://github.com/2bj/Phanybar/tree/master" 56 | }, 57 | "time": "2015-03-06T12:14:28+00:00" 58 | }, 59 | { 60 | "name": "codedungeon/php-cli-colors", 61 | "version": "1.10.2", 62 | "source": { 63 | "type": "git", 64 | "url": "https://github.com/mikeerickson/php-cli-colors.git", 65 | "reference": "bb01a3ea4b8984859f4bf07a42e916e0f5472d88" 66 | }, 67 | "dist": { 68 | "type": "zip", 69 | "url": "https://api.github.com/repos/mikeerickson/php-cli-colors/zipball/bb01a3ea4b8984859f4bf07a42e916e0f5472d88", 70 | "reference": "bb01a3ea4b8984859f4bf07a42e916e0f5472d88", 71 | "shasum": "" 72 | }, 73 | "require-dev": { 74 | "phpunit/phpunit": ">=5.2" 75 | }, 76 | "type": "library", 77 | "autoload": { 78 | "psr-4": { 79 | "Codedungeon\\PHPCliColors\\": "src/" 80 | } 81 | }, 82 | "notification-url": "https://packagist.org/downloads/", 83 | "license": [ 84 | "MIT" 85 | ], 86 | "authors": [ 87 | { 88 | "name": "Mike Erickson", 89 | "email": "codedungeon@gmail.com" 90 | } 91 | ], 92 | "description": "PHP Package for using color output in CLI commands", 93 | "homepage": "https://github.com/mikeerickson/php-cli-colors", 94 | "keywords": [ 95 | "color", 96 | "colors", 97 | "composer", 98 | "package", 99 | "php" 100 | ], 101 | "support": { 102 | "issues": "https://github.com/mikeerickson/php-cli-colors/issues", 103 | "source": "https://github.com/mikeerickson/php-cli-colors/tree/master" 104 | }, 105 | "time": "2017-09-11T19:38:53+00:00" 106 | }, 107 | { 108 | "name": "codedungeon/phpunit-result-printer", 109 | "version": "0.32.0", 110 | "source": { 111 | "type": "git", 112 | "url": "https://github.com/mikeerickson/phpunit-pretty-result-printer.git", 113 | "reference": "102d1c145d1b3ac80a797ad9495937a332fb820c" 114 | }, 115 | "dist": { 116 | "type": "zip", 117 | "url": "https://api.github.com/repos/mikeerickson/phpunit-pretty-result-printer/zipball/102d1c145d1b3ac80a797ad9495937a332fb820c", 118 | "reference": "102d1c145d1b3ac80a797ad9495937a332fb820c", 119 | "shasum": "" 120 | }, 121 | "require": { 122 | "2bj/phanybar": "^1.0", 123 | "codedungeon/php-cli-colors": "^1.10.2", 124 | "hassankhan/config": "^0.11.2|^1.0|^2.0|^3.0", 125 | "php": "^7.1 | ^8.0", 126 | "symfony/yaml": "^2.7|^3.0|^4.0|^5.0" 127 | }, 128 | "require-dev": { 129 | "spatie/phpunit-watcher": "^1.6" 130 | }, 131 | "type": "library", 132 | "autoload": { 133 | "psr-4": { 134 | "Codedungeon\\PHPUnitPrettyResultPrinter\\": "src/" 135 | } 136 | }, 137 | "notification-url": "https://packagist.org/downloads/", 138 | "license": [ 139 | "MIT" 140 | ], 141 | "authors": [ 142 | { 143 | "name": "Mike Erickson", 144 | "email": "codedungeon@gmail.com" 145 | } 146 | ], 147 | "description": "PHPUnit Pretty Result Printer", 148 | "keywords": [ 149 | "TDD", 150 | "composer", 151 | "package", 152 | "phpunit", 153 | "printer", 154 | "result-printer", 155 | "testing" 156 | ], 157 | "support": { 158 | "issues": "https://github.com/mikeerickson/phpunit-pretty-result-printer/issues", 159 | "source": "https://github.com/mikeerickson/phpunit-pretty-result-printer/tree/0.32.0" 160 | }, 161 | "funding": [ 162 | { 163 | "url": "https://github.com/feross", 164 | "type": "github" 165 | }, 166 | { 167 | "url": "https://github.com/standard", 168 | "type": "github" 169 | } 170 | ], 171 | "time": "2022-02-25T16:52:26+00:00" 172 | }, 173 | { 174 | "name": "doctrine/annotations", 175 | "version": "v1.0", 176 | "source": { 177 | "type": "git", 178 | "url": "https://github.com/doctrine/annotations.git", 179 | "reference": "fae359b3efd908e407a0105ff8956b5c94ddca8e" 180 | }, 181 | "dist": { 182 | "type": "zip", 183 | "url": "https://api.github.com/repos/doctrine/annotations/zipball/fae359b3efd908e407a0105ff8956b5c94ddca8e", 184 | "reference": "fae359b3efd908e407a0105ff8956b5c94ddca8e", 185 | "shasum": "" 186 | }, 187 | "require": { 188 | "doctrine/lexer": "1.*", 189 | "php": ">=5.3.2" 190 | }, 191 | "require-dev": { 192 | "doctrine/cache": "1.*" 193 | }, 194 | "type": "library", 195 | "autoload": { 196 | "psr-0": { 197 | "Doctrine\\Common\\Annotations\\": "lib/" 198 | } 199 | }, 200 | "notification-url": "https://packagist.org/downloads/", 201 | "license": [ 202 | "MIT" 203 | ], 204 | "authors": [ 205 | { 206 | "name": "Jonathan Wage", 207 | "email": "jonwage@gmail.com", 208 | "homepage": "http://www.jwage.com/", 209 | "role": "Creator" 210 | }, 211 | { 212 | "name": "Guilherme Blanco", 213 | "email": "guilhermeblanco@gmail.com", 214 | "homepage": "http://www.instaclick.com" 215 | }, 216 | { 217 | "name": "Roman Borschel", 218 | "email": "roman@code-factory.org" 219 | }, 220 | { 221 | "name": "Benjamin Eberlei", 222 | "email": "kontakt@beberlei.de" 223 | }, 224 | { 225 | "name": "Johannes Schmitt", 226 | "email": "schmittjoh@gmail.com", 227 | "homepage": "https://github.com/schmittjoh", 228 | "role": "Developer of wrapped JMSSerializerBundle" 229 | } 230 | ], 231 | "description": "Docblock Annotations Parser", 232 | "homepage": "http://www.doctrine-project.org", 233 | "keywords": [ 234 | "annotations", 235 | "docblock", 236 | "parser" 237 | ], 238 | "support": { 239 | "source": "https://github.com/doctrine/annotations/tree/v1.0" 240 | }, 241 | "time": "2013-01-12T19:23:32+00:00" 242 | }, 243 | { 244 | "name": "doctrine/instantiator", 245 | "version": "1.3.1", 246 | "source": { 247 | "type": "git", 248 | "url": "https://github.com/doctrine/instantiator.git", 249 | "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" 250 | }, 251 | "dist": { 252 | "type": "zip", 253 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", 254 | "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", 255 | "shasum": "" 256 | }, 257 | "require": { 258 | "php": "^7.1 || ^8.0" 259 | }, 260 | "require-dev": { 261 | "doctrine/coding-standard": "^6.0", 262 | "ext-pdo": "*", 263 | "ext-phar": "*", 264 | "phpbench/phpbench": "^0.13", 265 | "phpstan/phpstan-phpunit": "^0.11", 266 | "phpstan/phpstan-shim": "^0.11", 267 | "phpunit/phpunit": "^7.0" 268 | }, 269 | "type": "library", 270 | "extra": { 271 | "branch-alias": { 272 | "dev-master": "1.2.x-dev" 273 | } 274 | }, 275 | "autoload": { 276 | "psr-4": { 277 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 278 | } 279 | }, 280 | "notification-url": "https://packagist.org/downloads/", 281 | "license": [ 282 | "MIT" 283 | ], 284 | "authors": [ 285 | { 286 | "name": "Marco Pivetta", 287 | "email": "ocramius@gmail.com", 288 | "homepage": "http://ocramius.github.com/" 289 | } 290 | ], 291 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 292 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 293 | "keywords": [ 294 | "constructor", 295 | "instantiate" 296 | ], 297 | "support": { 298 | "issues": "https://github.com/doctrine/instantiator/issues", 299 | "source": "https://github.com/doctrine/instantiator/tree/1.3.x" 300 | }, 301 | "funding": [ 302 | { 303 | "url": "https://www.doctrine-project.org/sponsorship.html", 304 | "type": "custom" 305 | }, 306 | { 307 | "url": "https://www.patreon.com/phpdoctrine", 308 | "type": "patreon" 309 | }, 310 | { 311 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", 312 | "type": "tidelift" 313 | } 314 | ], 315 | "time": "2020-05-29T17:27:14+00:00" 316 | }, 317 | { 318 | "name": "doctrine/lexer", 319 | "version": "1.2.1", 320 | "source": { 321 | "type": "git", 322 | "url": "https://github.com/doctrine/lexer.git", 323 | "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" 324 | }, 325 | "dist": { 326 | "type": "zip", 327 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", 328 | "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", 329 | "shasum": "" 330 | }, 331 | "require": { 332 | "php": "^7.2 || ^8.0" 333 | }, 334 | "require-dev": { 335 | "doctrine/coding-standard": "^6.0", 336 | "phpstan/phpstan": "^0.11.8", 337 | "phpunit/phpunit": "^8.2" 338 | }, 339 | "type": "library", 340 | "extra": { 341 | "branch-alias": { 342 | "dev-master": "1.2.x-dev" 343 | } 344 | }, 345 | "autoload": { 346 | "psr-4": { 347 | "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" 348 | } 349 | }, 350 | "notification-url": "https://packagist.org/downloads/", 351 | "license": [ 352 | "MIT" 353 | ], 354 | "authors": [ 355 | { 356 | "name": "Guilherme Blanco", 357 | "email": "guilhermeblanco@gmail.com" 358 | }, 359 | { 360 | "name": "Roman Borschel", 361 | "email": "roman@code-factory.org" 362 | }, 363 | { 364 | "name": "Johannes Schmitt", 365 | "email": "schmittjoh@gmail.com" 366 | } 367 | ], 368 | "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", 369 | "homepage": "https://www.doctrine-project.org/projects/lexer.html", 370 | "keywords": [ 371 | "annotations", 372 | "docblock", 373 | "lexer", 374 | "parser", 375 | "php" 376 | ], 377 | "support": { 378 | "issues": "https://github.com/doctrine/lexer/issues", 379 | "source": "https://github.com/doctrine/lexer/tree/1.2.1" 380 | }, 381 | "funding": [ 382 | { 383 | "url": "https://www.doctrine-project.org/sponsorship.html", 384 | "type": "custom" 385 | }, 386 | { 387 | "url": "https://www.patreon.com/phpdoctrine", 388 | "type": "patreon" 389 | }, 390 | { 391 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", 392 | "type": "tidelift" 393 | } 394 | ], 395 | "time": "2020-05-25T17:44:05+00:00" 396 | }, 397 | { 398 | "name": "guzzlehttp/guzzle", 399 | "version": "7.4.4", 400 | "source": { 401 | "type": "git", 402 | "url": "https://github.com/guzzle/guzzle.git", 403 | "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8" 404 | }, 405 | "dist": { 406 | "type": "zip", 407 | "url": "https://api.github.com/repos/guzzle/guzzle/zipball/e3ff079b22820c2029d4c2a87796b6a0b8716ad8", 408 | "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8", 409 | "shasum": "" 410 | }, 411 | "require": { 412 | "ext-json": "*", 413 | "guzzlehttp/promises": "^1.5", 414 | "guzzlehttp/psr7": "^1.8.3 || ^2.1", 415 | "php": "^7.2.5 || ^8.0", 416 | "psr/http-client": "^1.0", 417 | "symfony/deprecation-contracts": "^2.2 || ^3.0" 418 | }, 419 | "provide": { 420 | "psr/http-client-implementation": "1.0" 421 | }, 422 | "require-dev": { 423 | "bamarni/composer-bin-plugin": "^1.4.1", 424 | "ext-curl": "*", 425 | "php-http/client-integration-tests": "^3.0", 426 | "phpunit/phpunit": "^8.5.5 || ^9.3.5", 427 | "psr/log": "^1.1 || ^2.0 || ^3.0" 428 | }, 429 | "suggest": { 430 | "ext-curl": "Required for CURL handler support", 431 | "ext-intl": "Required for Internationalized Domain Name (IDN) support", 432 | "psr/log": "Required for using the Log middleware" 433 | }, 434 | "type": "library", 435 | "extra": { 436 | "branch-alias": { 437 | "dev-master": "7.4-dev" 438 | } 439 | }, 440 | "autoload": { 441 | "files": [ 442 | "src/functions_include.php" 443 | ], 444 | "psr-4": { 445 | "GuzzleHttp\\": "src/" 446 | } 447 | }, 448 | "notification-url": "https://packagist.org/downloads/", 449 | "license": [ 450 | "MIT" 451 | ], 452 | "authors": [ 453 | { 454 | "name": "Graham Campbell", 455 | "email": "hello@gjcampbell.co.uk", 456 | "homepage": "https://github.com/GrahamCampbell" 457 | }, 458 | { 459 | "name": "Michael Dowling", 460 | "email": "mtdowling@gmail.com", 461 | "homepage": "https://github.com/mtdowling" 462 | }, 463 | { 464 | "name": "Jeremy Lindblom", 465 | "email": "jeremeamia@gmail.com", 466 | "homepage": "https://github.com/jeremeamia" 467 | }, 468 | { 469 | "name": "George Mponos", 470 | "email": "gmponos@gmail.com", 471 | "homepage": "https://github.com/gmponos" 472 | }, 473 | { 474 | "name": "Tobias Nyholm", 475 | "email": "tobias.nyholm@gmail.com", 476 | "homepage": "https://github.com/Nyholm" 477 | }, 478 | { 479 | "name": "Márk Sági-Kazár", 480 | "email": "mark.sagikazar@gmail.com", 481 | "homepage": "https://github.com/sagikazarmark" 482 | }, 483 | { 484 | "name": "Tobias Schultze", 485 | "email": "webmaster@tubo-world.de", 486 | "homepage": "https://github.com/Tobion" 487 | } 488 | ], 489 | "description": "Guzzle is a PHP HTTP client library", 490 | "keywords": [ 491 | "client", 492 | "curl", 493 | "framework", 494 | "http", 495 | "http client", 496 | "psr-18", 497 | "psr-7", 498 | "rest", 499 | "web service" 500 | ], 501 | "support": { 502 | "issues": "https://github.com/guzzle/guzzle/issues", 503 | "source": "https://github.com/guzzle/guzzle/tree/7.4.4" 504 | }, 505 | "funding": [ 506 | { 507 | "url": "https://github.com/GrahamCampbell", 508 | "type": "github" 509 | }, 510 | { 511 | "url": "https://github.com/Nyholm", 512 | "type": "github" 513 | }, 514 | { 515 | "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", 516 | "type": "tidelift" 517 | } 518 | ], 519 | "time": "2022-06-09T21:39:15+00:00" 520 | }, 521 | { 522 | "name": "guzzlehttp/promises", 523 | "version": "1.5.1", 524 | "source": { 525 | "type": "git", 526 | "url": "https://github.com/guzzle/promises.git", 527 | "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" 528 | }, 529 | "dist": { 530 | "type": "zip", 531 | "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", 532 | "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", 533 | "shasum": "" 534 | }, 535 | "require": { 536 | "php": ">=5.5" 537 | }, 538 | "require-dev": { 539 | "symfony/phpunit-bridge": "^4.4 || ^5.1" 540 | }, 541 | "type": "library", 542 | "extra": { 543 | "branch-alias": { 544 | "dev-master": "1.5-dev" 545 | } 546 | }, 547 | "autoload": { 548 | "files": [ 549 | "src/functions_include.php" 550 | ], 551 | "psr-4": { 552 | "GuzzleHttp\\Promise\\": "src/" 553 | } 554 | }, 555 | "notification-url": "https://packagist.org/downloads/", 556 | "license": [ 557 | "MIT" 558 | ], 559 | "authors": [ 560 | { 561 | "name": "Graham Campbell", 562 | "email": "hello@gjcampbell.co.uk", 563 | "homepage": "https://github.com/GrahamCampbell" 564 | }, 565 | { 566 | "name": "Michael Dowling", 567 | "email": "mtdowling@gmail.com", 568 | "homepage": "https://github.com/mtdowling" 569 | }, 570 | { 571 | "name": "Tobias Nyholm", 572 | "email": "tobias.nyholm@gmail.com", 573 | "homepage": "https://github.com/Nyholm" 574 | }, 575 | { 576 | "name": "Tobias Schultze", 577 | "email": "webmaster@tubo-world.de", 578 | "homepage": "https://github.com/Tobion" 579 | } 580 | ], 581 | "description": "Guzzle promises library", 582 | "keywords": [ 583 | "promise" 584 | ], 585 | "support": { 586 | "issues": "https://github.com/guzzle/promises/issues", 587 | "source": "https://github.com/guzzle/promises/tree/1.5.1" 588 | }, 589 | "funding": [ 590 | { 591 | "url": "https://github.com/GrahamCampbell", 592 | "type": "github" 593 | }, 594 | { 595 | "url": "https://github.com/Nyholm", 596 | "type": "github" 597 | }, 598 | { 599 | "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", 600 | "type": "tidelift" 601 | } 602 | ], 603 | "time": "2021-10-22T20:56:57+00:00" 604 | }, 605 | { 606 | "name": "guzzlehttp/psr7", 607 | "version": "2.3.0", 608 | "source": { 609 | "type": "git", 610 | "url": "https://github.com/guzzle/psr7.git", 611 | "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee" 612 | }, 613 | "dist": { 614 | "type": "zip", 615 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/83260bb50b8fc753c72d14dc1621a2dac31877ee", 616 | "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee", 617 | "shasum": "" 618 | }, 619 | "require": { 620 | "php": "^7.2.5 || ^8.0", 621 | "psr/http-factory": "^1.0", 622 | "psr/http-message": "^1.0", 623 | "ralouphie/getallheaders": "^3.0" 624 | }, 625 | "provide": { 626 | "psr/http-factory-implementation": "1.0", 627 | "psr/http-message-implementation": "1.0" 628 | }, 629 | "require-dev": { 630 | "bamarni/composer-bin-plugin": "^1.4.1", 631 | "http-interop/http-factory-tests": "^0.9", 632 | "phpunit/phpunit": "^8.5.8 || ^9.3.10" 633 | }, 634 | "suggest": { 635 | "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" 636 | }, 637 | "type": "library", 638 | "extra": { 639 | "branch-alias": { 640 | "dev-master": "2.3-dev" 641 | } 642 | }, 643 | "autoload": { 644 | "psr-4": { 645 | "GuzzleHttp\\Psr7\\": "src/" 646 | } 647 | }, 648 | "notification-url": "https://packagist.org/downloads/", 649 | "license": [ 650 | "MIT" 651 | ], 652 | "authors": [ 653 | { 654 | "name": "Graham Campbell", 655 | "email": "hello@gjcampbell.co.uk", 656 | "homepage": "https://github.com/GrahamCampbell" 657 | }, 658 | { 659 | "name": "Michael Dowling", 660 | "email": "mtdowling@gmail.com", 661 | "homepage": "https://github.com/mtdowling" 662 | }, 663 | { 664 | "name": "George Mponos", 665 | "email": "gmponos@gmail.com", 666 | "homepage": "https://github.com/gmponos" 667 | }, 668 | { 669 | "name": "Tobias Nyholm", 670 | "email": "tobias.nyholm@gmail.com", 671 | "homepage": "https://github.com/Nyholm" 672 | }, 673 | { 674 | "name": "Márk Sági-Kazár", 675 | "email": "mark.sagikazar@gmail.com", 676 | "homepage": "https://github.com/sagikazarmark" 677 | }, 678 | { 679 | "name": "Tobias Schultze", 680 | "email": "webmaster@tubo-world.de", 681 | "homepage": "https://github.com/Tobion" 682 | }, 683 | { 684 | "name": "Márk Sági-Kazár", 685 | "email": "mark.sagikazar@gmail.com", 686 | "homepage": "https://sagikazarmark.hu" 687 | } 688 | ], 689 | "description": "PSR-7 message implementation that also provides common utility methods", 690 | "keywords": [ 691 | "http", 692 | "message", 693 | "psr-7", 694 | "request", 695 | "response", 696 | "stream", 697 | "uri", 698 | "url" 699 | ], 700 | "support": { 701 | "issues": "https://github.com/guzzle/psr7/issues", 702 | "source": "https://github.com/guzzle/psr7/tree/2.3.0" 703 | }, 704 | "funding": [ 705 | { 706 | "url": "https://github.com/GrahamCampbell", 707 | "type": "github" 708 | }, 709 | { 710 | "url": "https://github.com/Nyholm", 711 | "type": "github" 712 | }, 713 | { 714 | "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", 715 | "type": "tidelift" 716 | } 717 | ], 718 | "time": "2022-06-09T08:26:02+00:00" 719 | }, 720 | { 721 | "name": "hassankhan/config", 722 | "version": "3.0.0", 723 | "source": { 724 | "type": "git", 725 | "url": "https://github.com/hassankhan/config.git", 726 | "reference": "a3f02c5158d0a772d242ffd377657793c08cc0c6" 727 | }, 728 | "dist": { 729 | "type": "zip", 730 | "url": "https://api.github.com/repos/hassankhan/config/zipball/a3f02c5158d0a772d242ffd377657793c08cc0c6", 731 | "reference": "a3f02c5158d0a772d242ffd377657793c08cc0c6", 732 | "shasum": "" 733 | }, 734 | "require": { 735 | "php": ">=5.5.9" 736 | }, 737 | "require-dev": { 738 | "phpunit/phpunit": "~4.8.36 || ~5.7 || ~6.5 || ~7.5 || ~8.5", 739 | "scrutinizer/ocular": "~1.1", 740 | "squizlabs/php_codesniffer": "~2.2", 741 | "symfony/yaml": "~3.4", 742 | "yoast/phpunit-polyfills": "^1.0" 743 | }, 744 | "suggest": { 745 | "symfony/yaml": "~3.4" 746 | }, 747 | "type": "library", 748 | "autoload": { 749 | "psr-4": { 750 | "Noodlehaus\\": "src" 751 | } 752 | }, 753 | "notification-url": "https://packagist.org/downloads/", 754 | "license": [ 755 | "MIT" 756 | ], 757 | "authors": [ 758 | { 759 | "name": "Hassan Khan", 760 | "homepage": "http://hassankhan.me/", 761 | "role": "Developer" 762 | } 763 | ], 764 | "description": "Lightweight configuration file loader that supports PHP, INI, XML, JSON, and YAML files", 765 | "homepage": "http://hassankhan.me/config/", 766 | "keywords": [ 767 | "config", 768 | "configuration", 769 | "ini", 770 | "json", 771 | "microphp", 772 | "unframework", 773 | "xml", 774 | "yaml", 775 | "yml" 776 | ], 777 | "support": { 778 | "issues": "https://github.com/hassankhan/config/issues", 779 | "source": "https://github.com/hassankhan/config/tree/3.0.0" 780 | }, 781 | "time": "2021-12-30T16:38:05+00:00" 782 | }, 783 | { 784 | "name": "jms/metadata", 785 | "version": "2.4.0", 786 | "source": { 787 | "type": "git", 788 | "url": "https://github.com/schmittjoh/metadata.git", 789 | "reference": "491917b66b44deff7d1c320d35c1b92237083f67" 790 | }, 791 | "dist": { 792 | "type": "zip", 793 | "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/491917b66b44deff7d1c320d35c1b92237083f67", 794 | "reference": "491917b66b44deff7d1c320d35c1b92237083f67", 795 | "shasum": "" 796 | }, 797 | "require": { 798 | "php": "^7.2|^8.0" 799 | }, 800 | "require-dev": { 801 | "doctrine/cache": "^1.0", 802 | "doctrine/coding-standard": "^8.0", 803 | "phpunit/phpunit": "^8.5|^9.0", 804 | "psr/container": "^1.0", 805 | "symfony/cache": "^3.1|^4.0|^5.0", 806 | "symfony/dependency-injection": "^3.1|^4.0|^5.0" 807 | }, 808 | "type": "library", 809 | "extra": { 810 | "branch-alias": { 811 | "dev-master": "2.x-dev" 812 | } 813 | }, 814 | "autoload": { 815 | "psr-4": { 816 | "Metadata\\": "src/" 817 | } 818 | }, 819 | "notification-url": "https://packagist.org/downloads/", 820 | "license": [ 821 | "MIT" 822 | ], 823 | "authors": [ 824 | { 825 | "name": "Johannes M. Schmitt", 826 | "email": "schmittjoh@gmail.com" 827 | }, 828 | { 829 | "name": "Asmir Mustafic", 830 | "email": "goetas@gmail.com" 831 | } 832 | ], 833 | "description": "Class/method/property metadata management in PHP", 834 | "keywords": [ 835 | "annotations", 836 | "metadata", 837 | "xml", 838 | "yaml" 839 | ], 840 | "support": { 841 | "issues": "https://github.com/schmittjoh/metadata/issues", 842 | "source": "https://github.com/schmittjoh/metadata/tree/2.4.0" 843 | }, 844 | "time": "2020-11-30T11:08:28+00:00" 845 | }, 846 | { 847 | "name": "jms/serializer", 848 | "version": "3.11.0", 849 | "source": { 850 | "type": "git", 851 | "url": "https://github.com/schmittjoh/serializer.git", 852 | "reference": "5158b454ecf209a9fea91c837e827355204581ea" 853 | }, 854 | "dist": { 855 | "type": "zip", 856 | "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/5158b454ecf209a9fea91c837e827355204581ea", 857 | "reference": "5158b454ecf209a9fea91c837e827355204581ea", 858 | "shasum": "" 859 | }, 860 | "require": { 861 | "doctrine/annotations": "^1.0", 862 | "doctrine/instantiator": "^1.0.3", 863 | "doctrine/lexer": "^1.1", 864 | "jms/metadata": "^2.0", 865 | "php": "^7.2||^8.0", 866 | "phpstan/phpdoc-parser": "^0.4" 867 | }, 868 | "require-dev": { 869 | "doctrine/coding-standard": "^8.1", 870 | "doctrine/orm": "~2.1", 871 | "doctrine/persistence": "^1.3.3|^2.0|^3.0", 872 | "doctrine/phpcr-odm": "^1.3|^2.0", 873 | "ext-pdo_sqlite": "*", 874 | "jackalope/jackalope-doctrine-dbal": "^1.1.5", 875 | "ocramius/proxy-manager": "^1.0|^2.0", 876 | "phpunit/phpunit": "^8.0||^9.0", 877 | "psr/container": "^1.0", 878 | "symfony/dependency-injection": "^3.0|^4.0|^5.0", 879 | "symfony/expression-language": "^3.0|^4.0|^5.0", 880 | "symfony/filesystem": "^3.0|^4.0|^5.0", 881 | "symfony/form": "^3.0|^4.0|^5.0", 882 | "symfony/translation": "^3.0|^4.0|^5.0", 883 | "symfony/validator": "^3.1.9|^4.0|^5.0", 884 | "symfony/yaml": "^3.3|^4.0|^5.0", 885 | "twig/twig": "~1.34|~2.4|^3.0" 886 | }, 887 | "suggest": { 888 | "doctrine/cache": "Required if you like to use cache functionality.", 889 | "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", 890 | "symfony/yaml": "Required if you'd like to use the YAML metadata format." 891 | }, 892 | "type": "library", 893 | "extra": { 894 | "branch-alias": { 895 | "dev-master": "3.11-dev" 896 | } 897 | }, 898 | "autoload": { 899 | "psr-4": { 900 | "JMS\\Serializer\\": "src/" 901 | } 902 | }, 903 | "notification-url": "https://packagist.org/downloads/", 904 | "license": [ 905 | "MIT" 906 | ], 907 | "authors": [ 908 | { 909 | "name": "Johannes M. Schmitt", 910 | "email": "schmittjoh@gmail.com" 911 | }, 912 | { 913 | "name": "Asmir Mustafic", 914 | "email": "goetas@gmail.com" 915 | } 916 | ], 917 | "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", 918 | "homepage": "http://jmsyst.com/libs/serializer", 919 | "keywords": [ 920 | "deserialization", 921 | "jaxb", 922 | "json", 923 | "serialization", 924 | "xml" 925 | ], 926 | "support": { 927 | "issues": "https://github.com/schmittjoh/serializer/issues", 928 | "source": "https://github.com/schmittjoh/serializer/tree/3.11.0" 929 | }, 930 | "funding": [ 931 | { 932 | "url": "https://github.com/goetas", 933 | "type": "github" 934 | } 935 | ], 936 | "time": "2020-12-29T12:26:56+00:00" 937 | }, 938 | { 939 | "name": "myclabs/deep-copy", 940 | "version": "1.10.1", 941 | "source": { 942 | "type": "git", 943 | "url": "https://github.com/myclabs/DeepCopy.git", 944 | "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5" 945 | }, 946 | "dist": { 947 | "type": "zip", 948 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", 949 | "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", 950 | "shasum": "" 951 | }, 952 | "require": { 953 | "php": "^7.1 || ^8.0" 954 | }, 955 | "require-dev": { 956 | "doctrine/collections": "^1.0", 957 | "doctrine/common": "^2.6", 958 | "phpunit/phpunit": "^7.1" 959 | }, 960 | "type": "library", 961 | "autoload": { 962 | "files": [ 963 | "src/DeepCopy/deep_copy.php" 964 | ], 965 | "psr-4": { 966 | "DeepCopy\\": "src/DeepCopy/" 967 | } 968 | }, 969 | "notification-url": "https://packagist.org/downloads/", 970 | "license": [ 971 | "MIT" 972 | ], 973 | "description": "Create deep copies (clones) of your objects", 974 | "keywords": [ 975 | "clone", 976 | "copy", 977 | "duplicate", 978 | "object", 979 | "object graph" 980 | ], 981 | "support": { 982 | "issues": "https://github.com/myclabs/DeepCopy/issues", 983 | "source": "https://github.com/myclabs/DeepCopy/tree/1.x" 984 | }, 985 | "funding": [ 986 | { 987 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 988 | "type": "tidelift" 989 | } 990 | ], 991 | "time": "2020-06-29T13:22:24+00:00" 992 | }, 993 | { 994 | "name": "nikic/php-parser", 995 | "version": "v4.13.0", 996 | "source": { 997 | "type": "git", 998 | "url": "https://github.com/nikic/PHP-Parser.git", 999 | "reference": "50953a2691a922aa1769461637869a0a2faa3f53" 1000 | }, 1001 | "dist": { 1002 | "type": "zip", 1003 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/50953a2691a922aa1769461637869a0a2faa3f53", 1004 | "reference": "50953a2691a922aa1769461637869a0a2faa3f53", 1005 | "shasum": "" 1006 | }, 1007 | "require": { 1008 | "ext-tokenizer": "*", 1009 | "php": ">=7.0" 1010 | }, 1011 | "require-dev": { 1012 | "ircmaxell/php-yacc": "^0.0.7", 1013 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" 1014 | }, 1015 | "bin": [ 1016 | "bin/php-parse" 1017 | ], 1018 | "type": "library", 1019 | "extra": { 1020 | "branch-alias": { 1021 | "dev-master": "4.9-dev" 1022 | } 1023 | }, 1024 | "autoload": { 1025 | "psr-4": { 1026 | "PhpParser\\": "lib/PhpParser" 1027 | } 1028 | }, 1029 | "notification-url": "https://packagist.org/downloads/", 1030 | "license": [ 1031 | "BSD-3-Clause" 1032 | ], 1033 | "authors": [ 1034 | { 1035 | "name": "Nikita Popov" 1036 | } 1037 | ], 1038 | "description": "A PHP parser written in PHP", 1039 | "keywords": [ 1040 | "parser", 1041 | "php" 1042 | ], 1043 | "support": { 1044 | "issues": "https://github.com/nikic/PHP-Parser/issues", 1045 | "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.0" 1046 | }, 1047 | "time": "2021-09-20T12:20:58+00:00" 1048 | }, 1049 | { 1050 | "name": "phar-io/manifest", 1051 | "version": "2.0.3", 1052 | "source": { 1053 | "type": "git", 1054 | "url": "https://github.com/phar-io/manifest.git", 1055 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53" 1056 | }, 1057 | "dist": { 1058 | "type": "zip", 1059 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", 1060 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53", 1061 | "shasum": "" 1062 | }, 1063 | "require": { 1064 | "ext-dom": "*", 1065 | "ext-phar": "*", 1066 | "ext-xmlwriter": "*", 1067 | "phar-io/version": "^3.0.1", 1068 | "php": "^7.2 || ^8.0" 1069 | }, 1070 | "type": "library", 1071 | "extra": { 1072 | "branch-alias": { 1073 | "dev-master": "2.0.x-dev" 1074 | } 1075 | }, 1076 | "autoload": { 1077 | "classmap": [ 1078 | "src/" 1079 | ] 1080 | }, 1081 | "notification-url": "https://packagist.org/downloads/", 1082 | "license": [ 1083 | "BSD-3-Clause" 1084 | ], 1085 | "authors": [ 1086 | { 1087 | "name": "Arne Blankerts", 1088 | "email": "arne@blankerts.de", 1089 | "role": "Developer" 1090 | }, 1091 | { 1092 | "name": "Sebastian Heuer", 1093 | "email": "sebastian@phpeople.de", 1094 | "role": "Developer" 1095 | }, 1096 | { 1097 | "name": "Sebastian Bergmann", 1098 | "email": "sebastian@phpunit.de", 1099 | "role": "Developer" 1100 | } 1101 | ], 1102 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 1103 | "support": { 1104 | "issues": "https://github.com/phar-io/manifest/issues", 1105 | "source": "https://github.com/phar-io/manifest/tree/2.0.3" 1106 | }, 1107 | "time": "2021-07-20T11:28:43+00:00" 1108 | }, 1109 | { 1110 | "name": "phar-io/version", 1111 | "version": "3.0.2", 1112 | "source": { 1113 | "type": "git", 1114 | "url": "https://github.com/phar-io/version.git", 1115 | "reference": "c6bb6825def89e0a32220f88337f8ceaf1975fa0" 1116 | }, 1117 | "dist": { 1118 | "type": "zip", 1119 | "url": "https://api.github.com/repos/phar-io/version/zipball/c6bb6825def89e0a32220f88337f8ceaf1975fa0", 1120 | "reference": "c6bb6825def89e0a32220f88337f8ceaf1975fa0", 1121 | "shasum": "" 1122 | }, 1123 | "require": { 1124 | "php": "^7.2 || ^8.0" 1125 | }, 1126 | "type": "library", 1127 | "autoload": { 1128 | "classmap": [ 1129 | "src/" 1130 | ] 1131 | }, 1132 | "notification-url": "https://packagist.org/downloads/", 1133 | "license": [ 1134 | "BSD-3-Clause" 1135 | ], 1136 | "authors": [ 1137 | { 1138 | "name": "Arne Blankerts", 1139 | "email": "arne@blankerts.de", 1140 | "role": "Developer" 1141 | }, 1142 | { 1143 | "name": "Sebastian Heuer", 1144 | "email": "sebastian@phpeople.de", 1145 | "role": "Developer" 1146 | }, 1147 | { 1148 | "name": "Sebastian Bergmann", 1149 | "email": "sebastian@phpunit.de", 1150 | "role": "Developer" 1151 | } 1152 | ], 1153 | "description": "Library for handling version information and constraints", 1154 | "support": { 1155 | "issues": "https://github.com/phar-io/version/issues", 1156 | "source": "https://github.com/phar-io/version/tree/master" 1157 | }, 1158 | "time": "2020-06-27T14:39:04+00:00" 1159 | }, 1160 | { 1161 | "name": "phpdocumentor/reflection-common", 1162 | "version": "2.2.0", 1163 | "source": { 1164 | "type": "git", 1165 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 1166 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" 1167 | }, 1168 | "dist": { 1169 | "type": "zip", 1170 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", 1171 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", 1172 | "shasum": "" 1173 | }, 1174 | "require": { 1175 | "php": "^7.2 || ^8.0" 1176 | }, 1177 | "type": "library", 1178 | "extra": { 1179 | "branch-alias": { 1180 | "dev-2.x": "2.x-dev" 1181 | } 1182 | }, 1183 | "autoload": { 1184 | "psr-4": { 1185 | "phpDocumentor\\Reflection\\": "src/" 1186 | } 1187 | }, 1188 | "notification-url": "https://packagist.org/downloads/", 1189 | "license": [ 1190 | "MIT" 1191 | ], 1192 | "authors": [ 1193 | { 1194 | "name": "Jaap van Otterdijk", 1195 | "email": "opensource@ijaap.nl" 1196 | } 1197 | ], 1198 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 1199 | "homepage": "http://www.phpdoc.org", 1200 | "keywords": [ 1201 | "FQSEN", 1202 | "phpDocumentor", 1203 | "phpdoc", 1204 | "reflection", 1205 | "static analysis" 1206 | ], 1207 | "support": { 1208 | "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", 1209 | "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" 1210 | }, 1211 | "time": "2020-06-27T09:03:43+00:00" 1212 | }, 1213 | { 1214 | "name": "phpdocumentor/reflection-docblock", 1215 | "version": "5.2.0", 1216 | "source": { 1217 | "type": "git", 1218 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 1219 | "reference": "3170448f5769fe19f456173d833734e0ff1b84df" 1220 | }, 1221 | "dist": { 1222 | "type": "zip", 1223 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/3170448f5769fe19f456173d833734e0ff1b84df", 1224 | "reference": "3170448f5769fe19f456173d833734e0ff1b84df", 1225 | "shasum": "" 1226 | }, 1227 | "require": { 1228 | "ext-filter": "*", 1229 | "php": "^7.2 || ^8.0", 1230 | "phpdocumentor/reflection-common": "^2.2", 1231 | "phpdocumentor/type-resolver": "^1.3", 1232 | "webmozart/assert": "^1.9.1" 1233 | }, 1234 | "require-dev": { 1235 | "mockery/mockery": "~1.3.2" 1236 | }, 1237 | "type": "library", 1238 | "extra": { 1239 | "branch-alias": { 1240 | "dev-master": "5.x-dev" 1241 | } 1242 | }, 1243 | "autoload": { 1244 | "psr-4": { 1245 | "phpDocumentor\\Reflection\\": "src" 1246 | } 1247 | }, 1248 | "notification-url": "https://packagist.org/downloads/", 1249 | "license": [ 1250 | "MIT" 1251 | ], 1252 | "authors": [ 1253 | { 1254 | "name": "Mike van Riel", 1255 | "email": "me@mikevanriel.com" 1256 | }, 1257 | { 1258 | "name": "Jaap van Otterdijk", 1259 | "email": "account@ijaap.nl" 1260 | } 1261 | ], 1262 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 1263 | "support": { 1264 | "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", 1265 | "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" 1266 | }, 1267 | "time": "2020-07-20T20:05:34+00:00" 1268 | }, 1269 | { 1270 | "name": "phpdocumentor/type-resolver", 1271 | "version": "1.3.0", 1272 | "source": { 1273 | "type": "git", 1274 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 1275 | "reference": "e878a14a65245fbe78f8080eba03b47c3b705651" 1276 | }, 1277 | "dist": { 1278 | "type": "zip", 1279 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e878a14a65245fbe78f8080eba03b47c3b705651", 1280 | "reference": "e878a14a65245fbe78f8080eba03b47c3b705651", 1281 | "shasum": "" 1282 | }, 1283 | "require": { 1284 | "php": "^7.2 || ^8.0", 1285 | "phpdocumentor/reflection-common": "^2.0" 1286 | }, 1287 | "require-dev": { 1288 | "ext-tokenizer": "*" 1289 | }, 1290 | "type": "library", 1291 | "extra": { 1292 | "branch-alias": { 1293 | "dev-1.x": "1.x-dev" 1294 | } 1295 | }, 1296 | "autoload": { 1297 | "psr-4": { 1298 | "phpDocumentor\\Reflection\\": "src" 1299 | } 1300 | }, 1301 | "notification-url": "https://packagist.org/downloads/", 1302 | "license": [ 1303 | "MIT" 1304 | ], 1305 | "authors": [ 1306 | { 1307 | "name": "Mike van Riel", 1308 | "email": "me@mikevanriel.com" 1309 | } 1310 | ], 1311 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 1312 | "support": { 1313 | "issues": "https://github.com/phpDocumentor/TypeResolver/issues", 1314 | "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.x" 1315 | }, 1316 | "time": "2020-06-27T10:12:23+00:00" 1317 | }, 1318 | { 1319 | "name": "phpoption/phpoption", 1320 | "version": "1.0.0", 1321 | "source": { 1322 | "type": "git", 1323 | "url": "https://github.com/schmittjoh/php-option.git", 1324 | "reference": "b9c60ebf8242cf409d8734b6a757ba0ce1691493" 1325 | }, 1326 | "dist": { 1327 | "type": "zip", 1328 | "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/b9c60ebf8242cf409d8734b6a757ba0ce1691493", 1329 | "reference": "b9c60ebf8242cf409d8734b6a757ba0ce1691493", 1330 | "shasum": "" 1331 | }, 1332 | "require": { 1333 | "php": ">=5.3.0" 1334 | }, 1335 | "type": "library", 1336 | "extra": { 1337 | "branch-alias": { 1338 | "dev-master": "1.0-dev" 1339 | } 1340 | }, 1341 | "autoload": { 1342 | "psr-0": { 1343 | "PhpOption\\": "src/" 1344 | } 1345 | }, 1346 | "notification-url": "https://packagist.org/downloads/", 1347 | "license": [ 1348 | "Apache2" 1349 | ], 1350 | "authors": [ 1351 | { 1352 | "name": "Johannes Schmitt", 1353 | "email": "schmittjoh@gmail.com", 1354 | "homepage": "https://github.com/schmittjoh", 1355 | "role": "Developer of wrapped JMSSerializerBundle" 1356 | } 1357 | ], 1358 | "description": "Option Type for PHP", 1359 | "keywords": [ 1360 | "language", 1361 | "option", 1362 | "php", 1363 | "type" 1364 | ], 1365 | "support": { 1366 | "issues": "https://github.com/schmittjoh/php-option/issues", 1367 | "source": "https://github.com/schmittjoh/php-option/tree/1.0.0" 1368 | }, 1369 | "time": "2012-11-18T14:14:12+00:00" 1370 | }, 1371 | { 1372 | "name": "phpspec/prophecy", 1373 | "version": "1.14.0", 1374 | "source": { 1375 | "type": "git", 1376 | "url": "https://github.com/phpspec/prophecy.git", 1377 | "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e" 1378 | }, 1379 | "dist": { 1380 | "type": "zip", 1381 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", 1382 | "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", 1383 | "shasum": "" 1384 | }, 1385 | "require": { 1386 | "doctrine/instantiator": "^1.2", 1387 | "php": "^7.2 || ~8.0, <8.2", 1388 | "phpdocumentor/reflection-docblock": "^5.2", 1389 | "sebastian/comparator": "^3.0 || ^4.0", 1390 | "sebastian/recursion-context": "^3.0 || ^4.0" 1391 | }, 1392 | "require-dev": { 1393 | "phpspec/phpspec": "^6.0 || ^7.0", 1394 | "phpunit/phpunit": "^8.0 || ^9.0" 1395 | }, 1396 | "type": "library", 1397 | "extra": { 1398 | "branch-alias": { 1399 | "dev-master": "1.x-dev" 1400 | } 1401 | }, 1402 | "autoload": { 1403 | "psr-4": { 1404 | "Prophecy\\": "src/Prophecy" 1405 | } 1406 | }, 1407 | "notification-url": "https://packagist.org/downloads/", 1408 | "license": [ 1409 | "MIT" 1410 | ], 1411 | "authors": [ 1412 | { 1413 | "name": "Konstantin Kudryashov", 1414 | "email": "ever.zet@gmail.com", 1415 | "homepage": "http://everzet.com" 1416 | }, 1417 | { 1418 | "name": "Marcello Duarte", 1419 | "email": "marcello.duarte@gmail.com" 1420 | } 1421 | ], 1422 | "description": "Highly opinionated mocking framework for PHP 5.3+", 1423 | "homepage": "https://github.com/phpspec/prophecy", 1424 | "keywords": [ 1425 | "Double", 1426 | "Dummy", 1427 | "fake", 1428 | "mock", 1429 | "spy", 1430 | "stub" 1431 | ], 1432 | "support": { 1433 | "issues": "https://github.com/phpspec/prophecy/issues", 1434 | "source": "https://github.com/phpspec/prophecy/tree/1.14.0" 1435 | }, 1436 | "time": "2021-09-10T09:02:12+00:00" 1437 | }, 1438 | { 1439 | "name": "phpstan/phpdoc-parser", 1440 | "version": "0.4.9", 1441 | "source": { 1442 | "type": "git", 1443 | "url": "https://github.com/phpstan/phpdoc-parser.git", 1444 | "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531" 1445 | }, 1446 | "dist": { 1447 | "type": "zip", 1448 | "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/98a088b17966bdf6ee25c8a4b634df313d8aa531", 1449 | "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531", 1450 | "shasum": "" 1451 | }, 1452 | "require": { 1453 | "php": "^7.1 || ^8.0" 1454 | }, 1455 | "require-dev": { 1456 | "consistence/coding-standard": "^3.5", 1457 | "ergebnis/composer-normalize": "^2.0.2", 1458 | "jakub-onderka/php-parallel-lint": "^0.9.2", 1459 | "phing/phing": "^2.16.0", 1460 | "phpstan/extension-installer": "^1.0", 1461 | "phpstan/phpstan": "^0.12.26", 1462 | "phpstan/phpstan-strict-rules": "^0.12", 1463 | "phpunit/phpunit": "^6.3", 1464 | "slevomat/coding-standard": "^4.7.2", 1465 | "symfony/process": "^4.0" 1466 | }, 1467 | "type": "library", 1468 | "extra": { 1469 | "branch-alias": { 1470 | "dev-master": "0.4-dev" 1471 | } 1472 | }, 1473 | "autoload": { 1474 | "psr-4": { 1475 | "PHPStan\\PhpDocParser\\": [ 1476 | "src/" 1477 | ] 1478 | } 1479 | }, 1480 | "notification-url": "https://packagist.org/downloads/", 1481 | "license": [ 1482 | "MIT" 1483 | ], 1484 | "description": "PHPDoc parser with support for nullable, intersection and generic types", 1485 | "support": { 1486 | "issues": "https://github.com/phpstan/phpdoc-parser/issues", 1487 | "source": "https://github.com/phpstan/phpdoc-parser/tree/master" 1488 | }, 1489 | "time": "2020-08-03T20:32:43+00:00" 1490 | }, 1491 | { 1492 | "name": "phpunit/php-code-coverage", 1493 | "version": "9.2.13", 1494 | "source": { 1495 | "type": "git", 1496 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1497 | "reference": "deac8540cb7bd40b2b8cfa679b76202834fd04e8" 1498 | }, 1499 | "dist": { 1500 | "type": "zip", 1501 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/deac8540cb7bd40b2b8cfa679b76202834fd04e8", 1502 | "reference": "deac8540cb7bd40b2b8cfa679b76202834fd04e8", 1503 | "shasum": "" 1504 | }, 1505 | "require": { 1506 | "ext-dom": "*", 1507 | "ext-libxml": "*", 1508 | "ext-xmlwriter": "*", 1509 | "nikic/php-parser": "^4.13.0", 1510 | "php": ">=7.3", 1511 | "phpunit/php-file-iterator": "^3.0.3", 1512 | "phpunit/php-text-template": "^2.0.2", 1513 | "sebastian/code-unit-reverse-lookup": "^2.0.2", 1514 | "sebastian/complexity": "^2.0", 1515 | "sebastian/environment": "^5.1.2", 1516 | "sebastian/lines-of-code": "^1.0.3", 1517 | "sebastian/version": "^3.0.1", 1518 | "theseer/tokenizer": "^1.2.0" 1519 | }, 1520 | "require-dev": { 1521 | "phpunit/phpunit": "^9.3" 1522 | }, 1523 | "suggest": { 1524 | "ext-pcov": "*", 1525 | "ext-xdebug": "*" 1526 | }, 1527 | "type": "library", 1528 | "extra": { 1529 | "branch-alias": { 1530 | "dev-master": "9.2-dev" 1531 | } 1532 | }, 1533 | "autoload": { 1534 | "classmap": [ 1535 | "src/" 1536 | ] 1537 | }, 1538 | "notification-url": "https://packagist.org/downloads/", 1539 | "license": [ 1540 | "BSD-3-Clause" 1541 | ], 1542 | "authors": [ 1543 | { 1544 | "name": "Sebastian Bergmann", 1545 | "email": "sebastian@phpunit.de", 1546 | "role": "lead" 1547 | } 1548 | ], 1549 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 1550 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 1551 | "keywords": [ 1552 | "coverage", 1553 | "testing", 1554 | "xunit" 1555 | ], 1556 | "support": { 1557 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 1558 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.13" 1559 | }, 1560 | "funding": [ 1561 | { 1562 | "url": "https://github.com/sebastianbergmann", 1563 | "type": "github" 1564 | } 1565 | ], 1566 | "time": "2022-02-23T17:02:38+00:00" 1567 | }, 1568 | { 1569 | "name": "phpunit/php-file-iterator", 1570 | "version": "3.0.5", 1571 | "source": { 1572 | "type": "git", 1573 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 1574 | "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" 1575 | }, 1576 | "dist": { 1577 | "type": "zip", 1578 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", 1579 | "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", 1580 | "shasum": "" 1581 | }, 1582 | "require": { 1583 | "php": ">=7.3" 1584 | }, 1585 | "require-dev": { 1586 | "phpunit/phpunit": "^9.3" 1587 | }, 1588 | "type": "library", 1589 | "extra": { 1590 | "branch-alias": { 1591 | "dev-master": "3.0-dev" 1592 | } 1593 | }, 1594 | "autoload": { 1595 | "classmap": [ 1596 | "src/" 1597 | ] 1598 | }, 1599 | "notification-url": "https://packagist.org/downloads/", 1600 | "license": [ 1601 | "BSD-3-Clause" 1602 | ], 1603 | "authors": [ 1604 | { 1605 | "name": "Sebastian Bergmann", 1606 | "email": "sebastian@phpunit.de", 1607 | "role": "lead" 1608 | } 1609 | ], 1610 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 1611 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 1612 | "keywords": [ 1613 | "filesystem", 1614 | "iterator" 1615 | ], 1616 | "support": { 1617 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 1618 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" 1619 | }, 1620 | "funding": [ 1621 | { 1622 | "url": "https://github.com/sebastianbergmann", 1623 | "type": "github" 1624 | } 1625 | ], 1626 | "time": "2020-09-28T05:57:25+00:00" 1627 | }, 1628 | { 1629 | "name": "phpunit/php-invoker", 1630 | "version": "3.1.1", 1631 | "source": { 1632 | "type": "git", 1633 | "url": "https://github.com/sebastianbergmann/php-invoker.git", 1634 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" 1635 | }, 1636 | "dist": { 1637 | "type": "zip", 1638 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 1639 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 1640 | "shasum": "" 1641 | }, 1642 | "require": { 1643 | "php": ">=7.3" 1644 | }, 1645 | "require-dev": { 1646 | "ext-pcntl": "*", 1647 | "phpunit/phpunit": "^9.3" 1648 | }, 1649 | "suggest": { 1650 | "ext-pcntl": "*" 1651 | }, 1652 | "type": "library", 1653 | "extra": { 1654 | "branch-alias": { 1655 | "dev-master": "3.1-dev" 1656 | } 1657 | }, 1658 | "autoload": { 1659 | "classmap": [ 1660 | "src/" 1661 | ] 1662 | }, 1663 | "notification-url": "https://packagist.org/downloads/", 1664 | "license": [ 1665 | "BSD-3-Clause" 1666 | ], 1667 | "authors": [ 1668 | { 1669 | "name": "Sebastian Bergmann", 1670 | "email": "sebastian@phpunit.de", 1671 | "role": "lead" 1672 | } 1673 | ], 1674 | "description": "Invoke callables with a timeout", 1675 | "homepage": "https://github.com/sebastianbergmann/php-invoker/", 1676 | "keywords": [ 1677 | "process" 1678 | ], 1679 | "support": { 1680 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues", 1681 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" 1682 | }, 1683 | "funding": [ 1684 | { 1685 | "url": "https://github.com/sebastianbergmann", 1686 | "type": "github" 1687 | } 1688 | ], 1689 | "time": "2020-09-28T05:58:55+00:00" 1690 | }, 1691 | { 1692 | "name": "phpunit/php-text-template", 1693 | "version": "2.0.3", 1694 | "source": { 1695 | "type": "git", 1696 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 1697 | "reference": "18c887016e60e52477e54534956d7b47bc52cd84" 1698 | }, 1699 | "dist": { 1700 | "type": "zip", 1701 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/18c887016e60e52477e54534956d7b47bc52cd84", 1702 | "reference": "18c887016e60e52477e54534956d7b47bc52cd84", 1703 | "shasum": "" 1704 | }, 1705 | "require": { 1706 | "php": ">=7.3" 1707 | }, 1708 | "require-dev": { 1709 | "phpunit/phpunit": "^9.3" 1710 | }, 1711 | "type": "library", 1712 | "extra": { 1713 | "branch-alias": { 1714 | "dev-master": "2.0-dev" 1715 | } 1716 | }, 1717 | "autoload": { 1718 | "classmap": [ 1719 | "src/" 1720 | ] 1721 | }, 1722 | "notification-url": "https://packagist.org/downloads/", 1723 | "license": [ 1724 | "BSD-3-Clause" 1725 | ], 1726 | "authors": [ 1727 | { 1728 | "name": "Sebastian Bergmann", 1729 | "email": "sebastian@phpunit.de", 1730 | "role": "lead" 1731 | } 1732 | ], 1733 | "description": "Simple template engine.", 1734 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 1735 | "keywords": [ 1736 | "template" 1737 | ], 1738 | "support": { 1739 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 1740 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.3" 1741 | }, 1742 | "funding": [ 1743 | { 1744 | "url": "https://github.com/sebastianbergmann", 1745 | "type": "github" 1746 | } 1747 | ], 1748 | "time": "2020-09-28T06:03:05+00:00" 1749 | }, 1750 | { 1751 | "name": "phpunit/php-timer", 1752 | "version": "5.0.2", 1753 | "source": { 1754 | "type": "git", 1755 | "url": "https://github.com/sebastianbergmann/php-timer.git", 1756 | "reference": "c9ff14f493699e2f6adee9fd06a0245b276643b7" 1757 | }, 1758 | "dist": { 1759 | "type": "zip", 1760 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/c9ff14f493699e2f6adee9fd06a0245b276643b7", 1761 | "reference": "c9ff14f493699e2f6adee9fd06a0245b276643b7", 1762 | "shasum": "" 1763 | }, 1764 | "require": { 1765 | "php": ">=7.3" 1766 | }, 1767 | "require-dev": { 1768 | "phpunit/phpunit": "^9.3" 1769 | }, 1770 | "type": "library", 1771 | "extra": { 1772 | "branch-alias": { 1773 | "dev-master": "5.0-dev" 1774 | } 1775 | }, 1776 | "autoload": { 1777 | "classmap": [ 1778 | "src/" 1779 | ] 1780 | }, 1781 | "notification-url": "https://packagist.org/downloads/", 1782 | "license": [ 1783 | "BSD-3-Clause" 1784 | ], 1785 | "authors": [ 1786 | { 1787 | "name": "Sebastian Bergmann", 1788 | "email": "sebastian@phpunit.de", 1789 | "role": "lead" 1790 | } 1791 | ], 1792 | "description": "Utility class for timing", 1793 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 1794 | "keywords": [ 1795 | "timer" 1796 | ], 1797 | "support": { 1798 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 1799 | "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.2" 1800 | }, 1801 | "funding": [ 1802 | { 1803 | "url": "https://github.com/sebastianbergmann", 1804 | "type": "github" 1805 | } 1806 | ], 1807 | "time": "2020-09-28T06:00:25+00:00" 1808 | }, 1809 | { 1810 | "name": "phpunit/phpunit", 1811 | "version": "9.5.20", 1812 | "source": { 1813 | "type": "git", 1814 | "url": "https://github.com/sebastianbergmann/phpunit.git", 1815 | "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba" 1816 | }, 1817 | "dist": { 1818 | "type": "zip", 1819 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba", 1820 | "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba", 1821 | "shasum": "" 1822 | }, 1823 | "require": { 1824 | "doctrine/instantiator": "^1.3.1", 1825 | "ext-dom": "*", 1826 | "ext-json": "*", 1827 | "ext-libxml": "*", 1828 | "ext-mbstring": "*", 1829 | "ext-xml": "*", 1830 | "ext-xmlwriter": "*", 1831 | "myclabs/deep-copy": "^1.10.1", 1832 | "phar-io/manifest": "^2.0.3", 1833 | "phar-io/version": "^3.0.2", 1834 | "php": ">=7.3", 1835 | "phpspec/prophecy": "^1.12.1", 1836 | "phpunit/php-code-coverage": "^9.2.13", 1837 | "phpunit/php-file-iterator": "^3.0.5", 1838 | "phpunit/php-invoker": "^3.1.1", 1839 | "phpunit/php-text-template": "^2.0.3", 1840 | "phpunit/php-timer": "^5.0.2", 1841 | "sebastian/cli-parser": "^1.0.1", 1842 | "sebastian/code-unit": "^1.0.6", 1843 | "sebastian/comparator": "^4.0.5", 1844 | "sebastian/diff": "^4.0.3", 1845 | "sebastian/environment": "^5.1.3", 1846 | "sebastian/exporter": "^4.0.3", 1847 | "sebastian/global-state": "^5.0.1", 1848 | "sebastian/object-enumerator": "^4.0.3", 1849 | "sebastian/resource-operations": "^3.0.3", 1850 | "sebastian/type": "^3.0", 1851 | "sebastian/version": "^3.0.2" 1852 | }, 1853 | "require-dev": { 1854 | "ext-pdo": "*", 1855 | "phpspec/prophecy-phpunit": "^2.0.1" 1856 | }, 1857 | "suggest": { 1858 | "ext-soap": "*", 1859 | "ext-xdebug": "*" 1860 | }, 1861 | "bin": [ 1862 | "phpunit" 1863 | ], 1864 | "type": "library", 1865 | "extra": { 1866 | "branch-alias": { 1867 | "dev-master": "9.5-dev" 1868 | } 1869 | }, 1870 | "autoload": { 1871 | "files": [ 1872 | "src/Framework/Assert/Functions.php" 1873 | ], 1874 | "classmap": [ 1875 | "src/" 1876 | ] 1877 | }, 1878 | "notification-url": "https://packagist.org/downloads/", 1879 | "license": [ 1880 | "BSD-3-Clause" 1881 | ], 1882 | "authors": [ 1883 | { 1884 | "name": "Sebastian Bergmann", 1885 | "email": "sebastian@phpunit.de", 1886 | "role": "lead" 1887 | } 1888 | ], 1889 | "description": "The PHP Unit Testing framework.", 1890 | "homepage": "https://phpunit.de/", 1891 | "keywords": [ 1892 | "phpunit", 1893 | "testing", 1894 | "xunit" 1895 | ], 1896 | "support": { 1897 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 1898 | "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20" 1899 | }, 1900 | "funding": [ 1901 | { 1902 | "url": "https://phpunit.de/sponsors.html", 1903 | "type": "custom" 1904 | }, 1905 | { 1906 | "url": "https://github.com/sebastianbergmann", 1907 | "type": "github" 1908 | } 1909 | ], 1910 | "time": "2022-04-01T12:37:26+00:00" 1911 | }, 1912 | { 1913 | "name": "psr/container", 1914 | "version": "1.0.0", 1915 | "source": { 1916 | "type": "git", 1917 | "url": "https://github.com/php-fig/container.git", 1918 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 1919 | }, 1920 | "dist": { 1921 | "type": "zip", 1922 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 1923 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 1924 | "shasum": "" 1925 | }, 1926 | "require": { 1927 | "php": ">=5.3.0" 1928 | }, 1929 | "type": "library", 1930 | "extra": { 1931 | "branch-alias": { 1932 | "dev-master": "1.0.x-dev" 1933 | } 1934 | }, 1935 | "autoload": { 1936 | "psr-4": { 1937 | "Psr\\Container\\": "src/" 1938 | } 1939 | }, 1940 | "notification-url": "https://packagist.org/downloads/", 1941 | "license": [ 1942 | "MIT" 1943 | ], 1944 | "authors": [ 1945 | { 1946 | "name": "PHP-FIG", 1947 | "homepage": "http://www.php-fig.org/" 1948 | } 1949 | ], 1950 | "description": "Common Container Interface (PHP FIG PSR-11)", 1951 | "homepage": "https://github.com/php-fig/container", 1952 | "keywords": [ 1953 | "PSR-11", 1954 | "container", 1955 | "container-interface", 1956 | "container-interop", 1957 | "psr" 1958 | ], 1959 | "support": { 1960 | "issues": "https://github.com/php-fig/container/issues", 1961 | "source": "https://github.com/php-fig/container/tree/master" 1962 | }, 1963 | "time": "2017-02-14T16:28:37+00:00" 1964 | }, 1965 | { 1966 | "name": "psr/http-client", 1967 | "version": "1.0.1", 1968 | "source": { 1969 | "type": "git", 1970 | "url": "https://github.com/php-fig/http-client.git", 1971 | "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" 1972 | }, 1973 | "dist": { 1974 | "type": "zip", 1975 | "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", 1976 | "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", 1977 | "shasum": "" 1978 | }, 1979 | "require": { 1980 | "php": "^7.0 || ^8.0", 1981 | "psr/http-message": "^1.0" 1982 | }, 1983 | "type": "library", 1984 | "extra": { 1985 | "branch-alias": { 1986 | "dev-master": "1.0.x-dev" 1987 | } 1988 | }, 1989 | "autoload": { 1990 | "psr-4": { 1991 | "Psr\\Http\\Client\\": "src/" 1992 | } 1993 | }, 1994 | "notification-url": "https://packagist.org/downloads/", 1995 | "license": [ 1996 | "MIT" 1997 | ], 1998 | "authors": [ 1999 | { 2000 | "name": "PHP-FIG", 2001 | "homepage": "http://www.php-fig.org/" 2002 | } 2003 | ], 2004 | "description": "Common interface for HTTP clients", 2005 | "homepage": "https://github.com/php-fig/http-client", 2006 | "keywords": [ 2007 | "http", 2008 | "http-client", 2009 | "psr", 2010 | "psr-18" 2011 | ], 2012 | "support": { 2013 | "source": "https://github.com/php-fig/http-client/tree/master" 2014 | }, 2015 | "time": "2020-06-29T06:28:15+00:00" 2016 | }, 2017 | { 2018 | "name": "psr/http-factory", 2019 | "version": "1.0.1", 2020 | "source": { 2021 | "type": "git", 2022 | "url": "https://github.com/php-fig/http-factory.git", 2023 | "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" 2024 | }, 2025 | "dist": { 2026 | "type": "zip", 2027 | "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", 2028 | "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", 2029 | "shasum": "" 2030 | }, 2031 | "require": { 2032 | "php": ">=7.0.0", 2033 | "psr/http-message": "^1.0" 2034 | }, 2035 | "type": "library", 2036 | "extra": { 2037 | "branch-alias": { 2038 | "dev-master": "1.0.x-dev" 2039 | } 2040 | }, 2041 | "autoload": { 2042 | "psr-4": { 2043 | "Psr\\Http\\Message\\": "src/" 2044 | } 2045 | }, 2046 | "notification-url": "https://packagist.org/downloads/", 2047 | "license": [ 2048 | "MIT" 2049 | ], 2050 | "authors": [ 2051 | { 2052 | "name": "PHP-FIG", 2053 | "homepage": "http://www.php-fig.org/" 2054 | } 2055 | ], 2056 | "description": "Common interfaces for PSR-7 HTTP message factories", 2057 | "keywords": [ 2058 | "factory", 2059 | "http", 2060 | "message", 2061 | "psr", 2062 | "psr-17", 2063 | "psr-7", 2064 | "request", 2065 | "response" 2066 | ], 2067 | "support": { 2068 | "source": "https://github.com/php-fig/http-factory/tree/master" 2069 | }, 2070 | "time": "2019-04-30T12:38:16+00:00" 2071 | }, 2072 | { 2073 | "name": "psr/http-message", 2074 | "version": "1.0.1", 2075 | "source": { 2076 | "type": "git", 2077 | "url": "https://github.com/php-fig/http-message.git", 2078 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" 2079 | }, 2080 | "dist": { 2081 | "type": "zip", 2082 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", 2083 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", 2084 | "shasum": "" 2085 | }, 2086 | "require": { 2087 | "php": ">=5.3.0" 2088 | }, 2089 | "type": "library", 2090 | "extra": { 2091 | "branch-alias": { 2092 | "dev-master": "1.0.x-dev" 2093 | } 2094 | }, 2095 | "autoload": { 2096 | "psr-4": { 2097 | "Psr\\Http\\Message\\": "src/" 2098 | } 2099 | }, 2100 | "notification-url": "https://packagist.org/downloads/", 2101 | "license": [ 2102 | "MIT" 2103 | ], 2104 | "authors": [ 2105 | { 2106 | "name": "PHP-FIG", 2107 | "homepage": "http://www.php-fig.org/" 2108 | } 2109 | ], 2110 | "description": "Common interface for HTTP messages", 2111 | "homepage": "https://github.com/php-fig/http-message", 2112 | "keywords": [ 2113 | "http", 2114 | "http-message", 2115 | "psr", 2116 | "psr-7", 2117 | "request", 2118 | "response" 2119 | ], 2120 | "support": { 2121 | "source": "https://github.com/php-fig/http-message/tree/master" 2122 | }, 2123 | "time": "2016-08-06T14:39:51+00:00" 2124 | }, 2125 | { 2126 | "name": "ralouphie/getallheaders", 2127 | "version": "3.0.3", 2128 | "source": { 2129 | "type": "git", 2130 | "url": "https://github.com/ralouphie/getallheaders.git", 2131 | "reference": "120b605dfeb996808c31b6477290a714d356e822" 2132 | }, 2133 | "dist": { 2134 | "type": "zip", 2135 | "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", 2136 | "reference": "120b605dfeb996808c31b6477290a714d356e822", 2137 | "shasum": "" 2138 | }, 2139 | "require": { 2140 | "php": ">=5.6" 2141 | }, 2142 | "require-dev": { 2143 | "php-coveralls/php-coveralls": "^2.1", 2144 | "phpunit/phpunit": "^5 || ^6.5" 2145 | }, 2146 | "type": "library", 2147 | "autoload": { 2148 | "files": [ 2149 | "src/getallheaders.php" 2150 | ] 2151 | }, 2152 | "notification-url": "https://packagist.org/downloads/", 2153 | "license": [ 2154 | "MIT" 2155 | ], 2156 | "authors": [ 2157 | { 2158 | "name": "Ralph Khattar", 2159 | "email": "ralph.khattar@gmail.com" 2160 | } 2161 | ], 2162 | "description": "A polyfill for getallheaders.", 2163 | "support": { 2164 | "issues": "https://github.com/ralouphie/getallheaders/issues", 2165 | "source": "https://github.com/ralouphie/getallheaders/tree/develop" 2166 | }, 2167 | "time": "2019-03-08T08:55:37+00:00" 2168 | }, 2169 | { 2170 | "name": "scrutinizer/ocular", 2171 | "version": "1.9", 2172 | "source": { 2173 | "type": "git", 2174 | "url": "https://github.com/scrutinizer-ci/ocular.git", 2175 | "reference": "dda3540f7458b2645cee2a02b24291914769c41c" 2176 | }, 2177 | "dist": { 2178 | "type": "zip", 2179 | "url": "https://api.github.com/repos/scrutinizer-ci/ocular/zipball/dda3540f7458b2645cee2a02b24291914769c41c", 2180 | "reference": "dda3540f7458b2645cee2a02b24291914769c41c", 2181 | "shasum": "" 2182 | }, 2183 | "require": { 2184 | "guzzlehttp/guzzle": "~6.3|^7.0", 2185 | "jms/serializer": "^1.0.0|^3.0", 2186 | "phpoption/phpoption": "~1.0", 2187 | "symfony/console": "^2.1.0|~3.0|~4.0|~5.0|^6.0", 2188 | "symfony/process": "~2.3|~3.0|~4.0|~5.0|^6.0" 2189 | }, 2190 | "require-dev": { 2191 | "bamarni/composer-bin-plugin": "^1.2", 2192 | "phpunit/phpunit": "^9.0.0", 2193 | "symfony/filesystem": "~2.0|~3.0|~4.0|~5.0|^6.0" 2194 | }, 2195 | "bin": [ 2196 | "bin/ocular" 2197 | ], 2198 | "type": "library", 2199 | "autoload": { 2200 | "psr-4": { 2201 | "Scrutinizer\\Ocular\\": "src/Scrutinizer/Ocular" 2202 | } 2203 | }, 2204 | "notification-url": "https://packagist.org/downloads/", 2205 | "license": [ 2206 | "Apache-2.0" 2207 | ], 2208 | "support": { 2209 | "issues": "https://github.com/scrutinizer-ci/ocular/issues", 2210 | "source": "https://github.com/scrutinizer-ci/ocular/tree/1.9" 2211 | }, 2212 | "time": "2022-02-22T09:49:51+00:00" 2213 | }, 2214 | { 2215 | "name": "sebastian/cli-parser", 2216 | "version": "1.0.1", 2217 | "source": { 2218 | "type": "git", 2219 | "url": "https://github.com/sebastianbergmann/cli-parser.git", 2220 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" 2221 | }, 2222 | "dist": { 2223 | "type": "zip", 2224 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", 2225 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", 2226 | "shasum": "" 2227 | }, 2228 | "require": { 2229 | "php": ">=7.3" 2230 | }, 2231 | "require-dev": { 2232 | "phpunit/phpunit": "^9.3" 2233 | }, 2234 | "type": "library", 2235 | "extra": { 2236 | "branch-alias": { 2237 | "dev-master": "1.0-dev" 2238 | } 2239 | }, 2240 | "autoload": { 2241 | "classmap": [ 2242 | "src/" 2243 | ] 2244 | }, 2245 | "notification-url": "https://packagist.org/downloads/", 2246 | "license": [ 2247 | "BSD-3-Clause" 2248 | ], 2249 | "authors": [ 2250 | { 2251 | "name": "Sebastian Bergmann", 2252 | "email": "sebastian@phpunit.de", 2253 | "role": "lead" 2254 | } 2255 | ], 2256 | "description": "Library for parsing CLI options", 2257 | "homepage": "https://github.com/sebastianbergmann/cli-parser", 2258 | "support": { 2259 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues", 2260 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" 2261 | }, 2262 | "funding": [ 2263 | { 2264 | "url": "https://github.com/sebastianbergmann", 2265 | "type": "github" 2266 | } 2267 | ], 2268 | "time": "2020-09-28T06:08:49+00:00" 2269 | }, 2270 | { 2271 | "name": "sebastian/code-unit", 2272 | "version": "1.0.6", 2273 | "source": { 2274 | "type": "git", 2275 | "url": "https://github.com/sebastianbergmann/code-unit.git", 2276 | "reference": "d3a241b6028ff9d8e97d2b6ebd4090d01f92fad8" 2277 | }, 2278 | "dist": { 2279 | "type": "zip", 2280 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/d3a241b6028ff9d8e97d2b6ebd4090d01f92fad8", 2281 | "reference": "d3a241b6028ff9d8e97d2b6ebd4090d01f92fad8", 2282 | "shasum": "" 2283 | }, 2284 | "require": { 2285 | "php": ">=7.3" 2286 | }, 2287 | "require-dev": { 2288 | "phpunit/phpunit": "^9.3" 2289 | }, 2290 | "type": "library", 2291 | "extra": { 2292 | "branch-alias": { 2293 | "dev-master": "1.0-dev" 2294 | } 2295 | }, 2296 | "autoload": { 2297 | "classmap": [ 2298 | "src/" 2299 | ] 2300 | }, 2301 | "notification-url": "https://packagist.org/downloads/", 2302 | "license": [ 2303 | "BSD-3-Clause" 2304 | ], 2305 | "authors": [ 2306 | { 2307 | "name": "Sebastian Bergmann", 2308 | "email": "sebastian@phpunit.de", 2309 | "role": "lead" 2310 | } 2311 | ], 2312 | "description": "Collection of value objects that represent the PHP code units", 2313 | "homepage": "https://github.com/sebastianbergmann/code-unit", 2314 | "support": { 2315 | "issues": "https://github.com/sebastianbergmann/code-unit/issues", 2316 | "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.6" 2317 | }, 2318 | "funding": [ 2319 | { 2320 | "url": "https://github.com/sebastianbergmann", 2321 | "type": "github" 2322 | } 2323 | ], 2324 | "time": "2020-09-28T05:28:46+00:00" 2325 | }, 2326 | { 2327 | "name": "sebastian/code-unit-reverse-lookup", 2328 | "version": "2.0.2", 2329 | "source": { 2330 | "type": "git", 2331 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 2332 | "reference": "ee51f9bb0c6d8a43337055db3120829fa14da819" 2333 | }, 2334 | "dist": { 2335 | "type": "zip", 2336 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ee51f9bb0c6d8a43337055db3120829fa14da819", 2337 | "reference": "ee51f9bb0c6d8a43337055db3120829fa14da819", 2338 | "shasum": "" 2339 | }, 2340 | "require": { 2341 | "php": "^7.3 || ^8.0" 2342 | }, 2343 | "require-dev": { 2344 | "phpunit/phpunit": "^9.0" 2345 | }, 2346 | "type": "library", 2347 | "extra": { 2348 | "branch-alias": { 2349 | "dev-master": "2.0-dev" 2350 | } 2351 | }, 2352 | "autoload": { 2353 | "classmap": [ 2354 | "src/" 2355 | ] 2356 | }, 2357 | "notification-url": "https://packagist.org/downloads/", 2358 | "license": [ 2359 | "BSD-3-Clause" 2360 | ], 2361 | "authors": [ 2362 | { 2363 | "name": "Sebastian Bergmann", 2364 | "email": "sebastian@phpunit.de" 2365 | } 2366 | ], 2367 | "description": "Looks up which function or method a line of code belongs to", 2368 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 2369 | "support": { 2370 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 2371 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/master" 2372 | }, 2373 | "funding": [ 2374 | { 2375 | "url": "https://github.com/sebastianbergmann", 2376 | "type": "github" 2377 | } 2378 | ], 2379 | "time": "2020-06-26T12:04:00+00:00" 2380 | }, 2381 | { 2382 | "name": "sebastian/comparator", 2383 | "version": "4.0.5", 2384 | "source": { 2385 | "type": "git", 2386 | "url": "https://github.com/sebastianbergmann/comparator.git", 2387 | "reference": "7a8ff306445707539c1a6397372a982a1ec55120" 2388 | }, 2389 | "dist": { 2390 | "type": "zip", 2391 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/7a8ff306445707539c1a6397372a982a1ec55120", 2392 | "reference": "7a8ff306445707539c1a6397372a982a1ec55120", 2393 | "shasum": "" 2394 | }, 2395 | "require": { 2396 | "php": ">=7.3", 2397 | "sebastian/diff": "^4.0", 2398 | "sebastian/exporter": "^4.0" 2399 | }, 2400 | "require-dev": { 2401 | "phpunit/phpunit": "^9.3" 2402 | }, 2403 | "type": "library", 2404 | "extra": { 2405 | "branch-alias": { 2406 | "dev-master": "4.0-dev" 2407 | } 2408 | }, 2409 | "autoload": { 2410 | "classmap": [ 2411 | "src/" 2412 | ] 2413 | }, 2414 | "notification-url": "https://packagist.org/downloads/", 2415 | "license": [ 2416 | "BSD-3-Clause" 2417 | ], 2418 | "authors": [ 2419 | { 2420 | "name": "Sebastian Bergmann", 2421 | "email": "sebastian@phpunit.de" 2422 | }, 2423 | { 2424 | "name": "Jeff Welch", 2425 | "email": "whatthejeff@gmail.com" 2426 | }, 2427 | { 2428 | "name": "Volker Dusch", 2429 | "email": "github@wallbash.com" 2430 | }, 2431 | { 2432 | "name": "Bernhard Schussek", 2433 | "email": "bschussek@2bepublished.at" 2434 | } 2435 | ], 2436 | "description": "Provides the functionality to compare PHP values for equality", 2437 | "homepage": "https://github.com/sebastianbergmann/comparator", 2438 | "keywords": [ 2439 | "comparator", 2440 | "compare", 2441 | "equality" 2442 | ], 2443 | "support": { 2444 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 2445 | "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.5" 2446 | }, 2447 | "funding": [ 2448 | { 2449 | "url": "https://github.com/sebastianbergmann", 2450 | "type": "github" 2451 | } 2452 | ], 2453 | "time": "2020-09-30T06:47:25+00:00" 2454 | }, 2455 | { 2456 | "name": "sebastian/complexity", 2457 | "version": "2.0.0", 2458 | "source": { 2459 | "type": "git", 2460 | "url": "https://github.com/sebastianbergmann/complexity.git", 2461 | "reference": "33fcd6a26656c6546f70871244ecba4b4dced097" 2462 | }, 2463 | "dist": { 2464 | "type": "zip", 2465 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/33fcd6a26656c6546f70871244ecba4b4dced097", 2466 | "reference": "33fcd6a26656c6546f70871244ecba4b4dced097", 2467 | "shasum": "" 2468 | }, 2469 | "require": { 2470 | "nikic/php-parser": "^4.7", 2471 | "php": "^7.3 || ^8.0" 2472 | }, 2473 | "require-dev": { 2474 | "phpunit/phpunit": "^9.2" 2475 | }, 2476 | "type": "library", 2477 | "extra": { 2478 | "branch-alias": { 2479 | "dev-master": "2.0-dev" 2480 | } 2481 | }, 2482 | "autoload": { 2483 | "classmap": [ 2484 | "src/" 2485 | ] 2486 | }, 2487 | "notification-url": "https://packagist.org/downloads/", 2488 | "license": [ 2489 | "BSD-3-Clause" 2490 | ], 2491 | "authors": [ 2492 | { 2493 | "name": "Sebastian Bergmann", 2494 | "email": "sebastian@phpunit.de", 2495 | "role": "lead" 2496 | } 2497 | ], 2498 | "description": "Library for calculating the complexity of PHP code units", 2499 | "homepage": "https://github.com/sebastianbergmann/complexity", 2500 | "support": { 2501 | "issues": "https://github.com/sebastianbergmann/complexity/issues", 2502 | "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.0" 2503 | }, 2504 | "funding": [ 2505 | { 2506 | "url": "https://github.com/sebastianbergmann", 2507 | "type": "github" 2508 | } 2509 | ], 2510 | "time": "2020-07-25T14:01:34+00:00" 2511 | }, 2512 | { 2513 | "name": "sebastian/diff", 2514 | "version": "4.0.3", 2515 | "source": { 2516 | "type": "git", 2517 | "url": "https://github.com/sebastianbergmann/diff.git", 2518 | "reference": "ffc949a1a2aae270ea064453d7535b82e4c32092" 2519 | }, 2520 | "dist": { 2521 | "type": "zip", 2522 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ffc949a1a2aae270ea064453d7535b82e4c32092", 2523 | "reference": "ffc949a1a2aae270ea064453d7535b82e4c32092", 2524 | "shasum": "" 2525 | }, 2526 | "require": { 2527 | "php": ">=7.3" 2528 | }, 2529 | "require-dev": { 2530 | "phpunit/phpunit": "^9.3", 2531 | "symfony/process": "^4.2 || ^5" 2532 | }, 2533 | "type": "library", 2534 | "extra": { 2535 | "branch-alias": { 2536 | "dev-master": "4.0-dev" 2537 | } 2538 | }, 2539 | "autoload": { 2540 | "classmap": [ 2541 | "src/" 2542 | ] 2543 | }, 2544 | "notification-url": "https://packagist.org/downloads/", 2545 | "license": [ 2546 | "BSD-3-Clause" 2547 | ], 2548 | "authors": [ 2549 | { 2550 | "name": "Sebastian Bergmann", 2551 | "email": "sebastian@phpunit.de" 2552 | }, 2553 | { 2554 | "name": "Kore Nordmann", 2555 | "email": "mail@kore-nordmann.de" 2556 | } 2557 | ], 2558 | "description": "Diff implementation", 2559 | "homepage": "https://github.com/sebastianbergmann/diff", 2560 | "keywords": [ 2561 | "diff", 2562 | "udiff", 2563 | "unidiff", 2564 | "unified diff" 2565 | ], 2566 | "support": { 2567 | "issues": "https://github.com/sebastianbergmann/diff/issues", 2568 | "source": "https://github.com/sebastianbergmann/diff/tree/4.0.3" 2569 | }, 2570 | "funding": [ 2571 | { 2572 | "url": "https://github.com/sebastianbergmann", 2573 | "type": "github" 2574 | } 2575 | ], 2576 | "time": "2020-09-28T05:32:55+00:00" 2577 | }, 2578 | { 2579 | "name": "sebastian/environment", 2580 | "version": "5.1.3", 2581 | "source": { 2582 | "type": "git", 2583 | "url": "https://github.com/sebastianbergmann/environment.git", 2584 | "reference": "388b6ced16caa751030f6a69e588299fa09200ac" 2585 | }, 2586 | "dist": { 2587 | "type": "zip", 2588 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", 2589 | "reference": "388b6ced16caa751030f6a69e588299fa09200ac", 2590 | "shasum": "" 2591 | }, 2592 | "require": { 2593 | "php": ">=7.3" 2594 | }, 2595 | "require-dev": { 2596 | "phpunit/phpunit": "^9.3" 2597 | }, 2598 | "suggest": { 2599 | "ext-posix": "*" 2600 | }, 2601 | "type": "library", 2602 | "extra": { 2603 | "branch-alias": { 2604 | "dev-master": "5.1-dev" 2605 | } 2606 | }, 2607 | "autoload": { 2608 | "classmap": [ 2609 | "src/" 2610 | ] 2611 | }, 2612 | "notification-url": "https://packagist.org/downloads/", 2613 | "license": [ 2614 | "BSD-3-Clause" 2615 | ], 2616 | "authors": [ 2617 | { 2618 | "name": "Sebastian Bergmann", 2619 | "email": "sebastian@phpunit.de" 2620 | } 2621 | ], 2622 | "description": "Provides functionality to handle HHVM/PHP environments", 2623 | "homepage": "http://www.github.com/sebastianbergmann/environment", 2624 | "keywords": [ 2625 | "Xdebug", 2626 | "environment", 2627 | "hhvm" 2628 | ], 2629 | "support": { 2630 | "issues": "https://github.com/sebastianbergmann/environment/issues", 2631 | "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" 2632 | }, 2633 | "funding": [ 2634 | { 2635 | "url": "https://github.com/sebastianbergmann", 2636 | "type": "github" 2637 | } 2638 | ], 2639 | "time": "2020-09-28T05:52:38+00:00" 2640 | }, 2641 | { 2642 | "name": "sebastian/exporter", 2643 | "version": "4.0.3", 2644 | "source": { 2645 | "type": "git", 2646 | "url": "https://github.com/sebastianbergmann/exporter.git", 2647 | "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" 2648 | }, 2649 | "dist": { 2650 | "type": "zip", 2651 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", 2652 | "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", 2653 | "shasum": "" 2654 | }, 2655 | "require": { 2656 | "php": ">=7.3", 2657 | "sebastian/recursion-context": "^4.0" 2658 | }, 2659 | "require-dev": { 2660 | "ext-mbstring": "*", 2661 | "phpunit/phpunit": "^9.3" 2662 | }, 2663 | "type": "library", 2664 | "extra": { 2665 | "branch-alias": { 2666 | "dev-master": "4.0-dev" 2667 | } 2668 | }, 2669 | "autoload": { 2670 | "classmap": [ 2671 | "src/" 2672 | ] 2673 | }, 2674 | "notification-url": "https://packagist.org/downloads/", 2675 | "license": [ 2676 | "BSD-3-Clause" 2677 | ], 2678 | "authors": [ 2679 | { 2680 | "name": "Sebastian Bergmann", 2681 | "email": "sebastian@phpunit.de" 2682 | }, 2683 | { 2684 | "name": "Jeff Welch", 2685 | "email": "whatthejeff@gmail.com" 2686 | }, 2687 | { 2688 | "name": "Volker Dusch", 2689 | "email": "github@wallbash.com" 2690 | }, 2691 | { 2692 | "name": "Adam Harvey", 2693 | "email": "aharvey@php.net" 2694 | }, 2695 | { 2696 | "name": "Bernhard Schussek", 2697 | "email": "bschussek@gmail.com" 2698 | } 2699 | ], 2700 | "description": "Provides the functionality to export PHP variables for visualization", 2701 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 2702 | "keywords": [ 2703 | "export", 2704 | "exporter" 2705 | ], 2706 | "support": { 2707 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 2708 | "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" 2709 | }, 2710 | "funding": [ 2711 | { 2712 | "url": "https://github.com/sebastianbergmann", 2713 | "type": "github" 2714 | } 2715 | ], 2716 | "time": "2020-09-28T05:24:23+00:00" 2717 | }, 2718 | { 2719 | "name": "sebastian/global-state", 2720 | "version": "5.0.1", 2721 | "source": { 2722 | "type": "git", 2723 | "url": "https://github.com/sebastianbergmann/global-state.git", 2724 | "reference": "ea779cb749a478b22a2564ac41cd7bda79c78dc7" 2725 | }, 2726 | "dist": { 2727 | "type": "zip", 2728 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ea779cb749a478b22a2564ac41cd7bda79c78dc7", 2729 | "reference": "ea779cb749a478b22a2564ac41cd7bda79c78dc7", 2730 | "shasum": "" 2731 | }, 2732 | "require": { 2733 | "php": ">=7.3", 2734 | "sebastian/object-reflector": "^2.0", 2735 | "sebastian/recursion-context": "^4.0" 2736 | }, 2737 | "require-dev": { 2738 | "ext-dom": "*", 2739 | "phpunit/phpunit": "^9.3" 2740 | }, 2741 | "suggest": { 2742 | "ext-uopz": "*" 2743 | }, 2744 | "type": "library", 2745 | "extra": { 2746 | "branch-alias": { 2747 | "dev-master": "5.0-dev" 2748 | } 2749 | }, 2750 | "autoload": { 2751 | "classmap": [ 2752 | "src/" 2753 | ] 2754 | }, 2755 | "notification-url": "https://packagist.org/downloads/", 2756 | "license": [ 2757 | "BSD-3-Clause" 2758 | ], 2759 | "authors": [ 2760 | { 2761 | "name": "Sebastian Bergmann", 2762 | "email": "sebastian@phpunit.de" 2763 | } 2764 | ], 2765 | "description": "Snapshotting of global state", 2766 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 2767 | "keywords": [ 2768 | "global state" 2769 | ], 2770 | "support": { 2771 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 2772 | "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.1" 2773 | }, 2774 | "funding": [ 2775 | { 2776 | "url": "https://github.com/sebastianbergmann", 2777 | "type": "github" 2778 | } 2779 | ], 2780 | "time": "2020-09-28T05:54:06+00:00" 2781 | }, 2782 | { 2783 | "name": "sebastian/lines-of-code", 2784 | "version": "1.0.3", 2785 | "source": { 2786 | "type": "git", 2787 | "url": "https://github.com/sebastianbergmann/lines-of-code.git", 2788 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" 2789 | }, 2790 | "dist": { 2791 | "type": "zip", 2792 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", 2793 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", 2794 | "shasum": "" 2795 | }, 2796 | "require": { 2797 | "nikic/php-parser": "^4.6", 2798 | "php": ">=7.3" 2799 | }, 2800 | "require-dev": { 2801 | "phpunit/phpunit": "^9.3" 2802 | }, 2803 | "type": "library", 2804 | "extra": { 2805 | "branch-alias": { 2806 | "dev-master": "1.0-dev" 2807 | } 2808 | }, 2809 | "autoload": { 2810 | "classmap": [ 2811 | "src/" 2812 | ] 2813 | }, 2814 | "notification-url": "https://packagist.org/downloads/", 2815 | "license": [ 2816 | "BSD-3-Clause" 2817 | ], 2818 | "authors": [ 2819 | { 2820 | "name": "Sebastian Bergmann", 2821 | "email": "sebastian@phpunit.de", 2822 | "role": "lead" 2823 | } 2824 | ], 2825 | "description": "Library for counting the lines of code in PHP source code", 2826 | "homepage": "https://github.com/sebastianbergmann/lines-of-code", 2827 | "support": { 2828 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", 2829 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" 2830 | }, 2831 | "funding": [ 2832 | { 2833 | "url": "https://github.com/sebastianbergmann", 2834 | "type": "github" 2835 | } 2836 | ], 2837 | "time": "2020-11-28T06:42:11+00:00" 2838 | }, 2839 | { 2840 | "name": "sebastian/object-enumerator", 2841 | "version": "4.0.3", 2842 | "source": { 2843 | "type": "git", 2844 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 2845 | "reference": "f6f5957013d84725427d361507e13513702888a4" 2846 | }, 2847 | "dist": { 2848 | "type": "zip", 2849 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f6f5957013d84725427d361507e13513702888a4", 2850 | "reference": "f6f5957013d84725427d361507e13513702888a4", 2851 | "shasum": "" 2852 | }, 2853 | "require": { 2854 | "php": ">=7.3", 2855 | "sebastian/object-reflector": "^2.0", 2856 | "sebastian/recursion-context": "^4.0" 2857 | }, 2858 | "require-dev": { 2859 | "phpunit/phpunit": "^9.3" 2860 | }, 2861 | "type": "library", 2862 | "extra": { 2863 | "branch-alias": { 2864 | "dev-master": "4.0-dev" 2865 | } 2866 | }, 2867 | "autoload": { 2868 | "classmap": [ 2869 | "src/" 2870 | ] 2871 | }, 2872 | "notification-url": "https://packagist.org/downloads/", 2873 | "license": [ 2874 | "BSD-3-Clause" 2875 | ], 2876 | "authors": [ 2877 | { 2878 | "name": "Sebastian Bergmann", 2879 | "email": "sebastian@phpunit.de" 2880 | } 2881 | ], 2882 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 2883 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 2884 | "support": { 2885 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 2886 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.3" 2887 | }, 2888 | "funding": [ 2889 | { 2890 | "url": "https://github.com/sebastianbergmann", 2891 | "type": "github" 2892 | } 2893 | ], 2894 | "time": "2020-09-28T05:55:06+00:00" 2895 | }, 2896 | { 2897 | "name": "sebastian/object-reflector", 2898 | "version": "2.0.2", 2899 | "source": { 2900 | "type": "git", 2901 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 2902 | "reference": "127a46f6b057441b201253526f81d5406d6c7840" 2903 | }, 2904 | "dist": { 2905 | "type": "zip", 2906 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/127a46f6b057441b201253526f81d5406d6c7840", 2907 | "reference": "127a46f6b057441b201253526f81d5406d6c7840", 2908 | "shasum": "" 2909 | }, 2910 | "require": { 2911 | "php": "^7.3 || ^8.0" 2912 | }, 2913 | "require-dev": { 2914 | "phpunit/phpunit": "^9.0" 2915 | }, 2916 | "type": "library", 2917 | "extra": { 2918 | "branch-alias": { 2919 | "dev-master": "2.0-dev" 2920 | } 2921 | }, 2922 | "autoload": { 2923 | "classmap": [ 2924 | "src/" 2925 | ] 2926 | }, 2927 | "notification-url": "https://packagist.org/downloads/", 2928 | "license": [ 2929 | "BSD-3-Clause" 2930 | ], 2931 | "authors": [ 2932 | { 2933 | "name": "Sebastian Bergmann", 2934 | "email": "sebastian@phpunit.de" 2935 | } 2936 | ], 2937 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 2938 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 2939 | "support": { 2940 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues", 2941 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/master" 2942 | }, 2943 | "funding": [ 2944 | { 2945 | "url": "https://github.com/sebastianbergmann", 2946 | "type": "github" 2947 | } 2948 | ], 2949 | "time": "2020-06-26T12:12:55+00:00" 2950 | }, 2951 | { 2952 | "name": "sebastian/recursion-context", 2953 | "version": "4.0.2", 2954 | "source": { 2955 | "type": "git", 2956 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 2957 | "reference": "062231bf61d2b9448c4fa5a7643b5e1829c11d63" 2958 | }, 2959 | "dist": { 2960 | "type": "zip", 2961 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/062231bf61d2b9448c4fa5a7643b5e1829c11d63", 2962 | "reference": "062231bf61d2b9448c4fa5a7643b5e1829c11d63", 2963 | "shasum": "" 2964 | }, 2965 | "require": { 2966 | "php": "^7.3 || ^8.0" 2967 | }, 2968 | "require-dev": { 2969 | "phpunit/phpunit": "^9.0" 2970 | }, 2971 | "type": "library", 2972 | "extra": { 2973 | "branch-alias": { 2974 | "dev-master": "4.0-dev" 2975 | } 2976 | }, 2977 | "autoload": { 2978 | "classmap": [ 2979 | "src/" 2980 | ] 2981 | }, 2982 | "notification-url": "https://packagist.org/downloads/", 2983 | "license": [ 2984 | "BSD-3-Clause" 2985 | ], 2986 | "authors": [ 2987 | { 2988 | "name": "Sebastian Bergmann", 2989 | "email": "sebastian@phpunit.de" 2990 | }, 2991 | { 2992 | "name": "Jeff Welch", 2993 | "email": "whatthejeff@gmail.com" 2994 | }, 2995 | { 2996 | "name": "Adam Harvey", 2997 | "email": "aharvey@php.net" 2998 | } 2999 | ], 3000 | "description": "Provides functionality to recursively process PHP variables", 3001 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 3002 | "support": { 3003 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 3004 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/master" 3005 | }, 3006 | "funding": [ 3007 | { 3008 | "url": "https://github.com/sebastianbergmann", 3009 | "type": "github" 3010 | } 3011 | ], 3012 | "time": "2020-06-26T12:14:17+00:00" 3013 | }, 3014 | { 3015 | "name": "sebastian/resource-operations", 3016 | "version": "3.0.3", 3017 | "source": { 3018 | "type": "git", 3019 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 3020 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" 3021 | }, 3022 | "dist": { 3023 | "type": "zip", 3024 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 3025 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 3026 | "shasum": "" 3027 | }, 3028 | "require": { 3029 | "php": ">=7.3" 3030 | }, 3031 | "require-dev": { 3032 | "phpunit/phpunit": "^9.0" 3033 | }, 3034 | "type": "library", 3035 | "extra": { 3036 | "branch-alias": { 3037 | "dev-master": "3.0-dev" 3038 | } 3039 | }, 3040 | "autoload": { 3041 | "classmap": [ 3042 | "src/" 3043 | ] 3044 | }, 3045 | "notification-url": "https://packagist.org/downloads/", 3046 | "license": [ 3047 | "BSD-3-Clause" 3048 | ], 3049 | "authors": [ 3050 | { 3051 | "name": "Sebastian Bergmann", 3052 | "email": "sebastian@phpunit.de" 3053 | } 3054 | ], 3055 | "description": "Provides a list of PHP built-in functions that operate on resources", 3056 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 3057 | "support": { 3058 | "issues": "https://github.com/sebastianbergmann/resource-operations/issues", 3059 | "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" 3060 | }, 3061 | "funding": [ 3062 | { 3063 | "url": "https://github.com/sebastianbergmann", 3064 | "type": "github" 3065 | } 3066 | ], 3067 | "time": "2020-09-28T06:45:17+00:00" 3068 | }, 3069 | { 3070 | "name": "sebastian/type", 3071 | "version": "3.0.0", 3072 | "source": { 3073 | "type": "git", 3074 | "url": "https://github.com/sebastianbergmann/type.git", 3075 | "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad" 3076 | }, 3077 | "dist": { 3078 | "type": "zip", 3079 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", 3080 | "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", 3081 | "shasum": "" 3082 | }, 3083 | "require": { 3084 | "php": ">=7.3" 3085 | }, 3086 | "require-dev": { 3087 | "phpunit/phpunit": "^9.5" 3088 | }, 3089 | "type": "library", 3090 | "extra": { 3091 | "branch-alias": { 3092 | "dev-master": "3.0-dev" 3093 | } 3094 | }, 3095 | "autoload": { 3096 | "classmap": [ 3097 | "src/" 3098 | ] 3099 | }, 3100 | "notification-url": "https://packagist.org/downloads/", 3101 | "license": [ 3102 | "BSD-3-Clause" 3103 | ], 3104 | "authors": [ 3105 | { 3106 | "name": "Sebastian Bergmann", 3107 | "email": "sebastian@phpunit.de", 3108 | "role": "lead" 3109 | } 3110 | ], 3111 | "description": "Collection of value objects that represent the types of the PHP type system", 3112 | "homepage": "https://github.com/sebastianbergmann/type", 3113 | "support": { 3114 | "issues": "https://github.com/sebastianbergmann/type/issues", 3115 | "source": "https://github.com/sebastianbergmann/type/tree/3.0.0" 3116 | }, 3117 | "funding": [ 3118 | { 3119 | "url": "https://github.com/sebastianbergmann", 3120 | "type": "github" 3121 | } 3122 | ], 3123 | "time": "2022-03-15T09:54:48+00:00" 3124 | }, 3125 | { 3126 | "name": "sebastian/version", 3127 | "version": "3.0.2", 3128 | "source": { 3129 | "type": "git", 3130 | "url": "https://github.com/sebastianbergmann/version.git", 3131 | "reference": "c6c1022351a901512170118436c764e473f6de8c" 3132 | }, 3133 | "dist": { 3134 | "type": "zip", 3135 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", 3136 | "reference": "c6c1022351a901512170118436c764e473f6de8c", 3137 | "shasum": "" 3138 | }, 3139 | "require": { 3140 | "php": ">=7.3" 3141 | }, 3142 | "type": "library", 3143 | "extra": { 3144 | "branch-alias": { 3145 | "dev-master": "3.0-dev" 3146 | } 3147 | }, 3148 | "autoload": { 3149 | "classmap": [ 3150 | "src/" 3151 | ] 3152 | }, 3153 | "notification-url": "https://packagist.org/downloads/", 3154 | "license": [ 3155 | "BSD-3-Clause" 3156 | ], 3157 | "authors": [ 3158 | { 3159 | "name": "Sebastian Bergmann", 3160 | "email": "sebastian@phpunit.de", 3161 | "role": "lead" 3162 | } 3163 | ], 3164 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 3165 | "homepage": "https://github.com/sebastianbergmann/version", 3166 | "support": { 3167 | "issues": "https://github.com/sebastianbergmann/version/issues", 3168 | "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" 3169 | }, 3170 | "funding": [ 3171 | { 3172 | "url": "https://github.com/sebastianbergmann", 3173 | "type": "github" 3174 | } 3175 | ], 3176 | "time": "2020-09-28T06:39:44+00:00" 3177 | }, 3178 | { 3179 | "name": "symfony/console", 3180 | "version": "v5.3.0", 3181 | "source": { 3182 | "type": "git", 3183 | "url": "https://github.com/symfony/console.git", 3184 | "reference": "058553870f7809087fa80fa734704a21b9bcaeb2" 3185 | }, 3186 | "dist": { 3187 | "type": "zip", 3188 | "url": "https://api.github.com/repos/symfony/console/zipball/058553870f7809087fa80fa734704a21b9bcaeb2", 3189 | "reference": "058553870f7809087fa80fa734704a21b9bcaeb2", 3190 | "shasum": "" 3191 | }, 3192 | "require": { 3193 | "php": ">=7.2.5", 3194 | "symfony/deprecation-contracts": "^2.1", 3195 | "symfony/polyfill-mbstring": "~1.0", 3196 | "symfony/polyfill-php73": "^1.8", 3197 | "symfony/polyfill-php80": "^1.15", 3198 | "symfony/service-contracts": "^1.1|^2", 3199 | "symfony/string": "^5.1" 3200 | }, 3201 | "conflict": { 3202 | "symfony/dependency-injection": "<4.4", 3203 | "symfony/dotenv": "<5.1", 3204 | "symfony/event-dispatcher": "<4.4", 3205 | "symfony/lock": "<4.4", 3206 | "symfony/process": "<4.4" 3207 | }, 3208 | "provide": { 3209 | "psr/log-implementation": "1.0" 3210 | }, 3211 | "require-dev": { 3212 | "psr/log": "~1.0", 3213 | "symfony/config": "^4.4|^5.0", 3214 | "symfony/dependency-injection": "^4.4|^5.0", 3215 | "symfony/event-dispatcher": "^4.4|^5.0", 3216 | "symfony/lock": "^4.4|^5.0", 3217 | "symfony/process": "^4.4|^5.0", 3218 | "symfony/var-dumper": "^4.4|^5.0" 3219 | }, 3220 | "suggest": { 3221 | "psr/log": "For using the console logger", 3222 | "symfony/event-dispatcher": "", 3223 | "symfony/lock": "", 3224 | "symfony/process": "" 3225 | }, 3226 | "type": "library", 3227 | "autoload": { 3228 | "psr-4": { 3229 | "Symfony\\Component\\Console\\": "" 3230 | }, 3231 | "exclude-from-classmap": [ 3232 | "/Tests/" 3233 | ] 3234 | }, 3235 | "notification-url": "https://packagist.org/downloads/", 3236 | "license": [ 3237 | "MIT" 3238 | ], 3239 | "authors": [ 3240 | { 3241 | "name": "Fabien Potencier", 3242 | "email": "fabien@symfony.com" 3243 | }, 3244 | { 3245 | "name": "Symfony Community", 3246 | "homepage": "https://symfony.com/contributors" 3247 | } 3248 | ], 3249 | "description": "Eases the creation of beautiful and testable command line interfaces", 3250 | "homepage": "https://symfony.com", 3251 | "keywords": [ 3252 | "cli", 3253 | "command line", 3254 | "console", 3255 | "terminal" 3256 | ], 3257 | "support": { 3258 | "source": "https://github.com/symfony/console/tree/v5.3.0" 3259 | }, 3260 | "funding": [ 3261 | { 3262 | "url": "https://symfony.com/sponsor", 3263 | "type": "custom" 3264 | }, 3265 | { 3266 | "url": "https://github.com/fabpot", 3267 | "type": "github" 3268 | }, 3269 | { 3270 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3271 | "type": "tidelift" 3272 | } 3273 | ], 3274 | "time": "2021-05-26T17:43:10+00:00" 3275 | }, 3276 | { 3277 | "name": "symfony/deprecation-contracts", 3278 | "version": "v2.5.1", 3279 | "source": { 3280 | "type": "git", 3281 | "url": "https://github.com/symfony/deprecation-contracts.git", 3282 | "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" 3283 | }, 3284 | "dist": { 3285 | "type": "zip", 3286 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", 3287 | "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", 3288 | "shasum": "" 3289 | }, 3290 | "require": { 3291 | "php": ">=7.1" 3292 | }, 3293 | "type": "library", 3294 | "extra": { 3295 | "branch-alias": { 3296 | "dev-main": "2.5-dev" 3297 | }, 3298 | "thanks": { 3299 | "name": "symfony/contracts", 3300 | "url": "https://github.com/symfony/contracts" 3301 | } 3302 | }, 3303 | "autoload": { 3304 | "files": [ 3305 | "function.php" 3306 | ] 3307 | }, 3308 | "notification-url": "https://packagist.org/downloads/", 3309 | "license": [ 3310 | "MIT" 3311 | ], 3312 | "authors": [ 3313 | { 3314 | "name": "Nicolas Grekas", 3315 | "email": "p@tchwork.com" 3316 | }, 3317 | { 3318 | "name": "Symfony Community", 3319 | "homepage": "https://symfony.com/contributors" 3320 | } 3321 | ], 3322 | "description": "A generic function and convention to trigger deprecation notices", 3323 | "homepage": "https://symfony.com", 3324 | "support": { 3325 | "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.1" 3326 | }, 3327 | "funding": [ 3328 | { 3329 | "url": "https://symfony.com/sponsor", 3330 | "type": "custom" 3331 | }, 3332 | { 3333 | "url": "https://github.com/fabpot", 3334 | "type": "github" 3335 | }, 3336 | { 3337 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3338 | "type": "tidelift" 3339 | } 3340 | ], 3341 | "time": "2022-01-02T09:53:40+00:00" 3342 | }, 3343 | { 3344 | "name": "symfony/polyfill-ctype", 3345 | "version": "v1.8.0", 3346 | "source": { 3347 | "type": "git", 3348 | "url": "https://github.com/symfony/polyfill-ctype.git", 3349 | "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae" 3350 | }, 3351 | "dist": { 3352 | "type": "zip", 3353 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae", 3354 | "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae", 3355 | "shasum": "" 3356 | }, 3357 | "require": { 3358 | "php": ">=5.3.3" 3359 | }, 3360 | "type": "library", 3361 | "extra": { 3362 | "branch-alias": { 3363 | "dev-master": "1.8-dev" 3364 | } 3365 | }, 3366 | "autoload": { 3367 | "files": [ 3368 | "bootstrap.php" 3369 | ], 3370 | "psr-4": { 3371 | "Symfony\\Polyfill\\Ctype\\": "" 3372 | } 3373 | }, 3374 | "notification-url": "https://packagist.org/downloads/", 3375 | "license": [ 3376 | "MIT" 3377 | ], 3378 | "authors": [ 3379 | { 3380 | "name": "Symfony Community", 3381 | "homepage": "https://symfony.com/contributors" 3382 | }, 3383 | { 3384 | "name": "Gert de Pagter", 3385 | "email": "BackEndTea@gmail.com" 3386 | } 3387 | ], 3388 | "description": "Symfony polyfill for ctype functions", 3389 | "homepage": "https://symfony.com", 3390 | "keywords": [ 3391 | "compatibility", 3392 | "ctype", 3393 | "polyfill", 3394 | "portable" 3395 | ], 3396 | "support": { 3397 | "source": "https://github.com/symfony/polyfill-ctype/tree/master" 3398 | }, 3399 | "time": "2018-04-30T19:57:29+00:00" 3400 | }, 3401 | { 3402 | "name": "symfony/polyfill-intl-grapheme", 3403 | "version": "v1.0.0", 3404 | "source": { 3405 | "type": "git", 3406 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git", 3407 | "reference": "9332d285b58a16b144b3bf0bfd3b6334d9a43006" 3408 | }, 3409 | "dist": { 3410 | "type": "zip", 3411 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/9332d285b58a16b144b3bf0bfd3b6334d9a43006", 3412 | "reference": "9332d285b58a16b144b3bf0bfd3b6334d9a43006", 3413 | "shasum": "" 3414 | }, 3415 | "require": { 3416 | "php": ">=5.3.3" 3417 | }, 3418 | "type": "library", 3419 | "extra": { 3420 | "branch-alias": { 3421 | "dev-master": "1.0-dev" 3422 | } 3423 | }, 3424 | "autoload": { 3425 | "files": [ 3426 | "bootstrap.php" 3427 | ], 3428 | "psr-4": { 3429 | "Symfony\\Polyfill\\Intl\\Grapheme\\": "" 3430 | } 3431 | }, 3432 | "notification-url": "https://packagist.org/downloads/", 3433 | "license": [ 3434 | "MIT" 3435 | ], 3436 | "authors": [ 3437 | { 3438 | "name": "Nicolas Grekas", 3439 | "email": "p@tchwork.com" 3440 | }, 3441 | { 3442 | "name": "Symfony Community", 3443 | "homepage": "https://symfony.com/contributors" 3444 | } 3445 | ], 3446 | "description": "Symfony polyfill for intl's grapheme_* functions", 3447 | "homepage": "https://symfony.com", 3448 | "keywords": [ 3449 | "compatibility", 3450 | "grapheme", 3451 | "intl", 3452 | "polyfill", 3453 | "portable", 3454 | "shim" 3455 | ], 3456 | "support": { 3457 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/master" 3458 | }, 3459 | "time": "2015-11-04T20:28:58+00:00" 3460 | }, 3461 | { 3462 | "name": "symfony/polyfill-intl-normalizer", 3463 | "version": "v1.26.0", 3464 | "source": { 3465 | "type": "git", 3466 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 3467 | "reference": "219aa369ceff116e673852dce47c3a41794c14bd" 3468 | }, 3469 | "dist": { 3470 | "type": "zip", 3471 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", 3472 | "reference": "219aa369ceff116e673852dce47c3a41794c14bd", 3473 | "shasum": "" 3474 | }, 3475 | "require": { 3476 | "php": ">=7.1" 3477 | }, 3478 | "suggest": { 3479 | "ext-intl": "For best performance" 3480 | }, 3481 | "type": "library", 3482 | "extra": { 3483 | "branch-alias": { 3484 | "dev-main": "1.26-dev" 3485 | }, 3486 | "thanks": { 3487 | "name": "symfony/polyfill", 3488 | "url": "https://github.com/symfony/polyfill" 3489 | } 3490 | }, 3491 | "autoload": { 3492 | "files": [ 3493 | "bootstrap.php" 3494 | ], 3495 | "psr-4": { 3496 | "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 3497 | }, 3498 | "classmap": [ 3499 | "Resources/stubs" 3500 | ] 3501 | }, 3502 | "notification-url": "https://packagist.org/downloads/", 3503 | "license": [ 3504 | "MIT" 3505 | ], 3506 | "authors": [ 3507 | { 3508 | "name": "Nicolas Grekas", 3509 | "email": "p@tchwork.com" 3510 | }, 3511 | { 3512 | "name": "Symfony Community", 3513 | "homepage": "https://symfony.com/contributors" 3514 | } 3515 | ], 3516 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 3517 | "homepage": "https://symfony.com", 3518 | "keywords": [ 3519 | "compatibility", 3520 | "intl", 3521 | "normalizer", 3522 | "polyfill", 3523 | "portable", 3524 | "shim" 3525 | ], 3526 | "support": { 3527 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" 3528 | }, 3529 | "funding": [ 3530 | { 3531 | "url": "https://symfony.com/sponsor", 3532 | "type": "custom" 3533 | }, 3534 | { 3535 | "url": "https://github.com/fabpot", 3536 | "type": "github" 3537 | }, 3538 | { 3539 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3540 | "type": "tidelift" 3541 | } 3542 | ], 3543 | "time": "2022-05-24T11:49:31+00:00" 3544 | }, 3545 | { 3546 | "name": "symfony/polyfill-mbstring", 3547 | "version": "v1.26.0", 3548 | "source": { 3549 | "type": "git", 3550 | "url": "https://github.com/symfony/polyfill-mbstring.git", 3551 | "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" 3552 | }, 3553 | "dist": { 3554 | "type": "zip", 3555 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", 3556 | "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", 3557 | "shasum": "" 3558 | }, 3559 | "require": { 3560 | "php": ">=7.1" 3561 | }, 3562 | "provide": { 3563 | "ext-mbstring": "*" 3564 | }, 3565 | "suggest": { 3566 | "ext-mbstring": "For best performance" 3567 | }, 3568 | "type": "library", 3569 | "extra": { 3570 | "branch-alias": { 3571 | "dev-main": "1.26-dev" 3572 | }, 3573 | "thanks": { 3574 | "name": "symfony/polyfill", 3575 | "url": "https://github.com/symfony/polyfill" 3576 | } 3577 | }, 3578 | "autoload": { 3579 | "files": [ 3580 | "bootstrap.php" 3581 | ], 3582 | "psr-4": { 3583 | "Symfony\\Polyfill\\Mbstring\\": "" 3584 | } 3585 | }, 3586 | "notification-url": "https://packagist.org/downloads/", 3587 | "license": [ 3588 | "MIT" 3589 | ], 3590 | "authors": [ 3591 | { 3592 | "name": "Nicolas Grekas", 3593 | "email": "p@tchwork.com" 3594 | }, 3595 | { 3596 | "name": "Symfony Community", 3597 | "homepage": "https://symfony.com/contributors" 3598 | } 3599 | ], 3600 | "description": "Symfony polyfill for the Mbstring extension", 3601 | "homepage": "https://symfony.com", 3602 | "keywords": [ 3603 | "compatibility", 3604 | "mbstring", 3605 | "polyfill", 3606 | "portable", 3607 | "shim" 3608 | ], 3609 | "support": { 3610 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" 3611 | }, 3612 | "funding": [ 3613 | { 3614 | "url": "https://symfony.com/sponsor", 3615 | "type": "custom" 3616 | }, 3617 | { 3618 | "url": "https://github.com/fabpot", 3619 | "type": "github" 3620 | }, 3621 | { 3622 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3623 | "type": "tidelift" 3624 | } 3625 | ], 3626 | "time": "2022-05-24T11:49:31+00:00" 3627 | }, 3628 | { 3629 | "name": "symfony/polyfill-php73", 3630 | "version": "v1.8.0", 3631 | "source": { 3632 | "type": "git", 3633 | "url": "https://github.com/symfony/polyfill-php73.git", 3634 | "reference": "9841f6fc047725a8286ea986018355bbc9200383" 3635 | }, 3636 | "dist": { 3637 | "type": "zip", 3638 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9841f6fc047725a8286ea986018355bbc9200383", 3639 | "reference": "9841f6fc047725a8286ea986018355bbc9200383", 3640 | "shasum": "" 3641 | }, 3642 | "require": { 3643 | "php": ">=5.3.3" 3644 | }, 3645 | "type": "library", 3646 | "extra": { 3647 | "branch-alias": { 3648 | "dev-master": "1.8-dev" 3649 | } 3650 | }, 3651 | "autoload": { 3652 | "files": [ 3653 | "bootstrap.php" 3654 | ], 3655 | "psr-4": { 3656 | "Symfony\\Polyfill\\Php73\\": "" 3657 | } 3658 | }, 3659 | "notification-url": "https://packagist.org/downloads/", 3660 | "license": [ 3661 | "MIT" 3662 | ], 3663 | "authors": [ 3664 | { 3665 | "name": "Nicolas Grekas", 3666 | "email": "p@tchwork.com" 3667 | }, 3668 | { 3669 | "name": "Symfony Community", 3670 | "homepage": "https://symfony.com/contributors" 3671 | } 3672 | ], 3673 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 3674 | "homepage": "https://symfony.com", 3675 | "keywords": [ 3676 | "compatibility", 3677 | "polyfill", 3678 | "portable", 3679 | "shim" 3680 | ], 3681 | "support": { 3682 | "source": "https://github.com/symfony/polyfill-php73/tree/master" 3683 | }, 3684 | "time": "2018-04-26T06:22:38+00:00" 3685 | }, 3686 | { 3687 | "name": "symfony/polyfill-php80", 3688 | "version": "v1.15.0", 3689 | "source": { 3690 | "type": "git", 3691 | "url": "https://github.com/symfony/polyfill-php80.git", 3692 | "reference": "8854dc880784d2ae32908b75824754339b5c0555" 3693 | }, 3694 | "dist": { 3695 | "type": "zip", 3696 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/8854dc880784d2ae32908b75824754339b5c0555", 3697 | "reference": "8854dc880784d2ae32908b75824754339b5c0555", 3698 | "shasum": "" 3699 | }, 3700 | "require": { 3701 | "php": ">=7.0.8" 3702 | }, 3703 | "type": "library", 3704 | "extra": { 3705 | "branch-alias": { 3706 | "dev-master": "1.15-dev" 3707 | } 3708 | }, 3709 | "autoload": { 3710 | "files": [ 3711 | "bootstrap.php" 3712 | ], 3713 | "psr-4": { 3714 | "Symfony\\Polyfill\\Php80\\": "" 3715 | }, 3716 | "classmap": [ 3717 | "Resources/stubs" 3718 | ] 3719 | }, 3720 | "notification-url": "https://packagist.org/downloads/", 3721 | "license": [ 3722 | "MIT" 3723 | ], 3724 | "authors": [ 3725 | { 3726 | "name": "Ion Bazan", 3727 | "email": "ion.bazan@gmail.com" 3728 | }, 3729 | { 3730 | "name": "Nicolas Grekas", 3731 | "email": "p@tchwork.com" 3732 | }, 3733 | { 3734 | "name": "Symfony Community", 3735 | "homepage": "https://symfony.com/contributors" 3736 | } 3737 | ], 3738 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", 3739 | "homepage": "https://symfony.com", 3740 | "keywords": [ 3741 | "compatibility", 3742 | "polyfill", 3743 | "portable", 3744 | "shim" 3745 | ], 3746 | "support": { 3747 | "source": "https://github.com/symfony/polyfill-php80/tree/master" 3748 | }, 3749 | "funding": [ 3750 | { 3751 | "url": "https://symfony.com/sponsor", 3752 | "type": "custom" 3753 | }, 3754 | { 3755 | "url": "https://github.com/fabpot", 3756 | "type": "github" 3757 | }, 3758 | { 3759 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3760 | "type": "tidelift" 3761 | } 3762 | ], 3763 | "time": "2020-03-03T16:59:03+00:00" 3764 | }, 3765 | { 3766 | "name": "symfony/process", 3767 | "version": "v4.4.11", 3768 | "source": { 3769 | "type": "git", 3770 | "url": "https://github.com/symfony/process.git", 3771 | "reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479" 3772 | }, 3773 | "dist": { 3774 | "type": "zip", 3775 | "url": "https://api.github.com/repos/symfony/process/zipball/65e70bab62f3da7089a8d4591fb23fbacacb3479", 3776 | "reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479", 3777 | "shasum": "" 3778 | }, 3779 | "require": { 3780 | "php": ">=7.1.3" 3781 | }, 3782 | "type": "library", 3783 | "extra": { 3784 | "branch-alias": { 3785 | "dev-master": "4.4-dev" 3786 | } 3787 | }, 3788 | "autoload": { 3789 | "psr-4": { 3790 | "Symfony\\Component\\Process\\": "" 3791 | }, 3792 | "exclude-from-classmap": [ 3793 | "/Tests/" 3794 | ] 3795 | }, 3796 | "notification-url": "https://packagist.org/downloads/", 3797 | "license": [ 3798 | "MIT" 3799 | ], 3800 | "authors": [ 3801 | { 3802 | "name": "Fabien Potencier", 3803 | "email": "fabien@symfony.com" 3804 | }, 3805 | { 3806 | "name": "Symfony Community", 3807 | "homepage": "https://symfony.com/contributors" 3808 | } 3809 | ], 3810 | "description": "Symfony Process Component", 3811 | "homepage": "https://symfony.com", 3812 | "support": { 3813 | "source": "https://github.com/symfony/process/tree/4.4" 3814 | }, 3815 | "funding": [ 3816 | { 3817 | "url": "https://symfony.com/sponsor", 3818 | "type": "custom" 3819 | }, 3820 | { 3821 | "url": "https://github.com/fabpot", 3822 | "type": "github" 3823 | }, 3824 | { 3825 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3826 | "type": "tidelift" 3827 | } 3828 | ], 3829 | "time": "2020-07-23T08:31:43+00:00" 3830 | }, 3831 | { 3832 | "name": "symfony/service-contracts", 3833 | "version": "v1.1.9", 3834 | "source": { 3835 | "type": "git", 3836 | "url": "https://github.com/symfony/service-contracts.git", 3837 | "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26" 3838 | }, 3839 | "dist": { 3840 | "type": "zip", 3841 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b776d18b303a39f56c63747bcb977ad4b27aca26", 3842 | "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26", 3843 | "shasum": "" 3844 | }, 3845 | "require": { 3846 | "php": ">=7.1.3", 3847 | "psr/container": "^1.0" 3848 | }, 3849 | "suggest": { 3850 | "symfony/service-implementation": "" 3851 | }, 3852 | "type": "library", 3853 | "extra": { 3854 | "branch-alias": { 3855 | "dev-master": "1.1-dev" 3856 | }, 3857 | "thanks": { 3858 | "name": "symfony/contracts", 3859 | "url": "https://github.com/symfony/contracts" 3860 | } 3861 | }, 3862 | "autoload": { 3863 | "psr-4": { 3864 | "Symfony\\Contracts\\Service\\": "" 3865 | } 3866 | }, 3867 | "notification-url": "https://packagist.org/downloads/", 3868 | "license": [ 3869 | "MIT" 3870 | ], 3871 | "authors": [ 3872 | { 3873 | "name": "Nicolas Grekas", 3874 | "email": "p@tchwork.com" 3875 | }, 3876 | { 3877 | "name": "Symfony Community", 3878 | "homepage": "https://symfony.com/contributors" 3879 | } 3880 | ], 3881 | "description": "Generic abstractions related to writing services", 3882 | "homepage": "https://symfony.com", 3883 | "keywords": [ 3884 | "abstractions", 3885 | "contracts", 3886 | "decoupling", 3887 | "interfaces", 3888 | "interoperability", 3889 | "standards" 3890 | ], 3891 | "support": { 3892 | "source": "https://github.com/symfony/service-contracts/tree/v1.1.9" 3893 | }, 3894 | "funding": [ 3895 | { 3896 | "url": "https://symfony.com/sponsor", 3897 | "type": "custom" 3898 | }, 3899 | { 3900 | "url": "https://github.com/fabpot", 3901 | "type": "github" 3902 | }, 3903 | { 3904 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3905 | "type": "tidelift" 3906 | } 3907 | ], 3908 | "time": "2020-07-06T13:19:58+00:00" 3909 | }, 3910 | { 3911 | "name": "symfony/string", 3912 | "version": "v5.1.0", 3913 | "source": { 3914 | "type": "git", 3915 | "url": "https://github.com/symfony/string.git", 3916 | "reference": "90c2a5103f07feb19069379f3abdcdbacc7753a9" 3917 | }, 3918 | "dist": { 3919 | "type": "zip", 3920 | "url": "https://api.github.com/repos/symfony/string/zipball/90c2a5103f07feb19069379f3abdcdbacc7753a9", 3921 | "reference": "90c2a5103f07feb19069379f3abdcdbacc7753a9", 3922 | "shasum": "" 3923 | }, 3924 | "require": { 3925 | "php": ">=7.2.5", 3926 | "symfony/polyfill-ctype": "~1.8", 3927 | "symfony/polyfill-intl-grapheme": "~1.0", 3928 | "symfony/polyfill-intl-normalizer": "~1.0", 3929 | "symfony/polyfill-mbstring": "~1.0", 3930 | "symfony/polyfill-php80": "~1.15" 3931 | }, 3932 | "require-dev": { 3933 | "symfony/error-handler": "^4.4|^5.0", 3934 | "symfony/http-client": "^4.4|^5.0", 3935 | "symfony/translation-contracts": "^1.1|^2", 3936 | "symfony/var-exporter": "^4.4|^5.0" 3937 | }, 3938 | "type": "library", 3939 | "extra": { 3940 | "branch-alias": { 3941 | "dev-master": "5.1-dev" 3942 | } 3943 | }, 3944 | "autoload": { 3945 | "files": [ 3946 | "Resources/functions.php" 3947 | ], 3948 | "psr-4": { 3949 | "Symfony\\Component\\String\\": "" 3950 | }, 3951 | "exclude-from-classmap": [ 3952 | "/Tests/" 3953 | ] 3954 | }, 3955 | "notification-url": "https://packagist.org/downloads/", 3956 | "license": [ 3957 | "MIT" 3958 | ], 3959 | "authors": [ 3960 | { 3961 | "name": "Nicolas Grekas", 3962 | "email": "p@tchwork.com" 3963 | }, 3964 | { 3965 | "name": "Symfony Community", 3966 | "homepage": "https://symfony.com/contributors" 3967 | } 3968 | ], 3969 | "description": "Symfony String component", 3970 | "homepage": "https://symfony.com", 3971 | "keywords": [ 3972 | "grapheme", 3973 | "i18n", 3974 | "string", 3975 | "unicode", 3976 | "utf-8", 3977 | "utf8" 3978 | ], 3979 | "support": { 3980 | "source": "https://github.com/symfony/string/tree/5.1" 3981 | }, 3982 | "funding": [ 3983 | { 3984 | "url": "https://symfony.com/sponsor", 3985 | "type": "custom" 3986 | }, 3987 | { 3988 | "url": "https://github.com/fabpot", 3989 | "type": "github" 3990 | }, 3991 | { 3992 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3993 | "type": "tidelift" 3994 | } 3995 | ], 3996 | "time": "2020-05-20T17:43:50+00:00" 3997 | }, 3998 | { 3999 | "name": "symfony/yaml", 4000 | "version": "v5.4.3", 4001 | "source": { 4002 | "type": "git", 4003 | "url": "https://github.com/symfony/yaml.git", 4004 | "reference": "e80f87d2c9495966768310fc531b487ce64237a2" 4005 | }, 4006 | "dist": { 4007 | "type": "zip", 4008 | "url": "https://api.github.com/repos/symfony/yaml/zipball/e80f87d2c9495966768310fc531b487ce64237a2", 4009 | "reference": "e80f87d2c9495966768310fc531b487ce64237a2", 4010 | "shasum": "" 4011 | }, 4012 | "require": { 4013 | "php": ">=7.2.5", 4014 | "symfony/deprecation-contracts": "^2.1|^3", 4015 | "symfony/polyfill-ctype": "^1.8" 4016 | }, 4017 | "conflict": { 4018 | "symfony/console": "<5.3" 4019 | }, 4020 | "require-dev": { 4021 | "symfony/console": "^5.3|^6.0" 4022 | }, 4023 | "suggest": { 4024 | "symfony/console": "For validating YAML files using the lint command" 4025 | }, 4026 | "bin": [ 4027 | "Resources/bin/yaml-lint" 4028 | ], 4029 | "type": "library", 4030 | "autoload": { 4031 | "psr-4": { 4032 | "Symfony\\Component\\Yaml\\": "" 4033 | }, 4034 | "exclude-from-classmap": [ 4035 | "/Tests/" 4036 | ] 4037 | }, 4038 | "notification-url": "https://packagist.org/downloads/", 4039 | "license": [ 4040 | "MIT" 4041 | ], 4042 | "authors": [ 4043 | { 4044 | "name": "Fabien Potencier", 4045 | "email": "fabien@symfony.com" 4046 | }, 4047 | { 4048 | "name": "Symfony Community", 4049 | "homepage": "https://symfony.com/contributors" 4050 | } 4051 | ], 4052 | "description": "Loads and dumps YAML files", 4053 | "homepage": "https://symfony.com", 4054 | "support": { 4055 | "source": "https://github.com/symfony/yaml/tree/v5.4.3" 4056 | }, 4057 | "funding": [ 4058 | { 4059 | "url": "https://symfony.com/sponsor", 4060 | "type": "custom" 4061 | }, 4062 | { 4063 | "url": "https://github.com/fabpot", 4064 | "type": "github" 4065 | }, 4066 | { 4067 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 4068 | "type": "tidelift" 4069 | } 4070 | ], 4071 | "time": "2022-01-26T16:32:32+00:00" 4072 | }, 4073 | { 4074 | "name": "theseer/tokenizer", 4075 | "version": "1.2.0", 4076 | "source": { 4077 | "type": "git", 4078 | "url": "https://github.com/theseer/tokenizer.git", 4079 | "reference": "75a63c33a8577608444246075ea0af0d052e452a" 4080 | }, 4081 | "dist": { 4082 | "type": "zip", 4083 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", 4084 | "reference": "75a63c33a8577608444246075ea0af0d052e452a", 4085 | "shasum": "" 4086 | }, 4087 | "require": { 4088 | "ext-dom": "*", 4089 | "ext-tokenizer": "*", 4090 | "ext-xmlwriter": "*", 4091 | "php": "^7.2 || ^8.0" 4092 | }, 4093 | "type": "library", 4094 | "autoload": { 4095 | "classmap": [ 4096 | "src/" 4097 | ] 4098 | }, 4099 | "notification-url": "https://packagist.org/downloads/", 4100 | "license": [ 4101 | "BSD-3-Clause" 4102 | ], 4103 | "authors": [ 4104 | { 4105 | "name": "Arne Blankerts", 4106 | "email": "arne@blankerts.de", 4107 | "role": "Developer" 4108 | } 4109 | ], 4110 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 4111 | "support": { 4112 | "issues": "https://github.com/theseer/tokenizer/issues", 4113 | "source": "https://github.com/theseer/tokenizer/tree/master" 4114 | }, 4115 | "funding": [ 4116 | { 4117 | "url": "https://github.com/theseer", 4118 | "type": "github" 4119 | } 4120 | ], 4121 | "time": "2020-07-12T23:59:07+00:00" 4122 | }, 4123 | { 4124 | "name": "webmozart/assert", 4125 | "version": "1.9.1", 4126 | "source": { 4127 | "type": "git", 4128 | "url": "https://github.com/webmozarts/assert.git", 4129 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" 4130 | }, 4131 | "dist": { 4132 | "type": "zip", 4133 | "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", 4134 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", 4135 | "shasum": "" 4136 | }, 4137 | "require": { 4138 | "php": "^5.3.3 || ^7.0 || ^8.0", 4139 | "symfony/polyfill-ctype": "^1.8" 4140 | }, 4141 | "conflict": { 4142 | "phpstan/phpstan": "<0.12.20", 4143 | "vimeo/psalm": "<3.9.1" 4144 | }, 4145 | "require-dev": { 4146 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 4147 | }, 4148 | "type": "library", 4149 | "autoload": { 4150 | "psr-4": { 4151 | "Webmozart\\Assert\\": "src/" 4152 | } 4153 | }, 4154 | "notification-url": "https://packagist.org/downloads/", 4155 | "license": [ 4156 | "MIT" 4157 | ], 4158 | "authors": [ 4159 | { 4160 | "name": "Bernhard Schussek", 4161 | "email": "bschussek@gmail.com" 4162 | } 4163 | ], 4164 | "description": "Assertions to validate method input/output with nice error messages.", 4165 | "keywords": [ 4166 | "assert", 4167 | "check", 4168 | "validate" 4169 | ], 4170 | "support": { 4171 | "issues": "https://github.com/webmozarts/assert/issues", 4172 | "source": "https://github.com/webmozarts/assert/tree/1.9.1" 4173 | }, 4174 | "time": "2020-07-08T17:02:28+00:00" 4175 | } 4176 | ], 4177 | "aliases": [], 4178 | "minimum-stability": "stable", 4179 | "stability-flags": [], 4180 | "prefer-stable": false, 4181 | "prefer-lowest": false, 4182 | "platform": { 4183 | "php": "^8.0.2" 4184 | }, 4185 | "platform-dev": [], 4186 | "plugin-api-version": "2.3.0" 4187 | } 4188 | -------------------------------------------------------------------------------- /src/Icon.php: -------------------------------------------------------------------------------- 1 | fields['path'] = $path; 18 | } 19 | 20 | if ($type !== null) { 21 | $this->fields['type'] = $type; 22 | } 23 | } 24 | 25 | public static function create($path = null) 26 | { 27 | return new self($path); 28 | } 29 | 30 | public static function createFileicon($path = null) 31 | { 32 | return new self($path, 'fileicon'); 33 | } 34 | 35 | public static function createFiletype($path = null) 36 | { 37 | return new self($path, 'filetype'); 38 | } 39 | 40 | public function path($path) 41 | { 42 | $this->fields['path'] = $path; 43 | 44 | return $this; 45 | } 46 | 47 | public function __call($name, $arguments) 48 | { 49 | if (in_array($name, self::TYPES_ALLOWED)) { 50 | $this->fields['type'] = $name; 51 | } 52 | 53 | return $this; 54 | } 55 | 56 | public function toArray() 57 | { 58 | return $this->fields; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/Item.php: -------------------------------------------------------------------------------- 1 | type('default'); 65 | } 66 | 67 | public static function createFile() 68 | { 69 | return self::create()->type('file'); 70 | } 71 | 72 | public static function createSkipcheck() 73 | { 74 | return self::create()->type('file:skipcheck'); 75 | } 76 | 77 | public function valid($validity = true) 78 | { 79 | $this->fields['valid'] = (bool) $validity; 80 | 81 | return $this; 82 | } 83 | 84 | public function text($type, $text) 85 | { 86 | if (method_exists($this, $type)) { 87 | $this->$type($text); 88 | } 89 | 90 | return $this; 91 | } 92 | 93 | public function copy($text) 94 | { 95 | $this->fields['text']['copy'] = $text; 96 | 97 | return $this; 98 | } 99 | 100 | public function largetype($text) 101 | { 102 | $this->fields['text']['largetype'] = $text; 103 | 104 | return $this; 105 | } 106 | 107 | public function default() 108 | { 109 | return $this->type(); 110 | } 111 | 112 | public function file() 113 | { 114 | return $this->type('file'); 115 | } 116 | 117 | public function skipcheck() 118 | { 119 | return $this->type('file:skipcheck'); 120 | } 121 | 122 | public function type($type = 'default') 123 | { 124 | if (in_array($type, self::TYPES_ALLOWED)) { 125 | $this->fields['type'] = $type; 126 | } 127 | 128 | return $this; 129 | } 130 | 131 | public function mods(Mod ...$mods) 132 | { 133 | foreach ($mods as $mod) { 134 | $this->mod($mod); 135 | } 136 | 137 | return $this; 138 | } 139 | 140 | public function mod(Mod $mod) 141 | { 142 | if (in_array(get_class($mod), self::MODS_ALLOWED)) { 143 | $this->fields['mods'][$this->getModName($mod)] = $mod->toArray(); 144 | } 145 | 146 | return $this; 147 | } 148 | 149 | public function __get($name) 150 | { 151 | if (in_array($name, self::FIELDS_ALLOWED)) { 152 | return $this->fields[$name]; 153 | } 154 | 155 | throw new \Exception("'$name' is not a valid Item field."); 156 | } 157 | 158 | public function __call($name, $arguments) 159 | { 160 | if (in_array($name, self::FIELDS_ALLOWED)) { 161 | $this->fields[$name] = reset($arguments); 162 | 163 | return $this; 164 | } 165 | 166 | throw new \Exception("'$name' is not a valid Item field."); 167 | } 168 | 169 | public function toArray() 170 | { 171 | if ($this->variables !== null) { 172 | $this->fields['variables'] = $this->variables; 173 | } 174 | 175 | return $this->fields; 176 | } 177 | 178 | private function getModName(Mod $mod) 179 | { 180 | return strtolower( 181 | (new ReflectionClass($mod))->getShortName() === 'Fnn' ? 'Fn' : (new ReflectionClass($mod))->getShortName() 182 | ); 183 | } 184 | } 185 | -------------------------------------------------------------------------------- /src/Mods/Alt.php: -------------------------------------------------------------------------------- 1 | fields['valid'] = (bool) $validity; 31 | 32 | return $this; 33 | } 34 | 35 | public function __call($name, $arguments) 36 | { 37 | if (in_array($name, self::FIELDS_ALLOWED)) { 38 | $this->fields[$name] = reset($arguments); 39 | 40 | return $this; 41 | } 42 | 43 | $classShortName = (new \ReflectionClass($this))->getShortName(); 44 | 45 | throw new \Exception("'$name' is not a valid $classShortName field."); 46 | } 47 | 48 | public function toArray() 49 | { 50 | if ($this->variables !== null) { 51 | $this->fields['variables'] = $this->variables; 52 | } 53 | 54 | return $this->fields; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/Mods/Shift.php: -------------------------------------------------------------------------------- 1 | = 0.1 && $seconds <= 5.0) { 35 | self::getInstance()->rerun = $seconds; 36 | } 37 | 38 | return self::$instance; 39 | } 40 | 41 | public function item(Item $item) 42 | { 43 | self::getInstance()->add($item); 44 | 45 | return $this; 46 | } 47 | 48 | public function items(Item ...$items) 49 | { 50 | self::getInstance()->add(...$items); 51 | 52 | return $this; 53 | } 54 | 55 | public static function add(...$objects) 56 | { 57 | foreach ($objects as $object) { 58 | if ($object instanceof Variable) { 59 | self::getInstance()->variable($object); 60 | } 61 | 62 | if ($object instanceof Item) { 63 | self::getInstance()->items[] = $object; 64 | } 65 | } 66 | 67 | return self::$instance; 68 | } 69 | 70 | public static function filterItems($term = '', $field = 'title') 71 | { 72 | $items = &self::getInstance()->items; 73 | 74 | $items = array_values( 75 | array_filter($items, function ($item) use ($term, $field) { 76 | if (empty($term) || stripos($item->$field, $term) !== false) { 77 | return $item; 78 | } 79 | }) 80 | ); 81 | 82 | return self::$instance; 83 | } 84 | 85 | public static function sortItems($direction = 'asc', $field = 'title') 86 | { 87 | $items = &self::getInstance()->items; 88 | 89 | usort($items, function ($a, $b) use ($direction, $field) { 90 | if ($direction !== 'asc') { 91 | return strtolower($b->$field) <=> strtolower($a->$field); 92 | } 93 | 94 | return strtolower($a->$field) <=> strtolower($b->$field); 95 | }); 96 | 97 | return self::$instance; 98 | } 99 | 100 | public static function output() 101 | { 102 | if (self::getInstance()->rerun !== null) { 103 | $output['rerun'] = self::getInstance()->rerun; 104 | } 105 | 106 | if (self::getInstance()->variables !== null) { 107 | $output['variables'] = self::getInstance()->variables; 108 | } 109 | 110 | $output['items'] = array_map(function ($item) { 111 | return $item->toArray(); 112 | }, self::getInstance()->items); 113 | 114 | return json_encode($output); 115 | } 116 | 117 | public static function destroy() 118 | { 119 | self::getInstance()->reset(); 120 | 121 | self::$instance = null; 122 | } 123 | 124 | public static function reset() 125 | { 126 | self::getInstance()->rerun = null; 127 | self::getInstance()->variables = null; 128 | self::getInstance()->items = []; 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /src/Traits/HasIcon.php: -------------------------------------------------------------------------------- 1 | fields['icon'] = $icon->toArray(); 12 | 13 | return $this; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Traits/HasVariables.php: -------------------------------------------------------------------------------- 1 | variables = array_merge((array) $this->variables, $arguments[0]->toArray()); 18 | 19 | return $this; 20 | } 21 | 22 | public function variables(Variable ...$variables) 23 | { 24 | foreach ($variables as $variable) { 25 | $this->variable($variable); 26 | } 27 | 28 | return $this; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Variable.php: -------------------------------------------------------------------------------- 1 | name = $name; 14 | $this->value = $value; 15 | } 16 | 17 | public static function create($name = null, $value = null) 18 | { 19 | return new self($name, $value); 20 | } 21 | 22 | public function __call($name, $arguments) 23 | { 24 | if (property_exists($this, $name)) { 25 | $this->$name = reset($arguments); 26 | } 27 | 28 | return $this; 29 | } 30 | 31 | public function toArray() 32 | { 33 | if ($this->name === null || $this->value === null) { 34 | return []; 35 | } 36 | 37 | return [$this->name => $this->value]; 38 | } 39 | } 40 | --------------------------------------------------------------------------------