├── .dockerignore ├── .gitignore ├── .travis.yml ├── docker-compose.yml ├── README.md ├── composer.json ├── Dockerfile ├── data └── docker-compose.yml ├── bin └── installer └── composer.lock /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .idea 3 | .DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.vscode/ 2 | /vendor/ 3 | .env -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - '7.4' 5 | 6 | notifications: 7 | email: 8 | - team@appwrite.io 9 | 10 | services: 11 | - docker 12 | 13 | install: 14 | - docker-compose up -d 15 | - sleep 90 16 | 17 | script: 18 | - docker ps -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | 5 | install: 6 | build: 7 | context: . 8 | restart: unless-stopped 9 | volumes: 10 | - /var/run/docker.sock:/var/run/docker.sock 11 | - ./appwrite:/install/appwrite:rw 12 | environment: 13 | - _APP_ENV=production 14 | 15 | # docker build --no-cache --tag appwrite/install:0.2.0 . 16 | # docker run -it --rm --volume /var/run/docker.sock:/var/run/docker.sock --volume "$(pwd)"/appwrite:/install/appwrite:rw -e version=0.5.0 appwrite/install:0.1.0 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Appwrite Installer 2 | 3 | CLI Tool for easy installation of a self-hosted Appwrite server. The installation tool takes your input and creates a custom docker-compose file for your Appwrite installation. 4 | 5 | ## Install 6 | 7 | ```bash 8 | docker run -it --rm \ 9 | --volume /var/run/docker.sock:/var/run/docker.sock \ 10 | --volume "$(pwd)"/appwrite:/install/appwrite:rw \ 11 | appwrite/install:latest 12 | ``` 13 | 14 | ## Build 15 | 16 | ```bash 17 | docker build --no-cache --tag appwrite/install:latest . 18 | ``` 19 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "appwrite/install", 3 | "description": "CLI tool for easy installation of a self-hosted Appwrite server.", 4 | "type": "project", 5 | "license": "BSD-3-Clause", 6 | "authors": [ 7 | { 8 | "name": "Eldad Fux", 9 | "email": "eldad@appwrite.io" 10 | } 11 | ], 12 | "require": { 13 | "php": ">=7.4.0", 14 | "ext-curl": "*", 15 | "ext-json": "*", 16 | "utopia-php/framework": "0.2.0", 17 | "utopia-php/cli": "0.5.0" 18 | }, 19 | "require-dev": { 20 | "phpunit/phpunit": "^7.0" 21 | }, 22 | "minimum-stability": "dev", 23 | "config": { 24 | "platform": { 25 | "php": "7.4" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | 3 | LABEL maintainer="team@appwrite.io" 4 | 5 | ENV version latest \ 6 | TZ=Asia/Tel_Aviv \ 7 | PHP_VERSION=7.4 8 | 9 | RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 10 | 11 | RUN \ 12 | apt-get update && \ 13 | apt-get install -y --no-install-recommends --no-install-suggests software-properties-common && \ 14 | LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php && \ 15 | apt-get install -y --no-install-recommends --no-install-suggests wget curl docker.io php$PHP_VERSION php$PHP_VERSION-mbstring && \ 16 | rm -rf /var/lib/apt/lists/* 17 | 18 | RUN curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && \ 19 | chmod +x /usr/local/bin/docker-compose 20 | 21 | RUN docker-compose --version 22 | 23 | COPY . /install 24 | 25 | RUN ls -ll /install/data 26 | 27 | CMD [ "sh", "-c", "php /install/bin/installer start --version=${version}" ] 28 | -------------------------------------------------------------------------------- /data/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | appwrite: 5 | image: appwrite/appwrite 6 | restart: unless-stopped 7 | networks: 8 | - appwrite 9 | volumes: 10 | - appwrite-uploads:/storage/uploads:rw 11 | - appwrite-cache:/storage/cache:rw 12 | ports: 13 | - "80:80" 14 | depends_on: 15 | - mariadb 16 | - redis 17 | - smtp 18 | - clamav 19 | - influxdb 20 | - telegraf 21 | environment: 22 | - _APP_ENV=development 23 | - _APP_OPENSSL_KEY_V1=your-secret-key 24 | - _APP_REDIS_HOST=redis 25 | - _APP_REDIS_PORT=6379 26 | - _APP_DB_HOST=mariadb 27 | - _APP_DB_PORT=3306 28 | - _APP_DB_SCHEMA=appwrite 29 | - _APP_DB_USER=user 30 | - _APP_DB_PASS=password 31 | - _APP_INFLUXDB_HOST=influxdb 32 | - _APP_INFLUXDB_PORT=8086 33 | - _APP_STATSD_HOST=telegraf 34 | - _APP_STATSD_PORT=8125 35 | 36 | mariadb: 37 | image: appwrite/mariadb:1.0.1 38 | restart: unless-stopped 39 | networks: 40 | - appwrite 41 | volumes: 42 | - appwrite-db:/var/lib/mysql:rw 43 | environment: 44 | - MYSQL_ROOT_PASSWORD=rootsecretpassword 45 | - MYSQL_DATABASE=appwrite 46 | - MYSQL_USER=user 47 | - MYSQL_PASSWORD=password 48 | 49 | smtp: 50 | image: appwrite/smtp:1.0.0 51 | restart: unless-stopped 52 | networks: 53 | - appwrite 54 | environment: 55 | - MAILNAME=appwrite 56 | - RELAY_NETWORKS=:192.168.0.0/24:10.0.0.0/16 57 | 58 | clamav: 59 | image: appwrite/clamav:1.0.7 60 | restart: unless-stopped 61 | networks: 62 | - appwrite 63 | volumes: 64 | - appwrite-uploads:/storage/uploads 65 | 66 | redis: 67 | image: redis:5.0 68 | restart: unless-stopped 69 | networks: 70 | - appwrite 71 | 72 | influxdb: 73 | image: influxdb:1.6 74 | restart: unless-stopped 75 | networks: 76 | - appwrite 77 | volumes: 78 | - appwrite-influxdb:/var/lib/influxdb:rw 79 | 80 | telegraf: 81 | image: appwrite/telegraf:1.0.0 82 | restart: unless-stopped 83 | networks: 84 | - appwrite 85 | 86 | networks: 87 | appwrite: 88 | 89 | volumes: 90 | appwrite-db: 91 | appwrite-cache: 92 | appwrite-uploads: 93 | appwrite-influxdb: -------------------------------------------------------------------------------- /bin/installer: -------------------------------------------------------------------------------- 1 | #!/bin/env php 2 | task('start') 19 | ->desc('Install Appwrite') 20 | ->param('version', 'latest', function() {return new Text(10);}, 'Installation version', true) 21 | ->param('source', 'https://appwrite.io', function() {return new URL();}, 'Installation source', true) 22 | ->param('domain', 'localhost', function() {return new Domain();}, 'Installation domain', true) 23 | ->param('httpPort', 80, function() {return new Range(0, 65535);}, 'Installation HTTP port', true) 24 | ->param('httpsPort', 443, function() {return new Range(0, 65535);}, 'Installation HTTPS port', true) 25 | ->param('target', 'localhost', function() {return new Domain();}, 'Installation CNAME target', true) 26 | ->action(function ($version, $source, $domain, $httpPort, $httpsPort, $target) { 27 | Console::success('Starting Appwrite installation...'); 28 | 29 | if(!empty($domain)) { 30 | $domain = Console::confirm('Choose your server hostname: (default: \'localhost\')'); 31 | $domain = ($domain) ? $domain : 'localhost'; 32 | } 33 | 34 | if(!empty($httpPort)) { 35 | $httpPort = Console::confirm('Choose your server HTTP port: (default: 80)'); 36 | $httpPort = ($httpPort) ? $httpPort : 80; 37 | } 38 | 39 | if(!empty($httpsPort)) { 40 | $httpsPort = Console::confirm('Choose your server HTTPS port: (default: 443)'); 41 | $httpsPort = ($httpsPort) ? $httpsPort : 443; 42 | } 43 | 44 | if(!empty($target)) { 45 | $target = Console::confirm('Choose a CNAME target for your custom domains: (default: \''.$domain.'\')'); 46 | $target = ($target) ? $target : $domain; 47 | } 48 | 49 | $composeUrl = $source.'/docker-compose.yml?'.http_build_query([ 50 | 'version' => $version, 51 | 'domain' => $domain, 52 | 'httpPort' => $httpPort, 53 | 'httpsPort' => $httpsPort, 54 | 'target' => $target, 55 | ]); 56 | 57 | $composeFile = @file_get_contents($composeUrl); 58 | 59 | if(!$composeFile) { 60 | throw new Exception('Failed to fetch Docker Compose file'); 61 | } 62 | 63 | if(!file_put_contents('/install/appwrite/docker-compose.yml', $composeFile)) { 64 | throw new Exception('Failed to save Docker Compose file'); 65 | } 66 | 67 | $output = shell_exec('docker-compose -f /install/appwrite/docker-compose.yml up -d'); 68 | if ($output != NULL) { 69 | Console::error("Failed to install Appwrite dockers"); 70 | } else { 71 | Console::success("Appwrite installed successfully"); 72 | } 73 | }); 74 | 75 | $cli->run(); 76 | -------------------------------------------------------------------------------- /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": "57408063dbdda02cddee56a4754e732c", 8 | "packages": [ 9 | { 10 | "name": "utopia-php/cli", 11 | "version": "dev-master", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/utopia-php/cli.git", 15 | "reference": "0d232917ec9afefdcb5d0fa486c6005e928e561a" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/utopia-php/cli/zipball/0d232917ec9afefdcb5d0fa486c6005e928e561a", 20 | "reference": "0d232917ec9afefdcb5d0fa486c6005e928e561a", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": ">=7.1", 25 | "utopia-php/framework": "master" 26 | }, 27 | "require-dev": { 28 | "phpunit/phpunit": "^7.0" 29 | }, 30 | "type": "library", 31 | "autoload": { 32 | "psr-4": { 33 | "Utopia\\CLI\\": "src/CLI" 34 | } 35 | }, 36 | "notification-url": "https://packagist.org/downloads/", 37 | "license": [ 38 | "MIT" 39 | ], 40 | "authors": [ 41 | { 42 | "name": "Eldad Fux", 43 | "email": "eldad@appwrite.io" 44 | } 45 | ], 46 | "description": "A simple CLI library to manage command line applications", 47 | "keywords": [ 48 | "cli", 49 | "command line", 50 | "framework", 51 | "php", 52 | "upf", 53 | "utopia" 54 | ], 55 | "time": "2019-12-31T20:42:16+00:00" 56 | }, 57 | { 58 | "name": "utopia-php/framework", 59 | "version": "dev-master", 60 | "source": { 61 | "type": "git", 62 | "url": "https://github.com/utopia-php/framework.git", 63 | "reference": "ac1bdf5d34432620c5be97249a5e5ab0e49a69c7" 64 | }, 65 | "dist": { 66 | "type": "zip", 67 | "url": "https://api.github.com/repos/utopia-php/framework/zipball/ac1bdf5d34432620c5be97249a5e5ab0e49a69c7", 68 | "reference": "ac1bdf5d34432620c5be97249a5e5ab0e49a69c7", 69 | "shasum": "" 70 | }, 71 | "require": { 72 | "php": ">=7.0.0" 73 | }, 74 | "require-dev": { 75 | "phpunit/phpunit": "^7.0" 76 | }, 77 | "type": "library", 78 | "autoload": { 79 | "psr-4": { 80 | "Utopia\\": "src/" 81 | } 82 | }, 83 | "notification-url": "https://packagist.org/downloads/", 84 | "license": [ 85 | "MIT" 86 | ], 87 | "authors": [ 88 | { 89 | "name": "Eldad Fux", 90 | "email": "eldad@appwrite.io" 91 | } 92 | ], 93 | "description": "A simple, light and advanced PHP framework", 94 | "keywords": [ 95 | "framework", 96 | "php", 97 | "upf" 98 | ], 99 | "time": "2020-02-15T05:02:58+00:00" 100 | } 101 | ], 102 | "packages-dev": [ 103 | { 104 | "name": "doctrine/instantiator", 105 | "version": "dev-master", 106 | "source": { 107 | "type": "git", 108 | "url": "https://github.com/doctrine/instantiator.git", 109 | "reference": "6a1471ddbf2f448b35f3a8e390c903435e6dd5de" 110 | }, 111 | "dist": { 112 | "type": "zip", 113 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/6a1471ddbf2f448b35f3a8e390c903435e6dd5de", 114 | "reference": "6a1471ddbf2f448b35f3a8e390c903435e6dd5de", 115 | "shasum": "" 116 | }, 117 | "require": { 118 | "php": "^7.1" 119 | }, 120 | "require-dev": { 121 | "doctrine/coding-standard": "^6.0", 122 | "ext-pdo": "*", 123 | "ext-phar": "*", 124 | "phpbench/phpbench": "^0.13", 125 | "phpstan/phpstan-phpunit": "^0.11", 126 | "phpstan/phpstan-shim": "^0.11", 127 | "phpunit/phpunit": "^7.0" 128 | }, 129 | "type": "library", 130 | "extra": { 131 | "branch-alias": { 132 | "dev-master": "1.4.x-dev" 133 | } 134 | }, 135 | "autoload": { 136 | "psr-4": { 137 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 138 | } 139 | }, 140 | "notification-url": "https://packagist.org/downloads/", 141 | "license": [ 142 | "MIT" 143 | ], 144 | "authors": [ 145 | { 146 | "name": "Marco Pivetta", 147 | "email": "ocramius@gmail.com", 148 | "homepage": "http://ocramius.github.com/" 149 | } 150 | ], 151 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 152 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 153 | "keywords": [ 154 | "constructor", 155 | "instantiate" 156 | ], 157 | "time": "2019-12-23T19:18:31+00:00" 158 | }, 159 | { 160 | "name": "myclabs/deep-copy", 161 | "version": "1.x-dev", 162 | "source": { 163 | "type": "git", 164 | "url": "https://github.com/myclabs/DeepCopy.git", 165 | "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" 166 | }, 167 | "dist": { 168 | "type": "zip", 169 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", 170 | "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", 171 | "shasum": "" 172 | }, 173 | "require": { 174 | "php": "^7.1" 175 | }, 176 | "replace": { 177 | "myclabs/deep-copy": "self.version" 178 | }, 179 | "require-dev": { 180 | "doctrine/collections": "^1.0", 181 | "doctrine/common": "^2.6", 182 | "phpunit/phpunit": "^7.1" 183 | }, 184 | "type": "library", 185 | "autoload": { 186 | "psr-4": { 187 | "DeepCopy\\": "src/DeepCopy/" 188 | }, 189 | "files": [ 190 | "src/DeepCopy/deep_copy.php" 191 | ] 192 | }, 193 | "notification-url": "https://packagist.org/downloads/", 194 | "license": [ 195 | "MIT" 196 | ], 197 | "description": "Create deep copies (clones) of your objects", 198 | "keywords": [ 199 | "clone", 200 | "copy", 201 | "duplicate", 202 | "object", 203 | "object graph" 204 | ], 205 | "time": "2020-01-17T21:11:47+00:00" 206 | }, 207 | { 208 | "name": "phar-io/manifest", 209 | "version": "dev-master", 210 | "source": { 211 | "type": "git", 212 | "url": "https://github.com/phar-io/manifest.git", 213 | "reference": "3d94e3b6eb309e921a100a4992f72314299bb03f" 214 | }, 215 | "dist": { 216 | "type": "zip", 217 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/3d94e3b6eb309e921a100a4992f72314299bb03f", 218 | "reference": "3d94e3b6eb309e921a100a4992f72314299bb03f", 219 | "shasum": "" 220 | }, 221 | "require": { 222 | "ext-dom": "*", 223 | "ext-phar": "*", 224 | "ext-xmlwriter": "*", 225 | "phar-io/version": "^2.0", 226 | "php": "^7.2" 227 | }, 228 | "require-dev": { 229 | "phpunit/phpunit": "^8.2" 230 | }, 231 | "type": "library", 232 | "extra": { 233 | "branch-alias": { 234 | "dev-master": "1.0.x-dev" 235 | } 236 | }, 237 | "autoload": { 238 | "classmap": [ 239 | "src/" 240 | ] 241 | }, 242 | "notification-url": "https://packagist.org/downloads/", 243 | "license": [ 244 | "BSD-3-Clause" 245 | ], 246 | "authors": [ 247 | { 248 | "name": "Arne Blankerts", 249 | "email": "arne@blankerts.de", 250 | "role": "Developer" 251 | }, 252 | { 253 | "name": "Sebastian Heuer", 254 | "email": "sebastian@phpeople.de", 255 | "role": "Developer" 256 | }, 257 | { 258 | "name": "Sebastian Bergmann", 259 | "email": "sebastian@phpunit.de", 260 | "role": "Developer" 261 | } 262 | ], 263 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 264 | "time": "2019-12-29T10:29:09+00:00" 265 | }, 266 | { 267 | "name": "phar-io/version", 268 | "version": "2.0.1", 269 | "source": { 270 | "type": "git", 271 | "url": "https://github.com/phar-io/version.git", 272 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" 273 | }, 274 | "dist": { 275 | "type": "zip", 276 | "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", 277 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", 278 | "shasum": "" 279 | }, 280 | "require": { 281 | "php": "^5.6 || ^7.0" 282 | }, 283 | "type": "library", 284 | "autoload": { 285 | "classmap": [ 286 | "src/" 287 | ] 288 | }, 289 | "notification-url": "https://packagist.org/downloads/", 290 | "license": [ 291 | "BSD-3-Clause" 292 | ], 293 | "authors": [ 294 | { 295 | "name": "Arne Blankerts", 296 | "email": "arne@blankerts.de", 297 | "role": "Developer" 298 | }, 299 | { 300 | "name": "Sebastian Heuer", 301 | "email": "sebastian@phpeople.de", 302 | "role": "Developer" 303 | }, 304 | { 305 | "name": "Sebastian Bergmann", 306 | "email": "sebastian@phpunit.de", 307 | "role": "Developer" 308 | } 309 | ], 310 | "description": "Library for handling version information and constraints", 311 | "time": "2018-07-08T19:19:57+00:00" 312 | }, 313 | { 314 | "name": "phpdocumentor/reflection-common", 315 | "version": "dev-master", 316 | "source": { 317 | "type": "git", 318 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 319 | "reference": "b0843c8cbcc2dc5eda5158e583c7199a5e44c86d" 320 | }, 321 | "dist": { 322 | "type": "zip", 323 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/b0843c8cbcc2dc5eda5158e583c7199a5e44c86d", 324 | "reference": "b0843c8cbcc2dc5eda5158e583c7199a5e44c86d", 325 | "shasum": "" 326 | }, 327 | "require": { 328 | "php": ">=7.1" 329 | }, 330 | "require-dev": { 331 | "phpunit/phpunit": "~6" 332 | }, 333 | "type": "library", 334 | "extra": { 335 | "branch-alias": { 336 | "dev-master": "2.x-dev" 337 | } 338 | }, 339 | "autoload": { 340 | "psr-4": { 341 | "phpDocumentor\\Reflection\\": "src/" 342 | } 343 | }, 344 | "notification-url": "https://packagist.org/downloads/", 345 | "license": [ 346 | "MIT" 347 | ], 348 | "authors": [ 349 | { 350 | "name": "Jaap van Otterdijk", 351 | "email": "opensource@ijaap.nl" 352 | } 353 | ], 354 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 355 | "homepage": "http://www.phpdoc.org", 356 | "keywords": [ 357 | "FQSEN", 358 | "phpDocumentor", 359 | "phpdoc", 360 | "reflection", 361 | "static analysis" 362 | ], 363 | "time": "2019-12-20T12:45:35+00:00" 364 | }, 365 | { 366 | "name": "phpdocumentor/reflection-docblock", 367 | "version": "dev-master", 368 | "source": { 369 | "type": "git", 370 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 371 | "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" 372 | }, 373 | "dist": { 374 | "type": "zip", 375 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", 376 | "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", 377 | "shasum": "" 378 | }, 379 | "require": { 380 | "ext-filter": "^7.1", 381 | "php": "^7.2", 382 | "phpdocumentor/reflection-common": "^2.0", 383 | "phpdocumentor/type-resolver": "^1.0", 384 | "webmozart/assert": "^1" 385 | }, 386 | "require-dev": { 387 | "doctrine/instantiator": "^1", 388 | "mockery/mockery": "^1" 389 | }, 390 | "type": "library", 391 | "extra": { 392 | "branch-alias": { 393 | "dev-master": "5.x-dev" 394 | } 395 | }, 396 | "autoload": { 397 | "psr-4": { 398 | "phpDocumentor\\Reflection\\": "src" 399 | } 400 | }, 401 | "notification-url": "https://packagist.org/downloads/", 402 | "license": [ 403 | "MIT" 404 | ], 405 | "authors": [ 406 | { 407 | "name": "Mike van Riel", 408 | "email": "me@mikevanriel.com" 409 | }, 410 | { 411 | "name": "Jaap van Otterdijk", 412 | "email": "account@ijaap.nl" 413 | } 414 | ], 415 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 416 | "time": "2020-02-22T12:28:44+00:00" 417 | }, 418 | { 419 | "name": "phpdocumentor/type-resolver", 420 | "version": "dev-master", 421 | "source": { 422 | "type": "git", 423 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 424 | "reference": "aa06ba38ed9e5133feb70ea95b42a2e5354f52b8" 425 | }, 426 | "dist": { 427 | "type": "zip", 428 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/aa06ba38ed9e5133feb70ea95b42a2e5354f52b8", 429 | "reference": "aa06ba38ed9e5133feb70ea95b42a2e5354f52b8", 430 | "shasum": "" 431 | }, 432 | "require": { 433 | "php": "^7.2", 434 | "phpdocumentor/reflection-common": "^2.0" 435 | }, 436 | "require-dev": { 437 | "ext-tokenizer": "^7.2", 438 | "mockery/mockery": "~1" 439 | }, 440 | "type": "library", 441 | "extra": { 442 | "branch-alias": { 443 | "dev-master": "1.x-dev" 444 | } 445 | }, 446 | "autoload": { 447 | "psr-4": { 448 | "phpDocumentor\\Reflection\\": "src" 449 | } 450 | }, 451 | "notification-url": "https://packagist.org/downloads/", 452 | "license": [ 453 | "MIT" 454 | ], 455 | "authors": [ 456 | { 457 | "name": "Mike van Riel", 458 | "email": "me@mikevanriel.com" 459 | } 460 | ], 461 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 462 | "time": "2020-03-01T10:45:06+00:00" 463 | }, 464 | { 465 | "name": "phpspec/prophecy", 466 | "version": "dev-master", 467 | "source": { 468 | "type": "git", 469 | "url": "https://github.com/phpspec/prophecy.git", 470 | "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" 471 | }, 472 | "dist": { 473 | "type": "zip", 474 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", 475 | "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", 476 | "shasum": "" 477 | }, 478 | "require": { 479 | "doctrine/instantiator": "^1.0.2", 480 | "php": "^5.3|^7.0", 481 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", 482 | "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", 483 | "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" 484 | }, 485 | "require-dev": { 486 | "phpspec/phpspec": "^2.5 || ^3.2", 487 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" 488 | }, 489 | "type": "library", 490 | "extra": { 491 | "branch-alias": { 492 | "dev-master": "1.10.x-dev" 493 | } 494 | }, 495 | "autoload": { 496 | "psr-4": { 497 | "Prophecy\\": "src/Prophecy" 498 | } 499 | }, 500 | "notification-url": "https://packagist.org/downloads/", 501 | "license": [ 502 | "MIT" 503 | ], 504 | "authors": [ 505 | { 506 | "name": "Konstantin Kudryashov", 507 | "email": "ever.zet@gmail.com", 508 | "homepage": "http://everzet.com" 509 | }, 510 | { 511 | "name": "Marcello Duarte", 512 | "email": "marcello.duarte@gmail.com" 513 | } 514 | ], 515 | "description": "Highly opinionated mocking framework for PHP 5.3+", 516 | "homepage": "https://github.com/phpspec/prophecy", 517 | "keywords": [ 518 | "Double", 519 | "Dummy", 520 | "fake", 521 | "mock", 522 | "spy", 523 | "stub" 524 | ], 525 | "time": "2020-01-20T15:57:02+00:00" 526 | }, 527 | { 528 | "name": "phpunit/php-code-coverage", 529 | "version": "6.1.4", 530 | "source": { 531 | "type": "git", 532 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 533 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" 534 | }, 535 | "dist": { 536 | "type": "zip", 537 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 538 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 539 | "shasum": "" 540 | }, 541 | "require": { 542 | "ext-dom": "*", 543 | "ext-xmlwriter": "*", 544 | "php": "^7.1", 545 | "phpunit/php-file-iterator": "^2.0", 546 | "phpunit/php-text-template": "^1.2.1", 547 | "phpunit/php-token-stream": "^3.0", 548 | "sebastian/code-unit-reverse-lookup": "^1.0.1", 549 | "sebastian/environment": "^3.1 || ^4.0", 550 | "sebastian/version": "^2.0.1", 551 | "theseer/tokenizer": "^1.1" 552 | }, 553 | "require-dev": { 554 | "phpunit/phpunit": "^7.0" 555 | }, 556 | "suggest": { 557 | "ext-xdebug": "^2.6.0" 558 | }, 559 | "type": "library", 560 | "extra": { 561 | "branch-alias": { 562 | "dev-master": "6.1-dev" 563 | } 564 | }, 565 | "autoload": { 566 | "classmap": [ 567 | "src/" 568 | ] 569 | }, 570 | "notification-url": "https://packagist.org/downloads/", 571 | "license": [ 572 | "BSD-3-Clause" 573 | ], 574 | "authors": [ 575 | { 576 | "name": "Sebastian Bergmann", 577 | "email": "sebastian@phpunit.de", 578 | "role": "lead" 579 | } 580 | ], 581 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 582 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 583 | "keywords": [ 584 | "coverage", 585 | "testing", 586 | "xunit" 587 | ], 588 | "time": "2018-10-31T16:06:48+00:00" 589 | }, 590 | { 591 | "name": "phpunit/php-file-iterator", 592 | "version": "2.0.2", 593 | "source": { 594 | "type": "git", 595 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 596 | "reference": "050bedf145a257b1ff02746c31894800e5122946" 597 | }, 598 | "dist": { 599 | "type": "zip", 600 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", 601 | "reference": "050bedf145a257b1ff02746c31894800e5122946", 602 | "shasum": "" 603 | }, 604 | "require": { 605 | "php": "^7.1" 606 | }, 607 | "require-dev": { 608 | "phpunit/phpunit": "^7.1" 609 | }, 610 | "type": "library", 611 | "extra": { 612 | "branch-alias": { 613 | "dev-master": "2.0.x-dev" 614 | } 615 | }, 616 | "autoload": { 617 | "classmap": [ 618 | "src/" 619 | ] 620 | }, 621 | "notification-url": "https://packagist.org/downloads/", 622 | "license": [ 623 | "BSD-3-Clause" 624 | ], 625 | "authors": [ 626 | { 627 | "name": "Sebastian Bergmann", 628 | "email": "sebastian@phpunit.de", 629 | "role": "lead" 630 | } 631 | ], 632 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 633 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 634 | "keywords": [ 635 | "filesystem", 636 | "iterator" 637 | ], 638 | "time": "2018-09-13T20:33:42+00:00" 639 | }, 640 | { 641 | "name": "phpunit/php-text-template", 642 | "version": "1.2.1", 643 | "source": { 644 | "type": "git", 645 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 646 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 647 | }, 648 | "dist": { 649 | "type": "zip", 650 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 651 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 652 | "shasum": "" 653 | }, 654 | "require": { 655 | "php": ">=5.3.3" 656 | }, 657 | "type": "library", 658 | "autoload": { 659 | "classmap": [ 660 | "src/" 661 | ] 662 | }, 663 | "notification-url": "https://packagist.org/downloads/", 664 | "license": [ 665 | "BSD-3-Clause" 666 | ], 667 | "authors": [ 668 | { 669 | "name": "Sebastian Bergmann", 670 | "email": "sebastian@phpunit.de", 671 | "role": "lead" 672 | } 673 | ], 674 | "description": "Simple template engine.", 675 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 676 | "keywords": [ 677 | "template" 678 | ], 679 | "time": "2015-06-21T13:50:34+00:00" 680 | }, 681 | { 682 | "name": "phpunit/php-timer", 683 | "version": "2.1.2", 684 | "source": { 685 | "type": "git", 686 | "url": "https://github.com/sebastianbergmann/php-timer.git", 687 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" 688 | }, 689 | "dist": { 690 | "type": "zip", 691 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", 692 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", 693 | "shasum": "" 694 | }, 695 | "require": { 696 | "php": "^7.1" 697 | }, 698 | "require-dev": { 699 | "phpunit/phpunit": "^7.0" 700 | }, 701 | "type": "library", 702 | "extra": { 703 | "branch-alias": { 704 | "dev-master": "2.1-dev" 705 | } 706 | }, 707 | "autoload": { 708 | "classmap": [ 709 | "src/" 710 | ] 711 | }, 712 | "notification-url": "https://packagist.org/downloads/", 713 | "license": [ 714 | "BSD-3-Clause" 715 | ], 716 | "authors": [ 717 | { 718 | "name": "Sebastian Bergmann", 719 | "email": "sebastian@phpunit.de", 720 | "role": "lead" 721 | } 722 | ], 723 | "description": "Utility class for timing", 724 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 725 | "keywords": [ 726 | "timer" 727 | ], 728 | "time": "2019-06-07T04:22:29+00:00" 729 | }, 730 | { 731 | "name": "phpunit/php-token-stream", 732 | "version": "3.1.1", 733 | "source": { 734 | "type": "git", 735 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 736 | "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" 737 | }, 738 | "dist": { 739 | "type": "zip", 740 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", 741 | "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", 742 | "shasum": "" 743 | }, 744 | "require": { 745 | "ext-tokenizer": "*", 746 | "php": "^7.1" 747 | }, 748 | "require-dev": { 749 | "phpunit/phpunit": "^7.0" 750 | }, 751 | "type": "library", 752 | "extra": { 753 | "branch-alias": { 754 | "dev-master": "3.1-dev" 755 | } 756 | }, 757 | "autoload": { 758 | "classmap": [ 759 | "src/" 760 | ] 761 | }, 762 | "notification-url": "https://packagist.org/downloads/", 763 | "license": [ 764 | "BSD-3-Clause" 765 | ], 766 | "authors": [ 767 | { 768 | "name": "Sebastian Bergmann", 769 | "email": "sebastian@phpunit.de" 770 | } 771 | ], 772 | "description": "Wrapper around PHP's tokenizer extension.", 773 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 774 | "keywords": [ 775 | "tokenizer" 776 | ], 777 | "time": "2019-09-17T06:23:10+00:00" 778 | }, 779 | { 780 | "name": "phpunit/phpunit", 781 | "version": "7.5.20", 782 | "source": { 783 | "type": "git", 784 | "url": "https://github.com/sebastianbergmann/phpunit.git", 785 | "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" 786 | }, 787 | "dist": { 788 | "type": "zip", 789 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", 790 | "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", 791 | "shasum": "" 792 | }, 793 | "require": { 794 | "doctrine/instantiator": "^1.1", 795 | "ext-dom": "*", 796 | "ext-json": "*", 797 | "ext-libxml": "*", 798 | "ext-mbstring": "*", 799 | "ext-xml": "*", 800 | "myclabs/deep-copy": "^1.7", 801 | "phar-io/manifest": "^1.0.2", 802 | "phar-io/version": "^2.0", 803 | "php": "^7.1", 804 | "phpspec/prophecy": "^1.7", 805 | "phpunit/php-code-coverage": "^6.0.7", 806 | "phpunit/php-file-iterator": "^2.0.1", 807 | "phpunit/php-text-template": "^1.2.1", 808 | "phpunit/php-timer": "^2.1", 809 | "sebastian/comparator": "^3.0", 810 | "sebastian/diff": "^3.0", 811 | "sebastian/environment": "^4.0", 812 | "sebastian/exporter": "^3.1", 813 | "sebastian/global-state": "^2.0", 814 | "sebastian/object-enumerator": "^3.0.3", 815 | "sebastian/resource-operations": "^2.0", 816 | "sebastian/version": "^2.0.1" 817 | }, 818 | "conflict": { 819 | "phpunit/phpunit-mock-objects": "*" 820 | }, 821 | "require-dev": { 822 | "ext-pdo": "*" 823 | }, 824 | "suggest": { 825 | "ext-soap": "*", 826 | "ext-xdebug": "*", 827 | "phpunit/php-invoker": "^2.0" 828 | }, 829 | "bin": [ 830 | "phpunit" 831 | ], 832 | "type": "library", 833 | "extra": { 834 | "branch-alias": { 835 | "dev-master": "7.5-dev" 836 | } 837 | }, 838 | "autoload": { 839 | "classmap": [ 840 | "src/" 841 | ] 842 | }, 843 | "notification-url": "https://packagist.org/downloads/", 844 | "license": [ 845 | "BSD-3-Clause" 846 | ], 847 | "authors": [ 848 | { 849 | "name": "Sebastian Bergmann", 850 | "email": "sebastian@phpunit.de", 851 | "role": "lead" 852 | } 853 | ], 854 | "description": "The PHP Unit Testing framework.", 855 | "homepage": "https://phpunit.de/", 856 | "keywords": [ 857 | "phpunit", 858 | "testing", 859 | "xunit" 860 | ], 861 | "time": "2020-01-08T08:45:45+00:00" 862 | }, 863 | { 864 | "name": "sebastian/code-unit-reverse-lookup", 865 | "version": "1.0.1", 866 | "source": { 867 | "type": "git", 868 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 869 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" 870 | }, 871 | "dist": { 872 | "type": "zip", 873 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 874 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 875 | "shasum": "" 876 | }, 877 | "require": { 878 | "php": "^5.6 || ^7.0" 879 | }, 880 | "require-dev": { 881 | "phpunit/phpunit": "^5.7 || ^6.0" 882 | }, 883 | "type": "library", 884 | "extra": { 885 | "branch-alias": { 886 | "dev-master": "1.0.x-dev" 887 | } 888 | }, 889 | "autoload": { 890 | "classmap": [ 891 | "src/" 892 | ] 893 | }, 894 | "notification-url": "https://packagist.org/downloads/", 895 | "license": [ 896 | "BSD-3-Clause" 897 | ], 898 | "authors": [ 899 | { 900 | "name": "Sebastian Bergmann", 901 | "email": "sebastian@phpunit.de" 902 | } 903 | ], 904 | "description": "Looks up which function or method a line of code belongs to", 905 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 906 | "time": "2017-03-04T06:30:41+00:00" 907 | }, 908 | { 909 | "name": "sebastian/comparator", 910 | "version": "3.0.2", 911 | "source": { 912 | "type": "git", 913 | "url": "https://github.com/sebastianbergmann/comparator.git", 914 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" 915 | }, 916 | "dist": { 917 | "type": "zip", 918 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", 919 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", 920 | "shasum": "" 921 | }, 922 | "require": { 923 | "php": "^7.1", 924 | "sebastian/diff": "^3.0", 925 | "sebastian/exporter": "^3.1" 926 | }, 927 | "require-dev": { 928 | "phpunit/phpunit": "^7.1" 929 | }, 930 | "type": "library", 931 | "extra": { 932 | "branch-alias": { 933 | "dev-master": "3.0-dev" 934 | } 935 | }, 936 | "autoload": { 937 | "classmap": [ 938 | "src/" 939 | ] 940 | }, 941 | "notification-url": "https://packagist.org/downloads/", 942 | "license": [ 943 | "BSD-3-Clause" 944 | ], 945 | "authors": [ 946 | { 947 | "name": "Jeff Welch", 948 | "email": "whatthejeff@gmail.com" 949 | }, 950 | { 951 | "name": "Volker Dusch", 952 | "email": "github@wallbash.com" 953 | }, 954 | { 955 | "name": "Bernhard Schussek", 956 | "email": "bschussek@2bepublished.at" 957 | }, 958 | { 959 | "name": "Sebastian Bergmann", 960 | "email": "sebastian@phpunit.de" 961 | } 962 | ], 963 | "description": "Provides the functionality to compare PHP values for equality", 964 | "homepage": "https://github.com/sebastianbergmann/comparator", 965 | "keywords": [ 966 | "comparator", 967 | "compare", 968 | "equality" 969 | ], 970 | "time": "2018-07-12T15:12:46+00:00" 971 | }, 972 | { 973 | "name": "sebastian/diff", 974 | "version": "3.0.2", 975 | "source": { 976 | "type": "git", 977 | "url": "https://github.com/sebastianbergmann/diff.git", 978 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" 979 | }, 980 | "dist": { 981 | "type": "zip", 982 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", 983 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", 984 | "shasum": "" 985 | }, 986 | "require": { 987 | "php": "^7.1" 988 | }, 989 | "require-dev": { 990 | "phpunit/phpunit": "^7.5 || ^8.0", 991 | "symfony/process": "^2 || ^3.3 || ^4" 992 | }, 993 | "type": "library", 994 | "extra": { 995 | "branch-alias": { 996 | "dev-master": "3.0-dev" 997 | } 998 | }, 999 | "autoload": { 1000 | "classmap": [ 1001 | "src/" 1002 | ] 1003 | }, 1004 | "notification-url": "https://packagist.org/downloads/", 1005 | "license": [ 1006 | "BSD-3-Clause" 1007 | ], 1008 | "authors": [ 1009 | { 1010 | "name": "Kore Nordmann", 1011 | "email": "mail@kore-nordmann.de" 1012 | }, 1013 | { 1014 | "name": "Sebastian Bergmann", 1015 | "email": "sebastian@phpunit.de" 1016 | } 1017 | ], 1018 | "description": "Diff implementation", 1019 | "homepage": "https://github.com/sebastianbergmann/diff", 1020 | "keywords": [ 1021 | "diff", 1022 | "udiff", 1023 | "unidiff", 1024 | "unified diff" 1025 | ], 1026 | "time": "2019-02-04T06:01:07+00:00" 1027 | }, 1028 | { 1029 | "name": "sebastian/environment", 1030 | "version": "4.2.3", 1031 | "source": { 1032 | "type": "git", 1033 | "url": "https://github.com/sebastianbergmann/environment.git", 1034 | "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" 1035 | }, 1036 | "dist": { 1037 | "type": "zip", 1038 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", 1039 | "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", 1040 | "shasum": "" 1041 | }, 1042 | "require": { 1043 | "php": "^7.1" 1044 | }, 1045 | "require-dev": { 1046 | "phpunit/phpunit": "^7.5" 1047 | }, 1048 | "suggest": { 1049 | "ext-posix": "*" 1050 | }, 1051 | "type": "library", 1052 | "extra": { 1053 | "branch-alias": { 1054 | "dev-master": "4.2-dev" 1055 | } 1056 | }, 1057 | "autoload": { 1058 | "classmap": [ 1059 | "src/" 1060 | ] 1061 | }, 1062 | "notification-url": "https://packagist.org/downloads/", 1063 | "license": [ 1064 | "BSD-3-Clause" 1065 | ], 1066 | "authors": [ 1067 | { 1068 | "name": "Sebastian Bergmann", 1069 | "email": "sebastian@phpunit.de" 1070 | } 1071 | ], 1072 | "description": "Provides functionality to handle HHVM/PHP environments", 1073 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1074 | "keywords": [ 1075 | "Xdebug", 1076 | "environment", 1077 | "hhvm" 1078 | ], 1079 | "time": "2019-11-20T08:46:58+00:00" 1080 | }, 1081 | { 1082 | "name": "sebastian/exporter", 1083 | "version": "3.1.2", 1084 | "source": { 1085 | "type": "git", 1086 | "url": "https://github.com/sebastianbergmann/exporter.git", 1087 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" 1088 | }, 1089 | "dist": { 1090 | "type": "zip", 1091 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", 1092 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", 1093 | "shasum": "" 1094 | }, 1095 | "require": { 1096 | "php": "^7.0", 1097 | "sebastian/recursion-context": "^3.0" 1098 | }, 1099 | "require-dev": { 1100 | "ext-mbstring": "*", 1101 | "phpunit/phpunit": "^6.0" 1102 | }, 1103 | "type": "library", 1104 | "extra": { 1105 | "branch-alias": { 1106 | "dev-master": "3.1.x-dev" 1107 | } 1108 | }, 1109 | "autoload": { 1110 | "classmap": [ 1111 | "src/" 1112 | ] 1113 | }, 1114 | "notification-url": "https://packagist.org/downloads/", 1115 | "license": [ 1116 | "BSD-3-Clause" 1117 | ], 1118 | "authors": [ 1119 | { 1120 | "name": "Sebastian Bergmann", 1121 | "email": "sebastian@phpunit.de" 1122 | }, 1123 | { 1124 | "name": "Jeff Welch", 1125 | "email": "whatthejeff@gmail.com" 1126 | }, 1127 | { 1128 | "name": "Volker Dusch", 1129 | "email": "github@wallbash.com" 1130 | }, 1131 | { 1132 | "name": "Adam Harvey", 1133 | "email": "aharvey@php.net" 1134 | }, 1135 | { 1136 | "name": "Bernhard Schussek", 1137 | "email": "bschussek@gmail.com" 1138 | } 1139 | ], 1140 | "description": "Provides the functionality to export PHP variables for visualization", 1141 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1142 | "keywords": [ 1143 | "export", 1144 | "exporter" 1145 | ], 1146 | "time": "2019-09-14T09:02:43+00:00" 1147 | }, 1148 | { 1149 | "name": "sebastian/global-state", 1150 | "version": "2.0.0", 1151 | "source": { 1152 | "type": "git", 1153 | "url": "https://github.com/sebastianbergmann/global-state.git", 1154 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" 1155 | }, 1156 | "dist": { 1157 | "type": "zip", 1158 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 1159 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 1160 | "shasum": "" 1161 | }, 1162 | "require": { 1163 | "php": "^7.0" 1164 | }, 1165 | "require-dev": { 1166 | "phpunit/phpunit": "^6.0" 1167 | }, 1168 | "suggest": { 1169 | "ext-uopz": "*" 1170 | }, 1171 | "type": "library", 1172 | "extra": { 1173 | "branch-alias": { 1174 | "dev-master": "2.0-dev" 1175 | } 1176 | }, 1177 | "autoload": { 1178 | "classmap": [ 1179 | "src/" 1180 | ] 1181 | }, 1182 | "notification-url": "https://packagist.org/downloads/", 1183 | "license": [ 1184 | "BSD-3-Clause" 1185 | ], 1186 | "authors": [ 1187 | { 1188 | "name": "Sebastian Bergmann", 1189 | "email": "sebastian@phpunit.de" 1190 | } 1191 | ], 1192 | "description": "Snapshotting of global state", 1193 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1194 | "keywords": [ 1195 | "global state" 1196 | ], 1197 | "time": "2017-04-27T15:39:26+00:00" 1198 | }, 1199 | { 1200 | "name": "sebastian/object-enumerator", 1201 | "version": "3.0.3", 1202 | "source": { 1203 | "type": "git", 1204 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1205 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" 1206 | }, 1207 | "dist": { 1208 | "type": "zip", 1209 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", 1210 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", 1211 | "shasum": "" 1212 | }, 1213 | "require": { 1214 | "php": "^7.0", 1215 | "sebastian/object-reflector": "^1.1.1", 1216 | "sebastian/recursion-context": "^3.0" 1217 | }, 1218 | "require-dev": { 1219 | "phpunit/phpunit": "^6.0" 1220 | }, 1221 | "type": "library", 1222 | "extra": { 1223 | "branch-alias": { 1224 | "dev-master": "3.0.x-dev" 1225 | } 1226 | }, 1227 | "autoload": { 1228 | "classmap": [ 1229 | "src/" 1230 | ] 1231 | }, 1232 | "notification-url": "https://packagist.org/downloads/", 1233 | "license": [ 1234 | "BSD-3-Clause" 1235 | ], 1236 | "authors": [ 1237 | { 1238 | "name": "Sebastian Bergmann", 1239 | "email": "sebastian@phpunit.de" 1240 | } 1241 | ], 1242 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 1243 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 1244 | "time": "2017-08-03T12:35:26+00:00" 1245 | }, 1246 | { 1247 | "name": "sebastian/object-reflector", 1248 | "version": "1.1.1", 1249 | "source": { 1250 | "type": "git", 1251 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 1252 | "reference": "773f97c67f28de00d397be301821b06708fca0be" 1253 | }, 1254 | "dist": { 1255 | "type": "zip", 1256 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", 1257 | "reference": "773f97c67f28de00d397be301821b06708fca0be", 1258 | "shasum": "" 1259 | }, 1260 | "require": { 1261 | "php": "^7.0" 1262 | }, 1263 | "require-dev": { 1264 | "phpunit/phpunit": "^6.0" 1265 | }, 1266 | "type": "library", 1267 | "extra": { 1268 | "branch-alias": { 1269 | "dev-master": "1.1-dev" 1270 | } 1271 | }, 1272 | "autoload": { 1273 | "classmap": [ 1274 | "src/" 1275 | ] 1276 | }, 1277 | "notification-url": "https://packagist.org/downloads/", 1278 | "license": [ 1279 | "BSD-3-Clause" 1280 | ], 1281 | "authors": [ 1282 | { 1283 | "name": "Sebastian Bergmann", 1284 | "email": "sebastian@phpunit.de" 1285 | } 1286 | ], 1287 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 1288 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 1289 | "time": "2017-03-29T09:07:27+00:00" 1290 | }, 1291 | { 1292 | "name": "sebastian/recursion-context", 1293 | "version": "3.0.0", 1294 | "source": { 1295 | "type": "git", 1296 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1297 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" 1298 | }, 1299 | "dist": { 1300 | "type": "zip", 1301 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", 1302 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", 1303 | "shasum": "" 1304 | }, 1305 | "require": { 1306 | "php": "^7.0" 1307 | }, 1308 | "require-dev": { 1309 | "phpunit/phpunit": "^6.0" 1310 | }, 1311 | "type": "library", 1312 | "extra": { 1313 | "branch-alias": { 1314 | "dev-master": "3.0.x-dev" 1315 | } 1316 | }, 1317 | "autoload": { 1318 | "classmap": [ 1319 | "src/" 1320 | ] 1321 | }, 1322 | "notification-url": "https://packagist.org/downloads/", 1323 | "license": [ 1324 | "BSD-3-Clause" 1325 | ], 1326 | "authors": [ 1327 | { 1328 | "name": "Jeff Welch", 1329 | "email": "whatthejeff@gmail.com" 1330 | }, 1331 | { 1332 | "name": "Sebastian Bergmann", 1333 | "email": "sebastian@phpunit.de" 1334 | }, 1335 | { 1336 | "name": "Adam Harvey", 1337 | "email": "aharvey@php.net" 1338 | } 1339 | ], 1340 | "description": "Provides functionality to recursively process PHP variables", 1341 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 1342 | "time": "2017-03-03T06:23:57+00:00" 1343 | }, 1344 | { 1345 | "name": "sebastian/resource-operations", 1346 | "version": "2.0.1", 1347 | "source": { 1348 | "type": "git", 1349 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 1350 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" 1351 | }, 1352 | "dist": { 1353 | "type": "zip", 1354 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", 1355 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", 1356 | "shasum": "" 1357 | }, 1358 | "require": { 1359 | "php": "^7.1" 1360 | }, 1361 | "type": "library", 1362 | "extra": { 1363 | "branch-alias": { 1364 | "dev-master": "2.0-dev" 1365 | } 1366 | }, 1367 | "autoload": { 1368 | "classmap": [ 1369 | "src/" 1370 | ] 1371 | }, 1372 | "notification-url": "https://packagist.org/downloads/", 1373 | "license": [ 1374 | "BSD-3-Clause" 1375 | ], 1376 | "authors": [ 1377 | { 1378 | "name": "Sebastian Bergmann", 1379 | "email": "sebastian@phpunit.de" 1380 | } 1381 | ], 1382 | "description": "Provides a list of PHP built-in functions that operate on resources", 1383 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 1384 | "time": "2018-10-04T04:07:39+00:00" 1385 | }, 1386 | { 1387 | "name": "sebastian/version", 1388 | "version": "2.0.1", 1389 | "source": { 1390 | "type": "git", 1391 | "url": "https://github.com/sebastianbergmann/version.git", 1392 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 1393 | }, 1394 | "dist": { 1395 | "type": "zip", 1396 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 1397 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 1398 | "shasum": "" 1399 | }, 1400 | "require": { 1401 | "php": ">=5.6" 1402 | }, 1403 | "type": "library", 1404 | "extra": { 1405 | "branch-alias": { 1406 | "dev-master": "2.0.x-dev" 1407 | } 1408 | }, 1409 | "autoload": { 1410 | "classmap": [ 1411 | "src/" 1412 | ] 1413 | }, 1414 | "notification-url": "https://packagist.org/downloads/", 1415 | "license": [ 1416 | "BSD-3-Clause" 1417 | ], 1418 | "authors": [ 1419 | { 1420 | "name": "Sebastian Bergmann", 1421 | "email": "sebastian@phpunit.de", 1422 | "role": "lead" 1423 | } 1424 | ], 1425 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1426 | "homepage": "https://github.com/sebastianbergmann/version", 1427 | "time": "2016-10-03T07:35:21+00:00" 1428 | }, 1429 | { 1430 | "name": "symfony/polyfill-ctype", 1431 | "version": "dev-master", 1432 | "source": { 1433 | "type": "git", 1434 | "url": "https://github.com/symfony/polyfill-ctype.git", 1435 | "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" 1436 | }, 1437 | "dist": { 1438 | "type": "zip", 1439 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", 1440 | "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", 1441 | "shasum": "" 1442 | }, 1443 | "require": { 1444 | "php": ">=5.3.3" 1445 | }, 1446 | "suggest": { 1447 | "ext-ctype": "For best performance" 1448 | }, 1449 | "type": "library", 1450 | "extra": { 1451 | "branch-alias": { 1452 | "dev-master": "1.15-dev" 1453 | } 1454 | }, 1455 | "autoload": { 1456 | "psr-4": { 1457 | "Symfony\\Polyfill\\Ctype\\": "" 1458 | }, 1459 | "files": [ 1460 | "bootstrap.php" 1461 | ] 1462 | }, 1463 | "notification-url": "https://packagist.org/downloads/", 1464 | "license": [ 1465 | "MIT" 1466 | ], 1467 | "authors": [ 1468 | { 1469 | "name": "Gert de Pagter", 1470 | "email": "BackEndTea@gmail.com" 1471 | }, 1472 | { 1473 | "name": "Symfony Community", 1474 | "homepage": "https://symfony.com/contributors" 1475 | } 1476 | ], 1477 | "description": "Symfony polyfill for ctype functions", 1478 | "homepage": "https://symfony.com", 1479 | "keywords": [ 1480 | "compatibility", 1481 | "ctype", 1482 | "polyfill", 1483 | "portable" 1484 | ], 1485 | "time": "2020-02-27T09:26:54+00:00" 1486 | }, 1487 | { 1488 | "name": "theseer/tokenizer", 1489 | "version": "1.1.3", 1490 | "source": { 1491 | "type": "git", 1492 | "url": "https://github.com/theseer/tokenizer.git", 1493 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" 1494 | }, 1495 | "dist": { 1496 | "type": "zip", 1497 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", 1498 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", 1499 | "shasum": "" 1500 | }, 1501 | "require": { 1502 | "ext-dom": "*", 1503 | "ext-tokenizer": "*", 1504 | "ext-xmlwriter": "*", 1505 | "php": "^7.0" 1506 | }, 1507 | "type": "library", 1508 | "autoload": { 1509 | "classmap": [ 1510 | "src/" 1511 | ] 1512 | }, 1513 | "notification-url": "https://packagist.org/downloads/", 1514 | "license": [ 1515 | "BSD-3-Clause" 1516 | ], 1517 | "authors": [ 1518 | { 1519 | "name": "Arne Blankerts", 1520 | "email": "arne@blankerts.de", 1521 | "role": "Developer" 1522 | } 1523 | ], 1524 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 1525 | "time": "2019-06-13T22:48:21+00:00" 1526 | }, 1527 | { 1528 | "name": "webmozart/assert", 1529 | "version": "1.7.0", 1530 | "source": { 1531 | "type": "git", 1532 | "url": "https://github.com/webmozart/assert.git", 1533 | "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" 1534 | }, 1535 | "dist": { 1536 | "type": "zip", 1537 | "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", 1538 | "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", 1539 | "shasum": "" 1540 | }, 1541 | "require": { 1542 | "php": "^5.3.3 || ^7.0", 1543 | "symfony/polyfill-ctype": "^1.8" 1544 | }, 1545 | "conflict": { 1546 | "vimeo/psalm": "<3.6.0" 1547 | }, 1548 | "require-dev": { 1549 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 1550 | }, 1551 | "type": "library", 1552 | "autoload": { 1553 | "psr-4": { 1554 | "Webmozart\\Assert\\": "src/" 1555 | } 1556 | }, 1557 | "notification-url": "https://packagist.org/downloads/", 1558 | "license": [ 1559 | "MIT" 1560 | ], 1561 | "authors": [ 1562 | { 1563 | "name": "Bernhard Schussek", 1564 | "email": "bschussek@gmail.com" 1565 | } 1566 | ], 1567 | "description": "Assertions to validate method input/output with nice error messages.", 1568 | "keywords": [ 1569 | "assert", 1570 | "check", 1571 | "validate" 1572 | ], 1573 | "time": "2020-02-14T12:15:55+00:00" 1574 | } 1575 | ], 1576 | "aliases": [], 1577 | "minimum-stability": "dev", 1578 | "stability-flags": [], 1579 | "prefer-stable": false, 1580 | "prefer-lowest": false, 1581 | "platform": { 1582 | "php": ">=7.4.0", 1583 | "ext-curl": "*", 1584 | "ext-json": "*" 1585 | }, 1586 | "platform-dev": [], 1587 | "platform-overrides": { 1588 | "php": "7.4" 1589 | } 1590 | } 1591 | --------------------------------------------------------------------------------