├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── composer.json ├── composer.lock ├── demo.gif ├── phpstan.neon ├── phpunit.xml └── src ├── Api ├── ItemInterface.php ├── WishlistInterface.php └── WishlistRepositoryInterface.php ├── Model ├── Wishlist.php └── WishlistRepository.php ├── Test └── Unit │ └── Model │ └── WishlistRepositoryTest.php ├── etc ├── di.xml ├── module.xml └── webapi.xml └── registration.php /.gitignore: -------------------------------------------------------------------------------- 1 | vendor -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | php: 3 | - '7.0' 4 | before_install: 'echo "{\"http-basic\":{\"repo.magento.com\":{\"username\": \"$MAGENTO_PUBLIC_KEY\", \"password\": \"$MAGENTO_PRIVATE_KEY\"}}}" > ~/.composer/auth.json' 5 | install: composer install 6 | script: composer run ci -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 mediaman GmbH 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Wishlist API 2 | 3 | Adds an API to interact with the Magento2 wishlist. 4 | 5 | [![Build Status](https://travis-ci.org/mediamanDE/magento-module-wishlist-api.svg?branch=master)](https://travis-ci.org/mediamanDE/magento-module-wishlist-api) 6 | 7 | ![Demo GIF](https://raw.githubusercontent.com/mediamanDE/magento-module-wishlist-api/master/demo.gif) 8 | 9 | ## Getting Started 10 | 11 | Install the module via composer 12 | 13 | ``` 14 | $ composer require "mediaman/module-wishlist-api: 1.*" 15 | ``` 16 | 17 | Enable the module 18 | 19 | ``` 20 | $ ./bin/magento module:enable Mediaman_WishlistApi 21 | ``` 22 | 23 | Upgrade your Magento database schemas 24 | 25 | ``` 26 | $ ./bin/magento setup:upgrade 27 | ``` 28 | 29 | ### Usage 30 | 31 | The module adds three new API endpoints that allow you to interact with the Magento 2 wishlist. 32 | 33 | If there's no customer session available, the current customer is received through the customer token. 34 | 35 | **GET** `/rest/V1/wishlist` 36 | 37 | Get the wishlist for the user. 38 | 39 | **Example:** 40 | 41 | ``` 42 | $ curl -X GET http://magento.example.com/rest/V1/wishlist --header "Authorization: Bearer pbhercbtk6dd3eatf1pyx8jj45avjluu" 43 | ``` 44 | 45 | **PUT** `/rest/V1/wishlist/:sku` 46 | 47 | Add the product to the users wishlist. 48 | 49 | **Example:** 50 | 51 | ``` 52 | $ curl -X PUT http://magento.example.com/rest/V1/wishlist/24-MB01 --header "Authorization: Bearer pbhercbtk6dd3eatf1pyx8jj45avjluu" 53 | ``` 54 | 55 | **DELETE** `/rest/V1/wishlist/:itemId` 56 | 57 | Remove an item from the users wishlist. 58 | 59 | **Example:** 60 | 61 | ``` 62 | $ curl -X DELETE http://magento.example.com/rest/V1/wishlist/1 --header "Authorization: Bearer pbhercbtk6dd3eatf1pyx8jj45avjluu" 63 | ``` 64 | 65 | ## License 66 | 67 | MIT © [mediaman GmbH](mailto:hallo@mediaman.de) 68 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mediaman/module-wishlist-api", 3 | "description": "Magento 2 module that provides an API to interact with the Wishlist module.", 4 | "license": "MIT", 5 | "type": "magento2-module", 6 | "homepage": "http://mediaman.de/", 7 | "keywords": [ 8 | "composer-installer", 9 | "magento", 10 | "Magento 2 Module", 11 | "Magento 2", 12 | "wishlist", 13 | "api", 14 | "headless", 15 | "mediaman" 16 | ], 17 | "authors": [ 18 | { 19 | "email": "hello@mediaman.com", 20 | "name": "mediaman GmbH" 21 | } 22 | ], 23 | "scripts": { 24 | "phpcs": "phpcs --standard=PSR1,PSR2 ./src", 25 | "static-analyse": "phpstan analyse -l 4 -c phpstan.neon ./src", 26 | "test": "phpunit -c phpunit.xml", 27 | "ci": "composer run phpcs && composer run static-analyse && composer run test" 28 | }, 29 | "minimum-stability": "dev", 30 | "require": { 31 | "magento/framework": "100.*", 32 | "magento/module-integration": "100.*", 33 | "php": ">=7.0" 34 | }, 35 | "require-dev": { 36 | "phpunit/phpunit": "4.1.0", 37 | "squizlabs/php_codesniffer": "^3.0", 38 | "phpstan/phpstan": "^0.7.0" 39 | }, 40 | "repositories": { 41 | "magento": { 42 | "type": "composer", 43 | "url": "https://repo.magento.com/" 44 | } 45 | }, 46 | "autoload": { 47 | "files": [ 48 | "src/registration.php" 49 | ], 50 | "psr-4": { 51 | "Mediaman\\WishlistApi\\": "src/" 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /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#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "e7e27b8a3d20fb8e365f6bd55654703b", 8 | "packages": [ 9 | { 10 | "name": "magento/framework", 11 | "version": "100.1.7", 12 | "dist": { 13 | "type": "zip", 14 | "url": "https://repo.magento.com/archives/magento/framework/magento-framework-100.1.7.0.zip", 15 | "reference": null, 16 | "shasum": "f2ca73866a91b963870beb0a608fdb02d751fc88" 17 | }, 18 | "require": { 19 | "ext-curl": "*", 20 | "ext-dom": "*", 21 | "ext-gd": "*", 22 | "ext-hash": "*", 23 | "ext-iconv": "*", 24 | "ext-mcrypt": "*", 25 | "ext-openssl": "*", 26 | "ext-simplexml": "*", 27 | "ext-spl": "*", 28 | "ext-xsl": "*", 29 | "lib-libxml": "*", 30 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6", 31 | "symfony/process": "~2.1", 32 | "zendframework/zend-http": "~2.4.6", 33 | "zendframework/zend-stdlib": "~2.4.6" 34 | }, 35 | "suggest": { 36 | "ext-imagick": "Use Image Magick >=3.0.0 as an optional alternative image processing library" 37 | }, 38 | "type": "magento2-library", 39 | "autoload": { 40 | "psr-4": { 41 | "Magento\\Framework\\": "" 42 | }, 43 | "files": [ 44 | "registration.php" 45 | ] 46 | }, 47 | "license": [ 48 | "OSL-3.0", 49 | "AFL-3.0" 50 | ], 51 | "description": "N/A" 52 | }, 53 | { 54 | "name": "magento/module-authorization", 55 | "version": "100.1.2", 56 | "dist": { 57 | "type": "zip", 58 | "url": "https://repo.magento.com/archives/magento/module-authorization/magento-module-authorization-100.1.2.0.zip", 59 | "reference": null, 60 | "shasum": "b3bbc4ce889e1b43e45e1adb50208a8fc4721662" 61 | }, 62 | "require": { 63 | "magento/framework": "100.1.*", 64 | "magento/module-backend": "100.1.*", 65 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 66 | }, 67 | "type": "magento2-module", 68 | "autoload": { 69 | "files": [ 70 | "registration.php" 71 | ], 72 | "psr-4": { 73 | "Magento\\Authorization\\": "" 74 | } 75 | }, 76 | "license": [ 77 | "OSL-3.0", 78 | "AFL-3.0" 79 | ], 80 | "description": "Authorization module provides access to Magento ACL functionality." 81 | }, 82 | { 83 | "name": "magento/module-backend", 84 | "version": "100.1.3", 85 | "dist": { 86 | "type": "zip", 87 | "url": "https://repo.magento.com/archives/magento/module-backend/magento-module-backend-100.1.3.0.zip", 88 | "reference": null, 89 | "shasum": "f0cc30af16c204cb4c1c39a5b06c099a5c1dc298" 90 | }, 91 | "require": { 92 | "magento/framework": "100.1.*", 93 | "magento/module-backup": "100.1.*", 94 | "magento/module-catalog": "101.0.*", 95 | "magento/module-config": "100.1.*", 96 | "magento/module-customer": "100.1.*", 97 | "magento/module-developer": "100.1.*", 98 | "magento/module-directory": "100.1.*", 99 | "magento/module-eav": "100.1.*", 100 | "magento/module-quote": "100.1.*", 101 | "magento/module-reports": "100.1.*", 102 | "magento/module-require-js": "100.1.*", 103 | "magento/module-sales": "100.1.*", 104 | "magento/module-security": "100.1.*", 105 | "magento/module-store": "100.1.*", 106 | "magento/module-theme": "100.1.*", 107 | "magento/module-translation": "100.1.*", 108 | "magento/module-user": "100.1.*", 109 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 110 | }, 111 | "type": "magento2-module", 112 | "autoload": { 113 | "files": [ 114 | "registration.php" 115 | ], 116 | "psr-4": { 117 | "Magento\\Backend\\": "" 118 | } 119 | }, 120 | "license": [ 121 | "OSL-3.0", 122 | "AFL-3.0" 123 | ], 124 | "description": "N/A" 125 | }, 126 | { 127 | "name": "magento/module-backup", 128 | "version": "100.1.2", 129 | "dist": { 130 | "type": "zip", 131 | "url": "https://repo.magento.com/archives/magento/module-backup/magento-module-backup-100.1.2.0.zip", 132 | "reference": null, 133 | "shasum": "bd4e3999c075177bcce4d74aa087d692ad01bf86" 134 | }, 135 | "require": { 136 | "magento/framework": "100.1.*", 137 | "magento/module-backend": "100.1.*", 138 | "magento/module-cron": "100.1.*", 139 | "magento/module-store": "100.1.*", 140 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 141 | }, 142 | "type": "magento2-module", 143 | "autoload": { 144 | "files": [ 145 | "registration.php" 146 | ], 147 | "psr-4": { 148 | "Magento\\Backup\\": "" 149 | } 150 | }, 151 | "license": [ 152 | "OSL-3.0", 153 | "AFL-3.0" 154 | ], 155 | "description": "N/A" 156 | }, 157 | { 158 | "name": "magento/module-catalog", 159 | "version": "101.0.7", 160 | "dist": { 161 | "type": "zip", 162 | "url": "https://repo.magento.com/archives/magento/module-catalog/magento-module-catalog-101.0.7.0.zip", 163 | "reference": null, 164 | "shasum": "eb96984fd1cb3ae5a5c3c011cbafbab1b424461b" 165 | }, 166 | "require": { 167 | "magento/framework": "100.1.*", 168 | "magento/module-backend": "100.1.*", 169 | "magento/module-catalog-inventory": "100.1.*", 170 | "magento/module-catalog-rule": "100.1.*", 171 | "magento/module-catalog-url-rewrite": "100.1.*", 172 | "magento/module-checkout": "100.1.*", 173 | "magento/module-cms": "101.0.*", 174 | "magento/module-config": "100.1.*", 175 | "magento/module-customer": "100.1.*", 176 | "magento/module-directory": "100.1.*", 177 | "magento/module-eav": "100.1.*", 178 | "magento/module-indexer": "100.1.*", 179 | "magento/module-media-storage": "100.1.*", 180 | "magento/module-msrp": "100.1.*", 181 | "magento/module-page-cache": "100.1.*", 182 | "magento/module-product-alert": "100.1.*", 183 | "magento/module-quote": "100.1.*", 184 | "magento/module-store": "100.1.*", 185 | "magento/module-tax": "100.1.*", 186 | "magento/module-theme": "100.1.*", 187 | "magento/module-ui": "100.1.*", 188 | "magento/module-url-rewrite": "100.1.*", 189 | "magento/module-widget": "100.1.*", 190 | "magento/module-wishlist": "100.1.*", 191 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 192 | }, 193 | "suggest": { 194 | "magento/module-catalog-sample-data": "Sample Data version:100.1.*", 195 | "magento/module-cookie": "100.1.*" 196 | }, 197 | "type": "magento2-module", 198 | "autoload": { 199 | "files": [ 200 | "registration.php" 201 | ], 202 | "psr-4": { 203 | "Magento\\Catalog\\": "" 204 | } 205 | }, 206 | "license": [ 207 | "OSL-3.0", 208 | "AFL-3.0" 209 | ], 210 | "description": "N/A" 211 | }, 212 | { 213 | "name": "magento/module-catalog-import-export", 214 | "version": "100.1.4", 215 | "dist": { 216 | "type": "zip", 217 | "url": "https://repo.magento.com/archives/magento/module-catalog-import-export/magento-module-catalog-import-export-100.1.4.0.zip", 218 | "reference": null, 219 | "shasum": "a0ab2bf88437d0e2dd01e2517c08d858803b39a9" 220 | }, 221 | "require": { 222 | "ext-ctype": "*", 223 | "magento/framework": "100.1.*", 224 | "magento/module-catalog": "101.0.*", 225 | "magento/module-catalog-inventory": "100.1.*", 226 | "magento/module-catalog-url-rewrite": "100.1.*", 227 | "magento/module-customer": "100.1.*", 228 | "magento/module-eav": "100.1.*", 229 | "magento/module-import-export": "100.1.*", 230 | "magento/module-media-storage": "100.1.*", 231 | "magento/module-store": "100.1.*", 232 | "magento/module-tax": "100.1.*", 233 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 234 | }, 235 | "type": "magento2-module", 236 | "autoload": { 237 | "files": [ 238 | "registration.php" 239 | ], 240 | "psr-4": { 241 | "Magento\\CatalogImportExport\\": "" 242 | } 243 | }, 244 | "license": [ 245 | "OSL-3.0", 246 | "AFL-3.0" 247 | ], 248 | "description": "N/A" 249 | }, 250 | { 251 | "name": "magento/module-catalog-inventory", 252 | "version": "100.1.5", 253 | "dist": { 254 | "type": "zip", 255 | "url": "https://repo.magento.com/archives/magento/module-catalog-inventory/magento-module-catalog-inventory-100.1.5.0.zip", 256 | "reference": null, 257 | "shasum": "5026aa0aa4dfd0c9b90896ec038b6ba5c021d4d9" 258 | }, 259 | "require": { 260 | "magento/framework": "100.1.*", 261 | "magento/module-catalog": "101.0.*", 262 | "magento/module-config": "100.1.*", 263 | "magento/module-customer": "100.1.*", 264 | "magento/module-eav": "100.1.*", 265 | "magento/module-quote": "100.1.*", 266 | "magento/module-store": "100.1.*", 267 | "magento/module-ui": "100.1.*", 268 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 269 | }, 270 | "type": "magento2-module", 271 | "autoload": { 272 | "files": [ 273 | "registration.php" 274 | ], 275 | "psr-4": { 276 | "Magento\\CatalogInventory\\": "" 277 | } 278 | }, 279 | "license": [ 280 | "OSL-3.0", 281 | "AFL-3.0" 282 | ], 283 | "description": "N/A" 284 | }, 285 | { 286 | "name": "magento/module-catalog-rule", 287 | "version": "100.1.4", 288 | "dist": { 289 | "type": "zip", 290 | "url": "https://repo.magento.com/archives/magento/module-catalog-rule/magento-module-catalog-rule-100.1.4.0.zip", 291 | "reference": null, 292 | "shasum": "520a5ff8614cbd1cc6a760e3655e9e69d71c28f6" 293 | }, 294 | "require": { 295 | "magento/framework": "100.1.*", 296 | "magento/module-backend": "100.1.*", 297 | "magento/module-catalog": "101.0.*", 298 | "magento/module-customer": "100.1.*", 299 | "magento/module-eav": "100.1.*", 300 | "magento/module-rule": "100.1.*", 301 | "magento/module-store": "100.1.*", 302 | "magento/module-ui": "100.1.*", 303 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 304 | }, 305 | "suggest": { 306 | "magento/module-catalog-rule-sample-data": "Sample Data version:100.1.*", 307 | "magento/module-import-export": "100.1.*" 308 | }, 309 | "type": "magento2-module", 310 | "autoload": { 311 | "files": [ 312 | "registration.php" 313 | ], 314 | "psr-4": { 315 | "Magento\\CatalogRule\\": "" 316 | } 317 | }, 318 | "license": [ 319 | "OSL-3.0", 320 | "AFL-3.0" 321 | ], 322 | "description": "N/A" 323 | }, 324 | { 325 | "name": "magento/module-catalog-url-rewrite", 326 | "version": "100.1.3", 327 | "dist": { 328 | "type": "zip", 329 | "url": "https://repo.magento.com/archives/magento/module-catalog-url-rewrite/magento-module-catalog-url-rewrite-100.1.3.0.zip", 330 | "reference": null, 331 | "shasum": "555910660780371c509a9e719191e09e00512829" 332 | }, 333 | "require": { 334 | "magento/framework": "100.1.*", 335 | "magento/module-backend": "100.1.*", 336 | "magento/module-catalog": "101.0.*", 337 | "magento/module-catalog-import-export": "100.1.*", 338 | "magento/module-eav": "100.1.*", 339 | "magento/module-import-export": "100.1.*", 340 | "magento/module-store": "100.1.*", 341 | "magento/module-ui": "100.1.*", 342 | "magento/module-url-rewrite": "100.1.*", 343 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 344 | }, 345 | "type": "magento2-module", 346 | "autoload": { 347 | "files": [ 348 | "registration.php" 349 | ], 350 | "psr-4": { 351 | "Magento\\CatalogUrlRewrite\\": "" 352 | } 353 | }, 354 | "license": [ 355 | "OSL-3.0", 356 | "AFL-3.0" 357 | ], 358 | "description": "N/A" 359 | }, 360 | { 361 | "name": "magento/module-checkout", 362 | "version": "100.1.6", 363 | "dist": { 364 | "type": "zip", 365 | "url": "https://repo.magento.com/archives/magento/module-checkout/magento-module-checkout-100.1.6.0.zip", 366 | "reference": null, 367 | "shasum": "a0d246268bc76ac5c28c405eefaf2af84f819e56" 368 | }, 369 | "require": { 370 | "magento/framework": "100.1.*", 371 | "magento/module-backend": "100.1.*", 372 | "magento/module-catalog": "101.0.*", 373 | "magento/module-catalog-inventory": "100.1.*", 374 | "magento/module-config": "100.1.*", 375 | "magento/module-customer": "100.1.*", 376 | "magento/module-directory": "100.1.*", 377 | "magento/module-eav": "100.1.*", 378 | "magento/module-msrp": "100.1.*", 379 | "magento/module-page-cache": "100.1.*", 380 | "magento/module-payment": "100.1.*", 381 | "magento/module-quote": "100.1.*", 382 | "magento/module-sales": "100.1.*", 383 | "magento/module-sales-rule": "100.1.*", 384 | "magento/module-shipping": "100.1.*", 385 | "magento/module-store": "100.1.*", 386 | "magento/module-tax": "100.1.*", 387 | "magento/module-theme": "100.1.*", 388 | "magento/module-ui": "100.1.*", 389 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 390 | }, 391 | "suggest": { 392 | "magento/module-cookie": "100.1.*" 393 | }, 394 | "type": "magento2-module", 395 | "autoload": { 396 | "files": [ 397 | "registration.php" 398 | ], 399 | "psr-4": { 400 | "Magento\\Checkout\\": "" 401 | } 402 | }, 403 | "license": [ 404 | "OSL-3.0", 405 | "AFL-3.0" 406 | ], 407 | "description": "N/A" 408 | }, 409 | { 410 | "name": "magento/module-cms", 411 | "version": "101.0.5", 412 | "dist": { 413 | "type": "zip", 414 | "url": "https://repo.magento.com/archives/magento/module-cms/magento-module-cms-101.0.5.0.zip", 415 | "reference": null, 416 | "shasum": "d029dd638ed1dcc92c996549d00df6c53c9bf9ef" 417 | }, 418 | "require": { 419 | "magento/framework": "100.1.*", 420 | "magento/module-backend": "100.1.*", 421 | "magento/module-catalog": "101.0.*", 422 | "magento/module-email": "100.1.*", 423 | "magento/module-media-storage": "100.1.*", 424 | "magento/module-store": "100.1.*", 425 | "magento/module-theme": "100.1.*", 426 | "magento/module-ui": "100.1.*", 427 | "magento/module-variable": "100.1.*", 428 | "magento/module-widget": "100.1.*", 429 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 430 | }, 431 | "suggest": { 432 | "magento/module-cms-sample-data": "Sample Data version:100.1.*" 433 | }, 434 | "type": "magento2-module", 435 | "autoload": { 436 | "files": [ 437 | "registration.php" 438 | ], 439 | "psr-4": { 440 | "Magento\\Cms\\": "" 441 | } 442 | }, 443 | "license": [ 444 | "OSL-3.0", 445 | "AFL-3.0" 446 | ], 447 | "description": "N/A" 448 | }, 449 | { 450 | "name": "magento/module-cms-url-rewrite", 451 | "version": "100.1.2", 452 | "dist": { 453 | "type": "zip", 454 | "url": "https://repo.magento.com/archives/magento/module-cms-url-rewrite/magento-module-cms-url-rewrite-100.1.2.0.zip", 455 | "reference": null, 456 | "shasum": "7a703192417c5b6ba33606a9e41f992aef3fa616" 457 | }, 458 | "require": { 459 | "magento/framework": "100.1.*", 460 | "magento/module-cms": "101.0.*", 461 | "magento/module-store": "100.1.*", 462 | "magento/module-url-rewrite": "100.1.*", 463 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 464 | }, 465 | "type": "magento2-module", 466 | "autoload": { 467 | "files": [ 468 | "registration.php" 469 | ], 470 | "psr-4": { 471 | "Magento\\CmsUrlRewrite\\": "" 472 | } 473 | }, 474 | "license": [ 475 | "OSL-3.0", 476 | "AFL-3.0" 477 | ], 478 | "description": "N/A" 479 | }, 480 | { 481 | "name": "magento/module-config", 482 | "version": "100.1.4", 483 | "dist": { 484 | "type": "zip", 485 | "url": "https://repo.magento.com/archives/magento/module-config/magento-module-config-100.1.4.0.zip", 486 | "reference": null, 487 | "shasum": "bca1740910cbc29e2311274cad9d1393f8b79628" 488 | }, 489 | "require": { 490 | "magento/framework": "100.1.*", 491 | "magento/module-backend": "100.1.*", 492 | "magento/module-cron": "100.1.*", 493 | "magento/module-directory": "100.1.*", 494 | "magento/module-email": "100.1.*", 495 | "magento/module-media-storage": "100.1.*", 496 | "magento/module-store": "100.1.*", 497 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 498 | }, 499 | "suggest": { 500 | "magento/module-deploy": "100.1.*" 501 | }, 502 | "type": "magento2-module", 503 | "autoload": { 504 | "files": [ 505 | "registration.php" 506 | ], 507 | "psr-4": { 508 | "Magento\\Config\\": "" 509 | } 510 | }, 511 | "license": [ 512 | "OSL-3.0", 513 | "AFL-3.0" 514 | ], 515 | "description": "N/A" 516 | }, 517 | { 518 | "name": "magento/module-contact", 519 | "version": "100.1.3", 520 | "dist": { 521 | "type": "zip", 522 | "url": "https://repo.magento.com/archives/magento/module-contact/magento-module-contact-100.1.3.0.zip", 523 | "reference": null, 524 | "shasum": "e01aed6486bc20edc575e706df2f68225041df41" 525 | }, 526 | "require": { 527 | "magento/framework": "100.1.*", 528 | "magento/module-cms": "101.0.*", 529 | "magento/module-config": "100.1.*", 530 | "magento/module-customer": "100.1.*", 531 | "magento/module-store": "100.1.*", 532 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 533 | }, 534 | "type": "magento2-module", 535 | "autoload": { 536 | "files": [ 537 | "registration.php" 538 | ], 539 | "psr-4": { 540 | "Magento\\Contact\\": "" 541 | } 542 | }, 543 | "license": [ 544 | "OSL-3.0", 545 | "AFL-3.0" 546 | ], 547 | "description": "N/A" 548 | }, 549 | { 550 | "name": "magento/module-cron", 551 | "version": "100.1.3", 552 | "dist": { 553 | "type": "zip", 554 | "url": "https://repo.magento.com/archives/magento/module-cron/magento-module-cron-100.1.3.0.zip", 555 | "reference": null, 556 | "shasum": "e6a118163ee02877e45af43c078c37dbe80bb871" 557 | }, 558 | "require": { 559 | "magento/framework": "100.1.*", 560 | "magento/module-store": "100.1.*", 561 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 562 | }, 563 | "suggest": { 564 | "magento/module-config": "100.1.*" 565 | }, 566 | "type": "magento2-module", 567 | "autoload": { 568 | "files": [ 569 | "registration.php" 570 | ], 571 | "psr-4": { 572 | "Magento\\Cron\\": "" 573 | } 574 | }, 575 | "license": [ 576 | "OSL-3.0", 577 | "AFL-3.0" 578 | ], 579 | "description": "N/A" 580 | }, 581 | { 582 | "name": "magento/module-customer", 583 | "version": "100.1.6", 584 | "dist": { 585 | "type": "zip", 586 | "url": "https://repo.magento.com/archives/magento/module-customer/magento-module-customer-100.1.6.0.zip", 587 | "reference": null, 588 | "shasum": "d4038f6b7394ce844b18fadfbf217346aca6ab5f" 589 | }, 590 | "require": { 591 | "magento/framework": "100.1.*", 592 | "magento/module-authorization": "100.1.*", 593 | "magento/module-backend": "100.1.*", 594 | "magento/module-catalog": "101.0.*", 595 | "magento/module-checkout": "100.1.*", 596 | "magento/module-config": "100.1.*", 597 | "magento/module-directory": "100.1.*", 598 | "magento/module-eav": "100.1.*", 599 | "magento/module-integration": "100.1.*", 600 | "magento/module-media-storage": "100.1.*", 601 | "magento/module-newsletter": "100.1.*", 602 | "magento/module-page-cache": "100.1.*", 603 | "magento/module-quote": "100.1.*", 604 | "magento/module-review": "100.1.*", 605 | "magento/module-sales": "100.1.*", 606 | "magento/module-store": "100.1.*", 607 | "magento/module-tax": "100.1.*", 608 | "magento/module-theme": "100.1.*", 609 | "magento/module-ui": "100.1.*", 610 | "magento/module-wishlist": "100.1.*", 611 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 612 | }, 613 | "suggest": { 614 | "magento/module-cookie": "100.1.*", 615 | "magento/module-customer-sample-data": "Sample Data version:100.1.*" 616 | }, 617 | "type": "magento2-module", 618 | "autoload": { 619 | "files": [ 620 | "registration.php" 621 | ], 622 | "psr-4": { 623 | "Magento\\Customer\\": "" 624 | } 625 | }, 626 | "license": [ 627 | "OSL-3.0", 628 | "AFL-3.0" 629 | ], 630 | "description": "N/A" 631 | }, 632 | { 633 | "name": "magento/module-developer", 634 | "version": "100.1.3", 635 | "dist": { 636 | "type": "zip", 637 | "url": "https://repo.magento.com/archives/magento/module-developer/magento-module-developer-100.1.3.0.zip", 638 | "reference": null, 639 | "shasum": "7aa5019f536dcd3fed19cc275768b2333ec66a88" 640 | }, 641 | "require": { 642 | "magento/framework": "100.1.*", 643 | "magento/module-store": "100.1.*", 644 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 645 | }, 646 | "type": "magento2-module", 647 | "autoload": { 648 | "files": [ 649 | "registration.php" 650 | ], 651 | "psr-4": { 652 | "Magento\\Developer\\": "" 653 | } 654 | }, 655 | "license": [ 656 | "OSL-3.0", 657 | "AFL-3.0" 658 | ], 659 | "description": "N/A" 660 | }, 661 | { 662 | "name": "magento/module-directory", 663 | "version": "100.1.3", 664 | "dist": { 665 | "type": "zip", 666 | "url": "https://repo.magento.com/archives/magento/module-directory/magento-module-directory-100.1.3.0.zip", 667 | "reference": null, 668 | "shasum": "5422f689e7422c47c9600c7325b3c46d99f2607b" 669 | }, 670 | "require": { 671 | "lib-libxml": "*", 672 | "magento/framework": "100.1.*", 673 | "magento/module-backend": "100.1.*", 674 | "magento/module-config": "100.1.*", 675 | "magento/module-store": "100.1.*", 676 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 677 | }, 678 | "type": "magento2-module", 679 | "autoload": { 680 | "files": [ 681 | "registration.php" 682 | ], 683 | "psr-4": { 684 | "Magento\\Directory\\": "" 685 | } 686 | }, 687 | "license": [ 688 | "OSL-3.0", 689 | "AFL-3.0" 690 | ], 691 | "description": "N/A" 692 | }, 693 | { 694 | "name": "magento/module-downloadable", 695 | "version": "100.1.2", 696 | "dist": { 697 | "type": "zip", 698 | "url": "https://repo.magento.com/archives/magento/module-downloadable/magento-module-downloadable-100.1.2.0.zip", 699 | "reference": null, 700 | "shasum": "8571648a5efa4fb2691c2c43921470a0c4c77fb0" 701 | }, 702 | "require": { 703 | "magento/framework": "100.1.*", 704 | "magento/module-backend": "100.1.*", 705 | "magento/module-catalog": "101.0.*", 706 | "magento/module-catalog-inventory": "100.1.*", 707 | "magento/module-checkout": "100.1.*", 708 | "magento/module-config": "100.1.*", 709 | "magento/module-customer": "100.1.*", 710 | "magento/module-directory": "100.1.*", 711 | "magento/module-eav": "100.1.*", 712 | "magento/module-gift-message": "100.1.*", 713 | "magento/module-media-storage": "100.1.*", 714 | "magento/module-quote": "100.1.*", 715 | "magento/module-sales": "100.1.*", 716 | "magento/module-store": "100.1.*", 717 | "magento/module-tax": "100.1.*", 718 | "magento/module-theme": "100.1.*", 719 | "magento/module-ui": "100.1.*", 720 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 721 | }, 722 | "suggest": { 723 | "magento/module-downloadable-sample-data": "Sample Data version:100.1.*" 724 | }, 725 | "type": "magento2-module", 726 | "autoload": { 727 | "files": [ 728 | "registration.php" 729 | ], 730 | "psr-4": { 731 | "Magento\\Downloadable\\": "" 732 | } 733 | }, 734 | "license": [ 735 | "OSL-3.0", 736 | "AFL-3.0" 737 | ], 738 | "description": "N/A" 739 | }, 740 | { 741 | "name": "magento/module-eav", 742 | "version": "100.1.5", 743 | "dist": { 744 | "type": "zip", 745 | "url": "https://repo.magento.com/archives/magento/module-eav/magento-module-eav-100.1.5.0.zip", 746 | "reference": null, 747 | "shasum": "ca2f79d53bebbc057cf7bab30f847bc123289d2d" 748 | }, 749 | "require": { 750 | "magento/framework": "100.1.*", 751 | "magento/module-backend": "100.1.*", 752 | "magento/module-catalog": "101.0.*", 753 | "magento/module-config": "100.1.*", 754 | "magento/module-media-storage": "100.1.*", 755 | "magento/module-store": "100.1.*", 756 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 757 | }, 758 | "type": "magento2-module", 759 | "autoload": { 760 | "files": [ 761 | "registration.php" 762 | ], 763 | "psr-4": { 764 | "Magento\\Eav\\": "" 765 | } 766 | }, 767 | "license": [ 768 | "OSL-3.0", 769 | "AFL-3.0" 770 | ], 771 | "description": "N/A" 772 | }, 773 | { 774 | "name": "magento/module-email", 775 | "version": "100.1.3", 776 | "dist": { 777 | "type": "zip", 778 | "url": "https://repo.magento.com/archives/magento/module-email/magento-module-email-100.1.3.0.zip", 779 | "reference": null, 780 | "shasum": "8a8ad8fc63a3b3f801d815974d7cf12fe974d25a" 781 | }, 782 | "require": { 783 | "magento/framework": "100.1.*", 784 | "magento/module-backend": "100.1.*", 785 | "magento/module-cms": "101.0.*", 786 | "magento/module-config": "100.1.*", 787 | "magento/module-store": "100.1.*", 788 | "magento/module-variable": "100.1.*", 789 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 790 | }, 791 | "type": "magento2-module", 792 | "autoload": { 793 | "files": [ 794 | "registration.php" 795 | ], 796 | "psr-4": { 797 | "Magento\\Email\\": "" 798 | } 799 | }, 800 | "license": [ 801 | "OSL-3.0", 802 | "AFL-3.0" 803 | ], 804 | "description": "N/A" 805 | }, 806 | { 807 | "name": "magento/module-gift-message", 808 | "version": "100.1.3", 809 | "dist": { 810 | "type": "zip", 811 | "url": "https://repo.magento.com/archives/magento/module-gift-message/magento-module-gift-message-100.1.3.0.zip", 812 | "reference": null, 813 | "shasum": "334374ba59d18205df363922791242f0cf0e447c" 814 | }, 815 | "require": { 816 | "magento/framework": "100.1.*", 817 | "magento/module-backend": "100.1.*", 818 | "magento/module-catalog": "101.0.*", 819 | "magento/module-checkout": "100.1.*", 820 | "magento/module-customer": "100.1.*", 821 | "magento/module-quote": "100.1.*", 822 | "magento/module-sales": "100.1.*", 823 | "magento/module-store": "100.1.*", 824 | "magento/module-ui": "100.1.*", 825 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 826 | }, 827 | "suggest": { 828 | "magento/module-multishipping": "100.1.*" 829 | }, 830 | "type": "magento2-module", 831 | "autoload": { 832 | "files": [ 833 | "registration.php" 834 | ], 835 | "psr-4": { 836 | "Magento\\GiftMessage\\": "" 837 | } 838 | }, 839 | "license": [ 840 | "OSL-3.0", 841 | "AFL-3.0" 842 | ], 843 | "description": "N/A" 844 | }, 845 | { 846 | "name": "magento/module-grouped-product", 847 | "version": "100.1.4", 848 | "dist": { 849 | "type": "zip", 850 | "url": "https://repo.magento.com/archives/magento/module-grouped-product/magento-module-grouped-product-100.1.4.0.zip", 851 | "reference": null, 852 | "shasum": "559d5dc899c4804a7737655b7c385a94e5271ed6" 853 | }, 854 | "require": { 855 | "magento/framework": "100.1.*", 856 | "magento/module-backend": "100.1.*", 857 | "magento/module-catalog": "101.0.*", 858 | "magento/module-catalog-inventory": "100.1.*", 859 | "magento/module-checkout": "100.1.*", 860 | "magento/module-customer": "100.1.*", 861 | "magento/module-eav": "100.1.*", 862 | "magento/module-media-storage": "100.1.*", 863 | "magento/module-msrp": "100.1.*", 864 | "magento/module-quote": "100.1.*", 865 | "magento/module-sales": "100.1.*", 866 | "magento/module-store": "100.1.*", 867 | "magento/module-ui": "100.1.*", 868 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 869 | }, 870 | "suggest": { 871 | "magento/module-grouped-product-sample-data": "Sample Data version:100.1.*" 872 | }, 873 | "type": "magento2-module", 874 | "autoload": { 875 | "files": [ 876 | "registration.php" 877 | ], 878 | "psr-4": { 879 | "Magento\\GroupedProduct\\": "" 880 | } 881 | }, 882 | "license": [ 883 | "OSL-3.0", 884 | "AFL-3.0" 885 | ], 886 | "description": "N/A" 887 | }, 888 | { 889 | "name": "magento/module-import-export", 890 | "version": "100.1.4", 891 | "dist": { 892 | "type": "zip", 893 | "url": "https://repo.magento.com/archives/magento/module-import-export/magento-module-import-export-100.1.4.0.zip", 894 | "reference": null, 895 | "shasum": "f4485ee55b19d04811185645a77698246c82ab8f" 896 | }, 897 | "require": { 898 | "ext-ctype": "*", 899 | "magento/framework": "100.1.*", 900 | "magento/module-backend": "100.1.*", 901 | "magento/module-eav": "100.1.*", 902 | "magento/module-media-storage": "100.1.*", 903 | "magento/module-store": "100.1.*", 904 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 905 | }, 906 | "type": "magento2-module", 907 | "autoload": { 908 | "files": [ 909 | "registration.php" 910 | ], 911 | "psr-4": { 912 | "Magento\\ImportExport\\": "" 913 | } 914 | }, 915 | "license": [ 916 | "OSL-3.0", 917 | "AFL-3.0" 918 | ], 919 | "description": "N/A" 920 | }, 921 | { 922 | "name": "magento/module-indexer", 923 | "version": "100.1.3", 924 | "dist": { 925 | "type": "zip", 926 | "url": "https://repo.magento.com/archives/magento/module-indexer/magento-module-indexer-100.1.3.0.zip", 927 | "reference": null, 928 | "shasum": "df967f885ec950ee039e50b1994d737cd509f72e" 929 | }, 930 | "require": { 931 | "magento/framework": "100.1.*", 932 | "magento/module-backend": "100.1.*", 933 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 934 | }, 935 | "type": "magento2-module", 936 | "autoload": { 937 | "files": [ 938 | "registration.php" 939 | ], 940 | "psr-4": { 941 | "Magento\\Indexer\\": "" 942 | } 943 | }, 944 | "license": [ 945 | "OSL-3.0", 946 | "AFL-3.0" 947 | ], 948 | "description": "N/A" 949 | }, 950 | { 951 | "name": "magento/module-integration", 952 | "version": "100.1.4", 953 | "dist": { 954 | "type": "zip", 955 | "url": "https://repo.magento.com/archives/magento/module-integration/magento-module-integration-100.1.4.0.zip", 956 | "reference": null, 957 | "shasum": "8a6784af7d9da83d127854cfa09082affbd66778" 958 | }, 959 | "require": { 960 | "magento/framework": "100.1.*", 961 | "magento/module-authorization": "100.1.*", 962 | "magento/module-backend": "100.1.*", 963 | "magento/module-customer": "100.1.*", 964 | "magento/module-security": "100.1.*", 965 | "magento/module-store": "100.1.*", 966 | "magento/module-user": "100.1.*", 967 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 968 | }, 969 | "type": "magento2-module", 970 | "autoload": { 971 | "files": [ 972 | "registration.php" 973 | ], 974 | "psr-4": { 975 | "Magento\\Integration\\": "" 976 | } 977 | }, 978 | "license": [ 979 | "OSL-3.0", 980 | "AFL-3.0" 981 | ], 982 | "description": "N/A" 983 | }, 984 | { 985 | "name": "magento/module-media-storage", 986 | "version": "100.1.2", 987 | "dist": { 988 | "type": "zip", 989 | "url": "https://repo.magento.com/archives/magento/module-media-storage/magento-module-media-storage-100.1.2.0.zip", 990 | "reference": null, 991 | "shasum": "5c88554bc62f952c1fb56abe3baf9f0dea41ef41" 992 | }, 993 | "require": { 994 | "magento/framework": "100.1.*", 995 | "magento/module-backend": "100.1.*", 996 | "magento/module-config": "100.1.*", 997 | "magento/module-store": "100.1.*", 998 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 999 | }, 1000 | "type": "magento2-module", 1001 | "autoload": { 1002 | "files": [ 1003 | "registration.php" 1004 | ], 1005 | "psr-4": { 1006 | "Magento\\MediaStorage\\": "" 1007 | } 1008 | }, 1009 | "license": [ 1010 | "OSL-3.0", 1011 | "AFL-3.0" 1012 | ], 1013 | "description": "N/A" 1014 | }, 1015 | { 1016 | "name": "magento/module-msrp", 1017 | "version": "100.1.3", 1018 | "dist": { 1019 | "type": "zip", 1020 | "url": "https://repo.magento.com/archives/magento/module-msrp/magento-module-msrp-100.1.3.0.zip", 1021 | "reference": null, 1022 | "shasum": "930bfe39fca6a01a2522c47afe6b3de8d3d41584" 1023 | }, 1024 | "require": { 1025 | "magento/framework": "100.1.*", 1026 | "magento/module-catalog": "101.0.*", 1027 | "magento/module-downloadable": "100.1.*", 1028 | "magento/module-eav": "100.1.*", 1029 | "magento/module-grouped-product": "100.1.*", 1030 | "magento/module-store": "100.1.*", 1031 | "magento/module-tax": "100.1.*", 1032 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1033 | }, 1034 | "suggest": { 1035 | "magento/module-bundle": "100.1.*", 1036 | "magento/module-msrp-sample-data": "Sample Data version:100.1.*" 1037 | }, 1038 | "type": "magento2-module", 1039 | "autoload": { 1040 | "files": [ 1041 | "registration.php" 1042 | ], 1043 | "psr-4": { 1044 | "Magento\\Msrp\\": "" 1045 | } 1046 | }, 1047 | "license": [ 1048 | "OSL-3.0", 1049 | "AFL-3.0" 1050 | ], 1051 | "description": "N/A" 1052 | }, 1053 | { 1054 | "name": "magento/module-newsletter", 1055 | "version": "100.1.2", 1056 | "dist": { 1057 | "type": "zip", 1058 | "url": "https://repo.magento.com/archives/magento/module-newsletter/magento-module-newsletter-100.1.2.0.zip", 1059 | "reference": null, 1060 | "shasum": "112341233d8bb1bea8269610862aea30424ee943" 1061 | }, 1062 | "require": { 1063 | "magento/framework": "100.1.*", 1064 | "magento/module-backend": "100.1.*", 1065 | "magento/module-cms": "101.0.*", 1066 | "magento/module-cron": "100.1.*", 1067 | "magento/module-customer": "100.1.*", 1068 | "magento/module-eav": "100.1.*", 1069 | "magento/module-email": "100.1.*", 1070 | "magento/module-require-js": "100.1.*", 1071 | "magento/module-store": "100.1.*", 1072 | "magento/module-widget": "100.1.*", 1073 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1074 | }, 1075 | "type": "magento2-module", 1076 | "autoload": { 1077 | "files": [ 1078 | "registration.php" 1079 | ], 1080 | "psr-4": { 1081 | "Magento\\Newsletter\\": "" 1082 | } 1083 | }, 1084 | "license": [ 1085 | "OSL-3.0", 1086 | "AFL-3.0" 1087 | ], 1088 | "description": "N/A" 1089 | }, 1090 | { 1091 | "name": "magento/module-page-cache", 1092 | "version": "100.1.3", 1093 | "dist": { 1094 | "type": "zip", 1095 | "url": "https://repo.magento.com/archives/magento/module-page-cache/magento-module-page-cache-100.1.3.0.zip", 1096 | "reference": null, 1097 | "shasum": "8e56550b19c32e18fa50585e847c3462200fe505" 1098 | }, 1099 | "require": { 1100 | "magento/framework": "100.1.*", 1101 | "magento/module-backend": "100.1.*", 1102 | "magento/module-config": "100.1.*", 1103 | "magento/module-store": "100.1.*", 1104 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1105 | }, 1106 | "type": "magento2-module", 1107 | "autoload": { 1108 | "files": [ 1109 | "registration.php" 1110 | ], 1111 | "psr-4": { 1112 | "Magento\\PageCache\\": "" 1113 | } 1114 | }, 1115 | "license": [ 1116 | "OSL-3.0", 1117 | "AFL-3.0" 1118 | ], 1119 | "description": "N/A" 1120 | }, 1121 | { 1122 | "name": "magento/module-payment", 1123 | "version": "100.1.5", 1124 | "dist": { 1125 | "type": "zip", 1126 | "url": "https://repo.magento.com/archives/magento/module-payment/magento-module-payment-100.1.5.0.zip", 1127 | "reference": null, 1128 | "shasum": "d54474ea7df4cd1a852dac781b57e56f10dfa8ac" 1129 | }, 1130 | "require": { 1131 | "magento/framework": "100.1.*", 1132 | "magento/module-checkout": "100.1.*", 1133 | "magento/module-config": "100.1.*", 1134 | "magento/module-directory": "100.1.*", 1135 | "magento/module-quote": "100.1.*", 1136 | "magento/module-sales": "100.1.*", 1137 | "magento/module-store": "100.1.*", 1138 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1139 | }, 1140 | "type": "magento2-module", 1141 | "autoload": { 1142 | "files": [ 1143 | "registration.php" 1144 | ], 1145 | "psr-4": { 1146 | "Magento\\Payment\\": "" 1147 | } 1148 | }, 1149 | "license": [ 1150 | "OSL-3.0", 1151 | "AFL-3.0" 1152 | ], 1153 | "description": "N/A" 1154 | }, 1155 | { 1156 | "name": "magento/module-product-alert", 1157 | "version": "100.1.3", 1158 | "dist": { 1159 | "type": "zip", 1160 | "url": "https://repo.magento.com/archives/magento/module-product-alert/magento-module-product-alert-100.1.3.0.zip", 1161 | "reference": null, 1162 | "shasum": "ff06f944d6d731cca19f7d51102fec1b591b76e3" 1163 | }, 1164 | "require": { 1165 | "magento/framework": "100.1.*", 1166 | "magento/module-backend": "100.1.*", 1167 | "magento/module-catalog": "101.0.*", 1168 | "magento/module-customer": "100.1.*", 1169 | "magento/module-store": "100.1.*", 1170 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1171 | }, 1172 | "type": "magento2-module", 1173 | "autoload": { 1174 | "files": [ 1175 | "registration.php" 1176 | ], 1177 | "psr-4": { 1178 | "Magento\\ProductAlert\\": "" 1179 | } 1180 | }, 1181 | "license": [ 1182 | "OSL-3.0", 1183 | "AFL-3.0" 1184 | ], 1185 | "description": "N/A" 1186 | }, 1187 | { 1188 | "name": "magento/module-quote", 1189 | "version": "100.1.4", 1190 | "dist": { 1191 | "type": "zip", 1192 | "url": "https://repo.magento.com/archives/magento/module-quote/magento-module-quote-100.1.4.0.zip", 1193 | "reference": null, 1194 | "shasum": "917acc6701f77d37bf5580dd8e05cd02bf38c68a" 1195 | }, 1196 | "require": { 1197 | "magento/framework": "100.1.*", 1198 | "magento/module-authorization": "100.1.*", 1199 | "magento/module-backend": "100.1.*", 1200 | "magento/module-catalog": "101.0.*", 1201 | "magento/module-catalog-inventory": "100.1.*", 1202 | "magento/module-checkout": "100.1.*", 1203 | "magento/module-customer": "100.1.*", 1204 | "magento/module-directory": "100.1.*", 1205 | "magento/module-eav": "100.1.*", 1206 | "magento/module-payment": "100.1.*", 1207 | "magento/module-sales": "100.1.*", 1208 | "magento/module-sales-sequence": "100.1.*", 1209 | "magento/module-shipping": "100.1.*", 1210 | "magento/module-store": "100.1.*", 1211 | "magento/module-tax": "100.1.*", 1212 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1213 | }, 1214 | "type": "magento2-module", 1215 | "autoload": { 1216 | "files": [ 1217 | "registration.php" 1218 | ], 1219 | "psr-4": { 1220 | "Magento\\Quote\\": "" 1221 | } 1222 | }, 1223 | "license": [ 1224 | "OSL-3.0", 1225 | "AFL-3.0" 1226 | ], 1227 | "description": "N/A" 1228 | }, 1229 | { 1230 | "name": "magento/module-reports", 1231 | "version": "100.1.3", 1232 | "dist": { 1233 | "type": "zip", 1234 | "url": "https://repo.magento.com/archives/magento/module-reports/magento-module-reports-100.1.3.0.zip", 1235 | "reference": null, 1236 | "shasum": "b10b5be71dab1fd8263cb9c111b682ce5667b8f4" 1237 | }, 1238 | "require": { 1239 | "magento/framework": "100.1.*", 1240 | "magento/module-backend": "100.1.*", 1241 | "magento/module-catalog": "101.0.*", 1242 | "magento/module-catalog-inventory": "100.1.*", 1243 | "magento/module-cms": "101.0.*", 1244 | "magento/module-config": "100.1.*", 1245 | "magento/module-customer": "100.1.*", 1246 | "magento/module-downloadable": "100.1.*", 1247 | "magento/module-eav": "100.1.*", 1248 | "magento/module-quote": "100.1.*", 1249 | "magento/module-review": "100.1.*", 1250 | "magento/module-sales": "100.1.*", 1251 | "magento/module-sales-rule": "100.1.*", 1252 | "magento/module-store": "100.1.*", 1253 | "magento/module-tax": "100.1.*", 1254 | "magento/module-widget": "100.1.*", 1255 | "magento/module-wishlist": "100.1.*", 1256 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1257 | }, 1258 | "type": "magento2-module", 1259 | "autoload": { 1260 | "files": [ 1261 | "registration.php" 1262 | ], 1263 | "psr-4": { 1264 | "Magento\\Reports\\": "" 1265 | } 1266 | }, 1267 | "license": [ 1268 | "OSL-3.0", 1269 | "AFL-3.0" 1270 | ], 1271 | "description": "N/A" 1272 | }, 1273 | { 1274 | "name": "magento/module-require-js", 1275 | "version": "100.1.3", 1276 | "dist": { 1277 | "type": "zip", 1278 | "url": "https://repo.magento.com/archives/magento/module-require-js/magento-module-require-js-100.1.3.0.zip", 1279 | "reference": null, 1280 | "shasum": "be66ac4d9b1ed7167df1613dd406c860a7b43941" 1281 | }, 1282 | "require": { 1283 | "magento/framework": "100.1.*", 1284 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1285 | }, 1286 | "type": "magento2-module", 1287 | "autoload": { 1288 | "files": [ 1289 | "registration.php" 1290 | ], 1291 | "psr-4": { 1292 | "Magento\\RequireJs\\": "" 1293 | } 1294 | }, 1295 | "license": [ 1296 | "OSL-3.0", 1297 | "AFL-3.0" 1298 | ], 1299 | "description": "N/A" 1300 | }, 1301 | { 1302 | "name": "magento/module-review", 1303 | "version": "100.1.3", 1304 | "dist": { 1305 | "type": "zip", 1306 | "url": "https://repo.magento.com/archives/magento/module-review/magento-module-review-100.1.3.0.zip", 1307 | "reference": null, 1308 | "shasum": "f7ade5bcbadf46ecb9ccf68cc594e29d5b8b0098" 1309 | }, 1310 | "require": { 1311 | "magento/framework": "100.1.*", 1312 | "magento/module-backend": "100.1.*", 1313 | "magento/module-catalog": "101.0.*", 1314 | "magento/module-customer": "100.1.*", 1315 | "magento/module-eav": "100.1.*", 1316 | "magento/module-newsletter": "100.1.*", 1317 | "magento/module-store": "100.1.*", 1318 | "magento/module-theme": "100.1.*", 1319 | "magento/module-ui": "100.1.*", 1320 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1321 | }, 1322 | "suggest": { 1323 | "magento/module-cookie": "100.1.*", 1324 | "magento/module-review-sample-data": "Sample Data version:100.1.*" 1325 | }, 1326 | "type": "magento2-module", 1327 | "autoload": { 1328 | "files": [ 1329 | "registration.php" 1330 | ], 1331 | "psr-4": { 1332 | "Magento\\Review\\": "" 1333 | } 1334 | }, 1335 | "license": [ 1336 | "OSL-3.0", 1337 | "AFL-3.0" 1338 | ], 1339 | "description": "N/A" 1340 | }, 1341 | { 1342 | "name": "magento/module-rss", 1343 | "version": "100.1.2", 1344 | "dist": { 1345 | "type": "zip", 1346 | "url": "https://repo.magento.com/archives/magento/module-rss/magento-module-rss-100.1.2.0.zip", 1347 | "reference": null, 1348 | "shasum": "b13baeff26d1c0e49dd42447a2f566682a970114" 1349 | }, 1350 | "require": { 1351 | "magento/framework": "100.1.*", 1352 | "magento/module-backend": "100.1.*", 1353 | "magento/module-customer": "100.1.*", 1354 | "magento/module-store": "100.1.*", 1355 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1356 | }, 1357 | "type": "magento2-module", 1358 | "autoload": { 1359 | "files": [ 1360 | "registration.php" 1361 | ], 1362 | "psr-4": { 1363 | "Magento\\Rss\\": "" 1364 | } 1365 | }, 1366 | "license": [ 1367 | "OSL-3.0", 1368 | "AFL-3.0" 1369 | ], 1370 | "description": "N/A" 1371 | }, 1372 | { 1373 | "name": "magento/module-rule", 1374 | "version": "100.1.4", 1375 | "dist": { 1376 | "type": "zip", 1377 | "url": "https://repo.magento.com/archives/magento/module-rule/magento-module-rule-100.1.4.0.zip", 1378 | "reference": null, 1379 | "shasum": "fcb2d2cdd901ee22a7c7105be7d122afdb2f8ac7" 1380 | }, 1381 | "require": { 1382 | "lib-libxml": "*", 1383 | "magento/framework": "100.1.*", 1384 | "magento/module-backend": "100.1.*", 1385 | "magento/module-catalog": "101.0.*", 1386 | "magento/module-eav": "100.1.*", 1387 | "magento/module-store": "100.1.*", 1388 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1389 | }, 1390 | "type": "magento2-module", 1391 | "autoload": { 1392 | "files": [ 1393 | "registration.php" 1394 | ], 1395 | "psr-4": { 1396 | "Magento\\Rule\\": "" 1397 | } 1398 | }, 1399 | "license": [ 1400 | "OSL-3.0", 1401 | "AFL-3.0" 1402 | ], 1403 | "description": "N/A" 1404 | }, 1405 | { 1406 | "name": "magento/module-sales", 1407 | "version": "100.1.6", 1408 | "dist": { 1409 | "type": "zip", 1410 | "url": "https://repo.magento.com/archives/magento/module-sales/magento-module-sales-100.1.6.0.zip", 1411 | "reference": null, 1412 | "shasum": "acfaacd7d5daa5a3c48a7f2a30e2a0618d1f74e3" 1413 | }, 1414 | "require": { 1415 | "magento/framework": "100.1.*", 1416 | "magento/module-authorization": "100.1.*", 1417 | "magento/module-backend": "100.1.*", 1418 | "magento/module-catalog": "101.0.*", 1419 | "magento/module-catalog-inventory": "100.1.*", 1420 | "magento/module-checkout": "100.1.*", 1421 | "magento/module-config": "100.1.*", 1422 | "magento/module-customer": "100.1.*", 1423 | "magento/module-directory": "100.1.*", 1424 | "magento/module-eav": "100.1.*", 1425 | "magento/module-gift-message": "100.1.*", 1426 | "magento/module-media-storage": "100.1.*", 1427 | "magento/module-payment": "100.1.*", 1428 | "magento/module-quote": "100.1.*", 1429 | "magento/module-reports": "100.1.*", 1430 | "magento/module-sales-rule": "100.1.*", 1431 | "magento/module-sales-sequence": "100.1.*", 1432 | "magento/module-shipping": "100.1.*", 1433 | "magento/module-store": "100.1.*", 1434 | "magento/module-tax": "100.1.*", 1435 | "magento/module-theme": "100.1.*", 1436 | "magento/module-ui": "100.1.*", 1437 | "magento/module-widget": "100.1.*", 1438 | "magento/module-wishlist": "100.1.*", 1439 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1440 | }, 1441 | "suggest": { 1442 | "magento/module-sales-sample-data": "Sample Data version:100.1.*" 1443 | }, 1444 | "type": "magento2-module", 1445 | "autoload": { 1446 | "files": [ 1447 | "registration.php" 1448 | ], 1449 | "psr-4": { 1450 | "Magento\\Sales\\": "" 1451 | } 1452 | }, 1453 | "license": [ 1454 | "OSL-3.0", 1455 | "AFL-3.0" 1456 | ], 1457 | "description": "N/A" 1458 | }, 1459 | { 1460 | "name": "magento/module-sales-rule", 1461 | "version": "100.1.3", 1462 | "dist": { 1463 | "type": "zip", 1464 | "url": "https://repo.magento.com/archives/magento/module-sales-rule/magento-module-sales-rule-100.1.3.0.zip", 1465 | "reference": null, 1466 | "shasum": "6e43bdea459d2f519b2a1197f18a72a87dd300b2" 1467 | }, 1468 | "require": { 1469 | "magento/framework": "100.1.*", 1470 | "magento/module-backend": "100.1.*", 1471 | "magento/module-catalog": "101.0.*", 1472 | "magento/module-catalog-rule": "100.1.*", 1473 | "magento/module-config": "100.1.*", 1474 | "magento/module-customer": "100.1.*", 1475 | "magento/module-directory": "100.1.*", 1476 | "magento/module-eav": "100.1.*", 1477 | "magento/module-payment": "100.1.*", 1478 | "magento/module-quote": "100.1.*", 1479 | "magento/module-reports": "100.1.*", 1480 | "magento/module-rule": "100.1.*", 1481 | "magento/module-sales": "100.1.*", 1482 | "magento/module-shipping": "100.1.*", 1483 | "magento/module-store": "100.1.*", 1484 | "magento/module-ui": "100.1.*", 1485 | "magento/module-widget": "100.1.*", 1486 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1487 | }, 1488 | "suggest": { 1489 | "magento/module-sales-rule-sample-data": "Sample Data version:100.1.*" 1490 | }, 1491 | "type": "magento2-module", 1492 | "autoload": { 1493 | "files": [ 1494 | "registration.php" 1495 | ], 1496 | "psr-4": { 1497 | "Magento\\SalesRule\\": "" 1498 | } 1499 | }, 1500 | "license": [ 1501 | "OSL-3.0", 1502 | "AFL-3.0" 1503 | ], 1504 | "description": "N/A" 1505 | }, 1506 | { 1507 | "name": "magento/module-sales-sequence", 1508 | "version": "100.1.3", 1509 | "dist": { 1510 | "type": "zip", 1511 | "url": "https://repo.magento.com/archives/magento/module-sales-sequence/magento-module-sales-sequence-100.1.3.0.zip", 1512 | "reference": null, 1513 | "shasum": "a688f3a820109f0254afce29bb3f0cbd53b3ce69" 1514 | }, 1515 | "require": { 1516 | "magento/framework": "100.1.*", 1517 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1518 | }, 1519 | "type": "magento2-module", 1520 | "autoload": { 1521 | "files": [ 1522 | "registration.php" 1523 | ], 1524 | "psr-4": { 1525 | "Magento\\SalesSequence\\": "" 1526 | } 1527 | }, 1528 | "license": [ 1529 | "OSL-3.0", 1530 | "AFL-3.0" 1531 | ], 1532 | "description": "N/A" 1533 | }, 1534 | { 1535 | "name": "magento/module-security", 1536 | "version": "100.1.3", 1537 | "dist": { 1538 | "type": "zip", 1539 | "url": "https://repo.magento.com/archives/magento/module-security/magento-module-security-100.1.3.0.zip", 1540 | "reference": null, 1541 | "shasum": "899408cb15904caa3b065a6a71f9874faf456f36" 1542 | }, 1543 | "require": { 1544 | "magento/framework": "100.1.*", 1545 | "magento/module-backend": "100.1.*", 1546 | "magento/module-store": "100.1.*", 1547 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1548 | }, 1549 | "suggest": { 1550 | "magento/module-customer": "100.1.*" 1551 | }, 1552 | "type": "magento2-module", 1553 | "autoload": { 1554 | "files": [ 1555 | "registration.php" 1556 | ], 1557 | "psr-4": { 1558 | "Magento\\Security\\": "" 1559 | } 1560 | }, 1561 | "license": [ 1562 | "OSL-3.0", 1563 | "AFL-3.0" 1564 | ], 1565 | "description": "Security management module" 1566 | }, 1567 | { 1568 | "name": "magento/module-shipping", 1569 | "version": "100.1.3", 1570 | "dist": { 1571 | "type": "zip", 1572 | "url": "https://repo.magento.com/archives/magento/module-shipping/magento-module-shipping-100.1.3.0.zip", 1573 | "reference": null, 1574 | "shasum": "95be48dc18e047d412e4eac1e660328bb6be44f8" 1575 | }, 1576 | "require": { 1577 | "ext-gd": "*", 1578 | "magento/framework": "100.1.*", 1579 | "magento/module-backend": "100.1.*", 1580 | "magento/module-catalog": "101.0.*", 1581 | "magento/module-catalog-inventory": "100.1.*", 1582 | "magento/module-contact": "100.1.*", 1583 | "magento/module-customer": "100.1.*", 1584 | "magento/module-directory": "100.1.*", 1585 | "magento/module-payment": "100.1.*", 1586 | "magento/module-quote": "100.1.*", 1587 | "magento/module-sales": "100.1.*", 1588 | "magento/module-store": "100.1.*", 1589 | "magento/module-tax": "100.1.*", 1590 | "magento/module-ui": "100.1.*", 1591 | "magento/module-user": "100.1.*", 1592 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1593 | }, 1594 | "suggest": { 1595 | "magento/module-fedex": "100.1.*", 1596 | "magento/module-ups": "100.1.*" 1597 | }, 1598 | "type": "magento2-module", 1599 | "autoload": { 1600 | "files": [ 1601 | "registration.php" 1602 | ], 1603 | "psr-4": { 1604 | "Magento\\Shipping\\": "" 1605 | } 1606 | }, 1607 | "license": [ 1608 | "OSL-3.0", 1609 | "AFL-3.0" 1610 | ], 1611 | "description": "N/A" 1612 | }, 1613 | { 1614 | "name": "magento/module-store", 1615 | "version": "100.1.5", 1616 | "dist": { 1617 | "type": "zip", 1618 | "url": "https://repo.magento.com/archives/magento/module-store/magento-module-store-100.1.5.0.zip", 1619 | "reference": null, 1620 | "shasum": "30f33fb3e830854d5f7bd6cc455d2412c566fc77" 1621 | }, 1622 | "require": { 1623 | "magento/framework": "100.1.*", 1624 | "magento/module-catalog": "101.0.*", 1625 | "magento/module-config": "100.1.*", 1626 | "magento/module-directory": "100.1.*", 1627 | "magento/module-media-storage": "100.1.*", 1628 | "magento/module-ui": "100.1.*", 1629 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1630 | }, 1631 | "suggest": { 1632 | "magento/module-deploy": "100.1.*" 1633 | }, 1634 | "type": "magento2-module", 1635 | "autoload": { 1636 | "files": [ 1637 | "registration.php" 1638 | ], 1639 | "psr-4": { 1640 | "Magento\\Store\\": "" 1641 | } 1642 | }, 1643 | "license": [ 1644 | "OSL-3.0", 1645 | "AFL-3.0" 1646 | ], 1647 | "description": "N/A" 1648 | }, 1649 | { 1650 | "name": "magento/module-tax", 1651 | "version": "100.1.2", 1652 | "dist": { 1653 | "type": "zip", 1654 | "url": "https://repo.magento.com/archives/magento/module-tax/magento-module-tax-100.1.2.0.zip", 1655 | "reference": null, 1656 | "shasum": "2b971cf9585ffa1926dde977de6417242d6da726" 1657 | }, 1658 | "require": { 1659 | "magento/framework": "100.1.*", 1660 | "magento/module-backend": "100.1.*", 1661 | "magento/module-catalog": "101.0.*", 1662 | "magento/module-checkout": "100.1.*", 1663 | "magento/module-config": "100.1.*", 1664 | "magento/module-customer": "100.1.*", 1665 | "magento/module-directory": "100.1.*", 1666 | "magento/module-eav": "100.1.*", 1667 | "magento/module-page-cache": "100.1.*", 1668 | "magento/module-quote": "100.1.*", 1669 | "magento/module-reports": "100.1.*", 1670 | "magento/module-sales": "100.1.*", 1671 | "magento/module-shipping": "100.1.*", 1672 | "magento/module-store": "100.1.*", 1673 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1674 | }, 1675 | "suggest": { 1676 | "magento/module-tax-sample-data": "Sample Data version:100.1.*" 1677 | }, 1678 | "type": "magento2-module", 1679 | "autoload": { 1680 | "files": [ 1681 | "registration.php" 1682 | ], 1683 | "psr-4": { 1684 | "Magento\\Tax\\": "" 1685 | } 1686 | }, 1687 | "license": [ 1688 | "OSL-3.0", 1689 | "AFL-3.0" 1690 | ], 1691 | "description": "N/A" 1692 | }, 1693 | { 1694 | "name": "magento/module-theme", 1695 | "version": "100.1.5", 1696 | "dist": { 1697 | "type": "zip", 1698 | "url": "https://repo.magento.com/archives/magento/module-theme/magento-module-theme-100.1.5.0.zip", 1699 | "reference": null, 1700 | "shasum": "07359ea90e739eba88e2af2906234cf55c6e12a9" 1701 | }, 1702 | "require": { 1703 | "magento/framework": "100.1.*", 1704 | "magento/module-backend": "100.1.*", 1705 | "magento/module-cms": "101.0.*", 1706 | "magento/module-config": "100.1.*", 1707 | "magento/module-customer": "100.1.*", 1708 | "magento/module-directory": "100.1.*", 1709 | "magento/module-eav": "100.1.*", 1710 | "magento/module-media-storage": "100.1.*", 1711 | "magento/module-require-js": "100.1.*", 1712 | "magento/module-store": "100.1.*", 1713 | "magento/module-ui": "100.1.*", 1714 | "magento/module-widget": "100.1.*", 1715 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1716 | }, 1717 | "suggest": { 1718 | "magento/module-theme-sample-data": "Sample Data version:100.1.*", 1719 | "magento/module-translation": "100.1.*" 1720 | }, 1721 | "type": "magento2-module", 1722 | "autoload": { 1723 | "files": [ 1724 | "registration.php" 1725 | ], 1726 | "psr-4": { 1727 | "Magento\\Theme\\": "" 1728 | } 1729 | }, 1730 | "license": [ 1731 | "OSL-3.0", 1732 | "AFL-3.0" 1733 | ], 1734 | "description": "N/A" 1735 | }, 1736 | { 1737 | "name": "magento/module-translation", 1738 | "version": "100.1.3", 1739 | "dist": { 1740 | "type": "zip", 1741 | "url": "https://repo.magento.com/archives/magento/module-translation/magento-module-translation-100.1.3.0.zip", 1742 | "reference": null, 1743 | "shasum": "942971fe9e2288b842dbf54ca1f7639c0eded25a" 1744 | }, 1745 | "require": { 1746 | "magento/framework": "100.1.*", 1747 | "magento/module-backend": "100.1.*", 1748 | "magento/module-developer": "100.1.*", 1749 | "magento/module-store": "100.1.*", 1750 | "magento/module-theme": "100.1.*", 1751 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1752 | }, 1753 | "suggest": { 1754 | "magento/module-deploy": "100.1.*" 1755 | }, 1756 | "type": "magento2-module", 1757 | "autoload": { 1758 | "files": [ 1759 | "registration.php" 1760 | ], 1761 | "psr-4": { 1762 | "Magento\\Translation\\": "" 1763 | } 1764 | }, 1765 | "license": [ 1766 | "OSL-3.0", 1767 | "AFL-3.0" 1768 | ], 1769 | "description": "N/A" 1770 | }, 1771 | { 1772 | "name": "magento/module-ui", 1773 | "version": "100.1.5", 1774 | "dist": { 1775 | "type": "zip", 1776 | "url": "https://repo.magento.com/archives/magento/module-ui/magento-module-ui-100.1.5.0.zip", 1777 | "reference": null, 1778 | "shasum": "469913b54edb26d799d61e922abf1d0f8bfeb590" 1779 | }, 1780 | "require": { 1781 | "magento/framework": "100.1.*", 1782 | "magento/module-authorization": "100.1.*", 1783 | "magento/module-backend": "100.1.*", 1784 | "magento/module-eav": "100.1.*", 1785 | "magento/module-user": "100.1.*", 1786 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1787 | }, 1788 | "type": "magento2-module", 1789 | "autoload": { 1790 | "files": [ 1791 | "registration.php" 1792 | ], 1793 | "psr-4": { 1794 | "Magento\\Ui\\": "" 1795 | } 1796 | }, 1797 | "license": [ 1798 | "OSL-3.0", 1799 | "AFL-3.0" 1800 | ], 1801 | "description": "N/A" 1802 | }, 1803 | { 1804 | "name": "magento/module-url-rewrite", 1805 | "version": "100.1.2", 1806 | "dist": { 1807 | "type": "zip", 1808 | "url": "https://repo.magento.com/archives/magento/module-url-rewrite/magento-module-url-rewrite-100.1.2.0.zip", 1809 | "reference": null, 1810 | "shasum": "984d4e723f24121f50dd25317a76cd3c3152a07d" 1811 | }, 1812 | "require": { 1813 | "magento/framework": "100.1.*", 1814 | "magento/module-backend": "100.1.*", 1815 | "magento/module-catalog": "101.0.*", 1816 | "magento/module-catalog-url-rewrite": "100.1.*", 1817 | "magento/module-cms": "101.0.*", 1818 | "magento/module-cms-url-rewrite": "100.1.*", 1819 | "magento/module-store": "100.1.*", 1820 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1821 | }, 1822 | "type": "magento2-module", 1823 | "autoload": { 1824 | "files": [ 1825 | "registration.php" 1826 | ], 1827 | "psr-4": { 1828 | "Magento\\UrlRewrite\\": "" 1829 | } 1830 | }, 1831 | "license": [ 1832 | "OSL-3.0", 1833 | "AFL-3.0" 1834 | ], 1835 | "description": "N/A" 1836 | }, 1837 | { 1838 | "name": "magento/module-user", 1839 | "version": "100.1.3", 1840 | "dist": { 1841 | "type": "zip", 1842 | "url": "https://repo.magento.com/archives/magento/module-user/magento-module-user-100.1.3.0.zip", 1843 | "reference": null, 1844 | "shasum": "cbcec4149800c86614ee6436ecece787250dee16" 1845 | }, 1846 | "require": { 1847 | "magento/framework": "100.1.*", 1848 | "magento/module-authorization": "100.1.*", 1849 | "magento/module-backend": "100.1.*", 1850 | "magento/module-email": "100.1.*", 1851 | "magento/module-integration": "100.1.*", 1852 | "magento/module-security": "100.1.*", 1853 | "magento/module-store": "100.1.*", 1854 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1855 | }, 1856 | "type": "magento2-module", 1857 | "autoload": { 1858 | "files": [ 1859 | "registration.php" 1860 | ], 1861 | "psr-4": { 1862 | "Magento\\User\\": "" 1863 | } 1864 | }, 1865 | "license": [ 1866 | "OSL-3.0", 1867 | "AFL-3.0" 1868 | ], 1869 | "description": "N/A" 1870 | }, 1871 | { 1872 | "name": "magento/module-variable", 1873 | "version": "100.1.2", 1874 | "dist": { 1875 | "type": "zip", 1876 | "url": "https://repo.magento.com/archives/magento/module-variable/magento-module-variable-100.1.2.0.zip", 1877 | "reference": null, 1878 | "shasum": "d497c6dcb94730c9271962c80b1ac84367cec95e" 1879 | }, 1880 | "require": { 1881 | "magento/framework": "100.1.*", 1882 | "magento/module-backend": "100.1.*", 1883 | "magento/module-email": "100.1.*", 1884 | "magento/module-store": "100.1.*", 1885 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1886 | }, 1887 | "type": "magento2-module", 1888 | "autoload": { 1889 | "files": [ 1890 | "registration.php" 1891 | ], 1892 | "psr-4": { 1893 | "Magento\\Variable\\": "" 1894 | } 1895 | }, 1896 | "license": [ 1897 | "OSL-3.0", 1898 | "AFL-3.0" 1899 | ], 1900 | "description": "N/A" 1901 | }, 1902 | { 1903 | "name": "magento/module-widget", 1904 | "version": "100.1.3", 1905 | "dist": { 1906 | "type": "zip", 1907 | "url": "https://repo.magento.com/archives/magento/module-widget/magento-module-widget-100.1.3.0.zip", 1908 | "reference": null, 1909 | "shasum": "aaca3bb5cf85f3d533f8d95d12d2f6068ae6eb0e" 1910 | }, 1911 | "require": { 1912 | "magento/framework": "100.1.*", 1913 | "magento/module-backend": "100.1.*", 1914 | "magento/module-catalog": "101.0.*", 1915 | "magento/module-cms": "101.0.*", 1916 | "magento/module-email": "100.1.*", 1917 | "magento/module-store": "100.1.*", 1918 | "magento/module-theme": "100.1.*", 1919 | "magento/module-variable": "100.1.*", 1920 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1921 | }, 1922 | "suggest": { 1923 | "magento/module-widget-sample-data": "Sample Data version:100.1.*" 1924 | }, 1925 | "type": "magento2-module", 1926 | "autoload": { 1927 | "files": [ 1928 | "registration.php" 1929 | ], 1930 | "psr-4": { 1931 | "Magento\\Widget\\": "" 1932 | } 1933 | }, 1934 | "license": [ 1935 | "OSL-3.0", 1936 | "AFL-3.0" 1937 | ], 1938 | "description": "N/A" 1939 | }, 1940 | { 1941 | "name": "magento/module-wishlist", 1942 | "version": "100.1.4", 1943 | "dist": { 1944 | "type": "zip", 1945 | "url": "https://repo.magento.com/archives/magento/module-wishlist/magento-module-wishlist-100.1.4.0.zip", 1946 | "reference": null, 1947 | "shasum": "d856a805dfbc044eddd06d1a9ce3a3afd4f33e6a" 1948 | }, 1949 | "require": { 1950 | "magento/framework": "100.1.*", 1951 | "magento/module-backend": "100.1.*", 1952 | "magento/module-catalog": "101.0.*", 1953 | "magento/module-catalog-inventory": "100.1.*", 1954 | "magento/module-checkout": "100.1.*", 1955 | "magento/module-customer": "100.1.*", 1956 | "magento/module-grouped-product": "100.1.*", 1957 | "magento/module-rss": "100.1.*", 1958 | "magento/module-sales": "100.1.*", 1959 | "magento/module-store": "100.1.*", 1960 | "magento/module-theme": "100.1.*", 1961 | "magento/module-ui": "100.1.*", 1962 | "php": "~5.6.5|7.0.2|7.0.4|~7.0.6" 1963 | }, 1964 | "suggest": { 1965 | "magento/module-bundle": "100.1.*", 1966 | "magento/module-configurable-product": "100.1.*", 1967 | "magento/module-cookie": "100.1.*", 1968 | "magento/module-downloadable": "100.1.*", 1969 | "magento/module-wishlist-sample-data": "Sample Data version:100.1.*" 1970 | }, 1971 | "type": "magento2-module", 1972 | "autoload": { 1973 | "files": [ 1974 | "registration.php" 1975 | ], 1976 | "psr-4": { 1977 | "Magento\\Wishlist\\": "" 1978 | } 1979 | }, 1980 | "license": [ 1981 | "OSL-3.0", 1982 | "AFL-3.0" 1983 | ], 1984 | "description": "N/A" 1985 | }, 1986 | { 1987 | "name": "symfony/process", 1988 | "version": "2.8.x-dev", 1989 | "source": { 1990 | "type": "git", 1991 | "url": "https://github.com/symfony/process.git", 1992 | "reference": "d54232f5682fda2f8bbebff7c81b864646867ab9" 1993 | }, 1994 | "dist": { 1995 | "type": "zip", 1996 | "url": "https://api.github.com/repos/symfony/process/zipball/d54232f5682fda2f8bbebff7c81b864646867ab9", 1997 | "reference": "d54232f5682fda2f8bbebff7c81b864646867ab9", 1998 | "shasum": "" 1999 | }, 2000 | "require": { 2001 | "php": ">=5.3.9" 2002 | }, 2003 | "type": "library", 2004 | "extra": { 2005 | "branch-alias": { 2006 | "dev-master": "2.8-dev" 2007 | } 2008 | }, 2009 | "autoload": { 2010 | "psr-4": { 2011 | "Symfony\\Component\\Process\\": "" 2012 | }, 2013 | "exclude-from-classmap": [ 2014 | "/Tests/" 2015 | ] 2016 | }, 2017 | "notification-url": "https://packagist.org/downloads/", 2018 | "license": [ 2019 | "MIT" 2020 | ], 2021 | "authors": [ 2022 | { 2023 | "name": "Fabien Potencier", 2024 | "email": "fabien@symfony.com" 2025 | }, 2026 | { 2027 | "name": "Symfony Community", 2028 | "homepage": "https://symfony.com/contributors" 2029 | } 2030 | ], 2031 | "description": "Symfony Process Component", 2032 | "homepage": "https://symfony.com", 2033 | "time": "2017-05-08 01:19:21" 2034 | }, 2035 | { 2036 | "name": "zendframework/zend-escaper", 2037 | "version": "2.4.11", 2038 | "source": { 2039 | "type": "git", 2040 | "url": "https://github.com/zendframework/zend-escaper.git", 2041 | "reference": "13f468ff824f3c83018b90aff892a1b3201383a9" 2042 | }, 2043 | "dist": { 2044 | "type": "zip", 2045 | "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/13f468ff824f3c83018b90aff892a1b3201383a9", 2046 | "reference": "13f468ff824f3c83018b90aff892a1b3201383a9", 2047 | "shasum": "" 2048 | }, 2049 | "require": { 2050 | "php": ">=5.3.23" 2051 | }, 2052 | "require-dev": { 2053 | "fabpot/php-cs-fixer": "1.7.*", 2054 | "phpunit/phpunit": "~4.0", 2055 | "satooshi/php-coveralls": "dev-master" 2056 | }, 2057 | "type": "library", 2058 | "extra": { 2059 | "branch-alias": { 2060 | "dev-master": "2.4-dev", 2061 | "dev-develop": "2.5-dev" 2062 | } 2063 | }, 2064 | "autoload": { 2065 | "psr-4": { 2066 | "Zend\\Escaper\\": "src/" 2067 | } 2068 | }, 2069 | "notification-url": "https://packagist.org/downloads/", 2070 | "license": [ 2071 | "BSD-3-Clause" 2072 | ], 2073 | "homepage": "https://github.com/zendframework/zend-escaper", 2074 | "keywords": [ 2075 | "escaper", 2076 | "zf2" 2077 | ], 2078 | "time": "2015-05-07T14:55:31+00:00" 2079 | }, 2080 | { 2081 | "name": "zendframework/zend-http", 2082 | "version": "2.4.11", 2083 | "source": { 2084 | "type": "git", 2085 | "url": "https://github.com/zendframework/zend-http.git", 2086 | "reference": "0456267c3825f3c4b558460e0bffeb4c496e6fb8" 2087 | }, 2088 | "dist": { 2089 | "type": "zip", 2090 | "url": "https://api.github.com/repos/zendframework/zend-http/zipball/0456267c3825f3c4b558460e0bffeb4c496e6fb8", 2091 | "reference": "0456267c3825f3c4b558460e0bffeb4c496e6fb8", 2092 | "shasum": "" 2093 | }, 2094 | "require": { 2095 | "php": ">=5.3.23", 2096 | "zendframework/zend-loader": "~2.4.0", 2097 | "zendframework/zend-stdlib": "~2.4.0", 2098 | "zendframework/zend-uri": "~2.4.0", 2099 | "zendframework/zend-validator": "~2.4.0" 2100 | }, 2101 | "require-dev": { 2102 | "fabpot/php-cs-fixer": "1.7.*", 2103 | "phpunit/phpunit": "~4.0", 2104 | "satooshi/php-coveralls": "dev-master", 2105 | "zendframework/zend-config": "~2.4.0" 2106 | }, 2107 | "type": "library", 2108 | "extra": { 2109 | "branch-alias": { 2110 | "dev-master": "2.4-dev", 2111 | "dev-develop": "2.5-dev" 2112 | } 2113 | }, 2114 | "autoload": { 2115 | "psr-4": { 2116 | "Zend\\Http\\": "src/" 2117 | } 2118 | }, 2119 | "notification-url": "https://packagist.org/downloads/", 2120 | "license": [ 2121 | "BSD-3-Clause" 2122 | ], 2123 | "description": "provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", 2124 | "homepage": "https://github.com/zendframework/zend-http", 2125 | "keywords": [ 2126 | "http", 2127 | "zf2" 2128 | ], 2129 | "time": "2015-09-14T16:11:20+00:00" 2130 | }, 2131 | { 2132 | "name": "zendframework/zend-loader", 2133 | "version": "2.4.11", 2134 | "source": { 2135 | "type": "git", 2136 | "url": "https://github.com/zendframework/zend-loader.git", 2137 | "reference": "5e62c44a4d23c4e09d35fcc2a3b109c944dbdc22" 2138 | }, 2139 | "dist": { 2140 | "type": "zip", 2141 | "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/5e62c44a4d23c4e09d35fcc2a3b109c944dbdc22", 2142 | "reference": "5e62c44a4d23c4e09d35fcc2a3b109c944dbdc22", 2143 | "shasum": "" 2144 | }, 2145 | "require": { 2146 | "php": ">=5.3.23" 2147 | }, 2148 | "require-dev": { 2149 | "fabpot/php-cs-fixer": "1.7.*", 2150 | "phpunit/phpunit": "~4.0", 2151 | "satooshi/php-coveralls": "dev-master" 2152 | }, 2153 | "type": "library", 2154 | "extra": { 2155 | "branch-alias": { 2156 | "dev-master": "2.4-dev", 2157 | "dev-develop": "2.5-dev" 2158 | } 2159 | }, 2160 | "autoload": { 2161 | "psr-4": { 2162 | "Zend\\Loader\\": "src/" 2163 | } 2164 | }, 2165 | "notification-url": "https://packagist.org/downloads/", 2166 | "license": [ 2167 | "BSD-3-Clause" 2168 | ], 2169 | "homepage": "https://github.com/zendframework/zend-loader", 2170 | "keywords": [ 2171 | "loader", 2172 | "zf2" 2173 | ], 2174 | "time": "2015-05-07T14:55:31+00:00" 2175 | }, 2176 | { 2177 | "name": "zendframework/zend-stdlib", 2178 | "version": "2.4.11", 2179 | "source": { 2180 | "type": "git", 2181 | "url": "https://github.com/zendframework/zend-stdlib.git", 2182 | "reference": "d8ecb629a72da9f91bd95c5af006384823560b42" 2183 | }, 2184 | "dist": { 2185 | "type": "zip", 2186 | "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/d8ecb629a72da9f91bd95c5af006384823560b42", 2187 | "reference": "d8ecb629a72da9f91bd95c5af006384823560b42", 2188 | "shasum": "" 2189 | }, 2190 | "require": { 2191 | "php": ">=5.3.23" 2192 | }, 2193 | "require-dev": { 2194 | "fabpot/php-cs-fixer": "1.7.*", 2195 | "phpunit/phpunit": "~4.0", 2196 | "satooshi/php-coveralls": "dev-master", 2197 | "zendframework/zend-eventmanager": "self.version", 2198 | "zendframework/zend-filter": "self.version", 2199 | "zendframework/zend-serializer": "self.version", 2200 | "zendframework/zend-servicemanager": "self.version" 2201 | }, 2202 | "suggest": { 2203 | "zendframework/zend-eventmanager": "To support aggregate hydrator usage", 2204 | "zendframework/zend-filter": "To support naming strategy hydrator usage", 2205 | "zendframework/zend-serializer": "Zend\\Serializer component", 2206 | "zendframework/zend-servicemanager": "To support hydrator plugin manager usage" 2207 | }, 2208 | "type": "library", 2209 | "extra": { 2210 | "branch-alias": { 2211 | "dev-master": "2.4-dev", 2212 | "dev-develop": "2.5-dev" 2213 | } 2214 | }, 2215 | "autoload": { 2216 | "psr-4": { 2217 | "Zend\\Stdlib\\": "src/" 2218 | } 2219 | }, 2220 | "notification-url": "https://packagist.org/downloads/", 2221 | "license": [ 2222 | "BSD-3-Clause" 2223 | ], 2224 | "homepage": "https://github.com/zendframework/zend-stdlib", 2225 | "keywords": [ 2226 | "stdlib", 2227 | "zf2" 2228 | ], 2229 | "time": "2015-07-21T13:55:46+00:00" 2230 | }, 2231 | { 2232 | "name": "zendframework/zend-uri", 2233 | "version": "2.4.11", 2234 | "source": { 2235 | "type": "git", 2236 | "url": "https://github.com/zendframework/zend-uri.git", 2237 | "reference": "33512866d20cc4bc54a0c1a6a0bdfcf5088939b3" 2238 | }, 2239 | "dist": { 2240 | "type": "zip", 2241 | "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/33512866d20cc4bc54a0c1a6a0bdfcf5088939b3", 2242 | "reference": "33512866d20cc4bc54a0c1a6a0bdfcf5088939b3", 2243 | "shasum": "" 2244 | }, 2245 | "require": { 2246 | "php": ">=5.3.23", 2247 | "zendframework/zend-escaper": "~2.4.0", 2248 | "zendframework/zend-validator": "~2.4.0" 2249 | }, 2250 | "require-dev": { 2251 | "fabpot/php-cs-fixer": "1.7.*", 2252 | "phpunit/phpunit": "~4.0", 2253 | "satooshi/php-coveralls": "dev-master" 2254 | }, 2255 | "type": "library", 2256 | "extra": { 2257 | "branch-alias": { 2258 | "dev-master": "2.4-dev", 2259 | "dev-develop": "2.5-dev" 2260 | } 2261 | }, 2262 | "autoload": { 2263 | "psr-4": { 2264 | "Zend\\Uri\\": "src/" 2265 | } 2266 | }, 2267 | "notification-url": "https://packagist.org/downloads/", 2268 | "license": [ 2269 | "BSD-3-Clause" 2270 | ], 2271 | "description": "a component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", 2272 | "homepage": "https://github.com/zendframework/zend-uri", 2273 | "keywords": [ 2274 | "uri", 2275 | "zf2" 2276 | ], 2277 | "time": "2015-09-14T16:17:10+00:00" 2278 | }, 2279 | { 2280 | "name": "zendframework/zend-validator", 2281 | "version": "2.4.11", 2282 | "source": { 2283 | "type": "git", 2284 | "url": "https://github.com/zendframework/zend-validator.git", 2285 | "reference": "81415511fe729e6de19a61936313cef43c80d337" 2286 | }, 2287 | "dist": { 2288 | "type": "zip", 2289 | "url": "https://api.github.com/repos/zendframework/zend-validator/zipball/81415511fe729e6de19a61936313cef43c80d337", 2290 | "reference": "81415511fe729e6de19a61936313cef43c80d337", 2291 | "shasum": "" 2292 | }, 2293 | "require": { 2294 | "php": ">=5.3.23", 2295 | "zendframework/zend-stdlib": "~2.4.0" 2296 | }, 2297 | "require-dev": { 2298 | "fabpot/php-cs-fixer": "1.7.*", 2299 | "phpunit/phpunit": "~4.0", 2300 | "satooshi/php-coveralls": "dev-master", 2301 | "zendframework/zend-config": "~2.4.0", 2302 | "zendframework/zend-db": "~2.4.0", 2303 | "zendframework/zend-filter": "~2.4.0", 2304 | "zendframework/zend-i18n": "~2.4.0", 2305 | "zendframework/zend-math": "~2.4.0", 2306 | "zendframework/zend-servicemanager": "~2.4.0", 2307 | "zendframework/zend-session": "~2.4.0", 2308 | "zendframework/zend-uri": "~2.4.0" 2309 | }, 2310 | "suggest": { 2311 | "zendframework/zend-db": "Zend\\Db component", 2312 | "zendframework/zend-filter": "Zend\\Filter component, required by the Digits validator", 2313 | "zendframework/zend-i18n": "Zend\\I18n component to allow translation of validation error messages as well as to use the various Date validators", 2314 | "zendframework/zend-math": "Zend\\Math component", 2315 | "zendframework/zend-resources": "Translations of validator messages", 2316 | "zendframework/zend-servicemanager": "Zend\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", 2317 | "zendframework/zend-session": "Zend\\Session component", 2318 | "zendframework/zend-uri": "Zend\\Uri component, required by the Uri and Sitemap\\Loc validators" 2319 | }, 2320 | "type": "library", 2321 | "extra": { 2322 | "branch-alias": { 2323 | "dev-master": "2.4-dev", 2324 | "dev-develop": "2.5-dev" 2325 | } 2326 | }, 2327 | "autoload": { 2328 | "psr-4": { 2329 | "Zend\\Validator\\": "src/" 2330 | } 2331 | }, 2332 | "notification-url": "https://packagist.org/downloads/", 2333 | "license": [ 2334 | "BSD-3-Clause" 2335 | ], 2336 | "description": "provides a set of commonly needed validators", 2337 | "homepage": "https://github.com/zendframework/zend-validator", 2338 | "keywords": [ 2339 | "validator", 2340 | "zf2" 2341 | ], 2342 | "time": "2015-09-08T21:04:17+00:00" 2343 | } 2344 | ], 2345 | "packages-dev": [ 2346 | { 2347 | "name": "doctrine/instantiator", 2348 | "version": "dev-master", 2349 | "source": { 2350 | "type": "git", 2351 | "url": "https://github.com/doctrine/instantiator.git", 2352 | "reference": "5acd2bd8c2b600ad5cc4c9180ebf0a930604d6a5" 2353 | }, 2354 | "dist": { 2355 | "type": "zip", 2356 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/5acd2bd8c2b600ad5cc4c9180ebf0a930604d6a5", 2357 | "reference": "5acd2bd8c2b600ad5cc4c9180ebf0a930604d6a5", 2358 | "shasum": "" 2359 | }, 2360 | "require": { 2361 | "php": ">=5.3,<8.0-DEV" 2362 | }, 2363 | "require-dev": { 2364 | "athletic/athletic": "~0.1.8", 2365 | "ext-pdo": "*", 2366 | "ext-phar": "*", 2367 | "phpunit/phpunit": "~4.0", 2368 | "squizlabs/php_codesniffer": "~2.0" 2369 | }, 2370 | "type": "library", 2371 | "extra": { 2372 | "branch-alias": { 2373 | "dev-master": "1.0.x-dev" 2374 | } 2375 | }, 2376 | "autoload": { 2377 | "psr-4": { 2378 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 2379 | } 2380 | }, 2381 | "notification-url": "https://packagist.org/downloads/", 2382 | "license": [ 2383 | "MIT" 2384 | ], 2385 | "authors": [ 2386 | { 2387 | "name": "Marco Pivetta", 2388 | "email": "ocramius@gmail.com", 2389 | "homepage": "http://ocramius.github.com/" 2390 | } 2391 | ], 2392 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 2393 | "homepage": "https://github.com/doctrine/instantiator", 2394 | "keywords": [ 2395 | "constructor", 2396 | "instantiate" 2397 | ], 2398 | "time": "2017-02-16 16:15:51" 2399 | }, 2400 | { 2401 | "name": "nette/bootstrap", 2402 | "version": "v2.4.x-dev", 2403 | "source": { 2404 | "type": "git", 2405 | "url": "https://github.com/nette/bootstrap.git", 2406 | "reference": "2c27747f5aff2e436ebf542e0ea566bea1db2d53" 2407 | }, 2408 | "dist": { 2409 | "type": "zip", 2410 | "url": "https://api.github.com/repos/nette/bootstrap/zipball/2c27747f5aff2e436ebf542e0ea566bea1db2d53", 2411 | "reference": "2c27747f5aff2e436ebf542e0ea566bea1db2d53", 2412 | "shasum": "" 2413 | }, 2414 | "require": { 2415 | "nette/di": "~2.4.7", 2416 | "nette/utils": "~2.4", 2417 | "php": ">=5.6.0" 2418 | }, 2419 | "conflict": { 2420 | "nette/nette": "<2.2" 2421 | }, 2422 | "require-dev": { 2423 | "latte/latte": "~2.2", 2424 | "nette/application": "~2.3", 2425 | "nette/caching": "~2.3", 2426 | "nette/database": "~2.3", 2427 | "nette/forms": "~2.3", 2428 | "nette/http": "~2.4.0", 2429 | "nette/mail": "~2.3", 2430 | "nette/robot-loader": "^2.4.2 || ^3.0", 2431 | "nette/safe-stream": "~2.2", 2432 | "nette/security": "~2.3", 2433 | "nette/tester": "~2.0", 2434 | "tracy/tracy": "^2.4.1" 2435 | }, 2436 | "suggest": { 2437 | "nette/robot-loader": "to use Configurator::createRobotLoader()", 2438 | "tracy/tracy": "to use Configurator::enableTracy()" 2439 | }, 2440 | "type": "library", 2441 | "extra": { 2442 | "branch-alias": { 2443 | "dev-master": "2.4-dev" 2444 | } 2445 | }, 2446 | "autoload": { 2447 | "classmap": [ 2448 | "src/" 2449 | ] 2450 | }, 2451 | "notification-url": "https://packagist.org/downloads/", 2452 | "license": [ 2453 | "BSD-3-Clause", 2454 | "GPL-2.0", 2455 | "GPL-3.0" 2456 | ], 2457 | "authors": [ 2458 | { 2459 | "name": "David Grudl", 2460 | "homepage": "https://davidgrudl.com" 2461 | }, 2462 | { 2463 | "name": "Nette Community", 2464 | "homepage": "https://nette.org/contributors" 2465 | } 2466 | ], 2467 | "description": "Nette Bootstrap", 2468 | "homepage": "https://nette.org", 2469 | "time": "2017-02-19 22:15:02" 2470 | }, 2471 | { 2472 | "name": "nette/caching", 2473 | "version": "v2.5.x-dev", 2474 | "source": { 2475 | "type": "git", 2476 | "url": "https://github.com/nette/caching.git", 2477 | "reference": "2436e530484a346d0a246733519ceaa40b943bd6" 2478 | }, 2479 | "dist": { 2480 | "type": "zip", 2481 | "url": "https://api.github.com/repos/nette/caching/zipball/2436e530484a346d0a246733519ceaa40b943bd6", 2482 | "reference": "2436e530484a346d0a246733519ceaa40b943bd6", 2483 | "shasum": "" 2484 | }, 2485 | "require": { 2486 | "nette/finder": "^2.2 || ~3.0.0", 2487 | "nette/utils": "^2.4 || ~3.0.0", 2488 | "php": ">=5.6.0" 2489 | }, 2490 | "conflict": { 2491 | "nette/nette": "<2.2" 2492 | }, 2493 | "require-dev": { 2494 | "latte/latte": "^2.4", 2495 | "nette/di": "^2.4 || ~3.0.0", 2496 | "nette/tester": "^2.0", 2497 | "tracy/tracy": "^2.4" 2498 | }, 2499 | "suggest": { 2500 | "ext-pdo_sqlite": "to use SQLiteStorage or SQLiteJournal" 2501 | }, 2502 | "type": "library", 2503 | "extra": { 2504 | "branch-alias": { 2505 | "dev-master": "2.5-dev" 2506 | } 2507 | }, 2508 | "autoload": { 2509 | "classmap": [ 2510 | "src/" 2511 | ] 2512 | }, 2513 | "notification-url": "https://packagist.org/downloads/", 2514 | "license": [ 2515 | "BSD-3-Clause", 2516 | "GPL-2.0", 2517 | "GPL-3.0" 2518 | ], 2519 | "authors": [ 2520 | { 2521 | "name": "David Grudl", 2522 | "homepage": "https://davidgrudl.com" 2523 | }, 2524 | { 2525 | "name": "Nette Community", 2526 | "homepage": "https://nette.org/contributors" 2527 | } 2528 | ], 2529 | "description": "Nette Caching Component", 2530 | "homepage": "https://nette.org", 2531 | "time": "2017-01-29 20:40:55" 2532 | }, 2533 | { 2534 | "name": "nette/di", 2535 | "version": "v2.4.x-dev", 2536 | "source": { 2537 | "type": "git", 2538 | "url": "https://github.com/nette/di.git", 2539 | "reference": "03d0a601f3bb4ceb045ded4771ff07c21d1dcc79" 2540 | }, 2541 | "dist": { 2542 | "type": "zip", 2543 | "url": "https://api.github.com/repos/nette/di/zipball/03d0a601f3bb4ceb045ded4771ff07c21d1dcc79", 2544 | "reference": "03d0a601f3bb4ceb045ded4771ff07c21d1dcc79", 2545 | "shasum": "" 2546 | }, 2547 | "require": { 2548 | "ext-tokenizer": "*", 2549 | "nette/neon": "^2.3.3 || ~3.0.0", 2550 | "nette/php-generator": "^2.6.1 || ~3.0.0", 2551 | "nette/utils": "^2.4.3 || ~3.0.0", 2552 | "php": ">=5.6.0" 2553 | }, 2554 | "conflict": { 2555 | "nette/bootstrap": "<2.4", 2556 | "nette/nette": "<2.2" 2557 | }, 2558 | "require-dev": { 2559 | "nette/tester": "^2.0", 2560 | "tracy/tracy": "^2.3" 2561 | }, 2562 | "type": "library", 2563 | "extra": { 2564 | "branch-alias": { 2565 | "dev-master": "2.4-dev" 2566 | } 2567 | }, 2568 | "autoload": { 2569 | "classmap": [ 2570 | "src/" 2571 | ] 2572 | }, 2573 | "notification-url": "https://packagist.org/downloads/", 2574 | "license": [ 2575 | "BSD-3-Clause", 2576 | "GPL-2.0", 2577 | "GPL-3.0" 2578 | ], 2579 | "authors": [ 2580 | { 2581 | "name": "David Grudl", 2582 | "homepage": "https://davidgrudl.com" 2583 | }, 2584 | { 2585 | "name": "Nette Community", 2586 | "homepage": "https://nette.org/contributors" 2587 | } 2588 | ], 2589 | "description": "Nette Dependency Injection Component", 2590 | "homepage": "https://nette.org", 2591 | "time": "2017-04-25 16:16:31" 2592 | }, 2593 | { 2594 | "name": "nette/finder", 2595 | "version": "dev-master", 2596 | "source": { 2597 | "type": "git", 2598 | "url": "https://github.com/nette/finder.git", 2599 | "reference": "13f42b4d40c87557455232313b03413ad8e5e9d5" 2600 | }, 2601 | "dist": { 2602 | "type": "zip", 2603 | "url": "https://api.github.com/repos/nette/finder/zipball/13f42b4d40c87557455232313b03413ad8e5e9d5", 2604 | "reference": "13f42b4d40c87557455232313b03413ad8e5e9d5", 2605 | "shasum": "" 2606 | }, 2607 | "require": { 2608 | "nette/utils": "^2.4 || ~3.0.0", 2609 | "php": ">=7.0" 2610 | }, 2611 | "conflict": { 2612 | "nette/nette": "<2.2" 2613 | }, 2614 | "require-dev": { 2615 | "nette/tester": "^2.0", 2616 | "tracy/tracy": "^2.3" 2617 | }, 2618 | "type": "library", 2619 | "extra": { 2620 | "branch-alias": { 2621 | "dev-master": "3.0-dev" 2622 | } 2623 | }, 2624 | "autoload": { 2625 | "classmap": [ 2626 | "src/" 2627 | ] 2628 | }, 2629 | "notification-url": "https://packagist.org/downloads/", 2630 | "license": [ 2631 | "BSD-3-Clause", 2632 | "GPL-2.0", 2633 | "GPL-3.0" 2634 | ], 2635 | "authors": [ 2636 | { 2637 | "name": "David Grudl", 2638 | "homepage": "https://davidgrudl.com" 2639 | }, 2640 | { 2641 | "name": "Nette Community", 2642 | "homepage": "https://nette.org/contributors" 2643 | } 2644 | ], 2645 | "description": "🔍 Finder: find files and directories with an intuitive API.", 2646 | "homepage": "https://nette.org", 2647 | "keywords": [ 2648 | "filesystem", 2649 | "glob", 2650 | "iterator", 2651 | "nette" 2652 | ], 2653 | "time": "2017-03-05 23:29:27" 2654 | }, 2655 | { 2656 | "name": "nette/neon", 2657 | "version": "dev-master", 2658 | "source": { 2659 | "type": "git", 2660 | "url": "https://github.com/nette/neon.git", 2661 | "reference": "cfea4c34b141f658423d5699a027ea8bfb8e0757" 2662 | }, 2663 | "dist": { 2664 | "type": "zip", 2665 | "url": "https://api.github.com/repos/nette/neon/zipball/cfea4c34b141f658423d5699a027ea8bfb8e0757", 2666 | "reference": "cfea4c34b141f658423d5699a027ea8bfb8e0757", 2667 | "shasum": "" 2668 | }, 2669 | "require": { 2670 | "ext-iconv": "*", 2671 | "ext-json": "*", 2672 | "php": ">=7.0" 2673 | }, 2674 | "require-dev": { 2675 | "nette/tester": "^2.0", 2676 | "tracy/tracy": "^2.3" 2677 | }, 2678 | "type": "library", 2679 | "extra": { 2680 | "branch-alias": { 2681 | "dev-master": "3.0-dev" 2682 | } 2683 | }, 2684 | "autoload": { 2685 | "classmap": [ 2686 | "src/" 2687 | ] 2688 | }, 2689 | "notification-url": "https://packagist.org/downloads/", 2690 | "license": [ 2691 | "BSD-3-Clause", 2692 | "GPL-2.0", 2693 | "GPL-3.0" 2694 | ], 2695 | "authors": [ 2696 | { 2697 | "name": "David Grudl", 2698 | "homepage": "https://davidgrudl.com" 2699 | }, 2700 | { 2701 | "name": "Nette Community", 2702 | "homepage": "https://nette.org/contributors" 2703 | } 2704 | ], 2705 | "description": "🍸 Encodes and decodes NEON file format.", 2706 | "homepage": "http://ne-on.org", 2707 | "keywords": [ 2708 | "export", 2709 | "import", 2710 | "neon", 2711 | "nette", 2712 | "yaml" 2713 | ], 2714 | "time": "2017-02-10 13:30:03" 2715 | }, 2716 | { 2717 | "name": "nette/php-generator", 2718 | "version": "dev-master", 2719 | "source": { 2720 | "type": "git", 2721 | "url": "https://github.com/nette/php-generator.git", 2722 | "reference": "8605fd18857a4beef4aa0afc19eb9a7f876237e8" 2723 | }, 2724 | "dist": { 2725 | "type": "zip", 2726 | "url": "https://api.github.com/repos/nette/php-generator/zipball/8605fd18857a4beef4aa0afc19eb9a7f876237e8", 2727 | "reference": "8605fd18857a4beef4aa0afc19eb9a7f876237e8", 2728 | "shasum": "" 2729 | }, 2730 | "require": { 2731 | "nette/utils": "^2.4.2 || ~3.0.0", 2732 | "php": ">=7.0" 2733 | }, 2734 | "conflict": { 2735 | "nette/nette": "<2.2" 2736 | }, 2737 | "require-dev": { 2738 | "nette/tester": "^2.0", 2739 | "tracy/tracy": "^2.3" 2740 | }, 2741 | "type": "library", 2742 | "extra": { 2743 | "branch-alias": { 2744 | "dev-master": "3.0-dev" 2745 | } 2746 | }, 2747 | "autoload": { 2748 | "classmap": [ 2749 | "src/" 2750 | ] 2751 | }, 2752 | "notification-url": "https://packagist.org/downloads/", 2753 | "license": [ 2754 | "BSD-3-Clause", 2755 | "GPL-2.0", 2756 | "GPL-3.0" 2757 | ], 2758 | "authors": [ 2759 | { 2760 | "name": "David Grudl", 2761 | "homepage": "https://davidgrudl.com" 2762 | }, 2763 | { 2764 | "name": "Nette Community", 2765 | "homepage": "https://nette.org/contributors" 2766 | } 2767 | ], 2768 | "description": "🐘 Generates neat PHP code for you. Supports new PHP 7.1 features.", 2769 | "homepage": "https://nette.org", 2770 | "keywords": [ 2771 | "code", 2772 | "nette", 2773 | "php", 2774 | "scaffolding" 2775 | ], 2776 | "time": "2017-03-18 15:20:10" 2777 | }, 2778 | { 2779 | "name": "nette/robot-loader", 2780 | "version": "dev-master", 2781 | "source": { 2782 | "type": "git", 2783 | "url": "https://github.com/nette/robot-loader.git", 2784 | "reference": "a1284b62e922b7994004764d42bc1ea71c6b475f" 2785 | }, 2786 | "dist": { 2787 | "type": "zip", 2788 | "url": "https://api.github.com/repos/nette/robot-loader/zipball/a1284b62e922b7994004764d42bc1ea71c6b475f", 2789 | "reference": "a1284b62e922b7994004764d42bc1ea71c6b475f", 2790 | "shasum": "" 2791 | }, 2792 | "require": { 2793 | "ext-tokenizer": "*", 2794 | "nette/finder": "^2.3 || ^3.0", 2795 | "nette/utils": "^2.4 || ^3.0", 2796 | "php": ">=5.6.0" 2797 | }, 2798 | "conflict": { 2799 | "nette/nette": "<2.2" 2800 | }, 2801 | "require-dev": { 2802 | "nette/tester": "^2.0", 2803 | "tracy/tracy": "^2.3" 2804 | }, 2805 | "type": "library", 2806 | "extra": { 2807 | "branch-alias": { 2808 | "dev-master": "3.0-dev" 2809 | } 2810 | }, 2811 | "autoload": { 2812 | "classmap": [ 2813 | "src/" 2814 | ] 2815 | }, 2816 | "notification-url": "https://packagist.org/downloads/", 2817 | "license": [ 2818 | "BSD-3-Clause", 2819 | "GPL-2.0", 2820 | "GPL-3.0" 2821 | ], 2822 | "authors": [ 2823 | { 2824 | "name": "David Grudl", 2825 | "homepage": "https://davidgrudl.com" 2826 | }, 2827 | { 2828 | "name": "Nette Community", 2829 | "homepage": "https://nette.org/contributors" 2830 | } 2831 | ], 2832 | "description": "🍀 RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", 2833 | "homepage": "https://nette.org", 2834 | "keywords": [ 2835 | "autoload", 2836 | "class", 2837 | "interface", 2838 | "nette", 2839 | "trait" 2840 | ], 2841 | "time": "2017-03-07 16:53:30" 2842 | }, 2843 | { 2844 | "name": "nette/utils", 2845 | "version": "v2.4.x-dev", 2846 | "source": { 2847 | "type": "git", 2848 | "url": "https://github.com/nette/utils.git", 2849 | "reference": "266160aec0d99516e0ea510de1dfa24a0dc1e76e" 2850 | }, 2851 | "dist": { 2852 | "type": "zip", 2853 | "url": "https://api.github.com/repos/nette/utils/zipball/266160aec0d99516e0ea510de1dfa24a0dc1e76e", 2854 | "reference": "266160aec0d99516e0ea510de1dfa24a0dc1e76e", 2855 | "shasum": "" 2856 | }, 2857 | "require": { 2858 | "php": ">=5.6.0" 2859 | }, 2860 | "conflict": { 2861 | "nette/nette": "<2.2" 2862 | }, 2863 | "require-dev": { 2864 | "nette/tester": "~2.0", 2865 | "tracy/tracy": "^2.3" 2866 | }, 2867 | "suggest": { 2868 | "ext-gd": "to use Image", 2869 | "ext-iconv": "to use Strings::webalize() and toAscii()", 2870 | "ext-intl": "for script transliteration in Strings::webalize() and toAscii()", 2871 | "ext-json": "to use Nette\\Utils\\Json", 2872 | "ext-mbstring": "to use Strings::lower() etc...", 2873 | "ext-xml": "to use Strings::length() etc. when mbstring is not available" 2874 | }, 2875 | "type": "library", 2876 | "extra": { 2877 | "branch-alias": { 2878 | "dev-master": "2.4-dev" 2879 | } 2880 | }, 2881 | "autoload": { 2882 | "classmap": [ 2883 | "src/" 2884 | ] 2885 | }, 2886 | "notification-url": "https://packagist.org/downloads/", 2887 | "license": [ 2888 | "BSD-3-Clause", 2889 | "GPL-2.0", 2890 | "GPL-3.0" 2891 | ], 2892 | "authors": [ 2893 | { 2894 | "name": "David Grudl", 2895 | "homepage": "https://davidgrudl.com" 2896 | }, 2897 | { 2898 | "name": "Nette Community", 2899 | "homepage": "https://nette.org/contributors" 2900 | } 2901 | ], 2902 | "description": "Nette Utility Classes", 2903 | "homepage": "https://nette.org", 2904 | "time": "2017-04-26 10:04:49" 2905 | }, 2906 | { 2907 | "name": "nikic/php-parser", 2908 | "version": "3.x-dev", 2909 | "source": { 2910 | "type": "git", 2911 | "url": "https://github.com/nikic/PHP-Parser.git", 2912 | "reference": "3da86df48f84d35603ccf7b553d64ad112de5863" 2913 | }, 2914 | "dist": { 2915 | "type": "zip", 2916 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3da86df48f84d35603ccf7b553d64ad112de5863", 2917 | "reference": "3da86df48f84d35603ccf7b553d64ad112de5863", 2918 | "shasum": "" 2919 | }, 2920 | "require": { 2921 | "ext-tokenizer": "*", 2922 | "php": ">=5.5" 2923 | }, 2924 | "require-dev": { 2925 | "phpunit/phpunit": "~4.0|~5.0" 2926 | }, 2927 | "bin": [ 2928 | "bin/php-parse" 2929 | ], 2930 | "type": "library", 2931 | "extra": { 2932 | "branch-alias": { 2933 | "dev-master": "3.0-dev" 2934 | } 2935 | }, 2936 | "autoload": { 2937 | "psr-4": { 2938 | "PhpParser\\": "lib/PhpParser" 2939 | } 2940 | }, 2941 | "notification-url": "https://packagist.org/downloads/", 2942 | "license": [ 2943 | "BSD-3-Clause" 2944 | ], 2945 | "authors": [ 2946 | { 2947 | "name": "Nikita Popov" 2948 | } 2949 | ], 2950 | "description": "A PHP parser written in PHP", 2951 | "keywords": [ 2952 | "parser", 2953 | "php" 2954 | ], 2955 | "time": "2017-04-29 10:58:35" 2956 | }, 2957 | { 2958 | "name": "phpstan/phpstan", 2959 | "version": "dev-master", 2960 | "source": { 2961 | "type": "git", 2962 | "url": "https://github.com/phpstan/phpstan.git", 2963 | "reference": "237b132f19888fc58b698a8ea3849e9b8e06c990" 2964 | }, 2965 | "dist": { 2966 | "type": "zip", 2967 | "url": "https://api.github.com/repos/phpstan/phpstan/zipball/237b132f19888fc58b698a8ea3849e9b8e06c990", 2968 | "reference": "237b132f19888fc58b698a8ea3849e9b8e06c990", 2969 | "shasum": "" 2970 | }, 2971 | "require": { 2972 | "nette/bootstrap": "^2.4 || ^3.0", 2973 | "nette/caching": "^2.4 || ^3.0", 2974 | "nette/di": "^2.4 || ^3.0", 2975 | "nette/robot-loader": "^2.4.2 || ^3.0", 2976 | "nette/utils": "^2.4 || ^3.0", 2977 | "nikic/php-parser": "^2.1 || ^3.0.2", 2978 | "php": "~7.0", 2979 | "symfony/console": "~2.7 || ~3.0", 2980 | "symfony/finder": "~2.7 || ~3.0" 2981 | }, 2982 | "require-dev": { 2983 | "consistence/coding-standard": "~0.13.0", 2984 | "jakub-onderka/php-parallel-lint": "^0.9.2", 2985 | "phing/phing": "^2.16.0", 2986 | "phpunit/phpunit": "^6.0.7", 2987 | "satooshi/php-coveralls": "^1.0", 2988 | "slevomat/coding-standard": "^2.0" 2989 | }, 2990 | "bin": [ 2991 | "bin/phpstan" 2992 | ], 2993 | "type": "library", 2994 | "extra": { 2995 | "branch-alias": { 2996 | "dev-master": "0.7-dev" 2997 | } 2998 | }, 2999 | "autoload": { 3000 | "psr-4": { 3001 | "PHPStan\\": "src/" 3002 | } 3003 | }, 3004 | "notification-url": "https://packagist.org/downloads/", 3005 | "license": [ 3006 | "MIT" 3007 | ], 3008 | "description": "PHPStan - PHP Static Analysis Tool", 3009 | "time": "2017-05-21 19:07:45" 3010 | }, 3011 | { 3012 | "name": "phpunit/php-code-coverage", 3013 | "version": "2.2.x-dev", 3014 | "source": { 3015 | "type": "git", 3016 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 3017 | "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" 3018 | }, 3019 | "dist": { 3020 | "type": "zip", 3021 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", 3022 | "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", 3023 | "shasum": "" 3024 | }, 3025 | "require": { 3026 | "php": ">=5.3.3", 3027 | "phpunit/php-file-iterator": "~1.3", 3028 | "phpunit/php-text-template": "~1.2", 3029 | "phpunit/php-token-stream": "~1.3", 3030 | "sebastian/environment": "^1.3.2", 3031 | "sebastian/version": "~1.0" 3032 | }, 3033 | "require-dev": { 3034 | "ext-xdebug": ">=2.1.4", 3035 | "phpunit/phpunit": "~4" 3036 | }, 3037 | "suggest": { 3038 | "ext-dom": "*", 3039 | "ext-xdebug": ">=2.2.1", 3040 | "ext-xmlwriter": "*" 3041 | }, 3042 | "type": "library", 3043 | "extra": { 3044 | "branch-alias": { 3045 | "dev-master": "2.2.x-dev" 3046 | } 3047 | }, 3048 | "autoload": { 3049 | "classmap": [ 3050 | "src/" 3051 | ] 3052 | }, 3053 | "notification-url": "https://packagist.org/downloads/", 3054 | "license": [ 3055 | "BSD-3-Clause" 3056 | ], 3057 | "authors": [ 3058 | { 3059 | "name": "Sebastian Bergmann", 3060 | "email": "sb@sebastian-bergmann.de", 3061 | "role": "lead" 3062 | } 3063 | ], 3064 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 3065 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 3066 | "keywords": [ 3067 | "coverage", 3068 | "testing", 3069 | "xunit" 3070 | ], 3071 | "time": "2015-10-06 15:47:00" 3072 | }, 3073 | { 3074 | "name": "phpunit/php-file-iterator", 3075 | "version": "1.3.4", 3076 | "source": { 3077 | "type": "git", 3078 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 3079 | "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb" 3080 | }, 3081 | "dist": { 3082 | "type": "zip", 3083 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb", 3084 | "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb", 3085 | "shasum": "" 3086 | }, 3087 | "require": { 3088 | "php": ">=5.3.3" 3089 | }, 3090 | "type": "library", 3091 | "autoload": { 3092 | "classmap": [ 3093 | "File/" 3094 | ] 3095 | }, 3096 | "notification-url": "https://packagist.org/downloads/", 3097 | "include-path": [ 3098 | "" 3099 | ], 3100 | "license": [ 3101 | "BSD-3-Clause" 3102 | ], 3103 | "authors": [ 3104 | { 3105 | "name": "Sebastian Bergmann", 3106 | "email": "sb@sebastian-bergmann.de", 3107 | "role": "lead" 3108 | } 3109 | ], 3110 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 3111 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 3112 | "keywords": [ 3113 | "filesystem", 3114 | "iterator" 3115 | ], 3116 | "time": "2013-10-10T15:34:57+00:00" 3117 | }, 3118 | { 3119 | "name": "phpunit/php-text-template", 3120 | "version": "1.2.1", 3121 | "source": { 3122 | "type": "git", 3123 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 3124 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 3125 | }, 3126 | "dist": { 3127 | "type": "zip", 3128 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 3129 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 3130 | "shasum": "" 3131 | }, 3132 | "require": { 3133 | "php": ">=5.3.3" 3134 | }, 3135 | "type": "library", 3136 | "autoload": { 3137 | "classmap": [ 3138 | "src/" 3139 | ] 3140 | }, 3141 | "notification-url": "https://packagist.org/downloads/", 3142 | "license": [ 3143 | "BSD-3-Clause" 3144 | ], 3145 | "authors": [ 3146 | { 3147 | "name": "Sebastian Bergmann", 3148 | "email": "sebastian@phpunit.de", 3149 | "role": "lead" 3150 | } 3151 | ], 3152 | "description": "Simple template engine.", 3153 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 3154 | "keywords": [ 3155 | "template" 3156 | ], 3157 | "time": "2015-06-21T13:50:34+00:00" 3158 | }, 3159 | { 3160 | "name": "phpunit/php-timer", 3161 | "version": "dev-master", 3162 | "source": { 3163 | "type": "git", 3164 | "url": "https://github.com/sebastianbergmann/php-timer.git", 3165 | "reference": "d107f347d368dd8a384601398280c7c608390ab7" 3166 | }, 3167 | "dist": { 3168 | "type": "zip", 3169 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/d107f347d368dd8a384601398280c7c608390ab7", 3170 | "reference": "d107f347d368dd8a384601398280c7c608390ab7", 3171 | "shasum": "" 3172 | }, 3173 | "require": { 3174 | "php": "^5.3.3 || ^7.0" 3175 | }, 3176 | "require-dev": { 3177 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 3178 | }, 3179 | "type": "library", 3180 | "extra": { 3181 | "branch-alias": { 3182 | "dev-master": "1.0-dev" 3183 | } 3184 | }, 3185 | "autoload": { 3186 | "classmap": [ 3187 | "src/" 3188 | ] 3189 | }, 3190 | "notification-url": "https://packagist.org/downloads/", 3191 | "license": [ 3192 | "BSD-3-Clause" 3193 | ], 3194 | "authors": [ 3195 | { 3196 | "name": "Sebastian Bergmann", 3197 | "email": "sb@sebastian-bergmann.de", 3198 | "role": "lead" 3199 | } 3200 | ], 3201 | "description": "Utility class for timing", 3202 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 3203 | "keywords": [ 3204 | "timer" 3205 | ], 3206 | "time": "2017-03-07 15:42:04" 3207 | }, 3208 | { 3209 | "name": "phpunit/php-token-stream", 3210 | "version": "1.4.x-dev", 3211 | "source": { 3212 | "type": "git", 3213 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 3214 | "reference": "958103f327daef5dd0bb328dec53e0a9e43cfaf7" 3215 | }, 3216 | "dist": { 3217 | "type": "zip", 3218 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/958103f327daef5dd0bb328dec53e0a9e43cfaf7", 3219 | "reference": "958103f327daef5dd0bb328dec53e0a9e43cfaf7", 3220 | "shasum": "" 3221 | }, 3222 | "require": { 3223 | "ext-tokenizer": "*", 3224 | "php": ">=5.3.3" 3225 | }, 3226 | "require-dev": { 3227 | "phpunit/phpunit": "~4.2" 3228 | }, 3229 | "type": "library", 3230 | "extra": { 3231 | "branch-alias": { 3232 | "dev-master": "1.4-dev" 3233 | } 3234 | }, 3235 | "autoload": { 3236 | "classmap": [ 3237 | "src/" 3238 | ] 3239 | }, 3240 | "notification-url": "https://packagist.org/downloads/", 3241 | "license": [ 3242 | "BSD-3-Clause" 3243 | ], 3244 | "authors": [ 3245 | { 3246 | "name": "Sebastian Bergmann", 3247 | "email": "sebastian@phpunit.de" 3248 | } 3249 | ], 3250 | "description": "Wrapper around PHP's tokenizer extension.", 3251 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 3252 | "keywords": [ 3253 | "tokenizer" 3254 | ], 3255 | "time": "2017-03-07 08:21:50" 3256 | }, 3257 | { 3258 | "name": "phpunit/phpunit", 3259 | "version": "4.1.0", 3260 | "source": { 3261 | "type": "git", 3262 | "url": "https://github.com/sebastianbergmann/phpunit.git", 3263 | "reference": "efb1b1334605594417a3bd466477772d06d460a8" 3264 | }, 3265 | "dist": { 3266 | "type": "zip", 3267 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/efb1b1334605594417a3bd466477772d06d460a8", 3268 | "reference": "efb1b1334605594417a3bd466477772d06d460a8", 3269 | "shasum": "" 3270 | }, 3271 | "require": { 3272 | "ext-dom": "*", 3273 | "ext-json": "*", 3274 | "ext-pcre": "*", 3275 | "ext-reflection": "*", 3276 | "ext-spl": "*", 3277 | "php": ">=5.3.3", 3278 | "phpunit/php-code-coverage": "~2.0", 3279 | "phpunit/php-file-iterator": "~1.3.1", 3280 | "phpunit/php-text-template": "~1.2", 3281 | "phpunit/php-timer": "~1.0.2", 3282 | "phpunit/phpunit-mock-objects": "~2.1", 3283 | "sebastian/comparator": "~1.0", 3284 | "sebastian/diff": "~1.1", 3285 | "sebastian/environment": "~1.0", 3286 | "sebastian/exporter": "~1.0", 3287 | "sebastian/version": "~1.0", 3288 | "symfony/yaml": "~2.0" 3289 | }, 3290 | "suggest": { 3291 | "phpunit/php-invoker": "~1.1" 3292 | }, 3293 | "bin": [ 3294 | "phpunit" 3295 | ], 3296 | "type": "library", 3297 | "extra": { 3298 | "branch-alias": { 3299 | "dev-master": "4.1.x-dev" 3300 | } 3301 | }, 3302 | "autoload": { 3303 | "classmap": [ 3304 | "src/" 3305 | ] 3306 | }, 3307 | "notification-url": "https://packagist.org/downloads/", 3308 | "include-path": [ 3309 | "", 3310 | "../../symfony/yaml/" 3311 | ], 3312 | "license": [ 3313 | "BSD-3-Clause" 3314 | ], 3315 | "authors": [ 3316 | { 3317 | "name": "Sebastian Bergmann", 3318 | "email": "sebastian@phpunit.de", 3319 | "role": "lead" 3320 | } 3321 | ], 3322 | "description": "The PHP Unit Testing framework.", 3323 | "homepage": "http://www.phpunit.de/", 3324 | "keywords": [ 3325 | "phpunit", 3326 | "testing", 3327 | "xunit" 3328 | ], 3329 | "time": "2014-05-02T07:13:40+00:00" 3330 | }, 3331 | { 3332 | "name": "phpunit/phpunit-mock-objects", 3333 | "version": "2.3.x-dev", 3334 | "source": { 3335 | "type": "git", 3336 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 3337 | "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" 3338 | }, 3339 | "dist": { 3340 | "type": "zip", 3341 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", 3342 | "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", 3343 | "shasum": "" 3344 | }, 3345 | "require": { 3346 | "doctrine/instantiator": "^1.0.2", 3347 | "php": ">=5.3.3", 3348 | "phpunit/php-text-template": "~1.2", 3349 | "sebastian/exporter": "~1.2" 3350 | }, 3351 | "require-dev": { 3352 | "phpunit/phpunit": "~4.4" 3353 | }, 3354 | "suggest": { 3355 | "ext-soap": "*" 3356 | }, 3357 | "type": "library", 3358 | "extra": { 3359 | "branch-alias": { 3360 | "dev-master": "2.3.x-dev" 3361 | } 3362 | }, 3363 | "autoload": { 3364 | "classmap": [ 3365 | "src/" 3366 | ] 3367 | }, 3368 | "notification-url": "https://packagist.org/downloads/", 3369 | "license": [ 3370 | "BSD-3-Clause" 3371 | ], 3372 | "authors": [ 3373 | { 3374 | "name": "Sebastian Bergmann", 3375 | "email": "sb@sebastian-bergmann.de", 3376 | "role": "lead" 3377 | } 3378 | ], 3379 | "description": "Mock Object library for PHPUnit", 3380 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 3381 | "keywords": [ 3382 | "mock", 3383 | "xunit" 3384 | ], 3385 | "time": "2015-10-02 06:51:40" 3386 | }, 3387 | { 3388 | "name": "psr/log", 3389 | "version": "dev-master", 3390 | "source": { 3391 | "type": "git", 3392 | "url": "https://github.com/php-fig/log.git", 3393 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" 3394 | }, 3395 | "dist": { 3396 | "type": "zip", 3397 | "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", 3398 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", 3399 | "shasum": "" 3400 | }, 3401 | "require": { 3402 | "php": ">=5.3.0" 3403 | }, 3404 | "type": "library", 3405 | "extra": { 3406 | "branch-alias": { 3407 | "dev-master": "1.0.x-dev" 3408 | } 3409 | }, 3410 | "autoload": { 3411 | "psr-4": { 3412 | "Psr\\Log\\": "Psr/Log/" 3413 | } 3414 | }, 3415 | "notification-url": "https://packagist.org/downloads/", 3416 | "license": [ 3417 | "MIT" 3418 | ], 3419 | "authors": [ 3420 | { 3421 | "name": "PHP-FIG", 3422 | "homepage": "http://www.php-fig.org/" 3423 | } 3424 | ], 3425 | "description": "Common interface for logging libraries", 3426 | "homepage": "https://github.com/php-fig/log", 3427 | "keywords": [ 3428 | "log", 3429 | "psr", 3430 | "psr-3" 3431 | ], 3432 | "time": "2016-10-10 12:19:37" 3433 | }, 3434 | { 3435 | "name": "sebastian/comparator", 3436 | "version": "1.2.x-dev", 3437 | "source": { 3438 | "type": "git", 3439 | "url": "https://github.com/sebastianbergmann/comparator.git", 3440 | "reference": "18a5d97c25f408f48acaf6d1b9f4079314c5996a" 3441 | }, 3442 | "dist": { 3443 | "type": "zip", 3444 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/18a5d97c25f408f48acaf6d1b9f4079314c5996a", 3445 | "reference": "18a5d97c25f408f48acaf6d1b9f4079314c5996a", 3446 | "shasum": "" 3447 | }, 3448 | "require": { 3449 | "php": ">=5.3.3", 3450 | "sebastian/diff": "~1.2", 3451 | "sebastian/exporter": "~1.2 || ~2.0" 3452 | }, 3453 | "require-dev": { 3454 | "phpunit/phpunit": "~4.4" 3455 | }, 3456 | "type": "library", 3457 | "extra": { 3458 | "branch-alias": { 3459 | "dev-master": "1.2.x-dev" 3460 | } 3461 | }, 3462 | "autoload": { 3463 | "classmap": [ 3464 | "src/" 3465 | ] 3466 | }, 3467 | "notification-url": "https://packagist.org/downloads/", 3468 | "license": [ 3469 | "BSD-3-Clause" 3470 | ], 3471 | "authors": [ 3472 | { 3473 | "name": "Jeff Welch", 3474 | "email": "whatthejeff@gmail.com" 3475 | }, 3476 | { 3477 | "name": "Volker Dusch", 3478 | "email": "github@wallbash.com" 3479 | }, 3480 | { 3481 | "name": "Bernhard Schussek", 3482 | "email": "bschussek@2bepublished.at" 3483 | }, 3484 | { 3485 | "name": "Sebastian Bergmann", 3486 | "email": "sebastian@phpunit.de" 3487 | } 3488 | ], 3489 | "description": "Provides the functionality to compare PHP values for equality", 3490 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 3491 | "keywords": [ 3492 | "comparator", 3493 | "compare", 3494 | "equality" 3495 | ], 3496 | "time": "2017-03-07 10:34:43" 3497 | }, 3498 | { 3499 | "name": "sebastian/diff", 3500 | "version": "1.4.x-dev", 3501 | "source": { 3502 | "type": "git", 3503 | "url": "https://github.com/sebastianbergmann/diff.git", 3504 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" 3505 | }, 3506 | "dist": { 3507 | "type": "zip", 3508 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", 3509 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", 3510 | "shasum": "" 3511 | }, 3512 | "require": { 3513 | "php": "^5.3.3 || ^7.0" 3514 | }, 3515 | "require-dev": { 3516 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 3517 | }, 3518 | "type": "library", 3519 | "extra": { 3520 | "branch-alias": { 3521 | "dev-master": "1.4-dev" 3522 | } 3523 | }, 3524 | "autoload": { 3525 | "classmap": [ 3526 | "src/" 3527 | ] 3528 | }, 3529 | "notification-url": "https://packagist.org/downloads/", 3530 | "license": [ 3531 | "BSD-3-Clause" 3532 | ], 3533 | "authors": [ 3534 | { 3535 | "name": "Kore Nordmann", 3536 | "email": "mail@kore-nordmann.de" 3537 | }, 3538 | { 3539 | "name": "Sebastian Bergmann", 3540 | "email": "sebastian@phpunit.de" 3541 | } 3542 | ], 3543 | "description": "Diff implementation", 3544 | "homepage": "https://github.com/sebastianbergmann/diff", 3545 | "keywords": [ 3546 | "diff" 3547 | ], 3548 | "time": "2017-05-22 07:24:03" 3549 | }, 3550 | { 3551 | "name": "sebastian/environment", 3552 | "version": "1.3.x-dev", 3553 | "source": { 3554 | "type": "git", 3555 | "url": "https://github.com/sebastianbergmann/environment.git", 3556 | "reference": "67f55699c2810ff0f2cc47478bbdeda8567e68ee" 3557 | }, 3558 | "dist": { 3559 | "type": "zip", 3560 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/67f55699c2810ff0f2cc47478bbdeda8567e68ee", 3561 | "reference": "67f55699c2810ff0f2cc47478bbdeda8567e68ee", 3562 | "shasum": "" 3563 | }, 3564 | "require": { 3565 | "php": "^5.3.3 || ^7.0" 3566 | }, 3567 | "require-dev": { 3568 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 3569 | }, 3570 | "type": "library", 3571 | "extra": { 3572 | "branch-alias": { 3573 | "dev-master": "1.3.x-dev" 3574 | } 3575 | }, 3576 | "autoload": { 3577 | "classmap": [ 3578 | "src/" 3579 | ] 3580 | }, 3581 | "notification-url": "https://packagist.org/downloads/", 3582 | "license": [ 3583 | "BSD-3-Clause" 3584 | ], 3585 | "authors": [ 3586 | { 3587 | "name": "Sebastian Bergmann", 3588 | "email": "sebastian@phpunit.de" 3589 | } 3590 | ], 3591 | "description": "Provides functionality to handle HHVM/PHP environments", 3592 | "homepage": "http://www.github.com/sebastianbergmann/environment", 3593 | "keywords": [ 3594 | "Xdebug", 3595 | "environment", 3596 | "hhvm" 3597 | ], 3598 | "time": "2017-02-28 08:18:59" 3599 | }, 3600 | { 3601 | "name": "sebastian/exporter", 3602 | "version": "1.2.x-dev", 3603 | "source": { 3604 | "type": "git", 3605 | "url": "https://github.com/sebastianbergmann/exporter.git", 3606 | "reference": "dcd43bcc0fd3551bd2ede0081882d549bb78225d" 3607 | }, 3608 | "dist": { 3609 | "type": "zip", 3610 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/dcd43bcc0fd3551bd2ede0081882d549bb78225d", 3611 | "reference": "dcd43bcc0fd3551bd2ede0081882d549bb78225d", 3612 | "shasum": "" 3613 | }, 3614 | "require": { 3615 | "php": "^5.3.3 || ^7.0", 3616 | "sebastian/recursion-context": "^1.0" 3617 | }, 3618 | "require-dev": { 3619 | "ext-mbstring": "*", 3620 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 3621 | }, 3622 | "type": "library", 3623 | "extra": { 3624 | "branch-alias": { 3625 | "dev-master": "1.2.x-dev" 3626 | } 3627 | }, 3628 | "autoload": { 3629 | "classmap": [ 3630 | "src/" 3631 | ] 3632 | }, 3633 | "notification-url": "https://packagist.org/downloads/", 3634 | "license": [ 3635 | "BSD-3-Clause" 3636 | ], 3637 | "authors": [ 3638 | { 3639 | "name": "Jeff Welch", 3640 | "email": "whatthejeff@gmail.com" 3641 | }, 3642 | { 3643 | "name": "Volker Dusch", 3644 | "email": "github@wallbash.com" 3645 | }, 3646 | { 3647 | "name": "Bernhard Schussek", 3648 | "email": "bschussek@2bepublished.at" 3649 | }, 3650 | { 3651 | "name": "Sebastian Bergmann", 3652 | "email": "sebastian@phpunit.de" 3653 | }, 3654 | { 3655 | "name": "Adam Harvey", 3656 | "email": "aharvey@php.net" 3657 | } 3658 | ], 3659 | "description": "Provides the functionality to export PHP variables for visualization", 3660 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 3661 | "keywords": [ 3662 | "export", 3663 | "exporter" 3664 | ], 3665 | "time": "2017-02-26 13:09:30" 3666 | }, 3667 | { 3668 | "name": "sebastian/recursion-context", 3669 | "version": "1.0.x-dev", 3670 | "source": { 3671 | "type": "git", 3672 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 3673 | "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" 3674 | }, 3675 | "dist": { 3676 | "type": "zip", 3677 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", 3678 | "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", 3679 | "shasum": "" 3680 | }, 3681 | "require": { 3682 | "php": ">=5.3.3" 3683 | }, 3684 | "require-dev": { 3685 | "phpunit/phpunit": "~4.4" 3686 | }, 3687 | "type": "library", 3688 | "extra": { 3689 | "branch-alias": { 3690 | "dev-master": "1.0.x-dev" 3691 | } 3692 | }, 3693 | "autoload": { 3694 | "classmap": [ 3695 | "src/" 3696 | ] 3697 | }, 3698 | "notification-url": "https://packagist.org/downloads/", 3699 | "license": [ 3700 | "BSD-3-Clause" 3701 | ], 3702 | "authors": [ 3703 | { 3704 | "name": "Jeff Welch", 3705 | "email": "whatthejeff@gmail.com" 3706 | }, 3707 | { 3708 | "name": "Sebastian Bergmann", 3709 | "email": "sebastian@phpunit.de" 3710 | }, 3711 | { 3712 | "name": "Adam Harvey", 3713 | "email": "aharvey@php.net" 3714 | } 3715 | ], 3716 | "description": "Provides functionality to recursively process PHP variables", 3717 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 3718 | "time": "2016-10-03 07:41:43" 3719 | }, 3720 | { 3721 | "name": "sebastian/version", 3722 | "version": "1.0.6", 3723 | "source": { 3724 | "type": "git", 3725 | "url": "https://github.com/sebastianbergmann/version.git", 3726 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" 3727 | }, 3728 | "dist": { 3729 | "type": "zip", 3730 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", 3731 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", 3732 | "shasum": "" 3733 | }, 3734 | "type": "library", 3735 | "autoload": { 3736 | "classmap": [ 3737 | "src/" 3738 | ] 3739 | }, 3740 | "notification-url": "https://packagist.org/downloads/", 3741 | "license": [ 3742 | "BSD-3-Clause" 3743 | ], 3744 | "authors": [ 3745 | { 3746 | "name": "Sebastian Bergmann", 3747 | "email": "sebastian@phpunit.de", 3748 | "role": "lead" 3749 | } 3750 | ], 3751 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 3752 | "homepage": "https://github.com/sebastianbergmann/version", 3753 | "time": "2015-06-21T13:59:46+00:00" 3754 | }, 3755 | { 3756 | "name": "squizlabs/php_codesniffer", 3757 | "version": "dev-master", 3758 | "source": { 3759 | "type": "git", 3760 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 3761 | "reference": "92a902fcbc74fbd2f4c87976c6d43979a58ba47e" 3762 | }, 3763 | "dist": { 3764 | "type": "zip", 3765 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/92a902fcbc74fbd2f4c87976c6d43979a58ba47e", 3766 | "reference": "92a902fcbc74fbd2f4c87976c6d43979a58ba47e", 3767 | "shasum": "" 3768 | }, 3769 | "require": { 3770 | "ext-simplexml": "*", 3771 | "ext-tokenizer": "*", 3772 | "ext-xmlwriter": "*", 3773 | "php": ">=5.4.0" 3774 | }, 3775 | "require-dev": { 3776 | "phpunit/phpunit": "~4.0" 3777 | }, 3778 | "bin": [ 3779 | "bin/phpcs", 3780 | "bin/phpcbf" 3781 | ], 3782 | "type": "library", 3783 | "extra": { 3784 | "branch-alias": { 3785 | "dev-master": "3.x-dev" 3786 | } 3787 | }, 3788 | "notification-url": "https://packagist.org/downloads/", 3789 | "license": [ 3790 | "BSD-3-Clause" 3791 | ], 3792 | "authors": [ 3793 | { 3794 | "name": "Greg Sherwood", 3795 | "role": "lead" 3796 | } 3797 | ], 3798 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 3799 | "homepage": "http://www.squizlabs.com/php-codesniffer", 3800 | "keywords": [ 3801 | "phpcs", 3802 | "standards" 3803 | ], 3804 | "time": "2017-05-19 00:57:23" 3805 | }, 3806 | { 3807 | "name": "symfony/console", 3808 | "version": "3.4.x-dev", 3809 | "source": { 3810 | "type": "git", 3811 | "url": "https://github.com/symfony/console.git", 3812 | "reference": "6f72c1ed2de5df55a90991bfeb3030a8b91949c0" 3813 | }, 3814 | "dist": { 3815 | "type": "zip", 3816 | "url": "https://api.github.com/repos/symfony/console/zipball/6f72c1ed2de5df55a90991bfeb3030a8b91949c0", 3817 | "reference": "6f72c1ed2de5df55a90991bfeb3030a8b91949c0", 3818 | "shasum": "" 3819 | }, 3820 | "require": { 3821 | "php": ">=5.5.9", 3822 | "symfony/debug": "~2.8|~3.0|~4.0", 3823 | "symfony/polyfill-mbstring": "~1.0" 3824 | }, 3825 | "conflict": { 3826 | "symfony/dependency-injection": "<3.3" 3827 | }, 3828 | "require-dev": { 3829 | "psr/log": "~1.0", 3830 | "symfony/config": "~3.3|~4.0", 3831 | "symfony/dependency-injection": "~3.3|~4.0", 3832 | "symfony/event-dispatcher": "~2.8|~3.0|~4.0", 3833 | "symfony/filesystem": "~2.8|~3.0|~4.0", 3834 | "symfony/http-kernel": "~2.8|~3.0|~4.0", 3835 | "symfony/process": "~2.8|~3.0|~4.0" 3836 | }, 3837 | "suggest": { 3838 | "psr/log": "For using the console logger", 3839 | "symfony/event-dispatcher": "", 3840 | "symfony/filesystem": "", 3841 | "symfony/process": "" 3842 | }, 3843 | "type": "library", 3844 | "extra": { 3845 | "branch-alias": { 3846 | "dev-master": "3.4-dev" 3847 | } 3848 | }, 3849 | "autoload": { 3850 | "psr-4": { 3851 | "Symfony\\Component\\Console\\": "" 3852 | }, 3853 | "exclude-from-classmap": [ 3854 | "/Tests/" 3855 | ] 3856 | }, 3857 | "notification-url": "https://packagist.org/downloads/", 3858 | "license": [ 3859 | "MIT" 3860 | ], 3861 | "authors": [ 3862 | { 3863 | "name": "Fabien Potencier", 3864 | "email": "fabien@symfony.com" 3865 | }, 3866 | { 3867 | "name": "Symfony Community", 3868 | "homepage": "https://symfony.com/contributors" 3869 | } 3870 | ], 3871 | "description": "Symfony Console Component", 3872 | "homepage": "https://symfony.com", 3873 | "time": "2017-06-02T19:25:52+00:00" 3874 | }, 3875 | { 3876 | "name": "symfony/debug", 3877 | "version": "3.4.x-dev", 3878 | "source": { 3879 | "type": "git", 3880 | "url": "https://github.com/symfony/debug.git", 3881 | "reference": "6694bfe6ac1ab1b06bda40c98c98fa1d06739296" 3882 | }, 3883 | "dist": { 3884 | "type": "zip", 3885 | "url": "https://api.github.com/repos/symfony/debug/zipball/6694bfe6ac1ab1b06bda40c98c98fa1d06739296", 3886 | "reference": "6694bfe6ac1ab1b06bda40c98c98fa1d06739296", 3887 | "shasum": "" 3888 | }, 3889 | "require": { 3890 | "php": ">=5.5.9", 3891 | "psr/log": "~1.0" 3892 | }, 3893 | "conflict": { 3894 | "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" 3895 | }, 3896 | "require-dev": { 3897 | "symfony/http-kernel": "~2.8|~3.0|~4.0" 3898 | }, 3899 | "type": "library", 3900 | "extra": { 3901 | "branch-alias": { 3902 | "dev-master": "3.4-dev" 3903 | } 3904 | }, 3905 | "autoload": { 3906 | "psr-4": { 3907 | "Symfony\\Component\\Debug\\": "" 3908 | }, 3909 | "exclude-from-classmap": [ 3910 | "/Tests/" 3911 | ] 3912 | }, 3913 | "notification-url": "https://packagist.org/downloads/", 3914 | "license": [ 3915 | "MIT" 3916 | ], 3917 | "authors": [ 3918 | { 3919 | "name": "Fabien Potencier", 3920 | "email": "fabien@symfony.com" 3921 | }, 3922 | { 3923 | "name": "Symfony Community", 3924 | "homepage": "https://symfony.com/contributors" 3925 | } 3926 | ], 3927 | "description": "Symfony Debug Component", 3928 | "homepage": "https://symfony.com", 3929 | "time": "2017-06-01 21:02:15" 3930 | }, 3931 | { 3932 | "name": "symfony/finder", 3933 | "version": "3.4.x-dev", 3934 | "source": { 3935 | "type": "git", 3936 | "url": "https://github.com/symfony/finder.git", 3937 | "reference": "295fa37f13dbc4bba200680d2f4ae2c4a1f77709" 3938 | }, 3939 | "dist": { 3940 | "type": "zip", 3941 | "url": "https://api.github.com/repos/symfony/finder/zipball/295fa37f13dbc4bba200680d2f4ae2c4a1f77709", 3942 | "reference": "295fa37f13dbc4bba200680d2f4ae2c4a1f77709", 3943 | "shasum": "" 3944 | }, 3945 | "require": { 3946 | "php": ">=5.5.9" 3947 | }, 3948 | "type": "library", 3949 | "extra": { 3950 | "branch-alias": { 3951 | "dev-master": "3.4-dev" 3952 | } 3953 | }, 3954 | "autoload": { 3955 | "psr-4": { 3956 | "Symfony\\Component\\Finder\\": "" 3957 | }, 3958 | "exclude-from-classmap": [ 3959 | "/Tests/" 3960 | ] 3961 | }, 3962 | "notification-url": "https://packagist.org/downloads/", 3963 | "license": [ 3964 | "MIT" 3965 | ], 3966 | "authors": [ 3967 | { 3968 | "name": "Fabien Potencier", 3969 | "email": "fabien@symfony.com" 3970 | }, 3971 | { 3972 | "name": "Symfony Community", 3973 | "homepage": "https://symfony.com/contributors" 3974 | } 3975 | ], 3976 | "description": "Symfony Finder Component", 3977 | "homepage": "https://symfony.com", 3978 | "time": "2017-06-01 21:02:15" 3979 | }, 3980 | { 3981 | "name": "symfony/polyfill-mbstring", 3982 | "version": "dev-master", 3983 | "source": { 3984 | "type": "git", 3985 | "url": "https://github.com/symfony/polyfill-mbstring.git", 3986 | "reference": "adebc086600bc93b45d8d6721c8f21088a2be4dc" 3987 | }, 3988 | "dist": { 3989 | "type": "zip", 3990 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/adebc086600bc93b45d8d6721c8f21088a2be4dc", 3991 | "reference": "adebc086600bc93b45d8d6721c8f21088a2be4dc", 3992 | "shasum": "" 3993 | }, 3994 | "require": { 3995 | "php": ">=5.3.3" 3996 | }, 3997 | "suggest": { 3998 | "ext-mbstring": "For best performance" 3999 | }, 4000 | "type": "library", 4001 | "extra": { 4002 | "branch-alias": { 4003 | "dev-master": "1.3-dev" 4004 | } 4005 | }, 4006 | "autoload": { 4007 | "psr-4": { 4008 | "Symfony\\Polyfill\\Mbstring\\": "" 4009 | }, 4010 | "files": [ 4011 | "bootstrap.php" 4012 | ] 4013 | }, 4014 | "notification-url": "https://packagist.org/downloads/", 4015 | "license": [ 4016 | "MIT" 4017 | ], 4018 | "authors": [ 4019 | { 4020 | "name": "Nicolas Grekas", 4021 | "email": "p@tchwork.com" 4022 | }, 4023 | { 4024 | "name": "Symfony Community", 4025 | "homepage": "https://symfony.com/contributors" 4026 | } 4027 | ], 4028 | "description": "Symfony polyfill for the Mbstring extension", 4029 | "homepage": "https://symfony.com", 4030 | "keywords": [ 4031 | "compatibility", 4032 | "mbstring", 4033 | "polyfill", 4034 | "portable", 4035 | "shim" 4036 | ], 4037 | "time": "2017-05-29 15:51:17" 4038 | }, 4039 | { 4040 | "name": "symfony/yaml", 4041 | "version": "2.8.x-dev", 4042 | "source": { 4043 | "type": "git", 4044 | "url": "https://github.com/symfony/yaml.git", 4045 | "reference": "4c29dec8d489c4e37cf87ccd7166cd0b0e6a45c5" 4046 | }, 4047 | "dist": { 4048 | "type": "zip", 4049 | "url": "https://api.github.com/repos/symfony/yaml/zipball/4c29dec8d489c4e37cf87ccd7166cd0b0e6a45c5", 4050 | "reference": "4c29dec8d489c4e37cf87ccd7166cd0b0e6a45c5", 4051 | "shasum": "" 4052 | }, 4053 | "require": { 4054 | "php": ">=5.3.9" 4055 | }, 4056 | "type": "library", 4057 | "extra": { 4058 | "branch-alias": { 4059 | "dev-master": "2.8-dev" 4060 | } 4061 | }, 4062 | "autoload": { 4063 | "psr-4": { 4064 | "Symfony\\Component\\Yaml\\": "" 4065 | }, 4066 | "exclude-from-classmap": [ 4067 | "/Tests/" 4068 | ] 4069 | }, 4070 | "notification-url": "https://packagist.org/downloads/", 4071 | "license": [ 4072 | "MIT" 4073 | ], 4074 | "authors": [ 4075 | { 4076 | "name": "Fabien Potencier", 4077 | "email": "fabien@symfony.com" 4078 | }, 4079 | { 4080 | "name": "Symfony Community", 4081 | "homepage": "https://symfony.com/contributors" 4082 | } 4083 | ], 4084 | "description": "Symfony Yaml Component", 4085 | "homepage": "https://symfony.com", 4086 | "time": "2017-06-01 20:52:29" 4087 | } 4088 | ], 4089 | "aliases": [], 4090 | "minimum-stability": "dev", 4091 | "stability-flags": [], 4092 | "prefer-stable": false, 4093 | "prefer-lowest": false, 4094 | "platform": { 4095 | "php": ">=7.0" 4096 | }, 4097 | "platform-dev": [] 4098 | } 4099 | -------------------------------------------------------------------------------- /demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mediamanDE/magento-module-wishlist-api/d55b5ee7f56b92ad234da2062522a332d2deb238/demo.gif -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | parameters: 2 | bootstrap: ./vendor/autoload.php 3 | excludes_analyse: 4 | - ./src/Test/Unit/Model/WishlistRepositoryTest.php 5 | ignoreErrors: 6 | - '#Property (.+) has unknown class (.*)Factory as its type#' 7 | - '#(.+) has invalid typehint type (.*)Factory#' 8 | - '#Call to method create\(\) on an unknown class (.*)Factory#' -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | ./src/Test/Unit 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ./src/ 16 | 17 | ./src/Test 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/Api/ItemInterface.php: -------------------------------------------------------------------------------- 1 | getItemCollection()->getItems(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Model/WishlistRepository.php: -------------------------------------------------------------------------------- 1 | http = $http; 73 | $this->tokenFactory = $tokenFactory; 74 | $this->wishlistFactory = $wishlistFactory; 75 | $this->productRepository = $productRepository; 76 | $this->itemResource = $itemResource; 77 | $this->customerSession = $customerSession; 78 | } 79 | 80 | /** 81 | * @inheritdoc 82 | */ 83 | public function getCurrent(): WishlistInterface 84 | { 85 | $customerId = $this->customerSession->getCustomerId(); 86 | if (!$customerId) { 87 | $authorizationHeader = $this->http->getHeader('Authorization'); 88 | 89 | $tokenParts = explode('Bearer', $authorizationHeader); 90 | $tokenPayload = trim(array_pop($tokenParts)); 91 | 92 | /** @var Token $token */ 93 | $token = $this->tokenFactory->create(); 94 | $token->loadByToken($tokenPayload); 95 | 96 | $customerId = $token->getCustomerId(); 97 | } 98 | 99 | /** @var Wishlist $wishlist */ 100 | $wishlist = $this->wishlistFactory->create(); 101 | $wishlist->loadByCustomerId($customerId); 102 | 103 | if (!$wishlist->getId()) { 104 | $wishlist->setCustomerId($customerId); 105 | $wishlist->getResource()->save($wishlist); 106 | } 107 | 108 | return $wishlist; 109 | } 110 | 111 | /** 112 | * @inheritdoc 113 | */ 114 | public function addItem(string $sku): bool 115 | { 116 | $product = $this->productRepository->get($sku); 117 | $wishlist = $this->getCurrent(); 118 | 119 | $wishlist->addNewItem($product); 120 | 121 | return true; 122 | } 123 | 124 | /** 125 | * @inheritdoc 126 | */ 127 | public function removeItem(int $itemId): bool 128 | { 129 | $wishlist = $this->getCurrent(); 130 | 131 | $item = $wishlist->getItem($itemId); 132 | if (!$item) { 133 | return false; 134 | } 135 | 136 | $this->itemResource->delete($item); 137 | 138 | return true; 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /src/Test/Unit/Model/WishlistRepositoryTest.php: -------------------------------------------------------------------------------- 1 | httpMock = $this->getMockBuilder(Http::class) 93 | ->disableOriginalConstructor() 94 | ->getMock(); 95 | 96 | $this->tokenMock = $this->getMockBuilder(Token::class) 97 | ->disableOriginalConstructor() 98 | ->setMethods([ 99 | 'loadByToken', 100 | 'getCustomerId', 101 | ]) 102 | ->getMock(); 103 | 104 | $this->tokenFactoryMock = $this->getMockBuilder(TokenFactory::class) 105 | ->disableOriginalConstructor() 106 | ->setMethods(['create']) 107 | ->getMock(); 108 | $this->tokenFactoryMock->method('create') 109 | ->willReturn($this->tokenMock); 110 | 111 | $this->wishlistResourceMock = $this->getMockBuilder(WishlistResource::class) 112 | ->disableOriginalConstructor() 113 | ->getMock(); 114 | 115 | $this->wishlistMock = $this->getMockBuilder(Wishlist::class) 116 | ->disableOriginalConstructor() 117 | ->getMock(); 118 | $this->wishlistMock->method('loadByCustomerId') 119 | ->willReturnSelf(); 120 | $this->wishlistMock->method('getResource') 121 | ->willReturn($this->wishlistResourceMock); 122 | 123 | $this->wishlistFactoryMock = $this->getMockBuilder(WishlistFactory::class) 124 | ->disableOriginalConstructor() 125 | ->setMethods(['create']) 126 | ->getMock(); 127 | $this->wishlistFactoryMock->method('create') 128 | ->willReturn($this->wishlistMock); 129 | 130 | $this->productMock = $this->getMockBuilder(ProductInterface::class) 131 | ->disableOriginalConstructor() 132 | ->getMock(); 133 | 134 | $this->productRepositoryMock = $this->getMockBuilder(ProductRepositoryInterface::class) 135 | ->disableOriginalConstructor() 136 | ->getMock(); 137 | 138 | $this->itemMock = $this->getMockBuilder(Item::class) 139 | ->disableOriginalConstructor() 140 | ->getMock(); 141 | 142 | $this->itemResourceMock = $this->getMockBuilder(ItemResource::class) 143 | ->disableOriginalConstructor() 144 | ->getMock(); 145 | 146 | $this->customerSessionMock = $this->getMockBuilder(CustomerSession::class) 147 | ->disableOriginalConstructor() 148 | ->getMock(); 149 | 150 | $this->subject = new WishlistRepository( 151 | $this->httpMock, 152 | $this->tokenFactoryMock, 153 | $this->wishlistFactoryMock, 154 | $this->productRepositoryMock, 155 | $this->itemResourceMock, 156 | $this->customerSessionMock 157 | ); 158 | } 159 | 160 | /** 161 | * @test ::getCurrent 162 | */ 163 | public function testGetCurrent() 164 | { 165 | $this->itShouldLoadAWishlist(); 166 | 167 | $this->assertSame($this->wishlistMock, $this->subject->getCurrent()); 168 | } 169 | 170 | /** 171 | * @test ::getCurrent with a customer without an existing wishlist 172 | */ 173 | public function testGetCurrentNoPreExistingWishlist() 174 | { 175 | $customerIdMock = 42; 176 | $this->customerSessionMock->expects(static::once()) 177 | ->method('getCustomerId') 178 | ->willReturn($customerIdMock); 179 | 180 | $this->wishlistMock->expects(static::once()) 181 | ->method('loadByCustomerId') 182 | ->with($customerIdMock); 183 | 184 | $this->wishlistMock->expects(static::once()) 185 | ->method('loadByCustomerId') 186 | ->with($customerIdMock); 187 | 188 | $this->wishlistMock->expects(static::once()) 189 | ->method('getId') 190 | ->willReturn(null); 191 | $this->wishlistMock->expects(static::once()) 192 | ->method('setCustomerId') 193 | ->with($customerIdMock); 194 | $this->wishlistResourceMock->expects(static::once()) 195 | ->method('save') 196 | ->with($this->wishlistMock); 197 | 198 | $this->assertSame($this->wishlistMock, $this->subject->getCurrent()); 199 | } 200 | 201 | /** 202 | * @test ::getCurrent without a customer session 203 | */ 204 | public function testGetCurrentWithoutSession() 205 | { 206 | $tokenPayload = 'dnyuht5e0f6fgcwk7q90blkr88l4g3pa'; 207 | $this->httpMock->expects(static::once()) 208 | ->method('getHeader') 209 | ->with('Authorization') 210 | ->willReturn("Bearer ${tokenPayload}"); 211 | 212 | $this->tokenMock->expects(static::once()) 213 | ->method('loadByToken') 214 | ->with($tokenPayload); 215 | 216 | $customerIdMock = 42; 217 | $this->tokenMock->expects(static::once()) 218 | ->method('getCustomerId') 219 | ->willReturn($customerIdMock); 220 | 221 | $this->assertSame($this->wishlistMock, $this->subject->getCurrent()); 222 | } 223 | 224 | /** 225 | * @test ::addItem 226 | */ 227 | public function testAddItem() 228 | { 229 | $sku = '24-MB01'; 230 | $this->productRepositoryMock->expects(static::once()) 231 | ->method('get') 232 | ->with($sku) 233 | ->willReturn($this->productMock); 234 | 235 | $this->itShouldLoadAWishlist(); 236 | 237 | $this->wishlistMock->expects(static::once()) 238 | ->method('addNewItem') 239 | ->with($this->productMock); 240 | 241 | $this->assertTrue($this->subject->addItem($sku)); 242 | } 243 | 244 | /** 245 | * @test ::removeItem 246 | */ 247 | public function testRemoveItem() 248 | { 249 | $this->itShouldLoadAWishlist(); 250 | 251 | $itemId = 42; 252 | $this->wishlistMock->expects(static::once()) 253 | ->method('getItem') 254 | ->with($itemId) 255 | ->willReturn($this->itemMock); 256 | 257 | $this->itemResourceMock->expects(static::once()) 258 | ->method('delete') 259 | ->with($this->itemMock); 260 | 261 | $this->assertTrue($this->subject->removeItem($itemId)); 262 | } 263 | 264 | /** 265 | * @test ::removeItem with invalid item id 266 | */ 267 | public function testRemoveItemWithInvalidItemId() 268 | { 269 | $this->itShouldLoadAWishlist(); 270 | 271 | $itemId = 42; 272 | $this->wishlistMock->expects(static::once()) 273 | ->method('getItem') 274 | ->with($itemId) 275 | ->willReturn(false); 276 | 277 | $this->assertFalse($this->subject->removeItem($itemId)); 278 | } 279 | 280 | /** 281 | * It should load a wishlist 282 | */ 283 | private function itShouldLoadAWishlist() 284 | { 285 | $customerIdMock = 42; 286 | $this->customerSessionMock->expects(static::once()) 287 | ->method('getCustomerId') 288 | ->willReturn($customerIdMock); 289 | 290 | $this->wishlistMock->expects(static::once()) 291 | ->method('loadByCustomerId') 292 | ->with($customerIdMock); 293 | 294 | $this->wishlistMock->expects(static::once()) 295 | ->method('loadByCustomerId') 296 | ->with($customerIdMock); 297 | 298 | $this->wishlistMock->expects(static::once()) 299 | ->method('getId') 300 | ->willReturn(1); 301 | } 302 | } 303 | -------------------------------------------------------------------------------- /src/etc/di.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 8 | 10 | 12 | 14 | -------------------------------------------------------------------------------- /src/etc/module.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/etc/webapi.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/registration.php: -------------------------------------------------------------------------------- 1 |