├── .gitignore
├── README.MD
├── composer.json
├── composer.lock
├── config
└── logicboxes.php
├── phpcs.xml
├── phpunit.xml
├── src
├── Api
│ ├── Base.php
│ ├── Contact.php
│ ├── Customer.php
│ ├── Dns.php
│ ├── Domain.php
│ ├── Requests
│ │ └── Contact.php
│ └── Reseller.php
├── Facades
│ └── Logicboxes.php
├── Helpers
│ └── functions.php
├── Logicboxes.php
└── LogicboxesServiceProvider.php
└── tests
├── BaseTrait.php
├── CustomerTest.php
├── DomainTest.php
├── TestCase.php
└── config.ini.example
/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | /node_modules
3 | /public/storage
4 | /public/panel
5 | Homestead.yaml
6 | Homestead.json
7 | .env
8 | .env_backup
9 | .idea
10 | .DS_Store
11 | .php_cs.cache
12 | storage/debugbar
13 | npm-debug.log
14 | /tests/config.ini
15 | .vcode
16 |
--------------------------------------------------------------------------------
/README.MD:
--------------------------------------------------------------------------------
1 | [](https://packagist.org/packages/netinternet/logicboxes)
2 | [](https://packagist.org/packages/netinternet/logicboxes)
3 |
4 | # Logicboxes Package
5 |
6 | LogicBoxes package provides most of the LogicBoxes API functionality and compatible company apis like resellerclub, whois.com and many more.
7 |
8 | This package mainly developed for laravel package but you can use as a standalone package.
9 |
10 | ## Installation
11 |
12 | ```
13 | composer require netinternet/logicboxes
14 | ```
15 |
16 | Package should be autodiscover by default but if you are using older versions of laravel you should change config/app.php with below;
17 |
18 | Add this in providers array;
19 |
20 | ```js
21 | Netinternet\Logicboxes\LogicboxesServiceProvider::class,
22 | ```
23 |
24 | Add this in aliases array;
25 | ```js
26 | 'Logicboxes' => Netinternet\Logicboxes\Facades\Logicboxes::class,
27 | ```
28 |
29 | ## Configuration
30 |
31 | Use command below and choose logicboxes option when asked. It will create logicboxes.php in config directory.
32 |
33 | ```php
34 | php artisan vendor:publish
35 | ```
36 |
37 | You can also create this file manually and paste below content in file;
38 |
39 | ```php
40 | env('LOGICBOXES_ENV', 'test'),
43 | 'auth-userid' => env('LOGICBOXES_AUTHID'),
44 | 'api-key' => env('LOGICBOXES_APIKEY')
45 | ];
46 | ```
47 |
48 | As you can see by default package uses environment variables. Be sure that use test mode when development mode. We strongly recommend to create [LogicBox Demo Account](http://cp.onlyfordemo.net/servlet/ResellerSignupServlet?&validatenow=false)
49 |
50 | ## Usage
51 |
52 | You can choose to use facade or helper function. We will use helper functions for examples in this documentation.
53 |
54 |
55 | ```php
56 | use Logicboxes;
57 | // With Facade
58 | public function myMethod()
59 | {
60 | return Logicboxes::domain('domain-name.tld')->ns();
61 | }
62 | ```
63 | or with helper
64 | ```php
65 | public function myMethod()
66 | {
67 | return logicboxes()->domain('domain-name.tld')->ns();
68 | }
69 | ```
70 |
71 |
72 | ## Avalaible Methods
73 |
74 | ```php
75 | // get domain nameservers.
76 | logicboxes()->domain('domain-name.tld')->nameservers();
77 | // get domain nameservers short.
78 | logicboxes()->domain('domain-name.tld')->ns();
79 | // get domains all details.
80 | logicboxes()->domain('domain-name.tld')->details();
81 | // get domains status
82 | logicboxes()->domain('domain-name.tld')->status();
83 | // get domains order details
84 | logicboxes()->domain('domain-name.tld')->order();
85 | // get domains dnssec details
86 | logicboxes()->domain('domain-name.tld')->dnssec();
87 | // get domains contact id list.
88 | logicboxes()->domain('domain-name.tld')->contact()->ids();
89 | // get domains registrant contact details
90 | logicboxes()->domain('domain-name.tld')->contact()->registrant();
91 | // get domains admin contact details
92 | logicboxes()->domain('domain-name.tld')->contact()->admin();
93 | // get domains tech contact details
94 | logicboxes()->domain('domain-name.tld')->contact()->tech();
95 | // get domains billing contact details
96 | logicboxes()->domain('domain-name.tld')->contact()->billing();
97 | // check for domain
98 | logicboxes()->domain('domain-name')->check(['com','net'])
99 | // first parameter is array of tlds and second parameter domain suggessions as a boolean. Default is false.
100 | // and you can also set domain index as third parameter for getting immediate domain status without result
101 | //object ```logicboxes()->domain('domain-name')->check(['com','net'],false,1)```
102 |
103 | // get domain order id
104 | logicboxes()->domain('domain-name.tld')->orderId();
105 | // set enable theft protection
106 | logicboxes()->domain('domain-name.tld')->enableTheftProtection();
107 | // set disable theft protection
108 | logicboxes()->domain('domain-name.tld')->disableTheftProtection();
109 | // modify domain nameservers
110 | logicboxes()->domain('domain-name.tld')->modifyNameServers((array) $ns);
111 | // delete this domain
112 | logicboxes()->domain('domain-name.tld')->delete();
113 | // cancel domain transfer process
114 | logicboxes()->domain('domain-name.tld')->cancelTransfer();
115 | // register domain
116 | logicboxes()->domain('domain-name.tld')->register([
117 | 'years' => $years,
118 | 'ns' => (array) $ns,
119 | 'customer-id' => $customerId,
120 | 'reg-contact-id' => $regContactId,
121 | 'admin-contact-id' => $adminContactId,
122 | 'tech-contact-id' => $techContactId,
123 | 'billing-contact-id' => $billingContactId,
124 | 'invoice-option' => 'KeepInvoice',
125 | 'purchase-privacy' => $purchasePrivacy,
126 | 'protect-privacy' => $protectPrivacy,
127 | ]);
128 |
129 | // Domain transfer
130 | logicboxes()->domain('domain-name.tld')->transfer([
131 | 'auth-code' => $authCode,
132 | 'years' => $years,
133 | 'ns' => (array)$ns,
134 | 'customer-id' => $customerId,
135 | 'reg-contact-id' => $regContactId,
136 | 'admin-contact-id' => $adminContactId,
137 | 'tech-contact-id' => $techContactId,
138 | 'billing-contact-id' => $billingContactId,
139 | 'invoice-option' => $invoiceOption,
140 | 'purchase-privacy' => $purchasePrivacy,
141 | 'protect-privacy' => $protectPrivacy,
142 | ]);
143 |
144 | // set Auth Code
145 | logicboxes()->domain('domain-name.tld')->authCode('authcode');
146 |
147 | // modify Auth Code
148 | logicboxes()->domain('domain-name.tld')->modifyAuthCode('authcode');
149 |
150 | // modify Auth Code
151 | logicboxes()->domain('domain-name.tld')->validateTransferRequest();
152 |
153 | // renew domain ($date => epochtime)
154 | logicboxes()->domain('domain-name.tld')->renew($years, $date, $invoiceOption, true);
155 | // $purchasePrivacy is default false
156 |
157 | // deafult customer nameservers
158 | logicboxes()->domain()->customerDefaultNameServers($customerId);
159 |
160 | // Check premium
161 | logicboxes()->domain('domain-name.tld')->isDomainPremium();
162 |
163 | // add new child nameserver
164 | logicboxes()->domain('domain-name.tld')->addChildNs('ns1.domain.com', ['0.0.0.0', '0.0.0.1']);
165 |
166 | // get lock applied list
167 | logicboxes()->domain('domain-name.tld')->getListLockApplied();
168 |
169 | // set suspend
170 | logicboxes()->domain('domain-name.tld')->suspend('reason text');
171 | // set unsuspend
172 | logicboxes()->domain('domain-name.tld')->unSuspend();
173 |
174 | ```
175 |
176 | #### Customer
177 |
178 | ```php
179 | // Creating a customer
180 | logicboxes()->customer()->create([
181 | 'username' => $this->faker->email,
182 | 'passwd' => 'Qs3jiA5fd8mq4',
183 | 'name' => $this->faker->name,
184 | 'company' => $this->faker->company,
185 | 'address-line-1' => $this->faker->streetAddress,
186 | 'city' => $this->faker->city,
187 | 'state' => $this->faker->state,
188 | 'country' => $this->faker->countryCode,
189 | 'zipcode' => $this->faker->postcode,
190 | 'phone-cc' => 90,
191 | 'phone' => 5555555555,
192 | 'lang-pref' => 'en'
193 | ]);
194 |
195 | // getting a customer by email or id
196 | logicboxes()->customer()->get('app@yourdomain.com')
197 | //or by id
198 | logicboxes()->customer()->get(17939294)
199 | // Changing customers password
200 | logicboxes()->customer()->get('app@yourdomain.com','myNew8CharPassword')
201 | // Change customer
202 | logicboxes()->customer()->moveProduct("app@yourdomain.com", 'old-customer-id', 'new-customer-id, 'old-contact');
203 | ```
204 |
205 | ## Test Configuration
206 | - You should first open the LogicBox test account [LogicBox Demo Account Link](http://cp.onlyfordemo.net/servlet/ResellerSignupServlet?&validatenow=false)
207 | - Copy example config file:
208 | ```sh
209 | cp tests/config.ini.example tests/config.ini
210 | ```
211 | - Change credentials in tests/config.ini file.
212 | - Run phpunit:
213 | ```sh
214 | $ vendor/phpunit/phpunit/phpunit
215 | ```
216 |
217 | ## Contributing
218 | 1. Fork it ( https://github.com/netinternet/logicboxes-api/ )
219 | 2. Create your feature branch (git checkout -b my-new-feature)
220 | 3. Commit your changes (git commit -am 'Add some feature')
221 | 4. Push to the branch (git push origin my-new-feature)
222 | 5. Create a new Pull Request
223 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "netinternet/logicboxes",
3 | "description": "Laravel logicboxes package",
4 | "keywords": [
5 | "laravel",
6 | "logicboxes",
7 | "domain",
8 | "registrar"
9 | ],
10 | "license": "MIT",
11 | "authors": [
12 | {
13 | "name": "Hakan ERSU",
14 | "email": "hakanersu@gmail.com"
15 | },
16 | {
17 | "name": "Baris ESEN",
18 | "email": "barisesennn@gmail.com"
19 | }
20 | ],
21 | "require": {
22 | "php": ">=5.4.0",
23 | "illuminate/support": ">=5.4",
24 | "illuminate/console": ">=5.4",
25 | "illuminate/filesystem": ">=5.4",
26 | "symfony/class-loader": "^2.3|^3.0"
27 | },
28 | "require-dev": {
29 | "illuminate/config": ">=5.4",
30 | "illuminate/view": ">=5.4",
31 | "fzaninotto/faker": "~1.4",
32 | "phpunit/phpunit": "^6.4",
33 | "guzzlehttp/guzzle": "~6.0",
34 | "orchestra/testbench": "~3.0",
35 | "squizlabs/php_codesniffer": "^3.4"
36 | },
37 | "autoload": {
38 | "psr-4": {
39 | "Netinternet\\Logicboxes\\": "src",
40 | "Netinternet\\Logicboxes\\Test\\": "tests/"
41 | },
42 | "files" : [
43 | "src/Helpers/functions.php"
44 | ]
45 | },
46 | "extra": {
47 | "branch-alias": {
48 | "dev-master": "1.0-dev"
49 | },
50 | "laravel": {
51 | "providers": [
52 | "Netinternet\\Logicboxes\\LogicboxesServiceProvider"
53 | ],
54 | "aliases": {
55 | "Logicboxes": "Netinternet\\Logicboxes\\Facades\\Logicboxes"
56 | }
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/composer.lock:
--------------------------------------------------------------------------------
1 | {
2 | "_readme": [
3 | "This file locks the dependencies of your project to a known state",
4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5 | "This file is @generated automatically"
6 | ],
7 | "content-hash": "d0e5a860ca77a1eb8059228cda54b003",
8 | "packages": [
9 | {
10 | "name": "doctrine/inflector",
11 | "version": "v1.3.0",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/doctrine/inflector.git",
15 | "reference": "5527a48b7313d15261292c149e55e26eae771b0a"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a",
20 | "reference": "5527a48b7313d15261292c149e55e26eae771b0a",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "php": "^7.1"
25 | },
26 | "require-dev": {
27 | "phpunit/phpunit": "^6.2"
28 | },
29 | "type": "library",
30 | "extra": {
31 | "branch-alias": {
32 | "dev-master": "1.3.x-dev"
33 | }
34 | },
35 | "autoload": {
36 | "psr-4": {
37 | "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
38 | }
39 | },
40 | "notification-url": "https://packagist.org/downloads/",
41 | "license": [
42 | "MIT"
43 | ],
44 | "authors": [
45 | {
46 | "name": "Roman Borschel",
47 | "email": "roman@code-factory.org"
48 | },
49 | {
50 | "name": "Benjamin Eberlei",
51 | "email": "kontakt@beberlei.de"
52 | },
53 | {
54 | "name": "Guilherme Blanco",
55 | "email": "guilhermeblanco@gmail.com"
56 | },
57 | {
58 | "name": "Jonathan Wage",
59 | "email": "jonwage@gmail.com"
60 | },
61 | {
62 | "name": "Johannes Schmitt",
63 | "email": "schmittjoh@gmail.com"
64 | }
65 | ],
66 | "description": "Common String Manipulations with regard to casing and singular/plural rules.",
67 | "homepage": "http://www.doctrine-project.org",
68 | "keywords": [
69 | "inflection",
70 | "pluralize",
71 | "singularize",
72 | "string"
73 | ],
74 | "time": "2018-01-09T20:05:19+00:00"
75 | },
76 | {
77 | "name": "doctrine/lexer",
78 | "version": "v1.0.1",
79 | "source": {
80 | "type": "git",
81 | "url": "https://github.com/doctrine/lexer.git",
82 | "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
83 | },
84 | "dist": {
85 | "type": "zip",
86 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
87 | "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
88 | "shasum": ""
89 | },
90 | "require": {
91 | "php": ">=5.3.2"
92 | },
93 | "type": "library",
94 | "extra": {
95 | "branch-alias": {
96 | "dev-master": "1.0.x-dev"
97 | }
98 | },
99 | "autoload": {
100 | "psr-0": {
101 | "Doctrine\\Common\\Lexer\\": "lib/"
102 | }
103 | },
104 | "notification-url": "https://packagist.org/downloads/",
105 | "license": [
106 | "MIT"
107 | ],
108 | "authors": [
109 | {
110 | "name": "Roman Borschel",
111 | "email": "roman@code-factory.org"
112 | },
113 | {
114 | "name": "Guilherme Blanco",
115 | "email": "guilhermeblanco@gmail.com"
116 | },
117 | {
118 | "name": "Johannes Schmitt",
119 | "email": "schmittjoh@gmail.com"
120 | }
121 | ],
122 | "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
123 | "homepage": "http://www.doctrine-project.org",
124 | "keywords": [
125 | "lexer",
126 | "parser"
127 | ],
128 | "time": "2014-09-09T13:34:57+00:00"
129 | },
130 | {
131 | "name": "egulias/email-validator",
132 | "version": "2.1.7",
133 | "source": {
134 | "type": "git",
135 | "url": "https://github.com/egulias/EmailValidator.git",
136 | "reference": "709f21f92707308cdf8f9bcfa1af4cb26586521e"
137 | },
138 | "dist": {
139 | "type": "zip",
140 | "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/709f21f92707308cdf8f9bcfa1af4cb26586521e",
141 | "reference": "709f21f92707308cdf8f9bcfa1af4cb26586521e",
142 | "shasum": ""
143 | },
144 | "require": {
145 | "doctrine/lexer": "^1.0.1",
146 | "php": ">= 5.5"
147 | },
148 | "require-dev": {
149 | "dominicsayers/isemail": "dev-master",
150 | "phpunit/phpunit": "^4.8.35||^5.7||^6.0",
151 | "satooshi/php-coveralls": "^1.0.1"
152 | },
153 | "suggest": {
154 | "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
155 | },
156 | "type": "library",
157 | "extra": {
158 | "branch-alias": {
159 | "dev-master": "2.0.x-dev"
160 | }
161 | },
162 | "autoload": {
163 | "psr-4": {
164 | "Egulias\\EmailValidator\\": "EmailValidator"
165 | }
166 | },
167 | "notification-url": "https://packagist.org/downloads/",
168 | "license": [
169 | "MIT"
170 | ],
171 | "authors": [
172 | {
173 | "name": "Eduardo Gulias Davis"
174 | }
175 | ],
176 | "description": "A library for validating emails against several RFCs",
177 | "homepage": "https://github.com/egulias/EmailValidator",
178 | "keywords": [
179 | "email",
180 | "emailvalidation",
181 | "emailvalidator",
182 | "validation",
183 | "validator"
184 | ],
185 | "time": "2018-12-04T22:38:24+00:00"
186 | },
187 | {
188 | "name": "erusev/parsedown",
189 | "version": "1.7.1",
190 | "source": {
191 | "type": "git",
192 | "url": "https://github.com/erusev/parsedown.git",
193 | "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1"
194 | },
195 | "dist": {
196 | "type": "zip",
197 | "url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
198 | "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
199 | "shasum": ""
200 | },
201 | "require": {
202 | "ext-mbstring": "*",
203 | "php": ">=5.3.0"
204 | },
205 | "require-dev": {
206 | "phpunit/phpunit": "^4.8.35"
207 | },
208 | "type": "library",
209 | "autoload": {
210 | "psr-0": {
211 | "Parsedown": ""
212 | }
213 | },
214 | "notification-url": "https://packagist.org/downloads/",
215 | "license": [
216 | "MIT"
217 | ],
218 | "authors": [
219 | {
220 | "name": "Emanuil Rusev",
221 | "email": "hello@erusev.com",
222 | "homepage": "http://erusev.com"
223 | }
224 | ],
225 | "description": "Parser for Markdown.",
226 | "homepage": "http://parsedown.org",
227 | "keywords": [
228 | "markdown",
229 | "parser"
230 | ],
231 | "time": "2018-03-08T01:11:30+00:00"
232 | },
233 | {
234 | "name": "laravel/framework",
235 | "version": "v5.5.45",
236 | "source": {
237 | "type": "git",
238 | "url": "https://github.com/laravel/framework.git",
239 | "reference": "52c79ecf54b6168a54730ccb6c4c9f3561732a80"
240 | },
241 | "dist": {
242 | "type": "zip",
243 | "url": "https://api.github.com/repos/laravel/framework/zipball/52c79ecf54b6168a54730ccb6c4c9f3561732a80",
244 | "reference": "52c79ecf54b6168a54730ccb6c4c9f3561732a80",
245 | "shasum": ""
246 | },
247 | "require": {
248 | "doctrine/inflector": "~1.1",
249 | "erusev/parsedown": "~1.7",
250 | "ext-mbstring": "*",
251 | "ext-openssl": "*",
252 | "league/flysystem": "^1.0.8",
253 | "monolog/monolog": "~1.12",
254 | "mtdowling/cron-expression": "~1.0",
255 | "nesbot/carbon": "^1.26.0",
256 | "php": ">=7.0",
257 | "psr/container": "~1.0",
258 | "psr/simple-cache": "^1.0",
259 | "ramsey/uuid": "~3.0",
260 | "swiftmailer/swiftmailer": "~6.0",
261 | "symfony/console": "~3.3",
262 | "symfony/debug": "~3.3",
263 | "symfony/finder": "~3.3",
264 | "symfony/http-foundation": "~3.3",
265 | "symfony/http-kernel": "~3.3",
266 | "symfony/process": "~3.3",
267 | "symfony/routing": "~3.3",
268 | "symfony/var-dumper": "~3.3",
269 | "tijsverkoyen/css-to-inline-styles": "~2.2",
270 | "vlucas/phpdotenv": "~2.2"
271 | },
272 | "replace": {
273 | "illuminate/auth": "self.version",
274 | "illuminate/broadcasting": "self.version",
275 | "illuminate/bus": "self.version",
276 | "illuminate/cache": "self.version",
277 | "illuminate/config": "self.version",
278 | "illuminate/console": "self.version",
279 | "illuminate/container": "self.version",
280 | "illuminate/contracts": "self.version",
281 | "illuminate/cookie": "self.version",
282 | "illuminate/database": "self.version",
283 | "illuminate/encryption": "self.version",
284 | "illuminate/events": "self.version",
285 | "illuminate/filesystem": "self.version",
286 | "illuminate/hashing": "self.version",
287 | "illuminate/http": "self.version",
288 | "illuminate/log": "self.version",
289 | "illuminate/mail": "self.version",
290 | "illuminate/notifications": "self.version",
291 | "illuminate/pagination": "self.version",
292 | "illuminate/pipeline": "self.version",
293 | "illuminate/queue": "self.version",
294 | "illuminate/redis": "self.version",
295 | "illuminate/routing": "self.version",
296 | "illuminate/session": "self.version",
297 | "illuminate/support": "self.version",
298 | "illuminate/translation": "self.version",
299 | "illuminate/validation": "self.version",
300 | "illuminate/view": "self.version",
301 | "tightenco/collect": "<5.5.33"
302 | },
303 | "require-dev": {
304 | "aws/aws-sdk-php": "~3.0",
305 | "doctrine/dbal": "~2.5",
306 | "filp/whoops": "^2.1.4",
307 | "mockery/mockery": "~1.0",
308 | "orchestra/testbench-core": "3.5.*",
309 | "pda/pheanstalk": "~3.0",
310 | "phpunit/phpunit": "~6.0",
311 | "predis/predis": "^1.1.1",
312 | "symfony/css-selector": "~3.3",
313 | "symfony/dom-crawler": "~3.3"
314 | },
315 | "suggest": {
316 | "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).",
317 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).",
318 | "ext-pcntl": "Required to use all features of the queue worker.",
319 | "ext-posix": "Required to use all features of the queue worker.",
320 | "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).",
321 | "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).",
322 | "laravel/tinker": "Required to use the tinker console command (~1.0).",
323 | "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).",
324 | "league/flysystem-cached-adapter": "Required to use Flysystem caching (~1.0).",
325 | "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).",
326 | "nexmo/client": "Required to use the Nexmo transport (~1.0).",
327 | "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).",
328 | "predis/predis": "Required to use the redis cache and queue drivers (~1.0).",
329 | "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).",
330 | "symfony/css-selector": "Required to use some of the crawler integration testing tools (~3.3).",
331 | "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~3.3).",
332 | "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)."
333 | },
334 | "type": "library",
335 | "extra": {
336 | "branch-alias": {
337 | "dev-master": "5.5-dev"
338 | }
339 | },
340 | "autoload": {
341 | "files": [
342 | "src/Illuminate/Foundation/helpers.php",
343 | "src/Illuminate/Support/helpers.php"
344 | ],
345 | "psr-4": {
346 | "Illuminate\\": "src/Illuminate/"
347 | }
348 | },
349 | "notification-url": "https://packagist.org/downloads/",
350 | "license": [
351 | "MIT"
352 | ],
353 | "authors": [
354 | {
355 | "name": "Taylor Otwell",
356 | "email": "taylor@laravel.com"
357 | }
358 | ],
359 | "description": "The Laravel Framework.",
360 | "homepage": "https://laravel.com",
361 | "keywords": [
362 | "framework",
363 | "laravel"
364 | ],
365 | "time": "2019-01-28T20:53:19+00:00"
366 | },
367 | {
368 | "name": "league/flysystem",
369 | "version": "1.0.50",
370 | "source": {
371 | "type": "git",
372 | "url": "https://github.com/thephpleague/flysystem.git",
373 | "reference": "dab4e7624efa543a943be978008f439c333f2249"
374 | },
375 | "dist": {
376 | "type": "zip",
377 | "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/dab4e7624efa543a943be978008f439c333f2249",
378 | "reference": "dab4e7624efa543a943be978008f439c333f2249",
379 | "shasum": ""
380 | },
381 | "require": {
382 | "ext-fileinfo": "*",
383 | "php": ">=5.5.9"
384 | },
385 | "conflict": {
386 | "league/flysystem-sftp": "<1.0.6"
387 | },
388 | "require-dev": {
389 | "phpspec/phpspec": "^3.4",
390 | "phpunit/phpunit": "^5.7.10"
391 | },
392 | "suggest": {
393 | "ext-fileinfo": "Required for MimeType",
394 | "ext-ftp": "Allows you to use FTP server storage",
395 | "ext-openssl": "Allows you to use FTPS server storage",
396 | "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
397 | "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
398 | "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
399 | "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
400 | "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
401 | "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
402 | "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
403 | "league/flysystem-webdav": "Allows you to use WebDAV storage",
404 | "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
405 | "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
406 | "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
407 | },
408 | "type": "library",
409 | "extra": {
410 | "branch-alias": {
411 | "dev-master": "1.1-dev"
412 | }
413 | },
414 | "autoload": {
415 | "psr-4": {
416 | "League\\Flysystem\\": "src/"
417 | }
418 | },
419 | "notification-url": "https://packagist.org/downloads/",
420 | "license": [
421 | "MIT"
422 | ],
423 | "authors": [
424 | {
425 | "name": "Frank de Jonge",
426 | "email": "info@frenky.net"
427 | }
428 | ],
429 | "description": "Filesystem abstraction: Many filesystems, one API.",
430 | "keywords": [
431 | "Cloud Files",
432 | "WebDAV",
433 | "abstraction",
434 | "aws",
435 | "cloud",
436 | "copy.com",
437 | "dropbox",
438 | "file systems",
439 | "files",
440 | "filesystem",
441 | "filesystems",
442 | "ftp",
443 | "rackspace",
444 | "remote",
445 | "s3",
446 | "sftp",
447 | "storage"
448 | ],
449 | "time": "2019-02-01T08:50:36+00:00"
450 | },
451 | {
452 | "name": "monolog/monolog",
453 | "version": "1.24.0",
454 | "source": {
455 | "type": "git",
456 | "url": "https://github.com/Seldaek/monolog.git",
457 | "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
458 | },
459 | "dist": {
460 | "type": "zip",
461 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
462 | "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
463 | "shasum": ""
464 | },
465 | "require": {
466 | "php": ">=5.3.0",
467 | "psr/log": "~1.0"
468 | },
469 | "provide": {
470 | "psr/log-implementation": "1.0.0"
471 | },
472 | "require-dev": {
473 | "aws/aws-sdk-php": "^2.4.9 || ^3.0",
474 | "doctrine/couchdb": "~1.0@dev",
475 | "graylog2/gelf-php": "~1.0",
476 | "jakub-onderka/php-parallel-lint": "0.9",
477 | "php-amqplib/php-amqplib": "~2.4",
478 | "php-console/php-console": "^3.1.3",
479 | "phpunit/phpunit": "~4.5",
480 | "phpunit/phpunit-mock-objects": "2.3.0",
481 | "ruflin/elastica": ">=0.90 <3.0",
482 | "sentry/sentry": "^0.13",
483 | "swiftmailer/swiftmailer": "^5.3|^6.0"
484 | },
485 | "suggest": {
486 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
487 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
488 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
489 | "ext-mongo": "Allow sending log messages to a MongoDB server",
490 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
491 | "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
492 | "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
493 | "php-console/php-console": "Allow sending log messages to Google Chrome",
494 | "rollbar/rollbar": "Allow sending log messages to Rollbar",
495 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
496 | "sentry/sentry": "Allow sending log messages to a Sentry server"
497 | },
498 | "type": "library",
499 | "extra": {
500 | "branch-alias": {
501 | "dev-master": "2.0.x-dev"
502 | }
503 | },
504 | "autoload": {
505 | "psr-4": {
506 | "Monolog\\": "src/Monolog"
507 | }
508 | },
509 | "notification-url": "https://packagist.org/downloads/",
510 | "license": [
511 | "MIT"
512 | ],
513 | "authors": [
514 | {
515 | "name": "Jordi Boggiano",
516 | "email": "j.boggiano@seld.be",
517 | "homepage": "http://seld.be"
518 | }
519 | ],
520 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
521 | "homepage": "http://github.com/Seldaek/monolog",
522 | "keywords": [
523 | "log",
524 | "logging",
525 | "psr-3"
526 | ],
527 | "time": "2018-11-05T09:00:11+00:00"
528 | },
529 | {
530 | "name": "mtdowling/cron-expression",
531 | "version": "v1.2.1",
532 | "source": {
533 | "type": "git",
534 | "url": "https://github.com/mtdowling/cron-expression.git",
535 | "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad"
536 | },
537 | "dist": {
538 | "type": "zip",
539 | "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/9504fa9ea681b586028adaaa0877db4aecf32bad",
540 | "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad",
541 | "shasum": ""
542 | },
543 | "require": {
544 | "php": ">=5.3.2"
545 | },
546 | "require-dev": {
547 | "phpunit/phpunit": "~4.0|~5.0"
548 | },
549 | "type": "library",
550 | "autoload": {
551 | "psr-4": {
552 | "Cron\\": "src/Cron/"
553 | }
554 | },
555 | "notification-url": "https://packagist.org/downloads/",
556 | "license": [
557 | "MIT"
558 | ],
559 | "authors": [
560 | {
561 | "name": "Michael Dowling",
562 | "email": "mtdowling@gmail.com",
563 | "homepage": "https://github.com/mtdowling"
564 | }
565 | ],
566 | "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
567 | "keywords": [
568 | "cron",
569 | "schedule"
570 | ],
571 | "time": "2017-01-23T04:29:33+00:00"
572 | },
573 | {
574 | "name": "nesbot/carbon",
575 | "version": "1.36.2",
576 | "source": {
577 | "type": "git",
578 | "url": "https://github.com/briannesbitt/Carbon.git",
579 | "reference": "cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9"
580 | },
581 | "dist": {
582 | "type": "zip",
583 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9",
584 | "reference": "cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9",
585 | "shasum": ""
586 | },
587 | "require": {
588 | "php": ">=5.3.9",
589 | "symfony/translation": "~2.6 || ~3.0 || ~4.0"
590 | },
591 | "require-dev": {
592 | "phpunit/phpunit": "^4.8.35 || ^5.7"
593 | },
594 | "suggest": {
595 | "friendsofphp/php-cs-fixer": "Needed for the `composer phpcs` command. Allow to automatically fix code style.",
596 | "phpstan/phpstan": "Needed for the `composer phpstan` command. Allow to detect potential errors."
597 | },
598 | "type": "library",
599 | "extra": {
600 | "laravel": {
601 | "providers": [
602 | "Carbon\\Laravel\\ServiceProvider"
603 | ]
604 | }
605 | },
606 | "autoload": {
607 | "psr-4": {
608 | "": "src/"
609 | }
610 | },
611 | "notification-url": "https://packagist.org/downloads/",
612 | "license": [
613 | "MIT"
614 | ],
615 | "authors": [
616 | {
617 | "name": "Brian Nesbitt",
618 | "email": "brian@nesbot.com",
619 | "homepage": "http://nesbot.com"
620 | }
621 | ],
622 | "description": "A simple API extension for DateTime.",
623 | "homepage": "http://carbon.nesbot.com",
624 | "keywords": [
625 | "date",
626 | "datetime",
627 | "time"
628 | ],
629 | "time": "2018-12-28T10:07:33+00:00"
630 | },
631 | {
632 | "name": "paragonie/random_compat",
633 | "version": "v9.99.99",
634 | "source": {
635 | "type": "git",
636 | "url": "https://github.com/paragonie/random_compat.git",
637 | "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
638 | },
639 | "dist": {
640 | "type": "zip",
641 | "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
642 | "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
643 | "shasum": ""
644 | },
645 | "require": {
646 | "php": "^7"
647 | },
648 | "require-dev": {
649 | "phpunit/phpunit": "4.*|5.*",
650 | "vimeo/psalm": "^1"
651 | },
652 | "suggest": {
653 | "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
654 | },
655 | "type": "library",
656 | "notification-url": "https://packagist.org/downloads/",
657 | "license": [
658 | "MIT"
659 | ],
660 | "authors": [
661 | {
662 | "name": "Paragon Initiative Enterprises",
663 | "email": "security@paragonie.com",
664 | "homepage": "https://paragonie.com"
665 | }
666 | ],
667 | "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
668 | "keywords": [
669 | "csprng",
670 | "polyfill",
671 | "pseudorandom",
672 | "random"
673 | ],
674 | "time": "2018-07-02T15:55:56+00:00"
675 | },
676 | {
677 | "name": "psr/container",
678 | "version": "1.0.0",
679 | "source": {
680 | "type": "git",
681 | "url": "https://github.com/php-fig/container.git",
682 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
683 | },
684 | "dist": {
685 | "type": "zip",
686 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
687 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
688 | "shasum": ""
689 | },
690 | "require": {
691 | "php": ">=5.3.0"
692 | },
693 | "type": "library",
694 | "extra": {
695 | "branch-alias": {
696 | "dev-master": "1.0.x-dev"
697 | }
698 | },
699 | "autoload": {
700 | "psr-4": {
701 | "Psr\\Container\\": "src/"
702 | }
703 | },
704 | "notification-url": "https://packagist.org/downloads/",
705 | "license": [
706 | "MIT"
707 | ],
708 | "authors": [
709 | {
710 | "name": "PHP-FIG",
711 | "homepage": "http://www.php-fig.org/"
712 | }
713 | ],
714 | "description": "Common Container Interface (PHP FIG PSR-11)",
715 | "homepage": "https://github.com/php-fig/container",
716 | "keywords": [
717 | "PSR-11",
718 | "container",
719 | "container-interface",
720 | "container-interop",
721 | "psr"
722 | ],
723 | "time": "2017-02-14T16:28:37+00:00"
724 | },
725 | {
726 | "name": "psr/log",
727 | "version": "1.1.0",
728 | "source": {
729 | "type": "git",
730 | "url": "https://github.com/php-fig/log.git",
731 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
732 | },
733 | "dist": {
734 | "type": "zip",
735 | "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
736 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
737 | "shasum": ""
738 | },
739 | "require": {
740 | "php": ">=5.3.0"
741 | },
742 | "type": "library",
743 | "extra": {
744 | "branch-alias": {
745 | "dev-master": "1.0.x-dev"
746 | }
747 | },
748 | "autoload": {
749 | "psr-4": {
750 | "Psr\\Log\\": "Psr/Log/"
751 | }
752 | },
753 | "notification-url": "https://packagist.org/downloads/",
754 | "license": [
755 | "MIT"
756 | ],
757 | "authors": [
758 | {
759 | "name": "PHP-FIG",
760 | "homepage": "http://www.php-fig.org/"
761 | }
762 | ],
763 | "description": "Common interface for logging libraries",
764 | "homepage": "https://github.com/php-fig/log",
765 | "keywords": [
766 | "log",
767 | "psr",
768 | "psr-3"
769 | ],
770 | "time": "2018-11-20T15:27:04+00:00"
771 | },
772 | {
773 | "name": "psr/simple-cache",
774 | "version": "1.0.1",
775 | "source": {
776 | "type": "git",
777 | "url": "https://github.com/php-fig/simple-cache.git",
778 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
779 | },
780 | "dist": {
781 | "type": "zip",
782 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
783 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
784 | "shasum": ""
785 | },
786 | "require": {
787 | "php": ">=5.3.0"
788 | },
789 | "type": "library",
790 | "extra": {
791 | "branch-alias": {
792 | "dev-master": "1.0.x-dev"
793 | }
794 | },
795 | "autoload": {
796 | "psr-4": {
797 | "Psr\\SimpleCache\\": "src/"
798 | }
799 | },
800 | "notification-url": "https://packagist.org/downloads/",
801 | "license": [
802 | "MIT"
803 | ],
804 | "authors": [
805 | {
806 | "name": "PHP-FIG",
807 | "homepage": "http://www.php-fig.org/"
808 | }
809 | ],
810 | "description": "Common interfaces for simple caching",
811 | "keywords": [
812 | "cache",
813 | "caching",
814 | "psr",
815 | "psr-16",
816 | "simple-cache"
817 | ],
818 | "time": "2017-10-23T01:57:42+00:00"
819 | },
820 | {
821 | "name": "ramsey/uuid",
822 | "version": "3.8.0",
823 | "source": {
824 | "type": "git",
825 | "url": "https://github.com/ramsey/uuid.git",
826 | "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3"
827 | },
828 | "dist": {
829 | "type": "zip",
830 | "url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3",
831 | "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3",
832 | "shasum": ""
833 | },
834 | "require": {
835 | "paragonie/random_compat": "^1.0|^2.0|9.99.99",
836 | "php": "^5.4 || ^7.0",
837 | "symfony/polyfill-ctype": "^1.8"
838 | },
839 | "replace": {
840 | "rhumsaa/uuid": "self.version"
841 | },
842 | "require-dev": {
843 | "codeception/aspect-mock": "^1.0 | ~2.0.0",
844 | "doctrine/annotations": "~1.2.0",
845 | "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0",
846 | "ircmaxell/random-lib": "^1.1",
847 | "jakub-onderka/php-parallel-lint": "^0.9.0",
848 | "mockery/mockery": "^0.9.9",
849 | "moontoast/math": "^1.1",
850 | "php-mock/php-mock-phpunit": "^0.3|^1.1",
851 | "phpunit/phpunit": "^4.7|^5.0|^6.5",
852 | "squizlabs/php_codesniffer": "^2.3"
853 | },
854 | "suggest": {
855 | "ext-ctype": "Provides support for PHP Ctype functions",
856 | "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
857 | "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
858 | "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
859 | "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
860 | "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
861 | "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
862 | },
863 | "type": "library",
864 | "extra": {
865 | "branch-alias": {
866 | "dev-master": "3.x-dev"
867 | }
868 | },
869 | "autoload": {
870 | "psr-4": {
871 | "Ramsey\\Uuid\\": "src/"
872 | }
873 | },
874 | "notification-url": "https://packagist.org/downloads/",
875 | "license": [
876 | "MIT"
877 | ],
878 | "authors": [
879 | {
880 | "name": "Marijn Huizendveld",
881 | "email": "marijn.huizendveld@gmail.com"
882 | },
883 | {
884 | "name": "Thibaud Fabre",
885 | "email": "thibaud@aztech.io"
886 | },
887 | {
888 | "name": "Ben Ramsey",
889 | "email": "ben@benramsey.com",
890 | "homepage": "https://benramsey.com"
891 | }
892 | ],
893 | "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
894 | "homepage": "https://github.com/ramsey/uuid",
895 | "keywords": [
896 | "guid",
897 | "identifier",
898 | "uuid"
899 | ],
900 | "time": "2018-07-19T23:38:55+00:00"
901 | },
902 | {
903 | "name": "swiftmailer/swiftmailer",
904 | "version": "v6.1.3",
905 | "source": {
906 | "type": "git",
907 | "url": "https://github.com/swiftmailer/swiftmailer.git",
908 | "reference": "8ddcb66ac10c392d3beb54829eef8ac1438595f4"
909 | },
910 | "dist": {
911 | "type": "zip",
912 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8ddcb66ac10c392d3beb54829eef8ac1438595f4",
913 | "reference": "8ddcb66ac10c392d3beb54829eef8ac1438595f4",
914 | "shasum": ""
915 | },
916 | "require": {
917 | "egulias/email-validator": "~2.0",
918 | "php": ">=7.0.0"
919 | },
920 | "require-dev": {
921 | "mockery/mockery": "~0.9.1",
922 | "symfony/phpunit-bridge": "~3.3@dev"
923 | },
924 | "suggest": {
925 | "ext-intl": "Needed to support internationalized email addresses",
926 | "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed"
927 | },
928 | "type": "library",
929 | "extra": {
930 | "branch-alias": {
931 | "dev-master": "6.1-dev"
932 | }
933 | },
934 | "autoload": {
935 | "files": [
936 | "lib/swift_required.php"
937 | ]
938 | },
939 | "notification-url": "https://packagist.org/downloads/",
940 | "license": [
941 | "MIT"
942 | ],
943 | "authors": [
944 | {
945 | "name": "Chris Corbyn"
946 | },
947 | {
948 | "name": "Fabien Potencier",
949 | "email": "fabien@symfony.com"
950 | }
951 | ],
952 | "description": "Swiftmailer, free feature-rich PHP mailer",
953 | "homepage": "https://swiftmailer.symfony.com",
954 | "keywords": [
955 | "email",
956 | "mail",
957 | "mailer"
958 | ],
959 | "time": "2018-09-11T07:12:52+00:00"
960 | },
961 | {
962 | "name": "symfony/class-loader",
963 | "version": "v3.4.22",
964 | "source": {
965 | "type": "git",
966 | "url": "https://github.com/symfony/class-loader.git",
967 | "reference": "4459eef5298dedfb69f771186a580062b8516497"
968 | },
969 | "dist": {
970 | "type": "zip",
971 | "url": "https://api.github.com/repos/symfony/class-loader/zipball/4459eef5298dedfb69f771186a580062b8516497",
972 | "reference": "4459eef5298dedfb69f771186a580062b8516497",
973 | "shasum": ""
974 | },
975 | "require": {
976 | "php": "^5.5.9|>=7.0.8"
977 | },
978 | "require-dev": {
979 | "symfony/finder": "~2.8|~3.0|~4.0",
980 | "symfony/polyfill-apcu": "~1.1"
981 | },
982 | "suggest": {
983 | "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM"
984 | },
985 | "type": "library",
986 | "extra": {
987 | "branch-alias": {
988 | "dev-master": "3.4-dev"
989 | }
990 | },
991 | "autoload": {
992 | "psr-4": {
993 | "Symfony\\Component\\ClassLoader\\": ""
994 | },
995 | "exclude-from-classmap": [
996 | "/Tests/"
997 | ]
998 | },
999 | "notification-url": "https://packagist.org/downloads/",
1000 | "license": [
1001 | "MIT"
1002 | ],
1003 | "authors": [
1004 | {
1005 | "name": "Fabien Potencier",
1006 | "email": "fabien@symfony.com"
1007 | },
1008 | {
1009 | "name": "Symfony Community",
1010 | "homepage": "https://symfony.com/contributors"
1011 | }
1012 | ],
1013 | "description": "Symfony ClassLoader Component",
1014 | "homepage": "https://symfony.com",
1015 | "time": "2019-01-16T09:39:14+00:00"
1016 | },
1017 | {
1018 | "name": "symfony/console",
1019 | "version": "v3.4.22",
1020 | "source": {
1021 | "type": "git",
1022 | "url": "https://github.com/symfony/console.git",
1023 | "reference": "069bf3f0e8f871a2169a06e43d9f3f03f355e9be"
1024 | },
1025 | "dist": {
1026 | "type": "zip",
1027 | "url": "https://api.github.com/repos/symfony/console/zipball/069bf3f0e8f871a2169a06e43d9f3f03f355e9be",
1028 | "reference": "069bf3f0e8f871a2169a06e43d9f3f03f355e9be",
1029 | "shasum": ""
1030 | },
1031 | "require": {
1032 | "php": "^5.5.9|>=7.0.8",
1033 | "symfony/debug": "~2.8|~3.0|~4.0",
1034 | "symfony/polyfill-mbstring": "~1.0"
1035 | },
1036 | "conflict": {
1037 | "symfony/dependency-injection": "<3.4",
1038 | "symfony/process": "<3.3"
1039 | },
1040 | "provide": {
1041 | "psr/log-implementation": "1.0"
1042 | },
1043 | "require-dev": {
1044 | "psr/log": "~1.0",
1045 | "symfony/config": "~3.3|~4.0",
1046 | "symfony/dependency-injection": "~3.4|~4.0",
1047 | "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
1048 | "symfony/lock": "~3.4|~4.0",
1049 | "symfony/process": "~3.3|~4.0"
1050 | },
1051 | "suggest": {
1052 | "psr/log": "For using the console logger",
1053 | "symfony/event-dispatcher": "",
1054 | "symfony/lock": "",
1055 | "symfony/process": ""
1056 | },
1057 | "type": "library",
1058 | "extra": {
1059 | "branch-alias": {
1060 | "dev-master": "3.4-dev"
1061 | }
1062 | },
1063 | "autoload": {
1064 | "psr-4": {
1065 | "Symfony\\Component\\Console\\": ""
1066 | },
1067 | "exclude-from-classmap": [
1068 | "/Tests/"
1069 | ]
1070 | },
1071 | "notification-url": "https://packagist.org/downloads/",
1072 | "license": [
1073 | "MIT"
1074 | ],
1075 | "authors": [
1076 | {
1077 | "name": "Fabien Potencier",
1078 | "email": "fabien@symfony.com"
1079 | },
1080 | {
1081 | "name": "Symfony Community",
1082 | "homepage": "https://symfony.com/contributors"
1083 | }
1084 | ],
1085 | "description": "Symfony Console Component",
1086 | "homepage": "https://symfony.com",
1087 | "time": "2019-01-25T10:42:12+00:00"
1088 | },
1089 | {
1090 | "name": "symfony/contracts",
1091 | "version": "v1.0.2",
1092 | "source": {
1093 | "type": "git",
1094 | "url": "https://github.com/symfony/contracts.git",
1095 | "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf"
1096 | },
1097 | "dist": {
1098 | "type": "zip",
1099 | "url": "https://api.github.com/repos/symfony/contracts/zipball/1aa7ab2429c3d594dd70689604b5cf7421254cdf",
1100 | "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf",
1101 | "shasum": ""
1102 | },
1103 | "require": {
1104 | "php": "^7.1.3"
1105 | },
1106 | "require-dev": {
1107 | "psr/cache": "^1.0",
1108 | "psr/container": "^1.0"
1109 | },
1110 | "suggest": {
1111 | "psr/cache": "When using the Cache contracts",
1112 | "psr/container": "When using the Service contracts",
1113 | "symfony/cache-contracts-implementation": "",
1114 | "symfony/service-contracts-implementation": "",
1115 | "symfony/translation-contracts-implementation": ""
1116 | },
1117 | "type": "library",
1118 | "extra": {
1119 | "branch-alias": {
1120 | "dev-master": "1.0-dev"
1121 | }
1122 | },
1123 | "autoload": {
1124 | "psr-4": {
1125 | "Symfony\\Contracts\\": ""
1126 | },
1127 | "exclude-from-classmap": [
1128 | "**/Tests/"
1129 | ]
1130 | },
1131 | "notification-url": "https://packagist.org/downloads/",
1132 | "license": [
1133 | "MIT"
1134 | ],
1135 | "authors": [
1136 | {
1137 | "name": "Nicolas Grekas",
1138 | "email": "p@tchwork.com"
1139 | },
1140 | {
1141 | "name": "Symfony Community",
1142 | "homepage": "https://symfony.com/contributors"
1143 | }
1144 | ],
1145 | "description": "A set of abstractions extracted out of the Symfony components",
1146 | "homepage": "https://symfony.com",
1147 | "keywords": [
1148 | "abstractions",
1149 | "contracts",
1150 | "decoupling",
1151 | "interfaces",
1152 | "interoperability",
1153 | "standards"
1154 | ],
1155 | "time": "2018-12-05T08:06:11+00:00"
1156 | },
1157 | {
1158 | "name": "symfony/css-selector",
1159 | "version": "v4.2.3",
1160 | "source": {
1161 | "type": "git",
1162 | "url": "https://github.com/symfony/css-selector.git",
1163 | "reference": "48eddf66950fa57996e1be4a55916d65c10c604a"
1164 | },
1165 | "dist": {
1166 | "type": "zip",
1167 | "url": "https://api.github.com/repos/symfony/css-selector/zipball/48eddf66950fa57996e1be4a55916d65c10c604a",
1168 | "reference": "48eddf66950fa57996e1be4a55916d65c10c604a",
1169 | "shasum": ""
1170 | },
1171 | "require": {
1172 | "php": "^7.1.3"
1173 | },
1174 | "type": "library",
1175 | "extra": {
1176 | "branch-alias": {
1177 | "dev-master": "4.2-dev"
1178 | }
1179 | },
1180 | "autoload": {
1181 | "psr-4": {
1182 | "Symfony\\Component\\CssSelector\\": ""
1183 | },
1184 | "exclude-from-classmap": [
1185 | "/Tests/"
1186 | ]
1187 | },
1188 | "notification-url": "https://packagist.org/downloads/",
1189 | "license": [
1190 | "MIT"
1191 | ],
1192 | "authors": [
1193 | {
1194 | "name": "Jean-François Simon",
1195 | "email": "jeanfrancois.simon@sensiolabs.com"
1196 | },
1197 | {
1198 | "name": "Fabien Potencier",
1199 | "email": "fabien@symfony.com"
1200 | },
1201 | {
1202 | "name": "Symfony Community",
1203 | "homepage": "https://symfony.com/contributors"
1204 | }
1205 | ],
1206 | "description": "Symfony CssSelector Component",
1207 | "homepage": "https://symfony.com",
1208 | "time": "2019-01-16T20:31:39+00:00"
1209 | },
1210 | {
1211 | "name": "symfony/debug",
1212 | "version": "v3.4.22",
1213 | "source": {
1214 | "type": "git",
1215 | "url": "https://github.com/symfony/debug.git",
1216 | "reference": "667a26c4dd6bc75c67f06bc9bcd015bdecc7cbb8"
1217 | },
1218 | "dist": {
1219 | "type": "zip",
1220 | "url": "https://api.github.com/repos/symfony/debug/zipball/667a26c4dd6bc75c67f06bc9bcd015bdecc7cbb8",
1221 | "reference": "667a26c4dd6bc75c67f06bc9bcd015bdecc7cbb8",
1222 | "shasum": ""
1223 | },
1224 | "require": {
1225 | "php": "^5.5.9|>=7.0.8",
1226 | "psr/log": "~1.0"
1227 | },
1228 | "conflict": {
1229 | "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
1230 | },
1231 | "require-dev": {
1232 | "symfony/http-kernel": "~2.8|~3.0|~4.0"
1233 | },
1234 | "type": "library",
1235 | "extra": {
1236 | "branch-alias": {
1237 | "dev-master": "3.4-dev"
1238 | }
1239 | },
1240 | "autoload": {
1241 | "psr-4": {
1242 | "Symfony\\Component\\Debug\\": ""
1243 | },
1244 | "exclude-from-classmap": [
1245 | "/Tests/"
1246 | ]
1247 | },
1248 | "notification-url": "https://packagist.org/downloads/",
1249 | "license": [
1250 | "MIT"
1251 | ],
1252 | "authors": [
1253 | {
1254 | "name": "Fabien Potencier",
1255 | "email": "fabien@symfony.com"
1256 | },
1257 | {
1258 | "name": "Symfony Community",
1259 | "homepage": "https://symfony.com/contributors"
1260 | }
1261 | ],
1262 | "description": "Symfony Debug Component",
1263 | "homepage": "https://symfony.com",
1264 | "time": "2019-01-25T10:19:25+00:00"
1265 | },
1266 | {
1267 | "name": "symfony/event-dispatcher",
1268 | "version": "v4.2.3",
1269 | "source": {
1270 | "type": "git",
1271 | "url": "https://github.com/symfony/event-dispatcher.git",
1272 | "reference": "bd09ad265cd50b2b9d09d65ce6aba2d29bc81fe1"
1273 | },
1274 | "dist": {
1275 | "type": "zip",
1276 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/bd09ad265cd50b2b9d09d65ce6aba2d29bc81fe1",
1277 | "reference": "bd09ad265cd50b2b9d09d65ce6aba2d29bc81fe1",
1278 | "shasum": ""
1279 | },
1280 | "require": {
1281 | "php": "^7.1.3",
1282 | "symfony/contracts": "^1.0"
1283 | },
1284 | "conflict": {
1285 | "symfony/dependency-injection": "<3.4"
1286 | },
1287 | "require-dev": {
1288 | "psr/log": "~1.0",
1289 | "symfony/config": "~3.4|~4.0",
1290 | "symfony/dependency-injection": "~3.4|~4.0",
1291 | "symfony/expression-language": "~3.4|~4.0",
1292 | "symfony/stopwatch": "~3.4|~4.0"
1293 | },
1294 | "suggest": {
1295 | "symfony/dependency-injection": "",
1296 | "symfony/http-kernel": ""
1297 | },
1298 | "type": "library",
1299 | "extra": {
1300 | "branch-alias": {
1301 | "dev-master": "4.2-dev"
1302 | }
1303 | },
1304 | "autoload": {
1305 | "psr-4": {
1306 | "Symfony\\Component\\EventDispatcher\\": ""
1307 | },
1308 | "exclude-from-classmap": [
1309 | "/Tests/"
1310 | ]
1311 | },
1312 | "notification-url": "https://packagist.org/downloads/",
1313 | "license": [
1314 | "MIT"
1315 | ],
1316 | "authors": [
1317 | {
1318 | "name": "Fabien Potencier",
1319 | "email": "fabien@symfony.com"
1320 | },
1321 | {
1322 | "name": "Symfony Community",
1323 | "homepage": "https://symfony.com/contributors"
1324 | }
1325 | ],
1326 | "description": "Symfony EventDispatcher Component",
1327 | "homepage": "https://symfony.com",
1328 | "time": "2019-01-16T20:35:37+00:00"
1329 | },
1330 | {
1331 | "name": "symfony/finder",
1332 | "version": "v3.4.22",
1333 | "source": {
1334 | "type": "git",
1335 | "url": "https://github.com/symfony/finder.git",
1336 | "reference": "7c0c627220308928e958a87c293108e5891cde1d"
1337 | },
1338 | "dist": {
1339 | "type": "zip",
1340 | "url": "https://api.github.com/repos/symfony/finder/zipball/7c0c627220308928e958a87c293108e5891cde1d",
1341 | "reference": "7c0c627220308928e958a87c293108e5891cde1d",
1342 | "shasum": ""
1343 | },
1344 | "require": {
1345 | "php": "^5.5.9|>=7.0.8"
1346 | },
1347 | "type": "library",
1348 | "extra": {
1349 | "branch-alias": {
1350 | "dev-master": "3.4-dev"
1351 | }
1352 | },
1353 | "autoload": {
1354 | "psr-4": {
1355 | "Symfony\\Component\\Finder\\": ""
1356 | },
1357 | "exclude-from-classmap": [
1358 | "/Tests/"
1359 | ]
1360 | },
1361 | "notification-url": "https://packagist.org/downloads/",
1362 | "license": [
1363 | "MIT"
1364 | ],
1365 | "authors": [
1366 | {
1367 | "name": "Fabien Potencier",
1368 | "email": "fabien@symfony.com"
1369 | },
1370 | {
1371 | "name": "Symfony Community",
1372 | "homepage": "https://symfony.com/contributors"
1373 | }
1374 | ],
1375 | "description": "Symfony Finder Component",
1376 | "homepage": "https://symfony.com",
1377 | "time": "2019-01-16T13:43:35+00:00"
1378 | },
1379 | {
1380 | "name": "symfony/http-foundation",
1381 | "version": "v3.4.22",
1382 | "source": {
1383 | "type": "git",
1384 | "url": "https://github.com/symfony/http-foundation.git",
1385 | "reference": "9a81d2330ea255ded06a69b4f7fb7804836e7a05"
1386 | },
1387 | "dist": {
1388 | "type": "zip",
1389 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9a81d2330ea255ded06a69b4f7fb7804836e7a05",
1390 | "reference": "9a81d2330ea255ded06a69b4f7fb7804836e7a05",
1391 | "shasum": ""
1392 | },
1393 | "require": {
1394 | "php": "^5.5.9|>=7.0.8",
1395 | "symfony/polyfill-mbstring": "~1.1",
1396 | "symfony/polyfill-php70": "~1.6"
1397 | },
1398 | "require-dev": {
1399 | "symfony/expression-language": "~2.8|~3.0|~4.0"
1400 | },
1401 | "type": "library",
1402 | "extra": {
1403 | "branch-alias": {
1404 | "dev-master": "3.4-dev"
1405 | }
1406 | },
1407 | "autoload": {
1408 | "psr-4": {
1409 | "Symfony\\Component\\HttpFoundation\\": ""
1410 | },
1411 | "exclude-from-classmap": [
1412 | "/Tests/"
1413 | ]
1414 | },
1415 | "notification-url": "https://packagist.org/downloads/",
1416 | "license": [
1417 | "MIT"
1418 | ],
1419 | "authors": [
1420 | {
1421 | "name": "Fabien Potencier",
1422 | "email": "fabien@symfony.com"
1423 | },
1424 | {
1425 | "name": "Symfony Community",
1426 | "homepage": "https://symfony.com/contributors"
1427 | }
1428 | ],
1429 | "description": "Symfony HttpFoundation Component",
1430 | "homepage": "https://symfony.com",
1431 | "time": "2019-01-27T09:04:14+00:00"
1432 | },
1433 | {
1434 | "name": "symfony/http-kernel",
1435 | "version": "v3.4.22",
1436 | "source": {
1437 | "type": "git",
1438 | "url": "https://github.com/symfony/http-kernel.git",
1439 | "reference": "dc6bf17684b7120f7bf74fae85c9155506041002"
1440 | },
1441 | "dist": {
1442 | "type": "zip",
1443 | "url": "https://api.github.com/repos/symfony/http-kernel/zipball/dc6bf17684b7120f7bf74fae85c9155506041002",
1444 | "reference": "dc6bf17684b7120f7bf74fae85c9155506041002",
1445 | "shasum": ""
1446 | },
1447 | "require": {
1448 | "php": "^5.5.9|>=7.0.8",
1449 | "psr/log": "~1.0",
1450 | "symfony/debug": "^3.3.3|~4.0",
1451 | "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
1452 | "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1",
1453 | "symfony/polyfill-ctype": "~1.8"
1454 | },
1455 | "conflict": {
1456 | "symfony/config": "<2.8",
1457 | "symfony/dependency-injection": "<3.4.10|<4.0.10,>=4",
1458 | "symfony/var-dumper": "<3.3",
1459 | "twig/twig": "<1.34|<2.4,>=2"
1460 | },
1461 | "provide": {
1462 | "psr/log-implementation": "1.0"
1463 | },
1464 | "require-dev": {
1465 | "psr/cache": "~1.0",
1466 | "symfony/browser-kit": "~2.8|~3.0|~4.0",
1467 | "symfony/class-loader": "~2.8|~3.0",
1468 | "symfony/config": "~2.8|~3.0|~4.0",
1469 | "symfony/console": "~2.8|~3.0|~4.0",
1470 | "symfony/css-selector": "~2.8|~3.0|~4.0",
1471 | "symfony/dependency-injection": "^3.4.10|^4.0.10",
1472 | "symfony/dom-crawler": "~2.8|~3.0|~4.0",
1473 | "symfony/expression-language": "~2.8|~3.0|~4.0",
1474 | "symfony/finder": "~2.8|~3.0|~4.0",
1475 | "symfony/process": "~2.8|~3.0|~4.0",
1476 | "symfony/routing": "~3.4|~4.0",
1477 | "symfony/stopwatch": "~2.8|~3.0|~4.0",
1478 | "symfony/templating": "~2.8|~3.0|~4.0",
1479 | "symfony/translation": "~2.8|~3.0|~4.0",
1480 | "symfony/var-dumper": "~3.3|~4.0"
1481 | },
1482 | "suggest": {
1483 | "symfony/browser-kit": "",
1484 | "symfony/config": "",
1485 | "symfony/console": "",
1486 | "symfony/dependency-injection": "",
1487 | "symfony/finder": "",
1488 | "symfony/var-dumper": ""
1489 | },
1490 | "type": "library",
1491 | "extra": {
1492 | "branch-alias": {
1493 | "dev-master": "3.4-dev"
1494 | }
1495 | },
1496 | "autoload": {
1497 | "psr-4": {
1498 | "Symfony\\Component\\HttpKernel\\": ""
1499 | },
1500 | "exclude-from-classmap": [
1501 | "/Tests/"
1502 | ]
1503 | },
1504 | "notification-url": "https://packagist.org/downloads/",
1505 | "license": [
1506 | "MIT"
1507 | ],
1508 | "authors": [
1509 | {
1510 | "name": "Fabien Potencier",
1511 | "email": "fabien@symfony.com"
1512 | },
1513 | {
1514 | "name": "Symfony Community",
1515 | "homepage": "https://symfony.com/contributors"
1516 | }
1517 | ],
1518 | "description": "Symfony HttpKernel Component",
1519 | "homepage": "https://symfony.com",
1520 | "time": "2019-02-03T12:22:50+00:00"
1521 | },
1522 | {
1523 | "name": "symfony/polyfill-ctype",
1524 | "version": "v1.10.0",
1525 | "source": {
1526 | "type": "git",
1527 | "url": "https://github.com/symfony/polyfill-ctype.git",
1528 | "reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
1529 | },
1530 | "dist": {
1531 | "type": "zip",
1532 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
1533 | "reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
1534 | "shasum": ""
1535 | },
1536 | "require": {
1537 | "php": ">=5.3.3"
1538 | },
1539 | "suggest": {
1540 | "ext-ctype": "For best performance"
1541 | },
1542 | "type": "library",
1543 | "extra": {
1544 | "branch-alias": {
1545 | "dev-master": "1.9-dev"
1546 | }
1547 | },
1548 | "autoload": {
1549 | "psr-4": {
1550 | "Symfony\\Polyfill\\Ctype\\": ""
1551 | },
1552 | "files": [
1553 | "bootstrap.php"
1554 | ]
1555 | },
1556 | "notification-url": "https://packagist.org/downloads/",
1557 | "license": [
1558 | "MIT"
1559 | ],
1560 | "authors": [
1561 | {
1562 | "name": "Symfony Community",
1563 | "homepage": "https://symfony.com/contributors"
1564 | },
1565 | {
1566 | "name": "Gert de Pagter",
1567 | "email": "BackEndTea@gmail.com"
1568 | }
1569 | ],
1570 | "description": "Symfony polyfill for ctype functions",
1571 | "homepage": "https://symfony.com",
1572 | "keywords": [
1573 | "compatibility",
1574 | "ctype",
1575 | "polyfill",
1576 | "portable"
1577 | ],
1578 | "time": "2018-08-06T14:22:27+00:00"
1579 | },
1580 | {
1581 | "name": "symfony/polyfill-mbstring",
1582 | "version": "v1.10.0",
1583 | "source": {
1584 | "type": "git",
1585 | "url": "https://github.com/symfony/polyfill-mbstring.git",
1586 | "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
1587 | },
1588 | "dist": {
1589 | "type": "zip",
1590 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
1591 | "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
1592 | "shasum": ""
1593 | },
1594 | "require": {
1595 | "php": ">=5.3.3"
1596 | },
1597 | "suggest": {
1598 | "ext-mbstring": "For best performance"
1599 | },
1600 | "type": "library",
1601 | "extra": {
1602 | "branch-alias": {
1603 | "dev-master": "1.9-dev"
1604 | }
1605 | },
1606 | "autoload": {
1607 | "psr-4": {
1608 | "Symfony\\Polyfill\\Mbstring\\": ""
1609 | },
1610 | "files": [
1611 | "bootstrap.php"
1612 | ]
1613 | },
1614 | "notification-url": "https://packagist.org/downloads/",
1615 | "license": [
1616 | "MIT"
1617 | ],
1618 | "authors": [
1619 | {
1620 | "name": "Nicolas Grekas",
1621 | "email": "p@tchwork.com"
1622 | },
1623 | {
1624 | "name": "Symfony Community",
1625 | "homepage": "https://symfony.com/contributors"
1626 | }
1627 | ],
1628 | "description": "Symfony polyfill for the Mbstring extension",
1629 | "homepage": "https://symfony.com",
1630 | "keywords": [
1631 | "compatibility",
1632 | "mbstring",
1633 | "polyfill",
1634 | "portable",
1635 | "shim"
1636 | ],
1637 | "time": "2018-09-21T13:07:52+00:00"
1638 | },
1639 | {
1640 | "name": "symfony/polyfill-php70",
1641 | "version": "v1.10.0",
1642 | "source": {
1643 | "type": "git",
1644 | "url": "https://github.com/symfony/polyfill-php70.git",
1645 | "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224"
1646 | },
1647 | "dist": {
1648 | "type": "zip",
1649 | "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224",
1650 | "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224",
1651 | "shasum": ""
1652 | },
1653 | "require": {
1654 | "paragonie/random_compat": "~1.0|~2.0|~9.99",
1655 | "php": ">=5.3.3"
1656 | },
1657 | "type": "library",
1658 | "extra": {
1659 | "branch-alias": {
1660 | "dev-master": "1.9-dev"
1661 | }
1662 | },
1663 | "autoload": {
1664 | "psr-4": {
1665 | "Symfony\\Polyfill\\Php70\\": ""
1666 | },
1667 | "files": [
1668 | "bootstrap.php"
1669 | ],
1670 | "classmap": [
1671 | "Resources/stubs"
1672 | ]
1673 | },
1674 | "notification-url": "https://packagist.org/downloads/",
1675 | "license": [
1676 | "MIT"
1677 | ],
1678 | "authors": [
1679 | {
1680 | "name": "Nicolas Grekas",
1681 | "email": "p@tchwork.com"
1682 | },
1683 | {
1684 | "name": "Symfony Community",
1685 | "homepage": "https://symfony.com/contributors"
1686 | }
1687 | ],
1688 | "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
1689 | "homepage": "https://symfony.com",
1690 | "keywords": [
1691 | "compatibility",
1692 | "polyfill",
1693 | "portable",
1694 | "shim"
1695 | ],
1696 | "time": "2018-09-21T06:26:08+00:00"
1697 | },
1698 | {
1699 | "name": "symfony/process",
1700 | "version": "v3.4.22",
1701 | "source": {
1702 | "type": "git",
1703 | "url": "https://github.com/symfony/process.git",
1704 | "reference": "009f8dda80930e89e8344a4e310b08f9ff07dd2e"
1705 | },
1706 | "dist": {
1707 | "type": "zip",
1708 | "url": "https://api.github.com/repos/symfony/process/zipball/009f8dda80930e89e8344a4e310b08f9ff07dd2e",
1709 | "reference": "009f8dda80930e89e8344a4e310b08f9ff07dd2e",
1710 | "shasum": ""
1711 | },
1712 | "require": {
1713 | "php": "^5.5.9|>=7.0.8"
1714 | },
1715 | "type": "library",
1716 | "extra": {
1717 | "branch-alias": {
1718 | "dev-master": "3.4-dev"
1719 | }
1720 | },
1721 | "autoload": {
1722 | "psr-4": {
1723 | "Symfony\\Component\\Process\\": ""
1724 | },
1725 | "exclude-from-classmap": [
1726 | "/Tests/"
1727 | ]
1728 | },
1729 | "notification-url": "https://packagist.org/downloads/",
1730 | "license": [
1731 | "MIT"
1732 | ],
1733 | "authors": [
1734 | {
1735 | "name": "Fabien Potencier",
1736 | "email": "fabien@symfony.com"
1737 | },
1738 | {
1739 | "name": "Symfony Community",
1740 | "homepage": "https://symfony.com/contributors"
1741 | }
1742 | ],
1743 | "description": "Symfony Process Component",
1744 | "homepage": "https://symfony.com",
1745 | "time": "2019-01-16T13:27:11+00:00"
1746 | },
1747 | {
1748 | "name": "symfony/routing",
1749 | "version": "v3.4.22",
1750 | "source": {
1751 | "type": "git",
1752 | "url": "https://github.com/symfony/routing.git",
1753 | "reference": "62f0b8d8cd2cd359c3caa5a9f5253a4a6d480646"
1754 | },
1755 | "dist": {
1756 | "type": "zip",
1757 | "url": "https://api.github.com/repos/symfony/routing/zipball/62f0b8d8cd2cd359c3caa5a9f5253a4a6d480646",
1758 | "reference": "62f0b8d8cd2cd359c3caa5a9f5253a4a6d480646",
1759 | "shasum": ""
1760 | },
1761 | "require": {
1762 | "php": "^5.5.9|>=7.0.8"
1763 | },
1764 | "conflict": {
1765 | "symfony/config": "<3.3.1",
1766 | "symfony/dependency-injection": "<3.3",
1767 | "symfony/yaml": "<3.4"
1768 | },
1769 | "require-dev": {
1770 | "doctrine/annotations": "~1.0",
1771 | "psr/log": "~1.0",
1772 | "symfony/config": "^3.3.1|~4.0",
1773 | "symfony/dependency-injection": "~3.3|~4.0",
1774 | "symfony/expression-language": "~2.8|~3.0|~4.0",
1775 | "symfony/http-foundation": "~2.8|~3.0|~4.0",
1776 | "symfony/yaml": "~3.4|~4.0"
1777 | },
1778 | "suggest": {
1779 | "doctrine/annotations": "For using the annotation loader",
1780 | "symfony/config": "For using the all-in-one router or any loader",
1781 | "symfony/dependency-injection": "For loading routes from a service",
1782 | "symfony/expression-language": "For using expression matching",
1783 | "symfony/http-foundation": "For using a Symfony Request object",
1784 | "symfony/yaml": "For using the YAML loader"
1785 | },
1786 | "type": "library",
1787 | "extra": {
1788 | "branch-alias": {
1789 | "dev-master": "3.4-dev"
1790 | }
1791 | },
1792 | "autoload": {
1793 | "psr-4": {
1794 | "Symfony\\Component\\Routing\\": ""
1795 | },
1796 | "exclude-from-classmap": [
1797 | "/Tests/"
1798 | ]
1799 | },
1800 | "notification-url": "https://packagist.org/downloads/",
1801 | "license": [
1802 | "MIT"
1803 | ],
1804 | "authors": [
1805 | {
1806 | "name": "Fabien Potencier",
1807 | "email": "fabien@symfony.com"
1808 | },
1809 | {
1810 | "name": "Symfony Community",
1811 | "homepage": "https://symfony.com/contributors"
1812 | }
1813 | ],
1814 | "description": "Symfony Routing Component",
1815 | "homepage": "https://symfony.com",
1816 | "keywords": [
1817 | "router",
1818 | "routing",
1819 | "uri",
1820 | "url"
1821 | ],
1822 | "time": "2019-01-29T08:47:12+00:00"
1823 | },
1824 | {
1825 | "name": "symfony/translation",
1826 | "version": "v4.2.3",
1827 | "source": {
1828 | "type": "git",
1829 | "url": "https://github.com/symfony/translation.git",
1830 | "reference": "23fd7aac70d99a17a8e6473a41fec8fab3331050"
1831 | },
1832 | "dist": {
1833 | "type": "zip",
1834 | "url": "https://api.github.com/repos/symfony/translation/zipball/23fd7aac70d99a17a8e6473a41fec8fab3331050",
1835 | "reference": "23fd7aac70d99a17a8e6473a41fec8fab3331050",
1836 | "shasum": ""
1837 | },
1838 | "require": {
1839 | "php": "^7.1.3",
1840 | "symfony/contracts": "^1.0.2",
1841 | "symfony/polyfill-mbstring": "~1.0"
1842 | },
1843 | "conflict": {
1844 | "symfony/config": "<3.4",
1845 | "symfony/dependency-injection": "<3.4",
1846 | "symfony/yaml": "<3.4"
1847 | },
1848 | "provide": {
1849 | "symfony/translation-contracts-implementation": "1.0"
1850 | },
1851 | "require-dev": {
1852 | "psr/log": "~1.0",
1853 | "symfony/config": "~3.4|~4.0",
1854 | "symfony/console": "~3.4|~4.0",
1855 | "symfony/dependency-injection": "~3.4|~4.0",
1856 | "symfony/finder": "~2.8|~3.0|~4.0",
1857 | "symfony/intl": "~3.4|~4.0",
1858 | "symfony/yaml": "~3.4|~4.0"
1859 | },
1860 | "suggest": {
1861 | "psr/log-implementation": "To use logging capability in translator",
1862 | "symfony/config": "",
1863 | "symfony/yaml": ""
1864 | },
1865 | "type": "library",
1866 | "extra": {
1867 | "branch-alias": {
1868 | "dev-master": "4.2-dev"
1869 | }
1870 | },
1871 | "autoload": {
1872 | "psr-4": {
1873 | "Symfony\\Component\\Translation\\": ""
1874 | },
1875 | "exclude-from-classmap": [
1876 | "/Tests/"
1877 | ]
1878 | },
1879 | "notification-url": "https://packagist.org/downloads/",
1880 | "license": [
1881 | "MIT"
1882 | ],
1883 | "authors": [
1884 | {
1885 | "name": "Fabien Potencier",
1886 | "email": "fabien@symfony.com"
1887 | },
1888 | {
1889 | "name": "Symfony Community",
1890 | "homepage": "https://symfony.com/contributors"
1891 | }
1892 | ],
1893 | "description": "Symfony Translation Component",
1894 | "homepage": "https://symfony.com",
1895 | "time": "2019-01-27T23:11:39+00:00"
1896 | },
1897 | {
1898 | "name": "symfony/var-dumper",
1899 | "version": "v3.4.22",
1900 | "source": {
1901 | "type": "git",
1902 | "url": "https://github.com/symfony/var-dumper.git",
1903 | "reference": "2159335b452d929cbb9921fc4eb7d1bfed32d0be"
1904 | },
1905 | "dist": {
1906 | "type": "zip",
1907 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2159335b452d929cbb9921fc4eb7d1bfed32d0be",
1908 | "reference": "2159335b452d929cbb9921fc4eb7d1bfed32d0be",
1909 | "shasum": ""
1910 | },
1911 | "require": {
1912 | "php": "^5.5.9|>=7.0.8",
1913 | "symfony/polyfill-mbstring": "~1.0"
1914 | },
1915 | "conflict": {
1916 | "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
1917 | },
1918 | "require-dev": {
1919 | "ext-iconv": "*",
1920 | "twig/twig": "~1.34|~2.4"
1921 | },
1922 | "suggest": {
1923 | "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
1924 | "ext-intl": "To show region name in time zone dump",
1925 | "ext-symfony_debug": ""
1926 | },
1927 | "type": "library",
1928 | "extra": {
1929 | "branch-alias": {
1930 | "dev-master": "3.4-dev"
1931 | }
1932 | },
1933 | "autoload": {
1934 | "files": [
1935 | "Resources/functions/dump.php"
1936 | ],
1937 | "psr-4": {
1938 | "Symfony\\Component\\VarDumper\\": ""
1939 | },
1940 | "exclude-from-classmap": [
1941 | "/Tests/"
1942 | ]
1943 | },
1944 | "notification-url": "https://packagist.org/downloads/",
1945 | "license": [
1946 | "MIT"
1947 | ],
1948 | "authors": [
1949 | {
1950 | "name": "Nicolas Grekas",
1951 | "email": "p@tchwork.com"
1952 | },
1953 | {
1954 | "name": "Symfony Community",
1955 | "homepage": "https://symfony.com/contributors"
1956 | }
1957 | ],
1958 | "description": "Symfony mechanism for exploring and dumping PHP variables",
1959 | "homepage": "https://symfony.com",
1960 | "keywords": [
1961 | "debug",
1962 | "dump"
1963 | ],
1964 | "time": "2019-01-29T16:19:17+00:00"
1965 | },
1966 | {
1967 | "name": "tijsverkoyen/css-to-inline-styles",
1968 | "version": "2.2.1",
1969 | "source": {
1970 | "type": "git",
1971 | "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
1972 | "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757"
1973 | },
1974 | "dist": {
1975 | "type": "zip",
1976 | "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757",
1977 | "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757",
1978 | "shasum": ""
1979 | },
1980 | "require": {
1981 | "php": "^5.5 || ^7.0",
1982 | "symfony/css-selector": "^2.7 || ^3.0 || ^4.0"
1983 | },
1984 | "require-dev": {
1985 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1986 | },
1987 | "type": "library",
1988 | "extra": {
1989 | "branch-alias": {
1990 | "dev-master": "2.2.x-dev"
1991 | }
1992 | },
1993 | "autoload": {
1994 | "psr-4": {
1995 | "TijsVerkoyen\\CssToInlineStyles\\": "src"
1996 | }
1997 | },
1998 | "notification-url": "https://packagist.org/downloads/",
1999 | "license": [
2000 | "BSD-3-Clause"
2001 | ],
2002 | "authors": [
2003 | {
2004 | "name": "Tijs Verkoyen",
2005 | "email": "css_to_inline_styles@verkoyen.eu",
2006 | "role": "Developer"
2007 | }
2008 | ],
2009 | "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
2010 | "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
2011 | "time": "2017-11-27T11:13:29+00:00"
2012 | },
2013 | {
2014 | "name": "vlucas/phpdotenv",
2015 | "version": "v2.6.1",
2016 | "source": {
2017 | "type": "git",
2018 | "url": "https://github.com/vlucas/phpdotenv.git",
2019 | "reference": "2a7dcf7e3e02dc5e701004e51a6f304b713107d5"
2020 | },
2021 | "dist": {
2022 | "type": "zip",
2023 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2a7dcf7e3e02dc5e701004e51a6f304b713107d5",
2024 | "reference": "2a7dcf7e3e02dc5e701004e51a6f304b713107d5",
2025 | "shasum": ""
2026 | },
2027 | "require": {
2028 | "php": ">=5.3.9",
2029 | "symfony/polyfill-ctype": "^1.9"
2030 | },
2031 | "require-dev": {
2032 | "phpunit/phpunit": "^4.8.35 || ^5.0"
2033 | },
2034 | "type": "library",
2035 | "extra": {
2036 | "branch-alias": {
2037 | "dev-master": "2.6-dev"
2038 | }
2039 | },
2040 | "autoload": {
2041 | "psr-4": {
2042 | "Dotenv\\": "src/"
2043 | }
2044 | },
2045 | "notification-url": "https://packagist.org/downloads/",
2046 | "license": [
2047 | "BSD-3-Clause"
2048 | ],
2049 | "authors": [
2050 | {
2051 | "name": "Vance Lucas",
2052 | "email": "vance@vancelucas.com",
2053 | "homepage": "http://www.vancelucas.com"
2054 | }
2055 | ],
2056 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
2057 | "keywords": [
2058 | "dotenv",
2059 | "env",
2060 | "environment"
2061 | ],
2062 | "time": "2019-01-29T11:11:52+00:00"
2063 | }
2064 | ],
2065 | "packages-dev": [
2066 | {
2067 | "name": "doctrine/instantiator",
2068 | "version": "1.1.0",
2069 | "source": {
2070 | "type": "git",
2071 | "url": "https://github.com/doctrine/instantiator.git",
2072 | "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
2073 | },
2074 | "dist": {
2075 | "type": "zip",
2076 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
2077 | "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
2078 | "shasum": ""
2079 | },
2080 | "require": {
2081 | "php": "^7.1"
2082 | },
2083 | "require-dev": {
2084 | "athletic/athletic": "~0.1.8",
2085 | "ext-pdo": "*",
2086 | "ext-phar": "*",
2087 | "phpunit/phpunit": "^6.2.3",
2088 | "squizlabs/php_codesniffer": "^3.0.2"
2089 | },
2090 | "type": "library",
2091 | "extra": {
2092 | "branch-alias": {
2093 | "dev-master": "1.2.x-dev"
2094 | }
2095 | },
2096 | "autoload": {
2097 | "psr-4": {
2098 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
2099 | }
2100 | },
2101 | "notification-url": "https://packagist.org/downloads/",
2102 | "license": [
2103 | "MIT"
2104 | ],
2105 | "authors": [
2106 | {
2107 | "name": "Marco Pivetta",
2108 | "email": "ocramius@gmail.com",
2109 | "homepage": "http://ocramius.github.com/"
2110 | }
2111 | ],
2112 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
2113 | "homepage": "https://github.com/doctrine/instantiator",
2114 | "keywords": [
2115 | "constructor",
2116 | "instantiate"
2117 | ],
2118 | "time": "2017-07-22T11:58:36+00:00"
2119 | },
2120 | {
2121 | "name": "fzaninotto/faker",
2122 | "version": "v1.8.0",
2123 | "source": {
2124 | "type": "git",
2125 | "url": "https://github.com/fzaninotto/Faker.git",
2126 | "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de"
2127 | },
2128 | "dist": {
2129 | "type": "zip",
2130 | "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/f72816b43e74063c8b10357394b6bba8cb1c10de",
2131 | "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de",
2132 | "shasum": ""
2133 | },
2134 | "require": {
2135 | "php": "^5.3.3 || ^7.0"
2136 | },
2137 | "require-dev": {
2138 | "ext-intl": "*",
2139 | "phpunit/phpunit": "^4.8.35 || ^5.7",
2140 | "squizlabs/php_codesniffer": "^1.5"
2141 | },
2142 | "type": "library",
2143 | "extra": {
2144 | "branch-alias": {
2145 | "dev-master": "1.8-dev"
2146 | }
2147 | },
2148 | "autoload": {
2149 | "psr-4": {
2150 | "Faker\\": "src/Faker/"
2151 | }
2152 | },
2153 | "notification-url": "https://packagist.org/downloads/",
2154 | "license": [
2155 | "MIT"
2156 | ],
2157 | "authors": [
2158 | {
2159 | "name": "François Zaninotto"
2160 | }
2161 | ],
2162 | "description": "Faker is a PHP library that generates fake data for you.",
2163 | "keywords": [
2164 | "data",
2165 | "faker",
2166 | "fixtures"
2167 | ],
2168 | "time": "2018-07-12T10:23:15+00:00"
2169 | },
2170 | {
2171 | "name": "guzzlehttp/guzzle",
2172 | "version": "6.3.3",
2173 | "source": {
2174 | "type": "git",
2175 | "url": "https://github.com/guzzle/guzzle.git",
2176 | "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
2177 | },
2178 | "dist": {
2179 | "type": "zip",
2180 | "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
2181 | "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
2182 | "shasum": ""
2183 | },
2184 | "require": {
2185 | "guzzlehttp/promises": "^1.0",
2186 | "guzzlehttp/psr7": "^1.4",
2187 | "php": ">=5.5"
2188 | },
2189 | "require-dev": {
2190 | "ext-curl": "*",
2191 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
2192 | "psr/log": "^1.0"
2193 | },
2194 | "suggest": {
2195 | "psr/log": "Required for using the Log middleware"
2196 | },
2197 | "type": "library",
2198 | "extra": {
2199 | "branch-alias": {
2200 | "dev-master": "6.3-dev"
2201 | }
2202 | },
2203 | "autoload": {
2204 | "files": [
2205 | "src/functions_include.php"
2206 | ],
2207 | "psr-4": {
2208 | "GuzzleHttp\\": "src/"
2209 | }
2210 | },
2211 | "notification-url": "https://packagist.org/downloads/",
2212 | "license": [
2213 | "MIT"
2214 | ],
2215 | "authors": [
2216 | {
2217 | "name": "Michael Dowling",
2218 | "email": "mtdowling@gmail.com",
2219 | "homepage": "https://github.com/mtdowling"
2220 | }
2221 | ],
2222 | "description": "Guzzle is a PHP HTTP client library",
2223 | "homepage": "http://guzzlephp.org/",
2224 | "keywords": [
2225 | "client",
2226 | "curl",
2227 | "framework",
2228 | "http",
2229 | "http client",
2230 | "rest",
2231 | "web service"
2232 | ],
2233 | "time": "2018-04-22T15:46:56+00:00"
2234 | },
2235 | {
2236 | "name": "guzzlehttp/promises",
2237 | "version": "v1.3.1",
2238 | "source": {
2239 | "type": "git",
2240 | "url": "https://github.com/guzzle/promises.git",
2241 | "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
2242 | },
2243 | "dist": {
2244 | "type": "zip",
2245 | "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
2246 | "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
2247 | "shasum": ""
2248 | },
2249 | "require": {
2250 | "php": ">=5.5.0"
2251 | },
2252 | "require-dev": {
2253 | "phpunit/phpunit": "^4.0"
2254 | },
2255 | "type": "library",
2256 | "extra": {
2257 | "branch-alias": {
2258 | "dev-master": "1.4-dev"
2259 | }
2260 | },
2261 | "autoload": {
2262 | "psr-4": {
2263 | "GuzzleHttp\\Promise\\": "src/"
2264 | },
2265 | "files": [
2266 | "src/functions_include.php"
2267 | ]
2268 | },
2269 | "notification-url": "https://packagist.org/downloads/",
2270 | "license": [
2271 | "MIT"
2272 | ],
2273 | "authors": [
2274 | {
2275 | "name": "Michael Dowling",
2276 | "email": "mtdowling@gmail.com",
2277 | "homepage": "https://github.com/mtdowling"
2278 | }
2279 | ],
2280 | "description": "Guzzle promises library",
2281 | "keywords": [
2282 | "promise"
2283 | ],
2284 | "time": "2016-12-20T10:07:11+00:00"
2285 | },
2286 | {
2287 | "name": "guzzlehttp/psr7",
2288 | "version": "1.5.2",
2289 | "source": {
2290 | "type": "git",
2291 | "url": "https://github.com/guzzle/psr7.git",
2292 | "reference": "9f83dded91781a01c63574e387eaa769be769115"
2293 | },
2294 | "dist": {
2295 | "type": "zip",
2296 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/9f83dded91781a01c63574e387eaa769be769115",
2297 | "reference": "9f83dded91781a01c63574e387eaa769be769115",
2298 | "shasum": ""
2299 | },
2300 | "require": {
2301 | "php": ">=5.4.0",
2302 | "psr/http-message": "~1.0",
2303 | "ralouphie/getallheaders": "^2.0.5"
2304 | },
2305 | "provide": {
2306 | "psr/http-message-implementation": "1.0"
2307 | },
2308 | "require-dev": {
2309 | "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
2310 | },
2311 | "type": "library",
2312 | "extra": {
2313 | "branch-alias": {
2314 | "dev-master": "1.5-dev"
2315 | }
2316 | },
2317 | "autoload": {
2318 | "psr-4": {
2319 | "GuzzleHttp\\Psr7\\": "src/"
2320 | },
2321 | "files": [
2322 | "src/functions_include.php"
2323 | ]
2324 | },
2325 | "notification-url": "https://packagist.org/downloads/",
2326 | "license": [
2327 | "MIT"
2328 | ],
2329 | "authors": [
2330 | {
2331 | "name": "Michael Dowling",
2332 | "email": "mtdowling@gmail.com",
2333 | "homepage": "https://github.com/mtdowling"
2334 | },
2335 | {
2336 | "name": "Tobias Schultze",
2337 | "homepage": "https://github.com/Tobion"
2338 | }
2339 | ],
2340 | "description": "PSR-7 message implementation that also provides common utility methods",
2341 | "keywords": [
2342 | "http",
2343 | "message",
2344 | "psr-7",
2345 | "request",
2346 | "response",
2347 | "stream",
2348 | "uri",
2349 | "url"
2350 | ],
2351 | "time": "2018-12-04T20:46:45+00:00"
2352 | },
2353 | {
2354 | "name": "myclabs/deep-copy",
2355 | "version": "1.8.1",
2356 | "source": {
2357 | "type": "git",
2358 | "url": "https://github.com/myclabs/DeepCopy.git",
2359 | "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8"
2360 | },
2361 | "dist": {
2362 | "type": "zip",
2363 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
2364 | "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
2365 | "shasum": ""
2366 | },
2367 | "require": {
2368 | "php": "^7.1"
2369 | },
2370 | "replace": {
2371 | "myclabs/deep-copy": "self.version"
2372 | },
2373 | "require-dev": {
2374 | "doctrine/collections": "^1.0",
2375 | "doctrine/common": "^2.6",
2376 | "phpunit/phpunit": "^7.1"
2377 | },
2378 | "type": "library",
2379 | "autoload": {
2380 | "psr-4": {
2381 | "DeepCopy\\": "src/DeepCopy/"
2382 | },
2383 | "files": [
2384 | "src/DeepCopy/deep_copy.php"
2385 | ]
2386 | },
2387 | "notification-url": "https://packagist.org/downloads/",
2388 | "license": [
2389 | "MIT"
2390 | ],
2391 | "description": "Create deep copies (clones) of your objects",
2392 | "keywords": [
2393 | "clone",
2394 | "copy",
2395 | "duplicate",
2396 | "object",
2397 | "object graph"
2398 | ],
2399 | "time": "2018-06-11T23:09:50+00:00"
2400 | },
2401 | {
2402 | "name": "orchestra/testbench",
2403 | "version": "v3.5.5",
2404 | "source": {
2405 | "type": "git",
2406 | "url": "https://github.com/orchestral/testbench.git",
2407 | "reference": "fd032489df469d611a264083e62db96677c9061e"
2408 | },
2409 | "dist": {
2410 | "type": "zip",
2411 | "url": "https://api.github.com/repos/orchestral/testbench/zipball/fd032489df469d611a264083e62db96677c9061e",
2412 | "reference": "fd032489df469d611a264083e62db96677c9061e",
2413 | "shasum": ""
2414 | },
2415 | "require": {
2416 | "laravel/framework": "~5.5.34",
2417 | "orchestra/testbench-core": "~3.5.9",
2418 | "php": ">=7.0",
2419 | "phpunit/phpunit": "~6.0"
2420 | },
2421 | "require-dev": {
2422 | "mockery/mockery": "~1.0",
2423 | "orchestra/database": "~3.5.0"
2424 | },
2425 | "suggest": {
2426 | "orchestra/testbench-browser-kit": "Allow to use legacy BrowserKit for testing (~3.5)."
2427 | },
2428 | "type": "library",
2429 | "extra": {
2430 | "branch-alias": {
2431 | "dev-master": "3.5-dev"
2432 | }
2433 | },
2434 | "notification-url": "https://packagist.org/downloads/",
2435 | "license": [
2436 | "MIT"
2437 | ],
2438 | "authors": [
2439 | {
2440 | "name": "Mior Muhammad Zaki",
2441 | "email": "crynobone@gmail.com",
2442 | "homepage": "https://github.com/crynobone"
2443 | }
2444 | ],
2445 | "description": "Laravel Testing Helper for Packages Development",
2446 | "homepage": "http://orchestraplatform.com/docs/latest/components/testbench/",
2447 | "keywords": [
2448 | "BDD",
2449 | "TDD",
2450 | "laravel",
2451 | "orchestra-platform",
2452 | "orchestral",
2453 | "testing"
2454 | ],
2455 | "time": "2018-02-20T05:30:39+00:00"
2456 | },
2457 | {
2458 | "name": "orchestra/testbench-core",
2459 | "version": "v3.5.10",
2460 | "source": {
2461 | "type": "git",
2462 | "url": "https://github.com/orchestral/testbench-core.git",
2463 | "reference": "09a57dc446a24fd19a75ff57b679b86094251f8e"
2464 | },
2465 | "dist": {
2466 | "type": "zip",
2467 | "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/09a57dc446a24fd19a75ff57b679b86094251f8e",
2468 | "reference": "09a57dc446a24fd19a75ff57b679b86094251f8e",
2469 | "shasum": ""
2470 | },
2471 | "require": {
2472 | "fzaninotto/faker": "~1.4",
2473 | "php": ">=7.0"
2474 | },
2475 | "require-dev": {
2476 | "laravel/framework": "~5.5.0",
2477 | "mockery/mockery": "~1.0",
2478 | "orchestra/database": "~3.5.0",
2479 | "phpunit/phpunit": "~6.0"
2480 | },
2481 | "suggest": {
2482 | "laravel/framework": "Required for testing (~5.5.0).",
2483 | "mockery/mockery": "Allow to use Mockery for testing (~1.0).",
2484 | "orchestra/database": "Allow to use --realpath migration for testing (~3.5).",
2485 | "orchestra/testbench-browser-kit": "Allow to use legacy BrowserKit for testing (~3.5).",
2486 | "orchestra/testbench-dusk": "Allow to use Laravel Dusk for testing (~3.5).",
2487 | "phpunit/phpunit": "Allow to use PHPUnit for testing (~6.0)."
2488 | },
2489 | "type": "library",
2490 | "extra": {
2491 | "branch-alias": {
2492 | "dev-master": "3.5-dev"
2493 | }
2494 | },
2495 | "autoload": {
2496 | "psr-4": {
2497 | "Orchestra\\Testbench\\": "src/"
2498 | }
2499 | },
2500 | "notification-url": "https://packagist.org/downloads/",
2501 | "license": [
2502 | "MIT"
2503 | ],
2504 | "authors": [
2505 | {
2506 | "name": "Mior Muhammad Zaki",
2507 | "email": "crynobone@gmail.com",
2508 | "homepage": "https://github.com/crynobone"
2509 | }
2510 | ],
2511 | "description": "Testing Helper for Laravel Development",
2512 | "homepage": "http://orchestraplatform.com/docs/latest/components/testbench/",
2513 | "keywords": [
2514 | "BDD",
2515 | "TDD",
2516 | "laravel",
2517 | "orchestra-platform",
2518 | "orchestral",
2519 | "testing"
2520 | ],
2521 | "time": "2018-03-13T02:35:58+00:00"
2522 | },
2523 | {
2524 | "name": "phar-io/manifest",
2525 | "version": "1.0.1",
2526 | "source": {
2527 | "type": "git",
2528 | "url": "https://github.com/phar-io/manifest.git",
2529 | "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
2530 | },
2531 | "dist": {
2532 | "type": "zip",
2533 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0",
2534 | "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
2535 | "shasum": ""
2536 | },
2537 | "require": {
2538 | "ext-dom": "*",
2539 | "ext-phar": "*",
2540 | "phar-io/version": "^1.0.1",
2541 | "php": "^5.6 || ^7.0"
2542 | },
2543 | "type": "library",
2544 | "extra": {
2545 | "branch-alias": {
2546 | "dev-master": "1.0.x-dev"
2547 | }
2548 | },
2549 | "autoload": {
2550 | "classmap": [
2551 | "src/"
2552 | ]
2553 | },
2554 | "notification-url": "https://packagist.org/downloads/",
2555 | "license": [
2556 | "BSD-3-Clause"
2557 | ],
2558 | "authors": [
2559 | {
2560 | "name": "Arne Blankerts",
2561 | "email": "arne@blankerts.de",
2562 | "role": "Developer"
2563 | },
2564 | {
2565 | "name": "Sebastian Heuer",
2566 | "email": "sebastian@phpeople.de",
2567 | "role": "Developer"
2568 | },
2569 | {
2570 | "name": "Sebastian Bergmann",
2571 | "email": "sebastian@phpunit.de",
2572 | "role": "Developer"
2573 | }
2574 | ],
2575 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
2576 | "time": "2017-03-05T18:14:27+00:00"
2577 | },
2578 | {
2579 | "name": "phar-io/version",
2580 | "version": "1.0.1",
2581 | "source": {
2582 | "type": "git",
2583 | "url": "https://github.com/phar-io/version.git",
2584 | "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
2585 | },
2586 | "dist": {
2587 | "type": "zip",
2588 | "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df",
2589 | "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
2590 | "shasum": ""
2591 | },
2592 | "require": {
2593 | "php": "^5.6 || ^7.0"
2594 | },
2595 | "type": "library",
2596 | "autoload": {
2597 | "classmap": [
2598 | "src/"
2599 | ]
2600 | },
2601 | "notification-url": "https://packagist.org/downloads/",
2602 | "license": [
2603 | "BSD-3-Clause"
2604 | ],
2605 | "authors": [
2606 | {
2607 | "name": "Arne Blankerts",
2608 | "email": "arne@blankerts.de",
2609 | "role": "Developer"
2610 | },
2611 | {
2612 | "name": "Sebastian Heuer",
2613 | "email": "sebastian@phpeople.de",
2614 | "role": "Developer"
2615 | },
2616 | {
2617 | "name": "Sebastian Bergmann",
2618 | "email": "sebastian@phpunit.de",
2619 | "role": "Developer"
2620 | }
2621 | ],
2622 | "description": "Library for handling version information and constraints",
2623 | "time": "2017-03-05T17:38:23+00:00"
2624 | },
2625 | {
2626 | "name": "phpdocumentor/reflection-common",
2627 | "version": "1.0.1",
2628 | "source": {
2629 | "type": "git",
2630 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
2631 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
2632 | },
2633 | "dist": {
2634 | "type": "zip",
2635 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
2636 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
2637 | "shasum": ""
2638 | },
2639 | "require": {
2640 | "php": ">=5.5"
2641 | },
2642 | "require-dev": {
2643 | "phpunit/phpunit": "^4.6"
2644 | },
2645 | "type": "library",
2646 | "extra": {
2647 | "branch-alias": {
2648 | "dev-master": "1.0.x-dev"
2649 | }
2650 | },
2651 | "autoload": {
2652 | "psr-4": {
2653 | "phpDocumentor\\Reflection\\": [
2654 | "src"
2655 | ]
2656 | }
2657 | },
2658 | "notification-url": "https://packagist.org/downloads/",
2659 | "license": [
2660 | "MIT"
2661 | ],
2662 | "authors": [
2663 | {
2664 | "name": "Jaap van Otterdijk",
2665 | "email": "opensource@ijaap.nl"
2666 | }
2667 | ],
2668 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
2669 | "homepage": "http://www.phpdoc.org",
2670 | "keywords": [
2671 | "FQSEN",
2672 | "phpDocumentor",
2673 | "phpdoc",
2674 | "reflection",
2675 | "static analysis"
2676 | ],
2677 | "time": "2017-09-11T18:02:19+00:00"
2678 | },
2679 | {
2680 | "name": "phpdocumentor/reflection-docblock",
2681 | "version": "4.3.0",
2682 | "source": {
2683 | "type": "git",
2684 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
2685 | "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
2686 | },
2687 | "dist": {
2688 | "type": "zip",
2689 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
2690 | "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
2691 | "shasum": ""
2692 | },
2693 | "require": {
2694 | "php": "^7.0",
2695 | "phpdocumentor/reflection-common": "^1.0.0",
2696 | "phpdocumentor/type-resolver": "^0.4.0",
2697 | "webmozart/assert": "^1.0"
2698 | },
2699 | "require-dev": {
2700 | "doctrine/instantiator": "~1.0.5",
2701 | "mockery/mockery": "^1.0",
2702 | "phpunit/phpunit": "^6.4"
2703 | },
2704 | "type": "library",
2705 | "extra": {
2706 | "branch-alias": {
2707 | "dev-master": "4.x-dev"
2708 | }
2709 | },
2710 | "autoload": {
2711 | "psr-4": {
2712 | "phpDocumentor\\Reflection\\": [
2713 | "src/"
2714 | ]
2715 | }
2716 | },
2717 | "notification-url": "https://packagist.org/downloads/",
2718 | "license": [
2719 | "MIT"
2720 | ],
2721 | "authors": [
2722 | {
2723 | "name": "Mike van Riel",
2724 | "email": "me@mikevanriel.com"
2725 | }
2726 | ],
2727 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
2728 | "time": "2017-11-30T07:14:17+00:00"
2729 | },
2730 | {
2731 | "name": "phpdocumentor/type-resolver",
2732 | "version": "0.4.0",
2733 | "source": {
2734 | "type": "git",
2735 | "url": "https://github.com/phpDocumentor/TypeResolver.git",
2736 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
2737 | },
2738 | "dist": {
2739 | "type": "zip",
2740 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
2741 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
2742 | "shasum": ""
2743 | },
2744 | "require": {
2745 | "php": "^5.5 || ^7.0",
2746 | "phpdocumentor/reflection-common": "^1.0"
2747 | },
2748 | "require-dev": {
2749 | "mockery/mockery": "^0.9.4",
2750 | "phpunit/phpunit": "^5.2||^4.8.24"
2751 | },
2752 | "type": "library",
2753 | "extra": {
2754 | "branch-alias": {
2755 | "dev-master": "1.0.x-dev"
2756 | }
2757 | },
2758 | "autoload": {
2759 | "psr-4": {
2760 | "phpDocumentor\\Reflection\\": [
2761 | "src/"
2762 | ]
2763 | }
2764 | },
2765 | "notification-url": "https://packagist.org/downloads/",
2766 | "license": [
2767 | "MIT"
2768 | ],
2769 | "authors": [
2770 | {
2771 | "name": "Mike van Riel",
2772 | "email": "me@mikevanriel.com"
2773 | }
2774 | ],
2775 | "time": "2017-07-14T14:27:02+00:00"
2776 | },
2777 | {
2778 | "name": "phpspec/prophecy",
2779 | "version": "1.8.0",
2780 | "source": {
2781 | "type": "git",
2782 | "url": "https://github.com/phpspec/prophecy.git",
2783 | "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06"
2784 | },
2785 | "dist": {
2786 | "type": "zip",
2787 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
2788 | "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
2789 | "shasum": ""
2790 | },
2791 | "require": {
2792 | "doctrine/instantiator": "^1.0.2",
2793 | "php": "^5.3|^7.0",
2794 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
2795 | "sebastian/comparator": "^1.1|^2.0|^3.0",
2796 | "sebastian/recursion-context": "^1.0|^2.0|^3.0"
2797 | },
2798 | "require-dev": {
2799 | "phpspec/phpspec": "^2.5|^3.2",
2800 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
2801 | },
2802 | "type": "library",
2803 | "extra": {
2804 | "branch-alias": {
2805 | "dev-master": "1.8.x-dev"
2806 | }
2807 | },
2808 | "autoload": {
2809 | "psr-0": {
2810 | "Prophecy\\": "src/"
2811 | }
2812 | },
2813 | "notification-url": "https://packagist.org/downloads/",
2814 | "license": [
2815 | "MIT"
2816 | ],
2817 | "authors": [
2818 | {
2819 | "name": "Konstantin Kudryashov",
2820 | "email": "ever.zet@gmail.com",
2821 | "homepage": "http://everzet.com"
2822 | },
2823 | {
2824 | "name": "Marcello Duarte",
2825 | "email": "marcello.duarte@gmail.com"
2826 | }
2827 | ],
2828 | "description": "Highly opinionated mocking framework for PHP 5.3+",
2829 | "homepage": "https://github.com/phpspec/prophecy",
2830 | "keywords": [
2831 | "Double",
2832 | "Dummy",
2833 | "fake",
2834 | "mock",
2835 | "spy",
2836 | "stub"
2837 | ],
2838 | "time": "2018-08-05T17:53:17+00:00"
2839 | },
2840 | {
2841 | "name": "phpunit/php-code-coverage",
2842 | "version": "5.3.2",
2843 | "source": {
2844 | "type": "git",
2845 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
2846 | "reference": "c89677919c5dd6d3b3852f230a663118762218ac"
2847 | },
2848 | "dist": {
2849 | "type": "zip",
2850 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
2851 | "reference": "c89677919c5dd6d3b3852f230a663118762218ac",
2852 | "shasum": ""
2853 | },
2854 | "require": {
2855 | "ext-dom": "*",
2856 | "ext-xmlwriter": "*",
2857 | "php": "^7.0",
2858 | "phpunit/php-file-iterator": "^1.4.2",
2859 | "phpunit/php-text-template": "^1.2.1",
2860 | "phpunit/php-token-stream": "^2.0.1",
2861 | "sebastian/code-unit-reverse-lookup": "^1.0.1",
2862 | "sebastian/environment": "^3.0",
2863 | "sebastian/version": "^2.0.1",
2864 | "theseer/tokenizer": "^1.1"
2865 | },
2866 | "require-dev": {
2867 | "phpunit/phpunit": "^6.0"
2868 | },
2869 | "suggest": {
2870 | "ext-xdebug": "^2.5.5"
2871 | },
2872 | "type": "library",
2873 | "extra": {
2874 | "branch-alias": {
2875 | "dev-master": "5.3.x-dev"
2876 | }
2877 | },
2878 | "autoload": {
2879 | "classmap": [
2880 | "src/"
2881 | ]
2882 | },
2883 | "notification-url": "https://packagist.org/downloads/",
2884 | "license": [
2885 | "BSD-3-Clause"
2886 | ],
2887 | "authors": [
2888 | {
2889 | "name": "Sebastian Bergmann",
2890 | "email": "sebastian@phpunit.de",
2891 | "role": "lead"
2892 | }
2893 | ],
2894 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
2895 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
2896 | "keywords": [
2897 | "coverage",
2898 | "testing",
2899 | "xunit"
2900 | ],
2901 | "time": "2018-04-06T15:36:58+00:00"
2902 | },
2903 | {
2904 | "name": "phpunit/php-file-iterator",
2905 | "version": "1.4.5",
2906 | "source": {
2907 | "type": "git",
2908 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
2909 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
2910 | },
2911 | "dist": {
2912 | "type": "zip",
2913 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
2914 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
2915 | "shasum": ""
2916 | },
2917 | "require": {
2918 | "php": ">=5.3.3"
2919 | },
2920 | "type": "library",
2921 | "extra": {
2922 | "branch-alias": {
2923 | "dev-master": "1.4.x-dev"
2924 | }
2925 | },
2926 | "autoload": {
2927 | "classmap": [
2928 | "src/"
2929 | ]
2930 | },
2931 | "notification-url": "https://packagist.org/downloads/",
2932 | "license": [
2933 | "BSD-3-Clause"
2934 | ],
2935 | "authors": [
2936 | {
2937 | "name": "Sebastian Bergmann",
2938 | "email": "sb@sebastian-bergmann.de",
2939 | "role": "lead"
2940 | }
2941 | ],
2942 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
2943 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
2944 | "keywords": [
2945 | "filesystem",
2946 | "iterator"
2947 | ],
2948 | "time": "2017-11-27T13:52:08+00:00"
2949 | },
2950 | {
2951 | "name": "phpunit/php-text-template",
2952 | "version": "1.2.1",
2953 | "source": {
2954 | "type": "git",
2955 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
2956 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
2957 | },
2958 | "dist": {
2959 | "type": "zip",
2960 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
2961 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
2962 | "shasum": ""
2963 | },
2964 | "require": {
2965 | "php": ">=5.3.3"
2966 | },
2967 | "type": "library",
2968 | "autoload": {
2969 | "classmap": [
2970 | "src/"
2971 | ]
2972 | },
2973 | "notification-url": "https://packagist.org/downloads/",
2974 | "license": [
2975 | "BSD-3-Clause"
2976 | ],
2977 | "authors": [
2978 | {
2979 | "name": "Sebastian Bergmann",
2980 | "email": "sebastian@phpunit.de",
2981 | "role": "lead"
2982 | }
2983 | ],
2984 | "description": "Simple template engine.",
2985 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
2986 | "keywords": [
2987 | "template"
2988 | ],
2989 | "time": "2015-06-21T13:50:34+00:00"
2990 | },
2991 | {
2992 | "name": "phpunit/php-timer",
2993 | "version": "1.0.9",
2994 | "source": {
2995 | "type": "git",
2996 | "url": "https://github.com/sebastianbergmann/php-timer.git",
2997 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
2998 | },
2999 | "dist": {
3000 | "type": "zip",
3001 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
3002 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
3003 | "shasum": ""
3004 | },
3005 | "require": {
3006 | "php": "^5.3.3 || ^7.0"
3007 | },
3008 | "require-dev": {
3009 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
3010 | },
3011 | "type": "library",
3012 | "extra": {
3013 | "branch-alias": {
3014 | "dev-master": "1.0-dev"
3015 | }
3016 | },
3017 | "autoload": {
3018 | "classmap": [
3019 | "src/"
3020 | ]
3021 | },
3022 | "notification-url": "https://packagist.org/downloads/",
3023 | "license": [
3024 | "BSD-3-Clause"
3025 | ],
3026 | "authors": [
3027 | {
3028 | "name": "Sebastian Bergmann",
3029 | "email": "sb@sebastian-bergmann.de",
3030 | "role": "lead"
3031 | }
3032 | ],
3033 | "description": "Utility class for timing",
3034 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
3035 | "keywords": [
3036 | "timer"
3037 | ],
3038 | "time": "2017-02-26T11:10:40+00:00"
3039 | },
3040 | {
3041 | "name": "phpunit/php-token-stream",
3042 | "version": "2.0.2",
3043 | "source": {
3044 | "type": "git",
3045 | "url": "https://github.com/sebastianbergmann/php-token-stream.git",
3046 | "reference": "791198a2c6254db10131eecfe8c06670700904db"
3047 | },
3048 | "dist": {
3049 | "type": "zip",
3050 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
3051 | "reference": "791198a2c6254db10131eecfe8c06670700904db",
3052 | "shasum": ""
3053 | },
3054 | "require": {
3055 | "ext-tokenizer": "*",
3056 | "php": "^7.0"
3057 | },
3058 | "require-dev": {
3059 | "phpunit/phpunit": "^6.2.4"
3060 | },
3061 | "type": "library",
3062 | "extra": {
3063 | "branch-alias": {
3064 | "dev-master": "2.0-dev"
3065 | }
3066 | },
3067 | "autoload": {
3068 | "classmap": [
3069 | "src/"
3070 | ]
3071 | },
3072 | "notification-url": "https://packagist.org/downloads/",
3073 | "license": [
3074 | "BSD-3-Clause"
3075 | ],
3076 | "authors": [
3077 | {
3078 | "name": "Sebastian Bergmann",
3079 | "email": "sebastian@phpunit.de"
3080 | }
3081 | ],
3082 | "description": "Wrapper around PHP's tokenizer extension.",
3083 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
3084 | "keywords": [
3085 | "tokenizer"
3086 | ],
3087 | "time": "2017-11-27T05:48:46+00:00"
3088 | },
3089 | {
3090 | "name": "phpunit/phpunit",
3091 | "version": "6.5.14",
3092 | "source": {
3093 | "type": "git",
3094 | "url": "https://github.com/sebastianbergmann/phpunit.git",
3095 | "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7"
3096 | },
3097 | "dist": {
3098 | "type": "zip",
3099 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bac23fe7ff13dbdb461481f706f0e9fe746334b7",
3100 | "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7",
3101 | "shasum": ""
3102 | },
3103 | "require": {
3104 | "ext-dom": "*",
3105 | "ext-json": "*",
3106 | "ext-libxml": "*",
3107 | "ext-mbstring": "*",
3108 | "ext-xml": "*",
3109 | "myclabs/deep-copy": "^1.6.1",
3110 | "phar-io/manifest": "^1.0.1",
3111 | "phar-io/version": "^1.0",
3112 | "php": "^7.0",
3113 | "phpspec/prophecy": "^1.7",
3114 | "phpunit/php-code-coverage": "^5.3",
3115 | "phpunit/php-file-iterator": "^1.4.3",
3116 | "phpunit/php-text-template": "^1.2.1",
3117 | "phpunit/php-timer": "^1.0.9",
3118 | "phpunit/phpunit-mock-objects": "^5.0.9",
3119 | "sebastian/comparator": "^2.1",
3120 | "sebastian/diff": "^2.0",
3121 | "sebastian/environment": "^3.1",
3122 | "sebastian/exporter": "^3.1",
3123 | "sebastian/global-state": "^2.0",
3124 | "sebastian/object-enumerator": "^3.0.3",
3125 | "sebastian/resource-operations": "^1.0",
3126 | "sebastian/version": "^2.0.1"
3127 | },
3128 | "conflict": {
3129 | "phpdocumentor/reflection-docblock": "3.0.2",
3130 | "phpunit/dbunit": "<3.0"
3131 | },
3132 | "require-dev": {
3133 | "ext-pdo": "*"
3134 | },
3135 | "suggest": {
3136 | "ext-xdebug": "*",
3137 | "phpunit/php-invoker": "^1.1"
3138 | },
3139 | "bin": [
3140 | "phpunit"
3141 | ],
3142 | "type": "library",
3143 | "extra": {
3144 | "branch-alias": {
3145 | "dev-master": "6.5.x-dev"
3146 | }
3147 | },
3148 | "autoload": {
3149 | "classmap": [
3150 | "src/"
3151 | ]
3152 | },
3153 | "notification-url": "https://packagist.org/downloads/",
3154 | "license": [
3155 | "BSD-3-Clause"
3156 | ],
3157 | "authors": [
3158 | {
3159 | "name": "Sebastian Bergmann",
3160 | "email": "sebastian@phpunit.de",
3161 | "role": "lead"
3162 | }
3163 | ],
3164 | "description": "The PHP Unit Testing framework.",
3165 | "homepage": "https://phpunit.de/",
3166 | "keywords": [
3167 | "phpunit",
3168 | "testing",
3169 | "xunit"
3170 | ],
3171 | "time": "2019-02-01T05:22:47+00:00"
3172 | },
3173 | {
3174 | "name": "phpunit/phpunit-mock-objects",
3175 | "version": "5.0.10",
3176 | "source": {
3177 | "type": "git",
3178 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
3179 | "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f"
3180 | },
3181 | "dist": {
3182 | "type": "zip",
3183 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f",
3184 | "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f",
3185 | "shasum": ""
3186 | },
3187 | "require": {
3188 | "doctrine/instantiator": "^1.0.5",
3189 | "php": "^7.0",
3190 | "phpunit/php-text-template": "^1.2.1",
3191 | "sebastian/exporter": "^3.1"
3192 | },
3193 | "conflict": {
3194 | "phpunit/phpunit": "<6.0"
3195 | },
3196 | "require-dev": {
3197 | "phpunit/phpunit": "^6.5.11"
3198 | },
3199 | "suggest": {
3200 | "ext-soap": "*"
3201 | },
3202 | "type": "library",
3203 | "extra": {
3204 | "branch-alias": {
3205 | "dev-master": "5.0.x-dev"
3206 | }
3207 | },
3208 | "autoload": {
3209 | "classmap": [
3210 | "src/"
3211 | ]
3212 | },
3213 | "notification-url": "https://packagist.org/downloads/",
3214 | "license": [
3215 | "BSD-3-Clause"
3216 | ],
3217 | "authors": [
3218 | {
3219 | "name": "Sebastian Bergmann",
3220 | "email": "sebastian@phpunit.de",
3221 | "role": "lead"
3222 | }
3223 | ],
3224 | "description": "Mock Object library for PHPUnit",
3225 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
3226 | "keywords": [
3227 | "mock",
3228 | "xunit"
3229 | ],
3230 | "abandoned": true,
3231 | "time": "2018-08-09T05:50:03+00:00"
3232 | },
3233 | {
3234 | "name": "psr/http-message",
3235 | "version": "1.0.1",
3236 | "source": {
3237 | "type": "git",
3238 | "url": "https://github.com/php-fig/http-message.git",
3239 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
3240 | },
3241 | "dist": {
3242 | "type": "zip",
3243 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
3244 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
3245 | "shasum": ""
3246 | },
3247 | "require": {
3248 | "php": ">=5.3.0"
3249 | },
3250 | "type": "library",
3251 | "extra": {
3252 | "branch-alias": {
3253 | "dev-master": "1.0.x-dev"
3254 | }
3255 | },
3256 | "autoload": {
3257 | "psr-4": {
3258 | "Psr\\Http\\Message\\": "src/"
3259 | }
3260 | },
3261 | "notification-url": "https://packagist.org/downloads/",
3262 | "license": [
3263 | "MIT"
3264 | ],
3265 | "authors": [
3266 | {
3267 | "name": "PHP-FIG",
3268 | "homepage": "http://www.php-fig.org/"
3269 | }
3270 | ],
3271 | "description": "Common interface for HTTP messages",
3272 | "homepage": "https://github.com/php-fig/http-message",
3273 | "keywords": [
3274 | "http",
3275 | "http-message",
3276 | "psr",
3277 | "psr-7",
3278 | "request",
3279 | "response"
3280 | ],
3281 | "time": "2016-08-06T14:39:51+00:00"
3282 | },
3283 | {
3284 | "name": "ralouphie/getallheaders",
3285 | "version": "2.0.5",
3286 | "source": {
3287 | "type": "git",
3288 | "url": "https://github.com/ralouphie/getallheaders.git",
3289 | "reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa"
3290 | },
3291 | "dist": {
3292 | "type": "zip",
3293 | "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
3294 | "reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
3295 | "shasum": ""
3296 | },
3297 | "require": {
3298 | "php": ">=5.3"
3299 | },
3300 | "require-dev": {
3301 | "phpunit/phpunit": "~3.7.0",
3302 | "satooshi/php-coveralls": ">=1.0"
3303 | },
3304 | "type": "library",
3305 | "autoload": {
3306 | "files": [
3307 | "src/getallheaders.php"
3308 | ]
3309 | },
3310 | "notification-url": "https://packagist.org/downloads/",
3311 | "license": [
3312 | "MIT"
3313 | ],
3314 | "authors": [
3315 | {
3316 | "name": "Ralph Khattar",
3317 | "email": "ralph.khattar@gmail.com"
3318 | }
3319 | ],
3320 | "description": "A polyfill for getallheaders.",
3321 | "time": "2016-02-11T07:05:27+00:00"
3322 | },
3323 | {
3324 | "name": "sebastian/code-unit-reverse-lookup",
3325 | "version": "1.0.1",
3326 | "source": {
3327 | "type": "git",
3328 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
3329 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
3330 | },
3331 | "dist": {
3332 | "type": "zip",
3333 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
3334 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
3335 | "shasum": ""
3336 | },
3337 | "require": {
3338 | "php": "^5.6 || ^7.0"
3339 | },
3340 | "require-dev": {
3341 | "phpunit/phpunit": "^5.7 || ^6.0"
3342 | },
3343 | "type": "library",
3344 | "extra": {
3345 | "branch-alias": {
3346 | "dev-master": "1.0.x-dev"
3347 | }
3348 | },
3349 | "autoload": {
3350 | "classmap": [
3351 | "src/"
3352 | ]
3353 | },
3354 | "notification-url": "https://packagist.org/downloads/",
3355 | "license": [
3356 | "BSD-3-Clause"
3357 | ],
3358 | "authors": [
3359 | {
3360 | "name": "Sebastian Bergmann",
3361 | "email": "sebastian@phpunit.de"
3362 | }
3363 | ],
3364 | "description": "Looks up which function or method a line of code belongs to",
3365 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
3366 | "time": "2017-03-04T06:30:41+00:00"
3367 | },
3368 | {
3369 | "name": "sebastian/comparator",
3370 | "version": "2.1.3",
3371 | "source": {
3372 | "type": "git",
3373 | "url": "https://github.com/sebastianbergmann/comparator.git",
3374 | "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9"
3375 | },
3376 | "dist": {
3377 | "type": "zip",
3378 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9",
3379 | "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9",
3380 | "shasum": ""
3381 | },
3382 | "require": {
3383 | "php": "^7.0",
3384 | "sebastian/diff": "^2.0 || ^3.0",
3385 | "sebastian/exporter": "^3.1"
3386 | },
3387 | "require-dev": {
3388 | "phpunit/phpunit": "^6.4"
3389 | },
3390 | "type": "library",
3391 | "extra": {
3392 | "branch-alias": {
3393 | "dev-master": "2.1.x-dev"
3394 | }
3395 | },
3396 | "autoload": {
3397 | "classmap": [
3398 | "src/"
3399 | ]
3400 | },
3401 | "notification-url": "https://packagist.org/downloads/",
3402 | "license": [
3403 | "BSD-3-Clause"
3404 | ],
3405 | "authors": [
3406 | {
3407 | "name": "Jeff Welch",
3408 | "email": "whatthejeff@gmail.com"
3409 | },
3410 | {
3411 | "name": "Volker Dusch",
3412 | "email": "github@wallbash.com"
3413 | },
3414 | {
3415 | "name": "Bernhard Schussek",
3416 | "email": "bschussek@2bepublished.at"
3417 | },
3418 | {
3419 | "name": "Sebastian Bergmann",
3420 | "email": "sebastian@phpunit.de"
3421 | }
3422 | ],
3423 | "description": "Provides the functionality to compare PHP values for equality",
3424 | "homepage": "https://github.com/sebastianbergmann/comparator",
3425 | "keywords": [
3426 | "comparator",
3427 | "compare",
3428 | "equality"
3429 | ],
3430 | "time": "2018-02-01T13:46:46+00:00"
3431 | },
3432 | {
3433 | "name": "sebastian/diff",
3434 | "version": "2.0.1",
3435 | "source": {
3436 | "type": "git",
3437 | "url": "https://github.com/sebastianbergmann/diff.git",
3438 | "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
3439 | },
3440 | "dist": {
3441 | "type": "zip",
3442 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
3443 | "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
3444 | "shasum": ""
3445 | },
3446 | "require": {
3447 | "php": "^7.0"
3448 | },
3449 | "require-dev": {
3450 | "phpunit/phpunit": "^6.2"
3451 | },
3452 | "type": "library",
3453 | "extra": {
3454 | "branch-alias": {
3455 | "dev-master": "2.0-dev"
3456 | }
3457 | },
3458 | "autoload": {
3459 | "classmap": [
3460 | "src/"
3461 | ]
3462 | },
3463 | "notification-url": "https://packagist.org/downloads/",
3464 | "license": [
3465 | "BSD-3-Clause"
3466 | ],
3467 | "authors": [
3468 | {
3469 | "name": "Kore Nordmann",
3470 | "email": "mail@kore-nordmann.de"
3471 | },
3472 | {
3473 | "name": "Sebastian Bergmann",
3474 | "email": "sebastian@phpunit.de"
3475 | }
3476 | ],
3477 | "description": "Diff implementation",
3478 | "homepage": "https://github.com/sebastianbergmann/diff",
3479 | "keywords": [
3480 | "diff"
3481 | ],
3482 | "time": "2017-08-03T08:09:46+00:00"
3483 | },
3484 | {
3485 | "name": "sebastian/environment",
3486 | "version": "3.1.0",
3487 | "source": {
3488 | "type": "git",
3489 | "url": "https://github.com/sebastianbergmann/environment.git",
3490 | "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
3491 | },
3492 | "dist": {
3493 | "type": "zip",
3494 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
3495 | "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
3496 | "shasum": ""
3497 | },
3498 | "require": {
3499 | "php": "^7.0"
3500 | },
3501 | "require-dev": {
3502 | "phpunit/phpunit": "^6.1"
3503 | },
3504 | "type": "library",
3505 | "extra": {
3506 | "branch-alias": {
3507 | "dev-master": "3.1.x-dev"
3508 | }
3509 | },
3510 | "autoload": {
3511 | "classmap": [
3512 | "src/"
3513 | ]
3514 | },
3515 | "notification-url": "https://packagist.org/downloads/",
3516 | "license": [
3517 | "BSD-3-Clause"
3518 | ],
3519 | "authors": [
3520 | {
3521 | "name": "Sebastian Bergmann",
3522 | "email": "sebastian@phpunit.de"
3523 | }
3524 | ],
3525 | "description": "Provides functionality to handle HHVM/PHP environments",
3526 | "homepage": "http://www.github.com/sebastianbergmann/environment",
3527 | "keywords": [
3528 | "Xdebug",
3529 | "environment",
3530 | "hhvm"
3531 | ],
3532 | "time": "2017-07-01T08:51:00+00:00"
3533 | },
3534 | {
3535 | "name": "sebastian/exporter",
3536 | "version": "3.1.0",
3537 | "source": {
3538 | "type": "git",
3539 | "url": "https://github.com/sebastianbergmann/exporter.git",
3540 | "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
3541 | },
3542 | "dist": {
3543 | "type": "zip",
3544 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937",
3545 | "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
3546 | "shasum": ""
3547 | },
3548 | "require": {
3549 | "php": "^7.0",
3550 | "sebastian/recursion-context": "^3.0"
3551 | },
3552 | "require-dev": {
3553 | "ext-mbstring": "*",
3554 | "phpunit/phpunit": "^6.0"
3555 | },
3556 | "type": "library",
3557 | "extra": {
3558 | "branch-alias": {
3559 | "dev-master": "3.1.x-dev"
3560 | }
3561 | },
3562 | "autoload": {
3563 | "classmap": [
3564 | "src/"
3565 | ]
3566 | },
3567 | "notification-url": "https://packagist.org/downloads/",
3568 | "license": [
3569 | "BSD-3-Clause"
3570 | ],
3571 | "authors": [
3572 | {
3573 | "name": "Jeff Welch",
3574 | "email": "whatthejeff@gmail.com"
3575 | },
3576 | {
3577 | "name": "Volker Dusch",
3578 | "email": "github@wallbash.com"
3579 | },
3580 | {
3581 | "name": "Bernhard Schussek",
3582 | "email": "bschussek@2bepublished.at"
3583 | },
3584 | {
3585 | "name": "Sebastian Bergmann",
3586 | "email": "sebastian@phpunit.de"
3587 | },
3588 | {
3589 | "name": "Adam Harvey",
3590 | "email": "aharvey@php.net"
3591 | }
3592 | ],
3593 | "description": "Provides the functionality to export PHP variables for visualization",
3594 | "homepage": "http://www.github.com/sebastianbergmann/exporter",
3595 | "keywords": [
3596 | "export",
3597 | "exporter"
3598 | ],
3599 | "time": "2017-04-03T13:19:02+00:00"
3600 | },
3601 | {
3602 | "name": "sebastian/global-state",
3603 | "version": "2.0.0",
3604 | "source": {
3605 | "type": "git",
3606 | "url": "https://github.com/sebastianbergmann/global-state.git",
3607 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
3608 | },
3609 | "dist": {
3610 | "type": "zip",
3611 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
3612 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
3613 | "shasum": ""
3614 | },
3615 | "require": {
3616 | "php": "^7.0"
3617 | },
3618 | "require-dev": {
3619 | "phpunit/phpunit": "^6.0"
3620 | },
3621 | "suggest": {
3622 | "ext-uopz": "*"
3623 | },
3624 | "type": "library",
3625 | "extra": {
3626 | "branch-alias": {
3627 | "dev-master": "2.0-dev"
3628 | }
3629 | },
3630 | "autoload": {
3631 | "classmap": [
3632 | "src/"
3633 | ]
3634 | },
3635 | "notification-url": "https://packagist.org/downloads/",
3636 | "license": [
3637 | "BSD-3-Clause"
3638 | ],
3639 | "authors": [
3640 | {
3641 | "name": "Sebastian Bergmann",
3642 | "email": "sebastian@phpunit.de"
3643 | }
3644 | ],
3645 | "description": "Snapshotting of global state",
3646 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
3647 | "keywords": [
3648 | "global state"
3649 | ],
3650 | "time": "2017-04-27T15:39:26+00:00"
3651 | },
3652 | {
3653 | "name": "sebastian/object-enumerator",
3654 | "version": "3.0.3",
3655 | "source": {
3656 | "type": "git",
3657 | "url": "https://github.com/sebastianbergmann/object-enumerator.git",
3658 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
3659 | },
3660 | "dist": {
3661 | "type": "zip",
3662 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
3663 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
3664 | "shasum": ""
3665 | },
3666 | "require": {
3667 | "php": "^7.0",
3668 | "sebastian/object-reflector": "^1.1.1",
3669 | "sebastian/recursion-context": "^3.0"
3670 | },
3671 | "require-dev": {
3672 | "phpunit/phpunit": "^6.0"
3673 | },
3674 | "type": "library",
3675 | "extra": {
3676 | "branch-alias": {
3677 | "dev-master": "3.0.x-dev"
3678 | }
3679 | },
3680 | "autoload": {
3681 | "classmap": [
3682 | "src/"
3683 | ]
3684 | },
3685 | "notification-url": "https://packagist.org/downloads/",
3686 | "license": [
3687 | "BSD-3-Clause"
3688 | ],
3689 | "authors": [
3690 | {
3691 | "name": "Sebastian Bergmann",
3692 | "email": "sebastian@phpunit.de"
3693 | }
3694 | ],
3695 | "description": "Traverses array structures and object graphs to enumerate all referenced objects",
3696 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
3697 | "time": "2017-08-03T12:35:26+00:00"
3698 | },
3699 | {
3700 | "name": "sebastian/object-reflector",
3701 | "version": "1.1.1",
3702 | "source": {
3703 | "type": "git",
3704 | "url": "https://github.com/sebastianbergmann/object-reflector.git",
3705 | "reference": "773f97c67f28de00d397be301821b06708fca0be"
3706 | },
3707 | "dist": {
3708 | "type": "zip",
3709 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
3710 | "reference": "773f97c67f28de00d397be301821b06708fca0be",
3711 | "shasum": ""
3712 | },
3713 | "require": {
3714 | "php": "^7.0"
3715 | },
3716 | "require-dev": {
3717 | "phpunit/phpunit": "^6.0"
3718 | },
3719 | "type": "library",
3720 | "extra": {
3721 | "branch-alias": {
3722 | "dev-master": "1.1-dev"
3723 | }
3724 | },
3725 | "autoload": {
3726 | "classmap": [
3727 | "src/"
3728 | ]
3729 | },
3730 | "notification-url": "https://packagist.org/downloads/",
3731 | "license": [
3732 | "BSD-3-Clause"
3733 | ],
3734 | "authors": [
3735 | {
3736 | "name": "Sebastian Bergmann",
3737 | "email": "sebastian@phpunit.de"
3738 | }
3739 | ],
3740 | "description": "Allows reflection of object attributes, including inherited and non-public ones",
3741 | "homepage": "https://github.com/sebastianbergmann/object-reflector/",
3742 | "time": "2017-03-29T09:07:27+00:00"
3743 | },
3744 | {
3745 | "name": "sebastian/recursion-context",
3746 | "version": "3.0.0",
3747 | "source": {
3748 | "type": "git",
3749 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
3750 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
3751 | },
3752 | "dist": {
3753 | "type": "zip",
3754 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
3755 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
3756 | "shasum": ""
3757 | },
3758 | "require": {
3759 | "php": "^7.0"
3760 | },
3761 | "require-dev": {
3762 | "phpunit/phpunit": "^6.0"
3763 | },
3764 | "type": "library",
3765 | "extra": {
3766 | "branch-alias": {
3767 | "dev-master": "3.0.x-dev"
3768 | }
3769 | },
3770 | "autoload": {
3771 | "classmap": [
3772 | "src/"
3773 | ]
3774 | },
3775 | "notification-url": "https://packagist.org/downloads/",
3776 | "license": [
3777 | "BSD-3-Clause"
3778 | ],
3779 | "authors": [
3780 | {
3781 | "name": "Jeff Welch",
3782 | "email": "whatthejeff@gmail.com"
3783 | },
3784 | {
3785 | "name": "Sebastian Bergmann",
3786 | "email": "sebastian@phpunit.de"
3787 | },
3788 | {
3789 | "name": "Adam Harvey",
3790 | "email": "aharvey@php.net"
3791 | }
3792 | ],
3793 | "description": "Provides functionality to recursively process PHP variables",
3794 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
3795 | "time": "2017-03-03T06:23:57+00:00"
3796 | },
3797 | {
3798 | "name": "sebastian/resource-operations",
3799 | "version": "1.0.0",
3800 | "source": {
3801 | "type": "git",
3802 | "url": "https://github.com/sebastianbergmann/resource-operations.git",
3803 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
3804 | },
3805 | "dist": {
3806 | "type": "zip",
3807 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
3808 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
3809 | "shasum": ""
3810 | },
3811 | "require": {
3812 | "php": ">=5.6.0"
3813 | },
3814 | "type": "library",
3815 | "extra": {
3816 | "branch-alias": {
3817 | "dev-master": "1.0.x-dev"
3818 | }
3819 | },
3820 | "autoload": {
3821 | "classmap": [
3822 | "src/"
3823 | ]
3824 | },
3825 | "notification-url": "https://packagist.org/downloads/",
3826 | "license": [
3827 | "BSD-3-Clause"
3828 | ],
3829 | "authors": [
3830 | {
3831 | "name": "Sebastian Bergmann",
3832 | "email": "sebastian@phpunit.de"
3833 | }
3834 | ],
3835 | "description": "Provides a list of PHP built-in functions that operate on resources",
3836 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
3837 | "time": "2015-07-28T20:34:47+00:00"
3838 | },
3839 | {
3840 | "name": "sebastian/version",
3841 | "version": "2.0.1",
3842 | "source": {
3843 | "type": "git",
3844 | "url": "https://github.com/sebastianbergmann/version.git",
3845 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
3846 | },
3847 | "dist": {
3848 | "type": "zip",
3849 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
3850 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
3851 | "shasum": ""
3852 | },
3853 | "require": {
3854 | "php": ">=5.6"
3855 | },
3856 | "type": "library",
3857 | "extra": {
3858 | "branch-alias": {
3859 | "dev-master": "2.0.x-dev"
3860 | }
3861 | },
3862 | "autoload": {
3863 | "classmap": [
3864 | "src/"
3865 | ]
3866 | },
3867 | "notification-url": "https://packagist.org/downloads/",
3868 | "license": [
3869 | "BSD-3-Clause"
3870 | ],
3871 | "authors": [
3872 | {
3873 | "name": "Sebastian Bergmann",
3874 | "email": "sebastian@phpunit.de",
3875 | "role": "lead"
3876 | }
3877 | ],
3878 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
3879 | "homepage": "https://github.com/sebastianbergmann/version",
3880 | "time": "2016-10-03T07:35:21+00:00"
3881 | },
3882 | {
3883 | "name": "squizlabs/php_codesniffer",
3884 | "version": "3.4.0",
3885 | "source": {
3886 | "type": "git",
3887 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
3888 | "reference": "379deb987e26c7cd103a7b387aea178baec96e48"
3889 | },
3890 | "dist": {
3891 | "type": "zip",
3892 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/379deb987e26c7cd103a7b387aea178baec96e48",
3893 | "reference": "379deb987e26c7cd103a7b387aea178baec96e48",
3894 | "shasum": ""
3895 | },
3896 | "require": {
3897 | "ext-simplexml": "*",
3898 | "ext-tokenizer": "*",
3899 | "ext-xmlwriter": "*",
3900 | "php": ">=5.4.0"
3901 | },
3902 | "require-dev": {
3903 | "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
3904 | },
3905 | "bin": [
3906 | "bin/phpcs",
3907 | "bin/phpcbf"
3908 | ],
3909 | "type": "library",
3910 | "extra": {
3911 | "branch-alias": {
3912 | "dev-master": "3.x-dev"
3913 | }
3914 | },
3915 | "notification-url": "https://packagist.org/downloads/",
3916 | "license": [
3917 | "BSD-3-Clause"
3918 | ],
3919 | "authors": [
3920 | {
3921 | "name": "Greg Sherwood",
3922 | "role": "lead"
3923 | }
3924 | ],
3925 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
3926 | "homepage": "http://www.squizlabs.com/php-codesniffer",
3927 | "keywords": [
3928 | "phpcs",
3929 | "standards"
3930 | ],
3931 | "time": "2018-12-19T23:57:18+00:00"
3932 | },
3933 | {
3934 | "name": "theseer/tokenizer",
3935 | "version": "1.1.0",
3936 | "source": {
3937 | "type": "git",
3938 | "url": "https://github.com/theseer/tokenizer.git",
3939 | "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b"
3940 | },
3941 | "dist": {
3942 | "type": "zip",
3943 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b",
3944 | "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b",
3945 | "shasum": ""
3946 | },
3947 | "require": {
3948 | "ext-dom": "*",
3949 | "ext-tokenizer": "*",
3950 | "ext-xmlwriter": "*",
3951 | "php": "^7.0"
3952 | },
3953 | "type": "library",
3954 | "autoload": {
3955 | "classmap": [
3956 | "src/"
3957 | ]
3958 | },
3959 | "notification-url": "https://packagist.org/downloads/",
3960 | "license": [
3961 | "BSD-3-Clause"
3962 | ],
3963 | "authors": [
3964 | {
3965 | "name": "Arne Blankerts",
3966 | "email": "arne@blankerts.de",
3967 | "role": "Developer"
3968 | }
3969 | ],
3970 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
3971 | "time": "2017-04-07T12:08:54+00:00"
3972 | },
3973 | {
3974 | "name": "webmozart/assert",
3975 | "version": "1.4.0",
3976 | "source": {
3977 | "type": "git",
3978 | "url": "https://github.com/webmozart/assert.git",
3979 | "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
3980 | },
3981 | "dist": {
3982 | "type": "zip",
3983 | "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
3984 | "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
3985 | "shasum": ""
3986 | },
3987 | "require": {
3988 | "php": "^5.3.3 || ^7.0",
3989 | "symfony/polyfill-ctype": "^1.8"
3990 | },
3991 | "require-dev": {
3992 | "phpunit/phpunit": "^4.6",
3993 | "sebastian/version": "^1.0.1"
3994 | },
3995 | "type": "library",
3996 | "extra": {
3997 | "branch-alias": {
3998 | "dev-master": "1.3-dev"
3999 | }
4000 | },
4001 | "autoload": {
4002 | "psr-4": {
4003 | "Webmozart\\Assert\\": "src/"
4004 | }
4005 | },
4006 | "notification-url": "https://packagist.org/downloads/",
4007 | "license": [
4008 | "MIT"
4009 | ],
4010 | "authors": [
4011 | {
4012 | "name": "Bernhard Schussek",
4013 | "email": "bschussek@gmail.com"
4014 | }
4015 | ],
4016 | "description": "Assertions to validate method input/output with nice error messages.",
4017 | "keywords": [
4018 | "assert",
4019 | "check",
4020 | "validate"
4021 | ],
4022 | "time": "2018-12-25T11:19:39+00:00"
4023 | }
4024 | ],
4025 | "aliases": [],
4026 | "minimum-stability": "stable",
4027 | "stability-flags": [],
4028 | "prefer-stable": false,
4029 | "prefer-lowest": false,
4030 | "platform": {
4031 | "php": ">=5.4.0"
4032 | },
4033 | "platform-dev": []
4034 | }
4035 |
--------------------------------------------------------------------------------
/config/logicboxes.php:
--------------------------------------------------------------------------------
1 | env('LOGICBOXES_ENV', 'test'),
4 | 'auth-userid' => env('LOGICBOXES_AUTHID'),
5 | 'api-key' => env('LOGICBOXES_APIKEY')
6 | ];
7 |
--------------------------------------------------------------------------------
/phpcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | PHP Code Sniffer for Package
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | warning
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | warning
44 |
45 |
46 | warning
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 | Please review this TODO comment: %s
65 | warning
66 |
67 |
68 | Please review this FIXME comment: %s
69 | warning
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
104 |
105 |
106 |
107 |
108 | warning
109 |
110 |
111 |
112 |
115 |
116 |
117 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 | tests
15 |
16 |
17 |
18 |
19 | src/
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/Api/Base.php:
--------------------------------------------------------------------------------
1 | $this->url(),
16 | 'query' => [
17 | 'auth-userid' => config('logicboxes.auth-userid'),
18 | 'api-key' => config('logicboxes.api-key'),
19 | ],
20 | ]);
21 | }
22 |
23 | public function mode()
24 | {
25 | return config('logicboxes.mode');
26 | }
27 |
28 | public function url()
29 | {
30 | if ($this->mode() === 'test') {
31 | return 'https://test.httpapi.com/api/';
32 | }
33 |
34 | return 'https://httpapi.com/api/';
35 | }
36 |
37 | protected function request($url, $query = [], $method = 'GET', $string = false, $isArray = false)
38 | {
39 | try {
40 | if (! $string) {
41 | $response = $this->client()->request($method, $url, [
42 | 'query' => array_merge($this->client()->getConfig('query'), $query),
43 | ]);
44 | } else {
45 | $query = \GuzzleHttp\Psr7\build_query($query, PHP_QUERY_RFC1738);
46 | foreach ($this->client()->getConfig('query') as $k => $v) {
47 | $query .= "&{$k}={$v}";
48 | }
49 | $base = (string) $this->client()->getConfig()['base_uri'];
50 | $fullUrl = $base.$url.'?'.$query;
51 | $client = new Client();
52 |
53 | $response = $method === 'GET' ? $client->get($fullUrl) : $client->post($fullUrl);
54 | }
55 |
56 | return [
57 | 'status' => true,
58 | 'response' => json_decode((string) $response->getBody(), $isArray),
59 | 'message' => 'success',
60 | ];
61 | } catch (ServerException $e) {
62 | $re = '/"message":"(.*?)[\",(]/';
63 | preg_match_all($re, $e->getMessage(), $matches, PREG_SET_ORDER, 0);
64 | $match = $matches[0][1];
65 | if (strstr($matches[0][1], '\u003d')) {
66 | $match = str_replace('\u003d', '', strstr($matches[0][1], '\u003d'));
67 | }
68 |
69 | return [
70 | 'status' => false,
71 | 'response' => null,
72 | 'message' => $match,
73 | ];
74 | }
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/src/Api/Contact.php:
--------------------------------------------------------------------------------
1 | request('contacts/add.json', $query, 'POST');
15 | }
16 |
17 | /**
18 | * @param $contactId
19 | * @return array
20 | */
21 | public function getDetail($contactId)
22 | {
23 | return $this->request('contacts/details.json', ['contact-id' => $contactId], 'GET');
24 | }
25 |
26 | /**
27 | * @param $customerId
28 | * @param array $type
29 | * @return array
30 | */
31 | public function getContactWithCustomerId($customerId, $type = ['Contact'])
32 | {
33 | return $this->request('contacts/default.json', [
34 | 'customer-id' => $customerId,
35 | 'type' => $type
36 | ], 'POST', true);
37 | }
38 |
39 | /**
40 | * @param $query
41 | * @return array
42 | */
43 | public function modify($query)
44 | {
45 | return $this->request('contacts/modify.json', $query, 'POST');
46 | }
47 |
48 | /**
49 | * @param $customerId
50 | * @param array $type
51 | * @return array
52 | */
53 | public function getDefaultDetails($customerId, $type = ['Contact'])
54 | {
55 | return $this->request('contacts/default.json', [
56 | 'customer-id' => $customerId,
57 | 'type' => $type
58 | ], 'POST', true);
59 | }
60 |
61 | /**
62 | * @param $query
63 | * @return array
64 | */
65 | public function setDefaultContact($query)
66 | {
67 | return $this->request('contacts/modDefault.json', $query, 'POST', true);
68 | }
69 |
70 | /**
71 | * @param $contactId
72 | * @return array
73 | */
74 | public function delete($contactId)
75 | {
76 | $query = [
77 | 'contact-id' => $contactId
78 | ];
79 |
80 | return $this->request('contacts/modDefault.json', $query, 'POST');
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/src/Api/Customer.php:
--------------------------------------------------------------------------------
1 | request('customers/signup.json', $customerData, 'POST', false);
15 | }
16 |
17 | /**
18 | * Update customer details.
19 | *
20 | * @param $customerId
21 | * @param array $customerData
22 | *
23 | * @return array
24 | */
25 | public function update($customerId, array $customerData)
26 | {
27 | if (filter_var($customerId, FILTER_VALIDATE_EMAIL)) {
28 | return [
29 | 'status' => false,
30 | 'message' => 'You must provide customer id not an email.',
31 | 'response' => null
32 | ];
33 | }
34 |
35 | $customerData['customer-id'] = $customerId;
36 |
37 | return $this->request('customers/modify.json', $customerData, 'POST', false);
38 | }
39 |
40 | /**
41 | * Get customer by email or customer id
42 | *
43 | * @param $customer
44 | *
45 | * @return array
46 | */
47 | public function get($customer)
48 | {
49 | if (filter_var($customer, FILTER_VALIDATE_EMAIL)) {
50 | return $this->request('customers/details.json', [
51 | 'username' => $customer
52 | ]);
53 | }
54 |
55 | return $this->request('customers/details-by-id.json', [
56 | 'customer-id' => (int) $customer
57 | ]);
58 | }
59 |
60 | /**
61 | * Change customers password
62 | *
63 | * @param $customer
64 | * @param $password
65 | *
66 | * @throws \Exception
67 | * @return array
68 | */
69 | public function password($customer, $password)
70 | {
71 | if (filter_var($customer, FILTER_VALIDATE_EMAIL)) {
72 | $customer = $this->customerId($customer);
73 | }
74 |
75 | return $this->request('customers/change-password.json', [
76 | 'customer-id' => $customer,
77 | 'new-passwd' => $password
78 | ]);
79 | }
80 |
81 | /**
82 | * Deletes a customer.
83 | *
84 | * @param $customer
85 | *
86 | * @throws \Exception
87 | * @return array
88 | */
89 | public function delete($customer)
90 | {
91 | if (filter_var($customer, FILTER_VALIDATE_EMAIL)) {
92 | $customer = $this->customerId($customer);
93 | }
94 |
95 | return $this->request('customers/delete.json', [
96 | 'customer-id' => $customer
97 | ]);
98 | }
99 | public function moveProduct($domain, $customerId, $newCustomerId, $contact = false)
100 | {
101 | $query = [
102 | 'domain-name' => $domain,
103 | 'existing-customer-id' => $customerId,
104 | 'new-customer-id' => $newCustomerId
105 | ];
106 | if ($contact) {
107 | $query['default-contact'] = $contact;
108 | }
109 | return $this->request('products/move.json', $query, 'POST');
110 | }
111 | /**
112 | * Get customers id
113 | *
114 | * @param $customer
115 | *
116 | * @throws \Exception
117 | * @return bool
118 | */
119 | private function customerId($customer)
120 | {
121 | $response = $this->get($customer);
122 |
123 | if ($response['status'] == true) {
124 | return $response['response']->customerid;
125 | }
126 |
127 | throw new \Exception('Customer id cannot found');
128 | }
129 | }
130 |
--------------------------------------------------------------------------------
/src/Api/Dns.php:
--------------------------------------------------------------------------------
1 | domain = $arguments[0];
17 | }
18 | }
19 |
20 | /**
21 | * Get domain details.
22 | *
23 | * @return array
24 | */
25 | public function nameservers()
26 | {
27 | return $this->domain('NsDetails');
28 | }
29 |
30 | /**
31 | * Get domain details.
32 | *
33 | * @return array
34 | */
35 | public function details()
36 | {
37 | return $this->domain('All');
38 | }
39 |
40 | /**
41 | * Get domain status.
42 | *
43 | * @return array
44 | */
45 | public function status()
46 | {
47 | return $this->domain('DomainStatus');
48 | }
49 |
50 | /**
51 | * Get order details.
52 | *
53 | * @return array
54 | */
55 | public function order()
56 | {
57 | return $this->domain('OrderDetails');
58 | }
59 |
60 | /**
61 | * Get dnssec information.
62 | *
63 | * @return array
64 | */
65 | public function dnssec()
66 | {
67 | return $this->domain('DNSSECDetails');
68 | }
69 |
70 | /**
71 | * Get contact details object.
72 | *
73 | * @return Contact
74 | */
75 | public function contact()
76 | {
77 | return new Contact($this->domain);
78 | }
79 |
80 | /**
81 | * @alias nameservers
82 | *
83 | * @return array
84 | */
85 | public function ns()
86 | {
87 | return $this->nameservers();
88 | }
89 |
90 | /**
91 | * Check for given domain name. Tlds must be without dot.
92 | *
93 | * @param array $tlds
94 | * @param bool $suggest
95 | * @param mixed $stausIndex
96 | *
97 | * @return array
98 | */
99 | public function check($tlds = ['com'], $suggest = false, $stausIndex = 0)
100 | {
101 | $query = [
102 | 'domain-name' => $this->domain,
103 | 'suggest-alternative' => json_encode($suggest),
104 | 'tlds' => $tlds,
105 | ];
106 |
107 | $result = $this->request('domains/available.json', $query, 'GET', true);
108 |
109 | try {
110 | $status = $result['response']->{$this->domain.'.'.$tlds[$stausIndex]}->status;
111 | } catch (\Exception $e) {
112 | $status = 'unknown';
113 | }
114 |
115 | $result['domain-status'] = $status;
116 |
117 | return $result;
118 | }
119 |
120 | /**
121 | * Get only orderId.
122 | *
123 | * @return array
124 | */
125 | public function orderId()
126 | {
127 | return $this->request('domains/orderid.json', [
128 | 'domain-name' => $this->domain,
129 | ], 'GET');
130 | }
131 |
132 | /**
133 | * @return array
134 | */
135 | public function enableTheftProtection()
136 | {
137 | return $this->requestWithOrderId('domains/enable-theft-protection.json', [], 'POST');
138 | }
139 |
140 | /**
141 | * @return array
142 | */
143 | public function disableTheftProtection()
144 | {
145 | return $this->requestWithOrderId('domains/disable-theft-protection.json', [], 'POST');
146 | }
147 |
148 | /**
149 | * @param array $ns
150 | *
151 | * @return array
152 | */
153 | public function modifyNameServers(array $ns)
154 | {
155 | $query = [
156 | 'ns' => $ns,
157 | ];
158 |
159 | return $this->requestWithOrderId('domains/modify-ns.json', $query, 'POST', true);
160 | }
161 |
162 | /**
163 | * @return array
164 | */
165 | public function delete()
166 | {
167 | return $this->requestWithOrderId('domains/delete.json', [], 'POST');
168 | }
169 |
170 | /**
171 | * @return array
172 | */
173 | public function cancelTransfer()
174 | {
175 | return $this->requestWithOrderId('domains/cancel-transfer.json', [], 'POST');
176 | }
177 |
178 | /**
179 | * @param $query
180 | *
181 | * @return array
182 | */
183 | public function register($query)
184 | {
185 | $query['domain-name'] = $this->domain;
186 |
187 | return $this->request('domains/register.json', $query, 'POST', true);
188 | }
189 |
190 | /**
191 | * @param $query
192 | *
193 | * @return array
194 | */
195 | public function transfer($query)
196 | {
197 | $query['domain-name'] = $this->domain;
198 |
199 | return $this->request('domains/transfer.json', $query, 'POST', true);
200 | }
201 |
202 | /**
203 | * @param $authCode
204 | *
205 | * @return array
206 | */
207 | public function authCode($authCode)
208 | {
209 | $query = $this->prepareAuthCode($authCode);
210 | if (! $authCode === $query['auth-code']) {
211 | return $query;
212 | }
213 |
214 | return $this->request('domains/transfer/submit-auth-code.json', $query, 'POST');
215 | }
216 |
217 | /**
218 | * @param $authCode
219 | *
220 | * @return array
221 | */
222 | public function modifyAuthCode($authCode)
223 | {
224 | $query = $this->prepareAuthCode($authCode);
225 | if (! $authCode === $query['auth-code']) {
226 | return $query;
227 | }
228 |
229 | return $this->request('domains/modify-auth-code.json', $query, 'POST');
230 | }
231 |
232 | /**
233 | * @return array
234 | */
235 | public function validateTransferRequest()
236 | {
237 | $query = [
238 | 'domain-name' => $this->domain,
239 | ];
240 |
241 | return $this->request('domains/validate-transfer.json', $query, 'GET');
242 | }
243 |
244 | /**
245 | * @param $years
246 | * @param $date
247 | * @param $invoiceOption
248 | * @param bool $purchasePrivacy
249 | *
250 | * @return array
251 | */
252 | public function renew($years, $date, $invoiceOption, $purchasePrivacy = false)
253 | {
254 | $query = [
255 | 'years' => $years,
256 | 'exp-date' => $date,
257 | 'invoice-option' => $invoiceOption,
258 | 'purchase-privacy' => $purchasePrivacy,
259 | ];
260 |
261 | return $this->requestWithOrderId('domains/renew.json', $query, 'POST');
262 | }
263 |
264 | /**
265 | * @param $customerId
266 | *
267 | * @return array
268 | */
269 | public function customerDefaultNameServers($customerId)
270 | {
271 | $query = [
272 | 'customer-id' => $customerId,
273 | ];
274 |
275 | return $this->request('domains/customer-default-ns.json', $query, 'GET');
276 | }
277 |
278 | /**
279 | * @return array
280 | */
281 | public function isDomainPremium()
282 | {
283 | $query = [
284 | 'domain-name' => $this->domain,
285 | ];
286 |
287 | return $this->request('domains/premium-check.json', $query, 'GET');
288 | }
289 |
290 | /**
291 | * @param $cns
292 | * @param $ip
293 | *
294 | * @return array
295 | */
296 | public function addChildNs($cns, $ip)
297 | {
298 | $query = [
299 | 'cns' => $cns,
300 | 'ip' => $ip,
301 | ];
302 |
303 | return $this->requestWithOrderId('domains/add-cns.json', $query, 'POST', true);
304 | }
305 |
306 | public function requestWithOrderId($url, $query, $method, $string = false)
307 | {
308 | $resp = $this->orderId();
309 | if (! $resp['status']) {
310 | return $resp;
311 | }
312 | $orderId = $resp['response'];
313 | $query['order-id'] = $orderId;
314 |
315 | return $this->request($url, $query, $method, $string);
316 | }
317 |
318 | public function modifyChildNsHostName($oldCns, $newCns)
319 | {
320 | $query = [
321 | 'old-cns' => $oldCns,
322 | 'new-cns' => $newCns,
323 | ];
324 |
325 | return $this->requestWithOrderId('domains/modify-cns-name.json', $query, 'POST');
326 | }
327 |
328 | /**
329 | * @return array
330 | */
331 | public function getListLockApplied()
332 | {
333 | return $this->requestWithOrderId('domains/locks.json', [], 'GET');
334 | }
335 |
336 | /**
337 | * @param mixed $reason
338 | *
339 | * @return array
340 | */
341 | public function suspend($reason)
342 | {
343 | $query = [
344 | 'reason' => $reason,
345 | ];
346 |
347 | return $this->requestWithOrderId('orders/suspend.json', $query, 'POST');
348 | }
349 |
350 | /**
351 | * @return array
352 | */
353 | public function unSuspend()
354 | {
355 | return $this->requestWithOrderId('orders/unsuspend.json', [], 'POST');
356 | }
357 |
358 | public function suggestName($keyword, $tldOnly = false, $exactMatch = false)
359 | {
360 | $query = [
361 | 'keyword' => $keyword,
362 | 'exact-match' => $exactMatch,
363 | ];
364 |
365 | if ($tldOnly) {
366 | $query['tld-only'] = $tldOnly;
367 | }
368 |
369 | return $this->request('domains/v5/suggest-names.json', $query, 'GET');
370 | }
371 |
372 | public function isPremium()
373 | {
374 | $query = [
375 | 'domain-name' => $this->domain,
376 | ];
377 |
378 | return $this->request('domains/premium-check.json', $query, 'GET');
379 | }
380 |
381 | /**
382 | * @param $query
383 | *
384 | * @return array
385 | */
386 | public function modifyContact($query)
387 | {
388 | return $this->requestWithOrderId('domains/modify-contact.json', $query, 'POST');
389 | }
390 |
391 | private function domain($option)
392 | {
393 | return $this->request($this->url, [
394 | 'domain-name' => $this->domain,
395 | 'options' => $option,
396 | ]);
397 | }
398 |
399 | /**
400 | * @param $authCode
401 | *
402 | * @return array
403 | */
404 | private function prepareAuthCode($authCode)
405 | {
406 | $resp = $this->orderId();
407 | if (! $resp['status']) {
408 | return $resp;
409 | }
410 |
411 | $orderId = $resp['response'];
412 |
413 | return [
414 | 'order-id' => $orderId,
415 | 'auth-code' => $authCode,
416 | ];
417 | }
418 | }
419 |
--------------------------------------------------------------------------------
/src/Api/Requests/Contact.php:
--------------------------------------------------------------------------------
1 | domain = $domain;
14 | }
15 |
16 | /**
17 | * @param $name
18 | * @param $arguments
19 | *
20 | * @throws \Exception
21 | * @return array
22 | */
23 | public function __call($name, $arguments)
24 | {
25 | $actions = [
26 | 'ids' => 'ContactIds',
27 | 'tech' => 'TechContactDetails',
28 | 'admin' => 'AdminContactDetails',
29 | 'billing' => 'BillingContactDetails',
30 | 'registrant' => 'RegistrantContactDetails',
31 | ];
32 |
33 | if (array_key_exists($name, $actions)) {
34 | return $this->detail($actions[$name]);
35 | }
36 |
37 | throw new \Exception('Given method does not exists in contact details');
38 | }
39 | private function detail($name)
40 | {
41 | return $this->request('domains/details-by-name.json', [
42 | 'domain-name' => $this->domain,
43 | 'options' => $name
44 | ]);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/Api/Reseller.php:
--------------------------------------------------------------------------------
1 | request('resellers/details.json', ['reseller-id' => $id], 'GET', false);
10 | }
11 |
12 | public function loginToken($id, $ip)
13 | {
14 | return $this->request('resellers/generate-login-token.json', [
15 | 'reseller-id' => $id,
16 | 'ip' => $ip,
17 | ], 'GET', false);
18 | }
19 |
20 | public function addFunds($id, $amount, $description, $transactionType = 'receipt', $transactionKey = false, $updateTotal = true)
21 | {
22 | return $this->request('billing/add-reseller-fund.json', [
23 | 'reseller-id' => $id,
24 | 'amount' => $amount,
25 | 'description' => $description,
26 | 'transaction-type' => $transactionType,
27 | 'transaction-key' => $transactionKey ?? md5(uniqid($id.time(), true)),
28 | 'update-total-receipt' => $updateTotal,
29 | ], 'POST', false);
30 | }
31 |
32 | public function getBalance($id)
33 | {
34 | return $this->request('billing/reseller-balance.json', [
35 | 'reseller-id' => $id,
36 | ], 'GET', false);
37 | }
38 |
39 | public function getPricing($id)
40 | {
41 | return $this->request('products/reseller-price.json', [
42 | 'reseller-id' => $id,
43 | ], 'GET', false, true);
44 | }
45 |
46 | public function getCustomerPricing($id)
47 | {
48 | return $this->request('products/customer-price.json', [], 'GET', false, true);
49 | }
50 |
51 | public function getCostPricing($id)
52 | {
53 | return $this->request('products/reseller-cost-price.json', [], 'GET', false, true);
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/Facades/Logicboxes.php:
--------------------------------------------------------------------------------
1 | registerServices();
23 | }
24 |
25 | /**
26 | * Get the services provided by the provider.
27 | *
28 | * @return array
29 | */
30 | public function provides()
31 | {
32 | return ['logicboxes'];
33 | }
34 |
35 | public function boot()
36 | {
37 | $this->handleConfiguration();
38 | }
39 |
40 | public function handleConfiguration()
41 | {
42 | $configPath = __DIR__.'/../config/logicboxes.php';
43 |
44 | $this->publishes([$configPath => config_path('logicboxes.php')], 'Logicboxes');
45 | // Merge config files...
46 | $this->mergeConfigFrom($configPath, 'logicboxes');
47 | }
48 | /**
49 | * Register the package services.
50 | *
51 | * @return void
52 | */
53 | protected function registerServices()
54 | {
55 | $this->app->singleton('logicboxes', function ($app) {
56 | return new Logicboxes();
57 | });
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/tests/BaseTrait.php:
--------------------------------------------------------------------------------
1 | $this->faker->email,
10 | 'passwd' => 'Qs3jiA5fd8mq4',
11 | 'name' => $this->faker->name,
12 | 'company' => $this->faker->company,
13 | 'address-line-1' => $this->faker->streetAddress,
14 | 'city' => $this->faker->city,
15 | 'state' => $this->faker->state,
16 | 'country' => $this->faker->countryCode,
17 | 'zipcode' => $this->faker->postcode,
18 | 'phone-cc' => 90,
19 | 'phone' => 5555555555,
20 | 'lang-pref' => 'en'
21 | ];
22 | }
23 | public function createCustomer($attributes = [])
24 | {
25 | $details = array_merge([
26 | 'username' => $this->faker->email,
27 | 'passwd' => 'Qs3jiA5fd8mq4',
28 | 'name' => $this->faker->name,
29 | 'company' => $this->faker->company,
30 | 'address-line-1' => $this->faker->streetAddress,
31 | 'city' => $this->faker->city,
32 | 'state' => $this->faker->state,
33 | 'country' => $this->faker->countryCode,
34 | 'zipcode' => $this->faker->postcode,
35 | 'phone-cc' => 90,
36 | 'phone' => 5555555555,
37 | 'lang-pref' => 'en'
38 | ], $attributes);
39 |
40 | $customer = logicboxes()->customer()->create($details);
41 |
42 | $details['customer-id'] = $customer['response'];
43 |
44 | return $details;
45 | }
46 |
47 | public function createContact($attributes = [])
48 | {
49 | $details = array_merge([
50 | 'name' => $this->faker->name,
51 | 'company' => $this->faker->company,
52 | 'email' => $this->faker->email,
53 | 'address-line-1' => $this->faker->streetAddress,
54 | 'city' => $this->faker->city,
55 | 'country' => 'TR',
56 | 'zipcode' => '20070',
57 | 'phone-cc' => '90',
58 | 'phone' => '5555555555',
59 | 'type' => 'Contact'
60 | ], $attributes);
61 |
62 | $customer = logicboxes()->contact()->add($details);
63 | $details['contact-id'] = $customer['response'];
64 |
65 | return $details;
66 | }
67 |
68 | public function prepareDomainData($customerId, $contactId)
69 | {
70 | $details = [
71 | 'years' => 1,
72 | 'ns' => ['dns3.parkpage.foundationapi.com', 'dns4.parkpage.foundationapi.com'],
73 | 'customer-id' => $customerId,
74 | 'reg-contact-id' => $contactId,
75 | 'admin-contact-id' => $contactId,
76 | 'tech-contact-id' => $contactId,
77 | 'billing-contact-id' => $contactId,
78 | 'invoice-option' => 'NoInvoice',
79 | 'purchase-privacy' => true,
80 | 'protect-privacy' => true,
81 | ];
82 |
83 | return $details;
84 | }
85 |
86 | public function domain()
87 | {
88 | return $this->faker->domainName;
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/tests/CustomerTest.php:
--------------------------------------------------------------------------------
1 | faker = Factory::create();
21 | }
22 |
23 | /** @test */
24 | public function logicboxes_create_customer()
25 | {
26 | $response = logicboxes()->customer()->create($this->customerDetails());
27 | $this->assertTrue($response['status']);
28 | $this->assertEquals($response['message'], 'success');
29 | }
30 |
31 | /** @test */
32 | public function logicboxes_get_customer_details_by_username_and_customerid()
33 | {
34 | $customer = $this->createCustomer();
35 |
36 | $response = logicboxes()->customer()->get($customer['username']);
37 |
38 | $this->assertTrue($response['status']);
39 | $this->assertEquals($response['response']->useremail, $customer['username']);
40 |
41 | $response = logicboxes()->customer()->get($customer['customer-id']);
42 | $this->assertTrue($response['status']);
43 | $this->assertEquals($response['response']->useremail, $customer['username']);
44 | }
45 |
46 | /** @test */
47 | public function logicboxes_package_can_change_customers_password()
48 | {
49 | $customer = $this->createCustomer();
50 | $response = logicboxes()->customer()->password($customer['username'], 'myNew8Char13');
51 | $this->assertTrue($response['status']);
52 | $this->assertTrue($response['response']);
53 | }
54 |
55 | /** @test */
56 | public function logicboxes_package_can_delete_a_customer()
57 | {
58 | $customer = $this->createCustomer();
59 | $response = logicboxes()->customer()->delete($customer['customer-id']);
60 | $this->assertTrue($response['status']);
61 | $this->assertTrue($response['response']);
62 | }
63 |
64 | /** @test */
65 | public function logicboxes_change_customer()
66 | {
67 | $customer = $this->createCustomer();
68 | $contact = $this->createContact(['customer-id' => $customer['customer-id']]);
69 | $customer = $customer['customer-id'];
70 | $contact = $contact['contact-id'];
71 |
72 | $domain = strtolower(str_random(8));
73 | logicboxes()->domain("{$domain}.com")
74 | ->register($this->prepareDomainData($customer, $contact));
75 | // create 2. Customer
76 | $customer2 = $this->createCustomer();
77 | $customer2Id = $customer2['customer-id'];
78 |
79 | $response = logicboxes()->customer()->moveProduct("{$domain}.com", $customer, $customer2Id, $contact);
80 |
81 | $this->assertTrue($response['status']);
82 | $this->assertEquals($response['message'], 'success');
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/tests/DomainTest.php:
--------------------------------------------------------------------------------
1 | faker = Factory::create();
24 | }
25 |
26 | /** @test */
27 | public function package_should_domain_register()
28 | {
29 | $customer = $this->createCustomer();
30 | $contact = $this->createContact(['customer-id' => $customer['customer-id']]);
31 |
32 | $domain = str_random(8);
33 | $response = logicboxes()->domain("{$domain}.com")
34 | ->register($this->prepareDomainData($customer['customer-id'], $contact['contact-id']));
35 | $this->assertTrue($response['status']);
36 | $this->assertEquals($response['message'], 'success');
37 | }
38 |
39 | /** @test */
40 | public function package_should_customer_get_default_ns()
41 | {
42 | $this->createDomain();
43 | $response = logicboxes()->domain($this->domain)
44 | ->customerDefaultNameServers($this->customer);
45 | $this->assertTrue($response['status']);
46 | $this->assertEquals($response['message'], 'success');
47 | }
48 |
49 | /** @test */
50 | public function package_should_get_order_id()
51 | {
52 | $this->createDomain();
53 | $response = logicboxes()->domain($this->domain)
54 | ->orderId();
55 | $this->assertTrue($response['status']);
56 | $this->assertEquals($response['message'], 'success');
57 | }
58 |
59 | /** @test */
60 | public function package_should_enable_theft_protection()
61 | {
62 | $this->createDomain();
63 | $response = logicboxes()->domain($this->domain)
64 | ->enableTheftProtection();
65 | $this->assertTrue($response['status']);
66 | $this->assertEquals($response['message'], 'success');
67 | }
68 |
69 | /** @test */
70 | public function package_should_disable_theft_protection()
71 | {
72 | $this->createDomain();
73 | $response = logicboxes()->domain($this->domain)
74 | ->disableTheftProtection();
75 | $this->assertTrue($response['status']);
76 | $this->assertEquals($response['message'], 'success');
77 | }
78 |
79 | /** @test */
80 | public function package_should_modify_name_servers()
81 | {
82 | $this->createDomain();
83 | $response = logicboxes()->domain($this->domain)
84 | ->modifyNameServers(['ns1.ni.net.tr', 'ns2.ni.net.tr']);
85 | $this->assertTrue($response['status']);
86 | $this->assertEquals($response['message'], 'success');
87 | }
88 |
89 | /** @test */
90 | public function package_should_cancel_the_domain_transfer()
91 | {
92 | $this->createDomain();
93 | $response = logicboxes()->domain($this->domain)
94 | ->cancelTransfer();
95 | $this->assertFalse($response['status']);
96 | $this->assertEquals($response['message'], 'Invalid action status/action type for this operation');
97 | }
98 |
99 | /** @test */
100 | public function package_should_validate_transfer_request()
101 | {
102 | $this->createDomain();
103 | $response = logicboxes()->domain($this->domain)
104 | ->validateTransferRequest();
105 | $this->assertTrue($response['status']);
106 | $this->assertEquals($response['message'], 'success');
107 | }
108 |
109 | /** @test */
110 | public function package_should_delete_domain()
111 | {
112 | $this->createDomain();
113 | $response = logicboxes()->domain($this->domain)
114 | ->delete();
115 | $this->assertTrue($response['status']);
116 | $this->assertEquals($response['message'], 'success');
117 | }
118 |
119 | /** @test */
120 | public function package_should_validate_is_domain_premium()
121 | {
122 | $response = logicboxes()->domain("gotham.town")
123 | ->isDomainPremium();
124 | $this->assertTrue($response['status']);
125 | $this->assertEquals($response['message'], 'success');
126 | }
127 |
128 | /** @test */
129 | public function package_should_add_child_ns_hostname()
130 | {
131 | $this->createDomain();
132 | $response = logicboxes()->domain($this->domain)
133 | ->addChildNs("ns1.{$this->domain}", ['0.0.0.0', '0.0.0.1']);
134 |
135 | $this->assertTrue($response['status']);
136 | $this->assertEquals($response['message'], 'success');
137 | }
138 |
139 | // /** @test */
140 | // public function package_should_modify_child_ns()
141 | // {
142 | // $this->createDomain();
143 | // logicboxes()->domain($this->domain)
144 | // ->addChildNs("ns1.{$this->domain}", ['0.0.0.0', '0.0.0.1']);
145 | //
146 | // $response = logicboxes()->domain($this->domain)
147 | // ->modifyChildNs("ns1.{$this->domain}", "ns2.{$this->domain}");
148 | // dd($response);
149 | // $this->assertTrue($response['status']);
150 | // $this->assertEquals($response['message'], 'success');
151 | // }
152 |
153 | /** @test */
154 | public function package_should_get_the_list_lock_applied()
155 | {
156 | $this->createDomain();
157 | $response = logicboxes()->domain($this->domain)
158 | ->getListLockApplied();
159 |
160 | $this->assertTrue($response['status']);
161 | $this->assertEquals($response['message'], 'success');
162 | }
163 |
164 | /** @test */
165 | public function package_should_suspend_domain_order()
166 | {
167 | $this->createDomain();
168 | $response = logicboxes()->domain($this->domain)->suspend('reason');
169 | $this->assertTrue($response['status']);
170 | $this->assertEquals($response['message'], 'success');
171 | }
172 |
173 | /** @test */
174 | public function package_should_unsuspend_domain_order()
175 | {
176 | $this->createDomain();
177 | logicboxes()->domain($this->domain)->suspend('reason');
178 |
179 | $response = logicboxes()->domain($this->domain)->unSuspend();
180 | $this->assertTrue($response['status']);
181 | $this->assertEquals($response['message'], 'success');
182 | }
183 |
184 | /** @test */
185 | public function package_should_get_suggest_name()
186 | {
187 | $response = logicboxes()->domain()->suggestName($this->faker->firstNameMale);
188 | $this->assertTrue($response['status']);
189 | $this->assertEquals($response['message'], 'success');
190 | }
191 |
192 | /** @test */
193 | public function package_should_modify_domain_contacts()
194 | {
195 | $customer = $this->createCustomer();
196 | $contact = $this->createContact(['customer-id' => $customer['customer-id']]);
197 | $domain = str_random(8);
198 | logicboxes()->domain("{$domain}.com")
199 | ->register($this->prepareDomainData($customer['customer-id'], $contact['contact-id']));
200 |
201 | $contact2 = $this->createContact(['customer-id' => $customer['customer-id']]);
202 | $response = logicboxes()->domain("{$domain}.com")->modifyContact([
203 | 'reg-contact-id' => $contact2['contact-id'],
204 | 'admin-contact-id' => $contact2['contact-id'],
205 | 'tech-contact-id' => $contact2['contact-id'],
206 | 'billing-contact-id' => $contact2['contact-id']
207 | ]);
208 | $this->assertTrue($response['status']);
209 | $this->assertEquals($response['message'], 'success');
210 | }
211 |
212 | private function createDomain()
213 | {
214 | $this->customer = $this->createCustomer();
215 | $this->contact = $this->createContact(['customer-id' => $this->customer['customer-id']]);
216 | $this->customer = $this->customer['customer-id'];
217 | $this->contact = $this->contact['contact-id'];
218 |
219 | $domain = str_random(8);
220 | logicboxes()->domain("{$domain}.com")
221 | ->register($this->prepareDomainData($this->customer, $this->contact));
222 | $this->domain = "{$domain}.com";
223 | }
224 | }
225 |
--------------------------------------------------------------------------------
/tests/TestCase.php:
--------------------------------------------------------------------------------
1 | Logicboxes::class,
22 | ];
23 | }
24 | protected function getEnvironmentSetUp($app)
25 | {
26 | $config = parse_ini_file("config.ini");
27 | $app['config']->set('logicboxes.api-key', $config['key']);
28 | $app['config']->set('logicboxes.auth-userid', $config['userId']);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/tests/config.ini.example:
--------------------------------------------------------------------------------
1 | key="your-api-key"
2 | userId="your-user-id"
--------------------------------------------------------------------------------