├── .env.example
├── .env.travis
├── .gitattributes
├── .gitignore
├── .travis.yml
├── Dockerfile
├── Procfile
├── apache.conf
├── app
├── Console
│ ├── Commands
│ │ ├── Inspire.php
│ │ └── SaltGenerateCommand.php
│ └── Kernel.php
├── Events
│ └── Event.php
├── Exceptions
│ └── Handler.php
├── Http
│ ├── Controllers
│ │ ├── Auth
│ │ │ ├── AuthController.php
│ │ │ └── PasswordController.php
│ │ ├── Controller.php
│ │ └── SecretController.php
│ ├── Kernel.php
│ ├── Middleware
│ │ ├── Authenticate.php
│ │ ├── EncryptCookies.php
│ │ ├── RedirectIfAuthenticated.php
│ │ └── VerifyCsrfToken.php
│ ├── Requests
│ │ └── Request.php
│ └── routes.php
├── Jobs
│ └── Job.php
├── Listeners
│ └── .gitkeep
├── Providers
│ ├── AppServiceProvider.php
│ ├── EventServiceProvider.php
│ └── RouteServiceProvider.php
└── Secret.php
├── artisan
├── bootstrap
├── app.php
├── autoload.php
└── cache
│ └── .gitignore
├── composer.json
├── composer.lock
├── config
├── app.php
├── auth.php
├── broadcasting.php
├── cache.php
├── compile.php
├── database.php
├── filesystems.php
├── mail.php
├── queue.php
├── services.php
├── session.php
└── view.php
├── database
├── .gitignore
├── factories
│ └── ModelFactory.php
├── migrations
│ ├── .gitkeep
│ └── 2015_08_02_025919_create_secrets_table.php
└── seeds
│ ├── .gitkeep
│ └── DatabaseSeeder.php
├── gulpfile.js
├── license.md
├── package.json
├── phpspec.yml
├── phpunit.xml
├── public
├── .htaccess
├── favicon.ico
├── index.php
└── robots.txt
├── readme.md
├── resources
├── assets
│ └── sass
│ │ └── app.scss
├── lang
│ └── en
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ └── validation.php
└── views
│ ├── app.blade.php
│ ├── errors
│ └── 503.blade.php
│ ├── secret
│ ├── create.blade.php
│ ├── show.blade.php
│ └── store.blade.php
│ └── vendor
│ └── .gitkeep
├── server.php
├── storage
├── app
│ └── .gitignore
├── framework
│ ├── .gitignore
│ ├── cache
│ │ └── .gitignore
│ ├── sessions
│ │ └── .gitignore
│ └── views
│ │ └── .gitignore
└── logs
│ └── .gitignore
└── tests
├── SecretTest.php
└── TestCase.php
/.env.example:
--------------------------------------------------------------------------------
1 | APP_ENV=local
2 | APP_DEBUG=true
3 | APP_KEY=SomeRandomString
4 | APP_SALT=OtherRandomString
5 |
6 | DB_CONNECTION=sqlite
7 | DB_HOST=localhost
8 | DB_DATABASE=homestead
9 | DB_USERNAME=homestead
10 | DB_PASSWORD=secret
11 |
12 | CACHE_DRIVER=file
13 | SESSION_DRIVER=file
14 | QUEUE_DRIVER=sync
15 |
16 | MAIL_DRIVER=smtp
17 | MAIL_HOST=mailtrap.io
18 | MAIL_PORT=2525
19 | MAIL_USERNAME=null
20 | MAIL_PASSWORD=null
21 | MAIL_ENCRYPTION=null
--------------------------------------------------------------------------------
/.env.travis:
--------------------------------------------------------------------------------
1 | APP_ENV=testing
2 | DB_CONNECTION=sqlite-testing
3 | APP_DEBUG=true
4 | APP_KEY=SomeRandomStringSomeRandomString
5 | APP_SALT=OtherRandomString
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.css linguist-vendored
3 | *.less linguist-vendored
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | /node_modules
3 | Homestead.yaml
4 | .env
5 | storage/database.sqlite
6 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: php
2 | php:
3 | - 5.5.9
4 | - 5.6
5 | - nightly
6 | install: composer install
7 | before_script:
8 | - cp .env.travis .env
9 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM php:5.6-apache
2 |
3 | RUN apt-get update && apt-get install git zip -y
4 | RUN a2enmod rewrite && \
5 | docker-php-ext-install pdo mbstring tokenizer
6 | RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
7 | php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && \
8 | php composer-setup.php && \
9 | php -r "unlink('composer-setup.php');" && \
10 | mv composer.phar /usr/local/bin/composer && \
11 | composer create-project unicalabs/agrippa /var/www/html/agrippa
12 |
13 | RUN echo '\n\
14 | ServerAdmin webmaster@localhost\n\
15 | DocumentRoot /var/www/html/agrippa/public\n\
16 | \n\
17 | AllowOverride All\n\
18 | \n\
19 | ErrorLog ${APACHE_LOG_DIR}/error.log\n\
20 | CustomLog ${APACHE_LOG_DIR}/access.log combined\n\
21 | '\
22 | > /etc/apache2/sites-available/000-default.conf
23 |
24 | WORKDIR /var/www/html/agrippa
25 | RUN touch storage/database.sqlite
26 | RUN chown -R www-data:www-data storage bootstrap/cache
27 | RUN php artisan migrate
28 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: vendor/bin/heroku-php-apache2 -C apache.conf public/
2 |
--------------------------------------------------------------------------------
/apache.conf:
--------------------------------------------------------------------------------
1 | RewriteEngine On
2 |
3 | # If we receive a forwarded http request from a proxy...
4 | RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
5 |
6 | # ...or just a plain old http request directly from the client
7 | RewriteCond %{HTTP:X-Forwarded-Proto} =""
8 | RewriteCond %{HTTPS} !=on
9 |
10 | # Redirect to https version
11 | RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
12 |
--------------------------------------------------------------------------------
/app/Console/Commands/Inspire.php:
--------------------------------------------------------------------------------
1 | comment(PHP_EOL.Inspiring::quote().PHP_EOL);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Console/Commands/SaltGenerateCommand.php:
--------------------------------------------------------------------------------
1 | getRandomSalt();
28 | $path = base_path('.env');
29 | if (file_exists($path))
30 | {
31 | $this->info("Looking for");
32 | file_put_contents($path, str_replace(
33 | getenv('APP_SALT'), $salt, file_get_contents($path)
34 | ));
35 | }
36 | $this->info("Application salt [$salt] set successfully.");
37 | }
38 | /**
39 | * Generate a random salt for the application.
40 | *
41 | * @return string
42 | */
43 | protected function getRandomSalt()
44 | {
45 | return Str::random(32);
46 | }
47 | }
--------------------------------------------------------------------------------
/app/Console/Kernel.php:
--------------------------------------------------------------------------------
1 | command('inspire')
29 | ->hourly();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/Events/Event.php:
--------------------------------------------------------------------------------
1 | middleware('guest', ['except' => 'getLogout']);
34 | }
35 |
36 | /**
37 | * Get a validator for an incoming registration request.
38 | *
39 | * @param array $data
40 | * @return \Illuminate\Contracts\Validation\Validator
41 | */
42 | protected function validator(array $data)
43 | {
44 | return Validator::make($data, [
45 | 'name' => 'required|max:255',
46 | 'email' => 'required|email|max:255|unique:users',
47 | 'password' => 'required|confirmed|min:6',
48 | ]);
49 | }
50 |
51 | /**
52 | * Create a new user instance after a valid registration.
53 | *
54 | * @param array $data
55 | * @return User
56 | */
57 | protected function create(array $data)
58 | {
59 | return User::create([
60 | 'name' => $data['name'],
61 | 'email' => $data['email'],
62 | 'password' => bcrypt($data['password']),
63 | ]);
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Auth/PasswordController.php:
--------------------------------------------------------------------------------
1 | middleware('guest');
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Controller.php:
--------------------------------------------------------------------------------
1 | addHour();
36 | return view('secret.create', compact('now'));
37 | }
38 |
39 | /**
40 | * Store a newly created resource in storage.
41 | *
42 | * @param Request $request
43 | * @return Response
44 | */
45 | public function store(Request $request)
46 | {
47 |
48 | $uuid4 = Uuid::uuid4()->toString();
49 | $timeString = $request->input('expires_date') . ' ' . $request->input('expires_time');
50 | $datetime = Carbon::createFromFormat('Y-m-d H:i', $timeString);
51 | $datetime = $datetime->subHours($request->input('utc_offset'));
52 | $secret = Secret::create(array(
53 | 'secret' => Crypt::encrypt($request->input('secret')),
54 | 'uuid4' => crypt($uuid4, '$6$rounds=5000$' . getenv('APP_SALT') . '$'),
55 | 'expires_at' => $datetime,
56 | 'expires_views' => $request->input('expires_views')
57 | ));
58 |
59 | $expires_at = $secret->expires_at;
60 | $views_remaining = $secret->expires_views - $secret->count_views;
61 |
62 | return view('secret.store', compact('uuid4', 'expires_at', 'views_remaining'));
63 | }
64 |
65 | /**
66 | * Display the specified resource.
67 | *
68 | * @param text $uuid4
69 | * @return Response
70 | */
71 | public function show($uuid4)
72 | {
73 |
74 | $secret = Secret::where('uuid4', crypt($uuid4, '$6$rounds=5000$' . getenv('APP_SALT') . '$'))->first();
75 |
76 | if(!empty($secret))
77 | {
78 | // Check for expiry
79 | if(Carbon::now()->gte($secret->expires_at) || $secret->count_views >= $secret->expires_views)
80 | {
81 | $secret->delete();
82 | } else
83 | {
84 | // Increment the view count
85 | $secret->increment('count_views');
86 |
87 | // Get attributes for display
88 | $secretDecrypted = Crypt::decrypt($secret->secret);
89 | $expires_at = $secret->expires_at;
90 | $views_remaining = $secret->expires_views - $secret->count_views;
91 | }
92 | }
93 |
94 | return view('secret.show', compact('secretDecrypted', 'expires_at', 'views_remaining'));
95 | }
96 |
97 | /**
98 | * Show the form for editing the specified resource.
99 | *
100 | * @param int $id
101 | * @return Response
102 | */
103 | public function edit($id)
104 | {
105 | //
106 | }
107 |
108 | /**
109 | * Update the specified resource in storage.
110 | *
111 | * @param Request $request
112 | * @param int $id
113 | * @return Response
114 | */
115 | public function update(Request $request, $id)
116 | {
117 | //
118 | }
119 |
120 | /**
121 | * Remove the specified resource from storage.
122 | *
123 | * @param int $id
124 | * @return Response
125 | */
126 | public function destroy($id)
127 | {
128 | //
129 | }
130 | }
131 |
--------------------------------------------------------------------------------
/app/Http/Kernel.php:
--------------------------------------------------------------------------------
1 | \App\Http\Middleware\Authenticate::class,
30 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
31 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
32 | ];
33 | }
34 |
--------------------------------------------------------------------------------
/app/Http/Middleware/Authenticate.php:
--------------------------------------------------------------------------------
1 | auth = $auth;
26 | }
27 |
28 | /**
29 | * Handle an incoming request.
30 | *
31 | * @param \Illuminate\Http\Request $request
32 | * @param \Closure $next
33 | * @return mixed
34 | */
35 | public function handle($request, Closure $next)
36 | {
37 | if ($this->auth->guest()) {
38 | if ($request->ajax()) {
39 | return response('Unauthorized.', 401);
40 | } else {
41 | return redirect()->guest('auth/login');
42 | }
43 | }
44 |
45 | return $next($request);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/app/Http/Middleware/EncryptCookies.php:
--------------------------------------------------------------------------------
1 | auth = $auth;
26 | }
27 |
28 | /**
29 | * Handle an incoming request.
30 | *
31 | * @param \Illuminate\Http\Request $request
32 | * @param \Closure $next
33 | * @return mixed
34 | */
35 | public function handle($request, Closure $next)
36 | {
37 | if ($this->auth->check()) {
38 | return redirect('/home');
39 | }
40 |
41 | return $next($request);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/app/Http/Middleware/VerifyCsrfToken.php:
--------------------------------------------------------------------------------
1 | [
17 | 'App\Listeners\EventListener',
18 | ],
19 | ];
20 |
21 | /**
22 | * Register any other events for your application.
23 | *
24 | * @param \Illuminate\Contracts\Events\Dispatcher $events
25 | * @return void
26 | */
27 | public function boot(DispatcherContract $events)
28 | {
29 | parent::boot($events);
30 |
31 | //
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Providers/RouteServiceProvider.php:
--------------------------------------------------------------------------------
1 | group(['namespace' => $this->namespace], function ($router) {
41 | require app_path('Http/routes.php');
42 | });
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/app/Secret.php:
--------------------------------------------------------------------------------
1 | make(Illuminate\Contracts\Console\Kernel::class);
32 |
33 | $status = $kernel->handle(
34 | $input = new Symfony\Component\Console\Input\ArgvInput,
35 | new Symfony\Component\Console\Output\ConsoleOutput
36 | );
37 |
38 | /*
39 | |--------------------------------------------------------------------------
40 | | Shutdown The Application
41 | |--------------------------------------------------------------------------
42 | |
43 | | Once Artisan has finished running. We will fire off the shutdown events
44 | | so that any final work may be done by the application before we shut
45 | | down the process. This is the last thing to happen to the request.
46 | |
47 | */
48 |
49 | $kernel->terminate($input, $status);
50 |
51 | exit($status);
52 |
--------------------------------------------------------------------------------
/bootstrap/app.php:
--------------------------------------------------------------------------------
1 | singleton(
30 | Illuminate\Contracts\Http\Kernel::class,
31 | App\Http\Kernel::class
32 | );
33 |
34 | $app->singleton(
35 | Illuminate\Contracts\Console\Kernel::class,
36 | App\Console\Kernel::class
37 | );
38 |
39 | $app->singleton(
40 | Illuminate\Contracts\Debug\ExceptionHandler::class,
41 | App\Exceptions\Handler::class
42 | );
43 |
44 | /*
45 | |--------------------------------------------------------------------------
46 | | Return The Application
47 | |--------------------------------------------------------------------------
48 | |
49 | | This script returns the application instance. The instance is given to
50 | | the calling script so we can separate the building of the instances
51 | | from the actual running of the application and sending responses.
52 | |
53 | */
54 |
55 | return $app;
56 |
--------------------------------------------------------------------------------
/bootstrap/autoload.php:
--------------------------------------------------------------------------------
1 | =5.5.9",
9 | "laravel/framework": "5.1.*",
10 | "ramsey/uuid": "^2.8"
11 | },
12 | "require-dev": {
13 | "fzaninotto/faker": "~1.4",
14 | "mockery/mockery": "0.9.*",
15 | "phpunit/phpunit": "~4.0",
16 | "phpspec/phpspec": "~2.1"
17 | },
18 | "autoload": {
19 | "classmap": [
20 | "database"
21 | ],
22 | "psr-4": {
23 | "App\\": "app/"
24 | }
25 | },
26 | "autoload-dev": {
27 | "classmap": [
28 | "tests/TestCase.php"
29 | ]
30 | },
31 | "scripts": {
32 | "post-install-cmd": [
33 | "php artisan clear-compiled",
34 | "php artisan optimize"
35 | ],
36 | "pre-update-cmd": [
37 | "php artisan clear-compiled"
38 | ],
39 | "post-update-cmd": [
40 | "php artisan optimize"
41 | ],
42 | "post-root-package-install": [
43 | "php -r \"copy('.env.example', '.env');\""
44 | ],
45 | "post-create-project-cmd": [
46 | "php artisan key:generate",
47 | "php artisan salt:generate"
48 | ]
49 | },
50 | "config": {
51 | "preferred-install": "dist"
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/composer.lock:
--------------------------------------------------------------------------------
1 | {
2 | "_readme": [
3 | "This file locks the dependencies of your project to a known state",
4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 | "This file is @generated automatically"
6 | ],
7 | "hash": "76a6c2439a16f7407da7f3bfdb5171d2",
8 | "packages": [
9 | {
10 | "name": "classpreloader/classpreloader",
11 | "version": "2.0.0",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/ClassPreloader/ClassPreloader.git",
15 | "reference": "8c3c14b10309e3b40bce833913a6c0c0b8c8f962"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/8c3c14b10309e3b40bce833913a6c0c0b8c8f962",
20 | "reference": "8c3c14b10309e3b40bce833913a6c0c0b8c8f962",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "nikic/php-parser": "~1.3",
25 | "php": ">=5.5.9"
26 | },
27 | "require-dev": {
28 | "phpunit/phpunit": "~4.0"
29 | },
30 | "type": "library",
31 | "extra": {
32 | "branch-alias": {
33 | "dev-master": "2.0-dev"
34 | }
35 | },
36 | "autoload": {
37 | "psr-4": {
38 | "ClassPreloader\\": "src/"
39 | }
40 | },
41 | "notification-url": "https://packagist.org/downloads/",
42 | "license": [
43 | "MIT"
44 | ],
45 | "authors": [
46 | {
47 | "name": "Michael Dowling",
48 | "email": "mtdowling@gmail.com"
49 | },
50 | {
51 | "name": "Graham Campbell",
52 | "email": "graham@alt-three.com"
53 | }
54 | ],
55 | "description": "Helps class loading performance by generating a single PHP file containing all of the autoloaded files for a specific use case",
56 | "keywords": [
57 | "autoload",
58 | "class",
59 | "preload"
60 | ],
61 | "time": "2015-06-28 21:39:13"
62 | },
63 | {
64 | "name": "danielstjules/stringy",
65 | "version": "1.10.0",
66 | "source": {
67 | "type": "git",
68 | "url": "https://github.com/danielstjules/Stringy.git",
69 | "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b"
70 | },
71 | "dist": {
72 | "type": "zip",
73 | "url": "https://api.github.com/repos/danielstjules/Stringy/zipball/4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
74 | "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
75 | "shasum": ""
76 | },
77 | "require": {
78 | "ext-mbstring": "*",
79 | "php": ">=5.3.0"
80 | },
81 | "require-dev": {
82 | "phpunit/phpunit": "~4.0"
83 | },
84 | "type": "library",
85 | "autoload": {
86 | "psr-4": {
87 | "Stringy\\": "src/"
88 | },
89 | "files": [
90 | "src/Create.php"
91 | ]
92 | },
93 | "notification-url": "https://packagist.org/downloads/",
94 | "license": [
95 | "MIT"
96 | ],
97 | "authors": [
98 | {
99 | "name": "Daniel St. Jules",
100 | "email": "danielst.jules@gmail.com",
101 | "homepage": "http://www.danielstjules.com"
102 | }
103 | ],
104 | "description": "A string manipulation library with multibyte support",
105 | "homepage": "https://github.com/danielstjules/Stringy",
106 | "keywords": [
107 | "UTF",
108 | "helpers",
109 | "manipulation",
110 | "methods",
111 | "multibyte",
112 | "string",
113 | "utf-8",
114 | "utility",
115 | "utils"
116 | ],
117 | "time": "2015-07-23 00:54:12"
118 | },
119 | {
120 | "name": "dnoegel/php-xdg-base-dir",
121 | "version": "0.1",
122 | "source": {
123 | "type": "git",
124 | "url": "https://github.com/dnoegel/php-xdg-base-dir.git",
125 | "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a"
126 | },
127 | "dist": {
128 | "type": "zip",
129 | "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a",
130 | "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a",
131 | "shasum": ""
132 | },
133 | "require": {
134 | "php": ">=5.3.2"
135 | },
136 | "require-dev": {
137 | "phpunit/phpunit": "@stable"
138 | },
139 | "type": "project",
140 | "autoload": {
141 | "psr-4": {
142 | "XdgBaseDir\\": "src/"
143 | }
144 | },
145 | "notification-url": "https://packagist.org/downloads/",
146 | "license": [
147 | "MIT"
148 | ],
149 | "description": "implementation of xdg base directory specification for php",
150 | "time": "2014-10-24 07:27:01"
151 | },
152 | {
153 | "name": "doctrine/inflector",
154 | "version": "v1.0.1",
155 | "source": {
156 | "type": "git",
157 | "url": "https://github.com/doctrine/inflector.git",
158 | "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604"
159 | },
160 | "dist": {
161 | "type": "zip",
162 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/0bcb2e79d8571787f18b7eb036ed3d004908e604",
163 | "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604",
164 | "shasum": ""
165 | },
166 | "require": {
167 | "php": ">=5.3.2"
168 | },
169 | "require-dev": {
170 | "phpunit/phpunit": "4.*"
171 | },
172 | "type": "library",
173 | "extra": {
174 | "branch-alias": {
175 | "dev-master": "1.0.x-dev"
176 | }
177 | },
178 | "autoload": {
179 | "psr-0": {
180 | "Doctrine\\Common\\Inflector\\": "lib/"
181 | }
182 | },
183 | "notification-url": "https://packagist.org/downloads/",
184 | "license": [
185 | "MIT"
186 | ],
187 | "authors": [
188 | {
189 | "name": "Roman Borschel",
190 | "email": "roman@code-factory.org"
191 | },
192 | {
193 | "name": "Benjamin Eberlei",
194 | "email": "kontakt@beberlei.de"
195 | },
196 | {
197 | "name": "Guilherme Blanco",
198 | "email": "guilhermeblanco@gmail.com"
199 | },
200 | {
201 | "name": "Jonathan Wage",
202 | "email": "jonwage@gmail.com"
203 | },
204 | {
205 | "name": "Johannes Schmitt",
206 | "email": "schmittjoh@gmail.com"
207 | }
208 | ],
209 | "description": "Common String Manipulations with regard to casing and singular/plural rules.",
210 | "homepage": "http://www.doctrine-project.org",
211 | "keywords": [
212 | "inflection",
213 | "pluralize",
214 | "singularize",
215 | "string"
216 | ],
217 | "time": "2014-12-20 21:24:13"
218 | },
219 | {
220 | "name": "jakub-onderka/php-console-color",
221 | "version": "0.1",
222 | "source": {
223 | "type": "git",
224 | "url": "https://github.com/JakubOnderka/PHP-Console-Color.git",
225 | "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1"
226 | },
227 | "dist": {
228 | "type": "zip",
229 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1",
230 | "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1",
231 | "shasum": ""
232 | },
233 | "require": {
234 | "php": ">=5.3.2"
235 | },
236 | "require-dev": {
237 | "jakub-onderka/php-code-style": "1.0",
238 | "jakub-onderka/php-parallel-lint": "0.*",
239 | "jakub-onderka/php-var-dump-check": "0.*",
240 | "phpunit/phpunit": "3.7.*",
241 | "squizlabs/php_codesniffer": "1.*"
242 | },
243 | "type": "library",
244 | "autoload": {
245 | "psr-0": {
246 | "JakubOnderka\\PhpConsoleColor": "src/"
247 | }
248 | },
249 | "notification-url": "https://packagist.org/downloads/",
250 | "license": [
251 | "BSD-2-Clause"
252 | ],
253 | "authors": [
254 | {
255 | "name": "Jakub Onderka",
256 | "email": "jakub.onderka@gmail.com",
257 | "homepage": "http://www.acci.cz"
258 | }
259 | ],
260 | "time": "2014-04-08 15:00:19"
261 | },
262 | {
263 | "name": "jakub-onderka/php-console-highlighter",
264 | "version": "v0.3.2",
265 | "source": {
266 | "type": "git",
267 | "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git",
268 | "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5"
269 | },
270 | "dist": {
271 | "type": "zip",
272 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5",
273 | "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5",
274 | "shasum": ""
275 | },
276 | "require": {
277 | "jakub-onderka/php-console-color": "~0.1",
278 | "php": ">=5.3.0"
279 | },
280 | "require-dev": {
281 | "jakub-onderka/php-code-style": "~1.0",
282 | "jakub-onderka/php-parallel-lint": "~0.5",
283 | "jakub-onderka/php-var-dump-check": "~0.1",
284 | "phpunit/phpunit": "~4.0",
285 | "squizlabs/php_codesniffer": "~1.5"
286 | },
287 | "type": "library",
288 | "autoload": {
289 | "psr-0": {
290 | "JakubOnderka\\PhpConsoleHighlighter": "src/"
291 | }
292 | },
293 | "notification-url": "https://packagist.org/downloads/",
294 | "license": [
295 | "MIT"
296 | ],
297 | "authors": [
298 | {
299 | "name": "Jakub Onderka",
300 | "email": "acci@acci.cz",
301 | "homepage": "http://www.acci.cz/"
302 | }
303 | ],
304 | "time": "2015-04-20 18:58:01"
305 | },
306 | {
307 | "name": "jeremeamia/SuperClosure",
308 | "version": "2.1.0",
309 | "source": {
310 | "type": "git",
311 | "url": "https://github.com/jeremeamia/super_closure.git",
312 | "reference": "b712f39c671e5ead60c7ebfe662545456aade833"
313 | },
314 | "dist": {
315 | "type": "zip",
316 | "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/b712f39c671e5ead60c7ebfe662545456aade833",
317 | "reference": "b712f39c671e5ead60c7ebfe662545456aade833",
318 | "shasum": ""
319 | },
320 | "require": {
321 | "nikic/php-parser": "~1.0",
322 | "php": ">=5.4"
323 | },
324 | "require-dev": {
325 | "codeclimate/php-test-reporter": "~0.1.2",
326 | "phpunit/phpunit": "~4.0"
327 | },
328 | "type": "library",
329 | "extra": {
330 | "branch-alias": {
331 | "dev-master": "2.1-dev"
332 | }
333 | },
334 | "autoload": {
335 | "psr-4": {
336 | "SuperClosure\\": "src/"
337 | }
338 | },
339 | "notification-url": "https://packagist.org/downloads/",
340 | "license": [
341 | "MIT"
342 | ],
343 | "authors": [
344 | {
345 | "name": "Jeremy Lindblom",
346 | "email": "jeremeamia@gmail.com",
347 | "homepage": "https://github.com/jeremeamia",
348 | "role": "developer"
349 | }
350 | ],
351 | "description": "Serialize Closure objects, including their context and binding",
352 | "homepage": "https://github.com/jeremeamia/super_closure",
353 | "keywords": [
354 | "closure",
355 | "function",
356 | "lambda",
357 | "parser",
358 | "serializable",
359 | "serialize",
360 | "tokenizer"
361 | ],
362 | "time": "2015-03-11 20:06:43"
363 | },
364 | {
365 | "name": "laravel/framework",
366 | "version": "v5.1.8",
367 | "source": {
368 | "type": "git",
369 | "url": "https://github.com/laravel/framework.git",
370 | "reference": "c4ce8d7a3ac6e655e8b5f0ff3ee07d24fab765ba"
371 | },
372 | "dist": {
373 | "type": "zip",
374 | "url": "https://api.github.com/repos/laravel/framework/zipball/c4ce8d7a3ac6e655e8b5f0ff3ee07d24fab765ba",
375 | "reference": "c4ce8d7a3ac6e655e8b5f0ff3ee07d24fab765ba",
376 | "shasum": ""
377 | },
378 | "require": {
379 | "classpreloader/classpreloader": "~2.0",
380 | "danielstjules/stringy": "~1.8",
381 | "doctrine/inflector": "~1.0",
382 | "ext-mbstring": "*",
383 | "ext-openssl": "*",
384 | "jeremeamia/superclosure": "~2.0",
385 | "league/flysystem": "~1.0",
386 | "monolog/monolog": "~1.11",
387 | "mtdowling/cron-expression": "~1.0",
388 | "nesbot/carbon": "~1.19",
389 | "php": ">=5.5.9",
390 | "psy/psysh": "~0.5.1",
391 | "swiftmailer/swiftmailer": "~5.1",
392 | "symfony/console": "2.7.*",
393 | "symfony/css-selector": "2.7.*",
394 | "symfony/debug": "2.7.*",
395 | "symfony/dom-crawler": "2.7.*",
396 | "symfony/finder": "2.7.*",
397 | "symfony/http-foundation": "2.7.*",
398 | "symfony/http-kernel": "2.7.*",
399 | "symfony/process": "2.7.*",
400 | "symfony/routing": "2.7.*",
401 | "symfony/translation": "2.7.*",
402 | "symfony/var-dumper": "2.7.*",
403 | "vlucas/phpdotenv": "~1.0"
404 | },
405 | "replace": {
406 | "illuminate/auth": "self.version",
407 | "illuminate/broadcasting": "self.version",
408 | "illuminate/bus": "self.version",
409 | "illuminate/cache": "self.version",
410 | "illuminate/config": "self.version",
411 | "illuminate/console": "self.version",
412 | "illuminate/container": "self.version",
413 | "illuminate/contracts": "self.version",
414 | "illuminate/cookie": "self.version",
415 | "illuminate/database": "self.version",
416 | "illuminate/encryption": "self.version",
417 | "illuminate/events": "self.version",
418 | "illuminate/exception": "self.version",
419 | "illuminate/filesystem": "self.version",
420 | "illuminate/foundation": "self.version",
421 | "illuminate/hashing": "self.version",
422 | "illuminate/http": "self.version",
423 | "illuminate/log": "self.version",
424 | "illuminate/mail": "self.version",
425 | "illuminate/pagination": "self.version",
426 | "illuminate/pipeline": "self.version",
427 | "illuminate/queue": "self.version",
428 | "illuminate/redis": "self.version",
429 | "illuminate/routing": "self.version",
430 | "illuminate/session": "self.version",
431 | "illuminate/support": "self.version",
432 | "illuminate/translation": "self.version",
433 | "illuminate/validation": "self.version",
434 | "illuminate/view": "self.version"
435 | },
436 | "require-dev": {
437 | "aws/aws-sdk-php": "~3.0",
438 | "iron-io/iron_mq": "~2.0",
439 | "mockery/mockery": "~0.9.1",
440 | "pda/pheanstalk": "~3.0",
441 | "phpunit/phpunit": "~4.0",
442 | "predis/predis": "~1.0"
443 | },
444 | "suggest": {
445 | "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).",
446 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.4).",
447 | "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).",
448 | "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers (~5.3|~6.0).",
449 | "iron-io/iron_mq": "Required to use the iron queue driver (~2.0).",
450 | "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).",
451 | "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).",
452 | "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).",
453 | "predis/predis": "Required to use the redis cache and queue drivers (~1.0).",
454 | "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0)."
455 | },
456 | "type": "library",
457 | "extra": {
458 | "branch-alias": {
459 | "dev-master": "5.1-dev"
460 | }
461 | },
462 | "autoload": {
463 | "classmap": [
464 | "src/Illuminate/Queue/IlluminateQueueClosure.php"
465 | ],
466 | "files": [
467 | "src/Illuminate/Foundation/helpers.php",
468 | "src/Illuminate/Support/helpers.php"
469 | ],
470 | "psr-4": {
471 | "Illuminate\\": "src/Illuminate/"
472 | }
473 | },
474 | "notification-url": "https://packagist.org/downloads/",
475 | "license": [
476 | "MIT"
477 | ],
478 | "authors": [
479 | {
480 | "name": "Taylor Otwell",
481 | "email": "taylorotwell@gmail.com"
482 | }
483 | ],
484 | "description": "The Laravel Framework.",
485 | "homepage": "http://laravel.com",
486 | "keywords": [
487 | "framework",
488 | "laravel"
489 | ],
490 | "time": "2015-07-21 18:33:13"
491 | },
492 | {
493 | "name": "league/flysystem",
494 | "version": "1.0.11",
495 | "source": {
496 | "type": "git",
497 | "url": "https://github.com/thephpleague/flysystem.git",
498 | "reference": "c16222fdc02467eaa12cb6d6d0e65527741f6040"
499 | },
500 | "dist": {
501 | "type": "zip",
502 | "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c16222fdc02467eaa12cb6d6d0e65527741f6040",
503 | "reference": "c16222fdc02467eaa12cb6d6d0e65527741f6040",
504 | "shasum": ""
505 | },
506 | "require": {
507 | "php": ">=5.4.0"
508 | },
509 | "require-dev": {
510 | "ext-fileinfo": "*",
511 | "mockery/mockery": "~0.9",
512 | "phpspec/phpspec": "^2.2",
513 | "phpspec/prophecy-phpunit": "~1.0",
514 | "phpunit/phpunit": "~4.1"
515 | },
516 | "suggest": {
517 | "ext-fileinfo": "Required for MimeType",
518 | "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
519 | "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
520 | "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
521 | "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
522 | "league/flysystem-copy": "Allows you to use Copy.com storage",
523 | "league/flysystem-dropbox": "Allows you to use Dropbox storage",
524 | "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
525 | "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
526 | "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
527 | "league/flysystem-webdav": "Allows you to use WebDAV storage",
528 | "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter"
529 | },
530 | "type": "library",
531 | "extra": {
532 | "branch-alias": {
533 | "dev-master": "1.1-dev"
534 | }
535 | },
536 | "autoload": {
537 | "psr-4": {
538 | "League\\Flysystem\\": "src/"
539 | }
540 | },
541 | "notification-url": "https://packagist.org/downloads/",
542 | "license": [
543 | "MIT"
544 | ],
545 | "authors": [
546 | {
547 | "name": "Frank de Jonge",
548 | "email": "info@frenky.net"
549 | }
550 | ],
551 | "description": "Filesystem abstraction: Many filesystems, one API.",
552 | "keywords": [
553 | "Cloud Files",
554 | "WebDAV",
555 | "abstraction",
556 | "aws",
557 | "cloud",
558 | "copy.com",
559 | "dropbox",
560 | "file systems",
561 | "files",
562 | "filesystem",
563 | "filesystems",
564 | "ftp",
565 | "rackspace",
566 | "remote",
567 | "s3",
568 | "sftp",
569 | "storage"
570 | ],
571 | "time": "2015-07-28 20:41:58"
572 | },
573 | {
574 | "name": "monolog/monolog",
575 | "version": "1.15.0",
576 | "source": {
577 | "type": "git",
578 | "url": "https://github.com/Seldaek/monolog.git",
579 | "reference": "dc5150cc608f2334c72c3b6a553ec9668a4156b0"
580 | },
581 | "dist": {
582 | "type": "zip",
583 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/dc5150cc608f2334c72c3b6a553ec9668a4156b0",
584 | "reference": "dc5150cc608f2334c72c3b6a553ec9668a4156b0",
585 | "shasum": ""
586 | },
587 | "require": {
588 | "php": ">=5.3.0",
589 | "psr/log": "~1.0"
590 | },
591 | "provide": {
592 | "psr/log-implementation": "1.0.0"
593 | },
594 | "require-dev": {
595 | "aws/aws-sdk-php": "^2.4.9",
596 | "doctrine/couchdb": "~1.0@dev",
597 | "graylog2/gelf-php": "~1.0",
598 | "php-console/php-console": "^3.1.3",
599 | "phpunit/phpunit": "~4.5",
600 | "phpunit/phpunit-mock-objects": "2.3.0",
601 | "raven/raven": "~0.8",
602 | "ruflin/elastica": ">=0.90 <3.0",
603 | "swiftmailer/swiftmailer": "~5.3",
604 | "videlalvaro/php-amqplib": "~2.4"
605 | },
606 | "suggest": {
607 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
608 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
609 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
610 | "ext-mongo": "Allow sending log messages to a MongoDB server",
611 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
612 | "php-console/php-console": "Allow sending log messages to Google Chrome",
613 | "raven/raven": "Allow sending log messages to a Sentry server",
614 | "rollbar/rollbar": "Allow sending log messages to Rollbar",
615 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
616 | "videlalvaro/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib"
617 | },
618 | "type": "library",
619 | "extra": {
620 | "branch-alias": {
621 | "dev-master": "1.15.x-dev"
622 | }
623 | },
624 | "autoload": {
625 | "psr-4": {
626 | "Monolog\\": "src/Monolog"
627 | }
628 | },
629 | "notification-url": "https://packagist.org/downloads/",
630 | "license": [
631 | "MIT"
632 | ],
633 | "authors": [
634 | {
635 | "name": "Jordi Boggiano",
636 | "email": "j.boggiano@seld.be",
637 | "homepage": "http://seld.be"
638 | }
639 | ],
640 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
641 | "homepage": "http://github.com/Seldaek/monolog",
642 | "keywords": [
643 | "log",
644 | "logging",
645 | "psr-3"
646 | ],
647 | "time": "2015-07-12 13:54:09"
648 | },
649 | {
650 | "name": "mtdowling/cron-expression",
651 | "version": "v1.0.4",
652 | "source": {
653 | "type": "git",
654 | "url": "https://github.com/mtdowling/cron-expression.git",
655 | "reference": "fd92e883195e5dfa77720b1868cf084b08be4412"
656 | },
657 | "dist": {
658 | "type": "zip",
659 | "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/fd92e883195e5dfa77720b1868cf084b08be4412",
660 | "reference": "fd92e883195e5dfa77720b1868cf084b08be4412",
661 | "shasum": ""
662 | },
663 | "require": {
664 | "php": ">=5.3.2"
665 | },
666 | "require-dev": {
667 | "phpunit/phpunit": "4.*"
668 | },
669 | "type": "library",
670 | "autoload": {
671 | "psr-0": {
672 | "Cron": "src/"
673 | }
674 | },
675 | "notification-url": "https://packagist.org/downloads/",
676 | "license": [
677 | "MIT"
678 | ],
679 | "authors": [
680 | {
681 | "name": "Michael Dowling",
682 | "email": "mtdowling@gmail.com",
683 | "homepage": "https://github.com/mtdowling"
684 | }
685 | ],
686 | "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
687 | "keywords": [
688 | "cron",
689 | "schedule"
690 | ],
691 | "time": "2015-01-11 23:07:46"
692 | },
693 | {
694 | "name": "nesbot/carbon",
695 | "version": "1.20.0",
696 | "source": {
697 | "type": "git",
698 | "url": "https://github.com/briannesbitt/Carbon.git",
699 | "reference": "bfd3eaba109c9a2405c92174c8e17f20c2b9caf3"
700 | },
701 | "dist": {
702 | "type": "zip",
703 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bfd3eaba109c9a2405c92174c8e17f20c2b9caf3",
704 | "reference": "bfd3eaba109c9a2405c92174c8e17f20c2b9caf3",
705 | "shasum": ""
706 | },
707 | "require": {
708 | "php": ">=5.3.0",
709 | "symfony/translation": "~2.6|~3.0"
710 | },
711 | "require-dev": {
712 | "phpunit/phpunit": "~4.0"
713 | },
714 | "type": "library",
715 | "autoload": {
716 | "psr-0": {
717 | "Carbon": "src"
718 | }
719 | },
720 | "notification-url": "https://packagist.org/downloads/",
721 | "license": [
722 | "MIT"
723 | ],
724 | "authors": [
725 | {
726 | "name": "Brian Nesbitt",
727 | "email": "brian@nesbot.com",
728 | "homepage": "http://nesbot.com"
729 | }
730 | ],
731 | "description": "A simple API extension for DateTime.",
732 | "homepage": "http://carbon.nesbot.com",
733 | "keywords": [
734 | "date",
735 | "datetime",
736 | "time"
737 | ],
738 | "time": "2015-06-25 04:19:39"
739 | },
740 | {
741 | "name": "nikic/php-parser",
742 | "version": "v1.4.0",
743 | "source": {
744 | "type": "git",
745 | "url": "https://github.com/nikic/PHP-Parser.git",
746 | "reference": "196f177cfefa0f1f7166c0a05d8255889be12418"
747 | },
748 | "dist": {
749 | "type": "zip",
750 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/196f177cfefa0f1f7166c0a05d8255889be12418",
751 | "reference": "196f177cfefa0f1f7166c0a05d8255889be12418",
752 | "shasum": ""
753 | },
754 | "require": {
755 | "ext-tokenizer": "*",
756 | "php": ">=5.3"
757 | },
758 | "type": "library",
759 | "extra": {
760 | "branch-alias": {
761 | "dev-master": "1.4-dev"
762 | }
763 | },
764 | "autoload": {
765 | "files": [
766 | "lib/bootstrap.php"
767 | ]
768 | },
769 | "notification-url": "https://packagist.org/downloads/",
770 | "license": [
771 | "BSD-3-Clause"
772 | ],
773 | "authors": [
774 | {
775 | "name": "Nikita Popov"
776 | }
777 | ],
778 | "description": "A PHP parser written in PHP",
779 | "keywords": [
780 | "parser",
781 | "php"
782 | ],
783 | "time": "2015-07-14 17:31:05"
784 | },
785 | {
786 | "name": "psr/log",
787 | "version": "1.0.0",
788 | "source": {
789 | "type": "git",
790 | "url": "https://github.com/php-fig/log.git",
791 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
792 | },
793 | "dist": {
794 | "type": "zip",
795 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
796 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
797 | "shasum": ""
798 | },
799 | "type": "library",
800 | "autoload": {
801 | "psr-0": {
802 | "Psr\\Log\\": ""
803 | }
804 | },
805 | "notification-url": "https://packagist.org/downloads/",
806 | "license": [
807 | "MIT"
808 | ],
809 | "authors": [
810 | {
811 | "name": "PHP-FIG",
812 | "homepage": "http://www.php-fig.org/"
813 | }
814 | ],
815 | "description": "Common interface for logging libraries",
816 | "keywords": [
817 | "log",
818 | "psr",
819 | "psr-3"
820 | ],
821 | "time": "2012-12-21 11:40:51"
822 | },
823 | {
824 | "name": "psy/psysh",
825 | "version": "v0.5.2",
826 | "source": {
827 | "type": "git",
828 | "url": "https://github.com/bobthecow/psysh.git",
829 | "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975"
830 | },
831 | "dist": {
832 | "type": "zip",
833 | "url": "https://api.github.com/repos/bobthecow/psysh/zipball/aaf8772ade08b5f0f6830774a5d5c2f800415975",
834 | "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975",
835 | "shasum": ""
836 | },
837 | "require": {
838 | "dnoegel/php-xdg-base-dir": "0.1",
839 | "jakub-onderka/php-console-highlighter": "0.3.*",
840 | "nikic/php-parser": "^1.2.1",
841 | "php": ">=5.3.9",
842 | "symfony/console": "~2.3.10|^2.4.2|~3.0",
843 | "symfony/var-dumper": "~2.7|~3.0"
844 | },
845 | "require-dev": {
846 | "fabpot/php-cs-fixer": "~1.5",
847 | "phpunit/phpunit": "~3.7|~4.0",
848 | "squizlabs/php_codesniffer": "~2.0",
849 | "symfony/finder": "~2.1|~3.0"
850 | },
851 | "suggest": {
852 | "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
853 | "ext-pdo-sqlite": "The doc command requires SQLite to work.",
854 | "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
855 | "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
856 | },
857 | "bin": [
858 | "bin/psysh"
859 | ],
860 | "type": "library",
861 | "extra": {
862 | "branch-alias": {
863 | "dev-develop": "0.6.x-dev"
864 | }
865 | },
866 | "autoload": {
867 | "files": [
868 | "src/Psy/functions.php"
869 | ],
870 | "psr-0": {
871 | "Psy\\": "src/"
872 | }
873 | },
874 | "notification-url": "https://packagist.org/downloads/",
875 | "license": [
876 | "MIT"
877 | ],
878 | "authors": [
879 | {
880 | "name": "Justin Hileman",
881 | "email": "justin@justinhileman.info",
882 | "homepage": "http://justinhileman.com"
883 | }
884 | ],
885 | "description": "An interactive shell for modern PHP.",
886 | "homepage": "http://psysh.org",
887 | "keywords": [
888 | "REPL",
889 | "console",
890 | "interactive",
891 | "shell"
892 | ],
893 | "time": "2015-07-16 15:26:57"
894 | },
895 | {
896 | "name": "ramsey/uuid",
897 | "version": "2.8.2",
898 | "source": {
899 | "type": "git",
900 | "url": "https://github.com/ramsey/uuid.git",
901 | "reference": "9c1e2d34bdefd42608c612e08d6e1da1e13a3530"
902 | },
903 | "dist": {
904 | "type": "zip",
905 | "url": "https://api.github.com/repos/ramsey/uuid/zipball/9c1e2d34bdefd42608c612e08d6e1da1e13a3530",
906 | "reference": "9c1e2d34bdefd42608c612e08d6e1da1e13a3530",
907 | "shasum": ""
908 | },
909 | "require": {
910 | "php": ">=5.3.3"
911 | },
912 | "replace": {
913 | "rhumsaa/uuid": "self.version"
914 | },
915 | "require-dev": {
916 | "doctrine/dbal": ">=2.3",
917 | "jakub-onderka/php-parallel-lint": "^0.9.0",
918 | "moontoast/math": "~1.1",
919 | "phpunit/phpunit": "~4.1",
920 | "satooshi/php-coveralls": "~0.6",
921 | "squizlabs/php_codesniffer": "^2.3",
922 | "symfony/console": "~2.3"
923 | },
924 | "suggest": {
925 | "doctrine/dbal": "Allow the use of a UUID as doctrine field type.",
926 | "moontoast/math": "Support for converting UUID to 128-bit integer (in string form).",
927 | "symfony/console": "Support for use of the bin/uuid command line tool."
928 | },
929 | "bin": [
930 | "bin/uuid"
931 | ],
932 | "type": "library",
933 | "autoload": {
934 | "psr-4": {
935 | "Rhumsaa\\Uuid\\": "src/"
936 | }
937 | },
938 | "notification-url": "https://packagist.org/downloads/",
939 | "license": [
940 | "MIT"
941 | ],
942 | "authors": [
943 | {
944 | "name": "Marijn Huizendveld",
945 | "email": "marijn.huizendveld@gmail.com"
946 | },
947 | {
948 | "name": "Ben Ramsey",
949 | "homepage": "http://benramsey.com"
950 | }
951 | ],
952 | "description": "NO LONGER MAINTAINED. Use ramsey/uuid instead. A PHP 5.3+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
953 | "homepage": "https://github.com/ramsey/rhumsaa-uuid",
954 | "keywords": [
955 | "guid",
956 | "identifier",
957 | "uuid"
958 | ],
959 | "time": "2015-07-23 19:00:41"
960 | },
961 | {
962 | "name": "swiftmailer/swiftmailer",
963 | "version": "v5.4.1",
964 | "source": {
965 | "type": "git",
966 | "url": "https://github.com/swiftmailer/swiftmailer.git",
967 | "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421"
968 | },
969 | "dist": {
970 | "type": "zip",
971 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/0697e6aa65c83edf97bb0f23d8763f94e3f11421",
972 | "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421",
973 | "shasum": ""
974 | },
975 | "require": {
976 | "php": ">=5.3.3"
977 | },
978 | "require-dev": {
979 | "mockery/mockery": "~0.9.1,<0.9.4"
980 | },
981 | "type": "library",
982 | "extra": {
983 | "branch-alias": {
984 | "dev-master": "5.4-dev"
985 | }
986 | },
987 | "autoload": {
988 | "files": [
989 | "lib/swift_required.php"
990 | ]
991 | },
992 | "notification-url": "https://packagist.org/downloads/",
993 | "license": [
994 | "MIT"
995 | ],
996 | "authors": [
997 | {
998 | "name": "Chris Corbyn"
999 | },
1000 | {
1001 | "name": "Fabien Potencier",
1002 | "email": "fabien@symfony.com"
1003 | }
1004 | ],
1005 | "description": "Swiftmailer, free feature-rich PHP mailer",
1006 | "homepage": "http://swiftmailer.org",
1007 | "keywords": [
1008 | "email",
1009 | "mail",
1010 | "mailer"
1011 | ],
1012 | "time": "2015-06-06 14:19:39"
1013 | },
1014 | {
1015 | "name": "symfony/console",
1016 | "version": "v2.7.3",
1017 | "source": {
1018 | "type": "git",
1019 | "url": "https://github.com/symfony/Console.git",
1020 | "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e"
1021 | },
1022 | "dist": {
1023 | "type": "zip",
1024 | "url": "https://api.github.com/repos/symfony/Console/zipball/d6cf02fe73634c96677e428f840704bfbcaec29e",
1025 | "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e",
1026 | "shasum": ""
1027 | },
1028 | "require": {
1029 | "php": ">=5.3.9"
1030 | },
1031 | "require-dev": {
1032 | "psr/log": "~1.0",
1033 | "symfony/event-dispatcher": "~2.1",
1034 | "symfony/phpunit-bridge": "~2.7",
1035 | "symfony/process": "~2.1"
1036 | },
1037 | "suggest": {
1038 | "psr/log": "For using the console logger",
1039 | "symfony/event-dispatcher": "",
1040 | "symfony/process": ""
1041 | },
1042 | "type": "library",
1043 | "extra": {
1044 | "branch-alias": {
1045 | "dev-master": "2.7-dev"
1046 | }
1047 | },
1048 | "autoload": {
1049 | "psr-4": {
1050 | "Symfony\\Component\\Console\\": ""
1051 | }
1052 | },
1053 | "notification-url": "https://packagist.org/downloads/",
1054 | "license": [
1055 | "MIT"
1056 | ],
1057 | "authors": [
1058 | {
1059 | "name": "Fabien Potencier",
1060 | "email": "fabien@symfony.com"
1061 | },
1062 | {
1063 | "name": "Symfony Community",
1064 | "homepage": "https://symfony.com/contributors"
1065 | }
1066 | ],
1067 | "description": "Symfony Console Component",
1068 | "homepage": "https://symfony.com",
1069 | "time": "2015-07-28 15:18:12"
1070 | },
1071 | {
1072 | "name": "symfony/css-selector",
1073 | "version": "v2.7.3",
1074 | "source": {
1075 | "type": "git",
1076 | "url": "https://github.com/symfony/CssSelector.git",
1077 | "reference": "0b5c07b516226b7dd32afbbc82fe547a469c5092"
1078 | },
1079 | "dist": {
1080 | "type": "zip",
1081 | "url": "https://api.github.com/repos/symfony/CssSelector/zipball/0b5c07b516226b7dd32afbbc82fe547a469c5092",
1082 | "reference": "0b5c07b516226b7dd32afbbc82fe547a469c5092",
1083 | "shasum": ""
1084 | },
1085 | "require": {
1086 | "php": ">=5.3.9"
1087 | },
1088 | "require-dev": {
1089 | "symfony/phpunit-bridge": "~2.7"
1090 | },
1091 | "type": "library",
1092 | "extra": {
1093 | "branch-alias": {
1094 | "dev-master": "2.7-dev"
1095 | }
1096 | },
1097 | "autoload": {
1098 | "psr-4": {
1099 | "Symfony\\Component\\CssSelector\\": ""
1100 | }
1101 | },
1102 | "notification-url": "https://packagist.org/downloads/",
1103 | "license": [
1104 | "MIT"
1105 | ],
1106 | "authors": [
1107 | {
1108 | "name": "Jean-François Simon",
1109 | "email": "jeanfrancois.simon@sensiolabs.com"
1110 | },
1111 | {
1112 | "name": "Fabien Potencier",
1113 | "email": "fabien@symfony.com"
1114 | },
1115 | {
1116 | "name": "Symfony Community",
1117 | "homepage": "https://symfony.com/contributors"
1118 | }
1119 | ],
1120 | "description": "Symfony CssSelector Component",
1121 | "homepage": "https://symfony.com",
1122 | "time": "2015-05-15 13:33:16"
1123 | },
1124 | {
1125 | "name": "symfony/debug",
1126 | "version": "v2.7.3",
1127 | "source": {
1128 | "type": "git",
1129 | "url": "https://github.com/symfony/Debug.git",
1130 | "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3"
1131 | },
1132 | "dist": {
1133 | "type": "zip",
1134 | "url": "https://api.github.com/repos/symfony/Debug/zipball/9daa1bf9f7e615fa2fba30357e479a90141222e3",
1135 | "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3",
1136 | "shasum": ""
1137 | },
1138 | "require": {
1139 | "php": ">=5.3.9",
1140 | "psr/log": "~1.0"
1141 | },
1142 | "conflict": {
1143 | "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
1144 | },
1145 | "require-dev": {
1146 | "symfony/class-loader": "~2.2",
1147 | "symfony/http-foundation": "~2.1",
1148 | "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2",
1149 | "symfony/phpunit-bridge": "~2.7"
1150 | },
1151 | "suggest": {
1152 | "symfony/http-foundation": "",
1153 | "symfony/http-kernel": ""
1154 | },
1155 | "type": "library",
1156 | "extra": {
1157 | "branch-alias": {
1158 | "dev-master": "2.7-dev"
1159 | }
1160 | },
1161 | "autoload": {
1162 | "psr-4": {
1163 | "Symfony\\Component\\Debug\\": ""
1164 | }
1165 | },
1166 | "notification-url": "https://packagist.org/downloads/",
1167 | "license": [
1168 | "MIT"
1169 | ],
1170 | "authors": [
1171 | {
1172 | "name": "Fabien Potencier",
1173 | "email": "fabien@symfony.com"
1174 | },
1175 | {
1176 | "name": "Symfony Community",
1177 | "homepage": "https://symfony.com/contributors"
1178 | }
1179 | ],
1180 | "description": "Symfony Debug Component",
1181 | "homepage": "https://symfony.com",
1182 | "time": "2015-07-09 16:07:40"
1183 | },
1184 | {
1185 | "name": "symfony/dom-crawler",
1186 | "version": "v2.7.3",
1187 | "source": {
1188 | "type": "git",
1189 | "url": "https://github.com/symfony/DomCrawler.git",
1190 | "reference": "9dabece63182e95c42b06967a0d929a5df78bc35"
1191 | },
1192 | "dist": {
1193 | "type": "zip",
1194 | "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/9dabece63182e95c42b06967a0d929a5df78bc35",
1195 | "reference": "9dabece63182e95c42b06967a0d929a5df78bc35",
1196 | "shasum": ""
1197 | },
1198 | "require": {
1199 | "php": ">=5.3.9"
1200 | },
1201 | "require-dev": {
1202 | "symfony/css-selector": "~2.3",
1203 | "symfony/phpunit-bridge": "~2.7"
1204 | },
1205 | "suggest": {
1206 | "symfony/css-selector": ""
1207 | },
1208 | "type": "library",
1209 | "extra": {
1210 | "branch-alias": {
1211 | "dev-master": "2.7-dev"
1212 | }
1213 | },
1214 | "autoload": {
1215 | "psr-4": {
1216 | "Symfony\\Component\\DomCrawler\\": ""
1217 | }
1218 | },
1219 | "notification-url": "https://packagist.org/downloads/",
1220 | "license": [
1221 | "MIT"
1222 | ],
1223 | "authors": [
1224 | {
1225 | "name": "Fabien Potencier",
1226 | "email": "fabien@symfony.com"
1227 | },
1228 | {
1229 | "name": "Symfony Community",
1230 | "homepage": "https://symfony.com/contributors"
1231 | }
1232 | ],
1233 | "description": "Symfony DomCrawler Component",
1234 | "homepage": "https://symfony.com",
1235 | "time": "2015-07-09 16:07:40"
1236 | },
1237 | {
1238 | "name": "symfony/event-dispatcher",
1239 | "version": "v2.7.3",
1240 | "source": {
1241 | "type": "git",
1242 | "url": "https://github.com/symfony/EventDispatcher.git",
1243 | "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3"
1244 | },
1245 | "dist": {
1246 | "type": "zip",
1247 | "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
1248 | "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
1249 | "shasum": ""
1250 | },
1251 | "require": {
1252 | "php": ">=5.3.9"
1253 | },
1254 | "require-dev": {
1255 | "psr/log": "~1.0",
1256 | "symfony/config": "~2.0,>=2.0.5",
1257 | "symfony/dependency-injection": "~2.6",
1258 | "symfony/expression-language": "~2.6",
1259 | "symfony/phpunit-bridge": "~2.7",
1260 | "symfony/stopwatch": "~2.3"
1261 | },
1262 | "suggest": {
1263 | "symfony/dependency-injection": "",
1264 | "symfony/http-kernel": ""
1265 | },
1266 | "type": "library",
1267 | "extra": {
1268 | "branch-alias": {
1269 | "dev-master": "2.7-dev"
1270 | }
1271 | },
1272 | "autoload": {
1273 | "psr-4": {
1274 | "Symfony\\Component\\EventDispatcher\\": ""
1275 | }
1276 | },
1277 | "notification-url": "https://packagist.org/downloads/",
1278 | "license": [
1279 | "MIT"
1280 | ],
1281 | "authors": [
1282 | {
1283 | "name": "Fabien Potencier",
1284 | "email": "fabien@symfony.com"
1285 | },
1286 | {
1287 | "name": "Symfony Community",
1288 | "homepage": "https://symfony.com/contributors"
1289 | }
1290 | ],
1291 | "description": "Symfony EventDispatcher Component",
1292 | "homepage": "https://symfony.com",
1293 | "time": "2015-06-18 19:21:56"
1294 | },
1295 | {
1296 | "name": "symfony/finder",
1297 | "version": "v2.7.3",
1298 | "source": {
1299 | "type": "git",
1300 | "url": "https://github.com/symfony/Finder.git",
1301 | "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4"
1302 | },
1303 | "dist": {
1304 | "type": "zip",
1305 | "url": "https://api.github.com/repos/symfony/Finder/zipball/ae0f363277485094edc04c9f3cbe595b183b78e4",
1306 | "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4",
1307 | "shasum": ""
1308 | },
1309 | "require": {
1310 | "php": ">=5.3.9"
1311 | },
1312 | "require-dev": {
1313 | "symfony/phpunit-bridge": "~2.7"
1314 | },
1315 | "type": "library",
1316 | "extra": {
1317 | "branch-alias": {
1318 | "dev-master": "2.7-dev"
1319 | }
1320 | },
1321 | "autoload": {
1322 | "psr-4": {
1323 | "Symfony\\Component\\Finder\\": ""
1324 | }
1325 | },
1326 | "notification-url": "https://packagist.org/downloads/",
1327 | "license": [
1328 | "MIT"
1329 | ],
1330 | "authors": [
1331 | {
1332 | "name": "Fabien Potencier",
1333 | "email": "fabien@symfony.com"
1334 | },
1335 | {
1336 | "name": "Symfony Community",
1337 | "homepage": "https://symfony.com/contributors"
1338 | }
1339 | ],
1340 | "description": "Symfony Finder Component",
1341 | "homepage": "https://symfony.com",
1342 | "time": "2015-07-09 16:07:40"
1343 | },
1344 | {
1345 | "name": "symfony/http-foundation",
1346 | "version": "v2.7.3",
1347 | "source": {
1348 | "type": "git",
1349 | "url": "https://github.com/symfony/HttpFoundation.git",
1350 | "reference": "863af6898081b34c65d42100c370b9f3c51b70ca"
1351 | },
1352 | "dist": {
1353 | "type": "zip",
1354 | "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/863af6898081b34c65d42100c370b9f3c51b70ca",
1355 | "reference": "863af6898081b34c65d42100c370b9f3c51b70ca",
1356 | "shasum": ""
1357 | },
1358 | "require": {
1359 | "php": ">=5.3.9"
1360 | },
1361 | "require-dev": {
1362 | "symfony/expression-language": "~2.4",
1363 | "symfony/phpunit-bridge": "~2.7"
1364 | },
1365 | "type": "library",
1366 | "extra": {
1367 | "branch-alias": {
1368 | "dev-master": "2.7-dev"
1369 | }
1370 | },
1371 | "autoload": {
1372 | "psr-4": {
1373 | "Symfony\\Component\\HttpFoundation\\": ""
1374 | },
1375 | "classmap": [
1376 | "Resources/stubs"
1377 | ]
1378 | },
1379 | "notification-url": "https://packagist.org/downloads/",
1380 | "license": [
1381 | "MIT"
1382 | ],
1383 | "authors": [
1384 | {
1385 | "name": "Fabien Potencier",
1386 | "email": "fabien@symfony.com"
1387 | },
1388 | {
1389 | "name": "Symfony Community",
1390 | "homepage": "https://symfony.com/contributors"
1391 | }
1392 | ],
1393 | "description": "Symfony HttpFoundation Component",
1394 | "homepage": "https://symfony.com",
1395 | "time": "2015-07-22 10:11:00"
1396 | },
1397 | {
1398 | "name": "symfony/http-kernel",
1399 | "version": "v2.7.3",
1400 | "source": {
1401 | "type": "git",
1402 | "url": "https://github.com/symfony/HttpKernel.git",
1403 | "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98"
1404 | },
1405 | "dist": {
1406 | "type": "zip",
1407 | "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/405d3e7a59ff7a28ec469441326a0ac79065ea98",
1408 | "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98",
1409 | "shasum": ""
1410 | },
1411 | "require": {
1412 | "php": ">=5.3.9",
1413 | "psr/log": "~1.0",
1414 | "symfony/debug": "~2.6,>=2.6.2",
1415 | "symfony/event-dispatcher": "~2.6,>=2.6.7",
1416 | "symfony/http-foundation": "~2.5,>=2.5.4"
1417 | },
1418 | "conflict": {
1419 | "symfony/config": "<2.7"
1420 | },
1421 | "require-dev": {
1422 | "symfony/browser-kit": "~2.3",
1423 | "symfony/class-loader": "~2.1",
1424 | "symfony/config": "~2.7",
1425 | "symfony/console": "~2.3",
1426 | "symfony/css-selector": "~2.0,>=2.0.5",
1427 | "symfony/dependency-injection": "~2.2",
1428 | "symfony/dom-crawler": "~2.0,>=2.0.5",
1429 | "symfony/expression-language": "~2.4",
1430 | "symfony/finder": "~2.0,>=2.0.5",
1431 | "symfony/phpunit-bridge": "~2.7",
1432 | "symfony/process": "~2.0,>=2.0.5",
1433 | "symfony/routing": "~2.2",
1434 | "symfony/stopwatch": "~2.3",
1435 | "symfony/templating": "~2.2",
1436 | "symfony/translation": "~2.0,>=2.0.5",
1437 | "symfony/var-dumper": "~2.6"
1438 | },
1439 | "suggest": {
1440 | "symfony/browser-kit": "",
1441 | "symfony/class-loader": "",
1442 | "symfony/config": "",
1443 | "symfony/console": "",
1444 | "symfony/dependency-injection": "",
1445 | "symfony/finder": "",
1446 | "symfony/var-dumper": ""
1447 | },
1448 | "type": "library",
1449 | "extra": {
1450 | "branch-alias": {
1451 | "dev-master": "2.7-dev"
1452 | }
1453 | },
1454 | "autoload": {
1455 | "psr-4": {
1456 | "Symfony\\Component\\HttpKernel\\": ""
1457 | }
1458 | },
1459 | "notification-url": "https://packagist.org/downloads/",
1460 | "license": [
1461 | "MIT"
1462 | ],
1463 | "authors": [
1464 | {
1465 | "name": "Fabien Potencier",
1466 | "email": "fabien@symfony.com"
1467 | },
1468 | {
1469 | "name": "Symfony Community",
1470 | "homepage": "https://symfony.com/contributors"
1471 | }
1472 | ],
1473 | "description": "Symfony HttpKernel Component",
1474 | "homepage": "https://symfony.com",
1475 | "time": "2015-07-31 13:24:45"
1476 | },
1477 | {
1478 | "name": "symfony/process",
1479 | "version": "v2.7.3",
1480 | "source": {
1481 | "type": "git",
1482 | "url": "https://github.com/symfony/Process.git",
1483 | "reference": "48aeb0e48600321c272955132d7606ab0a49adb3"
1484 | },
1485 | "dist": {
1486 | "type": "zip",
1487 | "url": "https://api.github.com/repos/symfony/Process/zipball/48aeb0e48600321c272955132d7606ab0a49adb3",
1488 | "reference": "48aeb0e48600321c272955132d7606ab0a49adb3",
1489 | "shasum": ""
1490 | },
1491 | "require": {
1492 | "php": ">=5.3.9"
1493 | },
1494 | "require-dev": {
1495 | "symfony/phpunit-bridge": "~2.7"
1496 | },
1497 | "type": "library",
1498 | "extra": {
1499 | "branch-alias": {
1500 | "dev-master": "2.7-dev"
1501 | }
1502 | },
1503 | "autoload": {
1504 | "psr-4": {
1505 | "Symfony\\Component\\Process\\": ""
1506 | }
1507 | },
1508 | "notification-url": "https://packagist.org/downloads/",
1509 | "license": [
1510 | "MIT"
1511 | ],
1512 | "authors": [
1513 | {
1514 | "name": "Fabien Potencier",
1515 | "email": "fabien@symfony.com"
1516 | },
1517 | {
1518 | "name": "Symfony Community",
1519 | "homepage": "https://symfony.com/contributors"
1520 | }
1521 | ],
1522 | "description": "Symfony Process Component",
1523 | "homepage": "https://symfony.com",
1524 | "time": "2015-07-01 11:25:50"
1525 | },
1526 | {
1527 | "name": "symfony/routing",
1528 | "version": "v2.7.3",
1529 | "source": {
1530 | "type": "git",
1531 | "url": "https://github.com/symfony/Routing.git",
1532 | "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26"
1533 | },
1534 | "dist": {
1535 | "type": "zip",
1536 | "url": "https://api.github.com/repos/symfony/Routing/zipball/ea9134f277162b02e5f80ac058b75a77637b0d26",
1537 | "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26",
1538 | "shasum": ""
1539 | },
1540 | "require": {
1541 | "php": ">=5.3.9"
1542 | },
1543 | "conflict": {
1544 | "symfony/config": "<2.7"
1545 | },
1546 | "require-dev": {
1547 | "doctrine/annotations": "~1.0",
1548 | "doctrine/common": "~2.2",
1549 | "psr/log": "~1.0",
1550 | "symfony/config": "~2.7",
1551 | "symfony/expression-language": "~2.4",
1552 | "symfony/http-foundation": "~2.3",
1553 | "symfony/phpunit-bridge": "~2.7",
1554 | "symfony/yaml": "~2.0,>=2.0.5"
1555 | },
1556 | "suggest": {
1557 | "doctrine/annotations": "For using the annotation loader",
1558 | "symfony/config": "For using the all-in-one router or any loader",
1559 | "symfony/expression-language": "For using expression matching",
1560 | "symfony/yaml": "For using the YAML loader"
1561 | },
1562 | "type": "library",
1563 | "extra": {
1564 | "branch-alias": {
1565 | "dev-master": "2.7-dev"
1566 | }
1567 | },
1568 | "autoload": {
1569 | "psr-4": {
1570 | "Symfony\\Component\\Routing\\": ""
1571 | }
1572 | },
1573 | "notification-url": "https://packagist.org/downloads/",
1574 | "license": [
1575 | "MIT"
1576 | ],
1577 | "authors": [
1578 | {
1579 | "name": "Fabien Potencier",
1580 | "email": "fabien@symfony.com"
1581 | },
1582 | {
1583 | "name": "Symfony Community",
1584 | "homepage": "https://symfony.com/contributors"
1585 | }
1586 | ],
1587 | "description": "Symfony Routing Component",
1588 | "homepage": "https://symfony.com",
1589 | "keywords": [
1590 | "router",
1591 | "routing",
1592 | "uri",
1593 | "url"
1594 | ],
1595 | "time": "2015-07-09 16:07:40"
1596 | },
1597 | {
1598 | "name": "symfony/translation",
1599 | "version": "v2.7.3",
1600 | "source": {
1601 | "type": "git",
1602 | "url": "https://github.com/symfony/Translation.git",
1603 | "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6"
1604 | },
1605 | "dist": {
1606 | "type": "zip",
1607 | "url": "https://api.github.com/repos/symfony/Translation/zipball/c8dc34cc936152c609cdd722af317e4239d10dd6",
1608 | "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6",
1609 | "shasum": ""
1610 | },
1611 | "require": {
1612 | "php": ">=5.3.9"
1613 | },
1614 | "conflict": {
1615 | "symfony/config": "<2.7"
1616 | },
1617 | "require-dev": {
1618 | "psr/log": "~1.0",
1619 | "symfony/config": "~2.7",
1620 | "symfony/intl": "~2.3",
1621 | "symfony/phpunit-bridge": "~2.7",
1622 | "symfony/yaml": "~2.2"
1623 | },
1624 | "suggest": {
1625 | "psr/log": "To use logging capability in translator",
1626 | "symfony/config": "",
1627 | "symfony/yaml": ""
1628 | },
1629 | "type": "library",
1630 | "extra": {
1631 | "branch-alias": {
1632 | "dev-master": "2.7-dev"
1633 | }
1634 | },
1635 | "autoload": {
1636 | "psr-4": {
1637 | "Symfony\\Component\\Translation\\": ""
1638 | }
1639 | },
1640 | "notification-url": "https://packagist.org/downloads/",
1641 | "license": [
1642 | "MIT"
1643 | ],
1644 | "authors": [
1645 | {
1646 | "name": "Fabien Potencier",
1647 | "email": "fabien@symfony.com"
1648 | },
1649 | {
1650 | "name": "Symfony Community",
1651 | "homepage": "https://symfony.com/contributors"
1652 | }
1653 | ],
1654 | "description": "Symfony Translation Component",
1655 | "homepage": "https://symfony.com",
1656 | "time": "2015-07-09 16:07:40"
1657 | },
1658 | {
1659 | "name": "symfony/var-dumper",
1660 | "version": "v2.7.3",
1661 | "source": {
1662 | "type": "git",
1663 | "url": "https://github.com/symfony/var-dumper.git",
1664 | "reference": "e8903ebba5eb019f5886ffce739ea9e3b7519579"
1665 | },
1666 | "dist": {
1667 | "type": "zip",
1668 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e8903ebba5eb019f5886ffce739ea9e3b7519579",
1669 | "reference": "e8903ebba5eb019f5886ffce739ea9e3b7519579",
1670 | "shasum": ""
1671 | },
1672 | "require": {
1673 | "php": ">=5.3.9"
1674 | },
1675 | "require-dev": {
1676 | "symfony/phpunit-bridge": "~2.7"
1677 | },
1678 | "suggest": {
1679 | "ext-symfony_debug": ""
1680 | },
1681 | "type": "library",
1682 | "extra": {
1683 | "branch-alias": {
1684 | "dev-master": "2.7-dev"
1685 | }
1686 | },
1687 | "autoload": {
1688 | "files": [
1689 | "Resources/functions/dump.php"
1690 | ],
1691 | "psr-4": {
1692 | "Symfony\\Component\\VarDumper\\": ""
1693 | }
1694 | },
1695 | "notification-url": "https://packagist.org/downloads/",
1696 | "license": [
1697 | "MIT"
1698 | ],
1699 | "authors": [
1700 | {
1701 | "name": "Nicolas Grekas",
1702 | "email": "p@tchwork.com"
1703 | },
1704 | {
1705 | "name": "Symfony Community",
1706 | "homepage": "https://symfony.com/contributors"
1707 | }
1708 | ],
1709 | "description": "Symfony mechanism for exploring and dumping PHP variables",
1710 | "homepage": "https://symfony.com",
1711 | "keywords": [
1712 | "debug",
1713 | "dump"
1714 | ],
1715 | "time": "2015-07-28 15:18:12"
1716 | },
1717 | {
1718 | "name": "vlucas/phpdotenv",
1719 | "version": "v1.1.1",
1720 | "source": {
1721 | "type": "git",
1722 | "url": "https://github.com/vlucas/phpdotenv.git",
1723 | "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa"
1724 | },
1725 | "dist": {
1726 | "type": "zip",
1727 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa",
1728 | "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa",
1729 | "shasum": ""
1730 | },
1731 | "require": {
1732 | "php": ">=5.3.2"
1733 | },
1734 | "require-dev": {
1735 | "phpunit/phpunit": "~4.0"
1736 | },
1737 | "type": "library",
1738 | "autoload": {
1739 | "psr-0": {
1740 | "Dotenv": "src/"
1741 | }
1742 | },
1743 | "notification-url": "https://packagist.org/downloads/",
1744 | "license": [
1745 | "BSD"
1746 | ],
1747 | "authors": [
1748 | {
1749 | "name": "Vance Lucas",
1750 | "email": "vance@vancelucas.com",
1751 | "homepage": "http://www.vancelucas.com"
1752 | }
1753 | ],
1754 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
1755 | "homepage": "http://github.com/vlucas/phpdotenv",
1756 | "keywords": [
1757 | "dotenv",
1758 | "env",
1759 | "environment"
1760 | ],
1761 | "time": "2015-05-30 15:59:26"
1762 | }
1763 | ],
1764 | "packages-dev": [
1765 | {
1766 | "name": "doctrine/instantiator",
1767 | "version": "1.0.5",
1768 | "source": {
1769 | "type": "git",
1770 | "url": "https://github.com/doctrine/instantiator.git",
1771 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
1772 | },
1773 | "dist": {
1774 | "type": "zip",
1775 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
1776 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
1777 | "shasum": ""
1778 | },
1779 | "require": {
1780 | "php": ">=5.3,<8.0-DEV"
1781 | },
1782 | "require-dev": {
1783 | "athletic/athletic": "~0.1.8",
1784 | "ext-pdo": "*",
1785 | "ext-phar": "*",
1786 | "phpunit/phpunit": "~4.0",
1787 | "squizlabs/php_codesniffer": "~2.0"
1788 | },
1789 | "type": "library",
1790 | "extra": {
1791 | "branch-alias": {
1792 | "dev-master": "1.0.x-dev"
1793 | }
1794 | },
1795 | "autoload": {
1796 | "psr-4": {
1797 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
1798 | }
1799 | },
1800 | "notification-url": "https://packagist.org/downloads/",
1801 | "license": [
1802 | "MIT"
1803 | ],
1804 | "authors": [
1805 | {
1806 | "name": "Marco Pivetta",
1807 | "email": "ocramius@gmail.com",
1808 | "homepage": "http://ocramius.github.com/"
1809 | }
1810 | ],
1811 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
1812 | "homepage": "https://github.com/doctrine/instantiator",
1813 | "keywords": [
1814 | "constructor",
1815 | "instantiate"
1816 | ],
1817 | "time": "2015-06-14 21:17:01"
1818 | },
1819 | {
1820 | "name": "fzaninotto/faker",
1821 | "version": "v1.5.0",
1822 | "source": {
1823 | "type": "git",
1824 | "url": "https://github.com/fzaninotto/Faker.git",
1825 | "reference": "d0190b156bcca848d401fb80f31f504f37141c8d"
1826 | },
1827 | "dist": {
1828 | "type": "zip",
1829 | "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d",
1830 | "reference": "d0190b156bcca848d401fb80f31f504f37141c8d",
1831 | "shasum": ""
1832 | },
1833 | "require": {
1834 | "php": ">=5.3.3"
1835 | },
1836 | "require-dev": {
1837 | "phpunit/phpunit": "~4.0",
1838 | "squizlabs/php_codesniffer": "~1.5"
1839 | },
1840 | "suggest": {
1841 | "ext-intl": "*"
1842 | },
1843 | "type": "library",
1844 | "extra": {
1845 | "branch-alias": {
1846 | "dev-master": "1.5.x-dev"
1847 | }
1848 | },
1849 | "autoload": {
1850 | "psr-4": {
1851 | "Faker\\": "src/Faker/"
1852 | }
1853 | },
1854 | "notification-url": "https://packagist.org/downloads/",
1855 | "license": [
1856 | "MIT"
1857 | ],
1858 | "authors": [
1859 | {
1860 | "name": "François Zaninotto"
1861 | }
1862 | ],
1863 | "description": "Faker is a PHP library that generates fake data for you.",
1864 | "keywords": [
1865 | "data",
1866 | "faker",
1867 | "fixtures"
1868 | ],
1869 | "time": "2015-05-29 06:29:14"
1870 | },
1871 | {
1872 | "name": "hamcrest/hamcrest-php",
1873 | "version": "v1.2.2",
1874 | "source": {
1875 | "type": "git",
1876 | "url": "https://github.com/hamcrest/hamcrest-php.git",
1877 | "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c"
1878 | },
1879 | "dist": {
1880 | "type": "zip",
1881 | "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c",
1882 | "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c",
1883 | "shasum": ""
1884 | },
1885 | "require": {
1886 | "php": ">=5.3.2"
1887 | },
1888 | "replace": {
1889 | "cordoval/hamcrest-php": "*",
1890 | "davedevelopment/hamcrest-php": "*",
1891 | "kodova/hamcrest-php": "*"
1892 | },
1893 | "require-dev": {
1894 | "phpunit/php-file-iterator": "1.3.3",
1895 | "satooshi/php-coveralls": "dev-master"
1896 | },
1897 | "type": "library",
1898 | "autoload": {
1899 | "classmap": [
1900 | "hamcrest"
1901 | ],
1902 | "files": [
1903 | "hamcrest/Hamcrest.php"
1904 | ]
1905 | },
1906 | "notification-url": "https://packagist.org/downloads/",
1907 | "license": [
1908 | "BSD"
1909 | ],
1910 | "description": "This is the PHP port of Hamcrest Matchers",
1911 | "keywords": [
1912 | "test"
1913 | ],
1914 | "time": "2015-05-11 14:41:42"
1915 | },
1916 | {
1917 | "name": "mockery/mockery",
1918 | "version": "0.9.4",
1919 | "source": {
1920 | "type": "git",
1921 | "url": "https://github.com/padraic/mockery.git",
1922 | "reference": "70bba85e4aabc9449626651f48b9018ede04f86b"
1923 | },
1924 | "dist": {
1925 | "type": "zip",
1926 | "url": "https://api.github.com/repos/padraic/mockery/zipball/70bba85e4aabc9449626651f48b9018ede04f86b",
1927 | "reference": "70bba85e4aabc9449626651f48b9018ede04f86b",
1928 | "shasum": ""
1929 | },
1930 | "require": {
1931 | "hamcrest/hamcrest-php": "~1.1",
1932 | "lib-pcre": ">=7.0",
1933 | "php": ">=5.3.2"
1934 | },
1935 | "require-dev": {
1936 | "phpunit/phpunit": "~4.0"
1937 | },
1938 | "type": "library",
1939 | "extra": {
1940 | "branch-alias": {
1941 | "dev-master": "0.9.x-dev"
1942 | }
1943 | },
1944 | "autoload": {
1945 | "psr-0": {
1946 | "Mockery": "library/"
1947 | }
1948 | },
1949 | "notification-url": "https://packagist.org/downloads/",
1950 | "license": [
1951 | "BSD-3-Clause"
1952 | ],
1953 | "authors": [
1954 | {
1955 | "name": "Pádraic Brady",
1956 | "email": "padraic.brady@gmail.com",
1957 | "homepage": "http://blog.astrumfutura.com"
1958 | },
1959 | {
1960 | "name": "Dave Marshall",
1961 | "email": "dave.marshall@atstsolutions.co.uk",
1962 | "homepage": "http://davedevelopment.co.uk"
1963 | }
1964 | ],
1965 | "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.",
1966 | "homepage": "http://github.com/padraic/mockery",
1967 | "keywords": [
1968 | "BDD",
1969 | "TDD",
1970 | "library",
1971 | "mock",
1972 | "mock objects",
1973 | "mockery",
1974 | "stub",
1975 | "test",
1976 | "test double",
1977 | "testing"
1978 | ],
1979 | "time": "2015-04-02 19:54:00"
1980 | },
1981 | {
1982 | "name": "phpdocumentor/reflection-docblock",
1983 | "version": "2.0.4",
1984 | "source": {
1985 | "type": "git",
1986 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
1987 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
1988 | },
1989 | "dist": {
1990 | "type": "zip",
1991 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
1992 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
1993 | "shasum": ""
1994 | },
1995 | "require": {
1996 | "php": ">=5.3.3"
1997 | },
1998 | "require-dev": {
1999 | "phpunit/phpunit": "~4.0"
2000 | },
2001 | "suggest": {
2002 | "dflydev/markdown": "~1.0",
2003 | "erusev/parsedown": "~1.0"
2004 | },
2005 | "type": "library",
2006 | "extra": {
2007 | "branch-alias": {
2008 | "dev-master": "2.0.x-dev"
2009 | }
2010 | },
2011 | "autoload": {
2012 | "psr-0": {
2013 | "phpDocumentor": [
2014 | "src/"
2015 | ]
2016 | }
2017 | },
2018 | "notification-url": "https://packagist.org/downloads/",
2019 | "license": [
2020 | "MIT"
2021 | ],
2022 | "authors": [
2023 | {
2024 | "name": "Mike van Riel",
2025 | "email": "mike.vanriel@naenius.com"
2026 | }
2027 | ],
2028 | "time": "2015-02-03 12:10:50"
2029 | },
2030 | {
2031 | "name": "phpspec/php-diff",
2032 | "version": "v1.0.2",
2033 | "source": {
2034 | "type": "git",
2035 | "url": "https://github.com/phpspec/php-diff.git",
2036 | "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a"
2037 | },
2038 | "dist": {
2039 | "type": "zip",
2040 | "url": "https://api.github.com/repos/phpspec/php-diff/zipball/30e103d19519fe678ae64a60d77884ef3d71b28a",
2041 | "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a",
2042 | "shasum": ""
2043 | },
2044 | "type": "library",
2045 | "autoload": {
2046 | "psr-0": {
2047 | "Diff": "lib/"
2048 | }
2049 | },
2050 | "notification-url": "https://packagist.org/downloads/",
2051 | "license": [
2052 | "BSD-3-Clause"
2053 | ],
2054 | "authors": [
2055 | {
2056 | "name": "Chris Boulton",
2057 | "homepage": "http://github.com/chrisboulton",
2058 | "role": "Original developer"
2059 | }
2060 | ],
2061 | "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
2062 | "time": "2013-11-01 13:02:21"
2063 | },
2064 | {
2065 | "name": "phpspec/phpspec",
2066 | "version": "2.2.1",
2067 | "source": {
2068 | "type": "git",
2069 | "url": "https://github.com/phpspec/phpspec.git",
2070 | "reference": "e9a40577323e67f1de2e214abf32976a0352d8f8"
2071 | },
2072 | "dist": {
2073 | "type": "zip",
2074 | "url": "https://api.github.com/repos/phpspec/phpspec/zipball/e9a40577323e67f1de2e214abf32976a0352d8f8",
2075 | "reference": "e9a40577323e67f1de2e214abf32976a0352d8f8",
2076 | "shasum": ""
2077 | },
2078 | "require": {
2079 | "doctrine/instantiator": "^1.0.1",
2080 | "php": ">=5.3.3",
2081 | "phpspec/php-diff": "~1.0.0",
2082 | "phpspec/prophecy": "~1.4",
2083 | "sebastian/exporter": "~1.0",
2084 | "symfony/console": "~2.3",
2085 | "symfony/event-dispatcher": "~2.1",
2086 | "symfony/finder": "~2.1",
2087 | "symfony/process": "~2.1",
2088 | "symfony/yaml": "~2.1"
2089 | },
2090 | "require-dev": {
2091 | "behat/behat": "^3.0.11",
2092 | "bossa/phpspec2-expect": "~1.0",
2093 | "phpunit/phpunit": "~4.4",
2094 | "symfony/filesystem": "~2.1",
2095 | "symfony/process": "~2.1"
2096 | },
2097 | "suggest": {
2098 | "phpspec/nyan-formatters": "~1.0 – Adds Nyan formatters"
2099 | },
2100 | "bin": [
2101 | "bin/phpspec"
2102 | ],
2103 | "type": "library",
2104 | "extra": {
2105 | "branch-alias": {
2106 | "dev-master": "2.2.x-dev"
2107 | }
2108 | },
2109 | "autoload": {
2110 | "psr-0": {
2111 | "PhpSpec": "src/"
2112 | }
2113 | },
2114 | "notification-url": "https://packagist.org/downloads/",
2115 | "license": [
2116 | "MIT"
2117 | ],
2118 | "authors": [
2119 | {
2120 | "name": "Konstantin Kudryashov",
2121 | "email": "ever.zet@gmail.com",
2122 | "homepage": "http://everzet.com"
2123 | },
2124 | {
2125 | "name": "Marcello Duarte",
2126 | "homepage": "http://marcelloduarte.net/"
2127 | }
2128 | ],
2129 | "description": "Specification-oriented BDD framework for PHP 5.3+",
2130 | "homepage": "http://phpspec.net/",
2131 | "keywords": [
2132 | "BDD",
2133 | "SpecBDD",
2134 | "TDD",
2135 | "spec",
2136 | "specification",
2137 | "testing",
2138 | "tests"
2139 | ],
2140 | "time": "2015-05-30 15:21:40"
2141 | },
2142 | {
2143 | "name": "phpspec/prophecy",
2144 | "version": "v1.4.1",
2145 | "source": {
2146 | "type": "git",
2147 | "url": "https://github.com/phpspec/prophecy.git",
2148 | "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373"
2149 | },
2150 | "dist": {
2151 | "type": "zip",
2152 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
2153 | "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
2154 | "shasum": ""
2155 | },
2156 | "require": {
2157 | "doctrine/instantiator": "^1.0.2",
2158 | "phpdocumentor/reflection-docblock": "~2.0",
2159 | "sebastian/comparator": "~1.1"
2160 | },
2161 | "require-dev": {
2162 | "phpspec/phpspec": "~2.0"
2163 | },
2164 | "type": "library",
2165 | "extra": {
2166 | "branch-alias": {
2167 | "dev-master": "1.4.x-dev"
2168 | }
2169 | },
2170 | "autoload": {
2171 | "psr-0": {
2172 | "Prophecy\\": "src/"
2173 | }
2174 | },
2175 | "notification-url": "https://packagist.org/downloads/",
2176 | "license": [
2177 | "MIT"
2178 | ],
2179 | "authors": [
2180 | {
2181 | "name": "Konstantin Kudryashov",
2182 | "email": "ever.zet@gmail.com",
2183 | "homepage": "http://everzet.com"
2184 | },
2185 | {
2186 | "name": "Marcello Duarte",
2187 | "email": "marcello.duarte@gmail.com"
2188 | }
2189 | ],
2190 | "description": "Highly opinionated mocking framework for PHP 5.3+",
2191 | "homepage": "https://github.com/phpspec/prophecy",
2192 | "keywords": [
2193 | "Double",
2194 | "Dummy",
2195 | "fake",
2196 | "mock",
2197 | "spy",
2198 | "stub"
2199 | ],
2200 | "time": "2015-04-27 22:15:08"
2201 | },
2202 | {
2203 | "name": "phpunit/php-code-coverage",
2204 | "version": "2.2.0",
2205 | "source": {
2206 | "type": "git",
2207 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
2208 | "reference": "e6577d90f61a9adbe94544a6e9a7ca18b5fd9c8f"
2209 | },
2210 | "dist": {
2211 | "type": "zip",
2212 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e6577d90f61a9adbe94544a6e9a7ca18b5fd9c8f",
2213 | "reference": "e6577d90f61a9adbe94544a6e9a7ca18b5fd9c8f",
2214 | "shasum": ""
2215 | },
2216 | "require": {
2217 | "php": ">=5.3.3",
2218 | "phpunit/php-file-iterator": "~1.3",
2219 | "phpunit/php-text-template": "~1.2",
2220 | "phpunit/php-token-stream": "~1.3",
2221 | "sebastian/environment": "~1.3",
2222 | "sebastian/version": "~1.0"
2223 | },
2224 | "require-dev": {
2225 | "ext-xdebug": ">=2.1.4",
2226 | "phpunit/phpunit": "~4"
2227 | },
2228 | "suggest": {
2229 | "ext-dom": "*",
2230 | "ext-xdebug": ">=2.2.1",
2231 | "ext-xmlwriter": "*"
2232 | },
2233 | "type": "library",
2234 | "extra": {
2235 | "branch-alias": {
2236 | "dev-master": "2.2.x-dev"
2237 | }
2238 | },
2239 | "autoload": {
2240 | "classmap": [
2241 | "src/"
2242 | ]
2243 | },
2244 | "notification-url": "https://packagist.org/downloads/",
2245 | "license": [
2246 | "BSD-3-Clause"
2247 | ],
2248 | "authors": [
2249 | {
2250 | "name": "Sebastian Bergmann",
2251 | "email": "sb@sebastian-bergmann.de",
2252 | "role": "lead"
2253 | }
2254 | ],
2255 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
2256 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
2257 | "keywords": [
2258 | "coverage",
2259 | "testing",
2260 | "xunit"
2261 | ],
2262 | "time": "2015-08-01 05:09:57"
2263 | },
2264 | {
2265 | "name": "phpunit/php-file-iterator",
2266 | "version": "1.4.1",
2267 | "source": {
2268 | "type": "git",
2269 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
2270 | "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
2271 | },
2272 | "dist": {
2273 | "type": "zip",
2274 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
2275 | "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
2276 | "shasum": ""
2277 | },
2278 | "require": {
2279 | "php": ">=5.3.3"
2280 | },
2281 | "type": "library",
2282 | "extra": {
2283 | "branch-alias": {
2284 | "dev-master": "1.4.x-dev"
2285 | }
2286 | },
2287 | "autoload": {
2288 | "classmap": [
2289 | "src/"
2290 | ]
2291 | },
2292 | "notification-url": "https://packagist.org/downloads/",
2293 | "license": [
2294 | "BSD-3-Clause"
2295 | ],
2296 | "authors": [
2297 | {
2298 | "name": "Sebastian Bergmann",
2299 | "email": "sb@sebastian-bergmann.de",
2300 | "role": "lead"
2301 | }
2302 | ],
2303 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
2304 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
2305 | "keywords": [
2306 | "filesystem",
2307 | "iterator"
2308 | ],
2309 | "time": "2015-06-21 13:08:43"
2310 | },
2311 | {
2312 | "name": "phpunit/php-text-template",
2313 | "version": "1.2.1",
2314 | "source": {
2315 | "type": "git",
2316 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
2317 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
2318 | },
2319 | "dist": {
2320 | "type": "zip",
2321 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
2322 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
2323 | "shasum": ""
2324 | },
2325 | "require": {
2326 | "php": ">=5.3.3"
2327 | },
2328 | "type": "library",
2329 | "autoload": {
2330 | "classmap": [
2331 | "src/"
2332 | ]
2333 | },
2334 | "notification-url": "https://packagist.org/downloads/",
2335 | "license": [
2336 | "BSD-3-Clause"
2337 | ],
2338 | "authors": [
2339 | {
2340 | "name": "Sebastian Bergmann",
2341 | "email": "sebastian@phpunit.de",
2342 | "role": "lead"
2343 | }
2344 | ],
2345 | "description": "Simple template engine.",
2346 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
2347 | "keywords": [
2348 | "template"
2349 | ],
2350 | "time": "2015-06-21 13:50:34"
2351 | },
2352 | {
2353 | "name": "phpunit/php-timer",
2354 | "version": "1.0.7",
2355 | "source": {
2356 | "type": "git",
2357 | "url": "https://github.com/sebastianbergmann/php-timer.git",
2358 | "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b"
2359 | },
2360 | "dist": {
2361 | "type": "zip",
2362 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
2363 | "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
2364 | "shasum": ""
2365 | },
2366 | "require": {
2367 | "php": ">=5.3.3"
2368 | },
2369 | "type": "library",
2370 | "autoload": {
2371 | "classmap": [
2372 | "src/"
2373 | ]
2374 | },
2375 | "notification-url": "https://packagist.org/downloads/",
2376 | "license": [
2377 | "BSD-3-Clause"
2378 | ],
2379 | "authors": [
2380 | {
2381 | "name": "Sebastian Bergmann",
2382 | "email": "sb@sebastian-bergmann.de",
2383 | "role": "lead"
2384 | }
2385 | ],
2386 | "description": "Utility class for timing",
2387 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
2388 | "keywords": [
2389 | "timer"
2390 | ],
2391 | "time": "2015-06-21 08:01:12"
2392 | },
2393 | {
2394 | "name": "phpunit/php-token-stream",
2395 | "version": "1.4.3",
2396 | "source": {
2397 | "type": "git",
2398 | "url": "https://github.com/sebastianbergmann/php-token-stream.git",
2399 | "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9"
2400 | },
2401 | "dist": {
2402 | "type": "zip",
2403 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
2404 | "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
2405 | "shasum": ""
2406 | },
2407 | "require": {
2408 | "ext-tokenizer": "*",
2409 | "php": ">=5.3.3"
2410 | },
2411 | "require-dev": {
2412 | "phpunit/phpunit": "~4.2"
2413 | },
2414 | "type": "library",
2415 | "extra": {
2416 | "branch-alias": {
2417 | "dev-master": "1.4-dev"
2418 | }
2419 | },
2420 | "autoload": {
2421 | "classmap": [
2422 | "src/"
2423 | ]
2424 | },
2425 | "notification-url": "https://packagist.org/downloads/",
2426 | "license": [
2427 | "BSD-3-Clause"
2428 | ],
2429 | "authors": [
2430 | {
2431 | "name": "Sebastian Bergmann",
2432 | "email": "sebastian@phpunit.de"
2433 | }
2434 | ],
2435 | "description": "Wrapper around PHP's tokenizer extension.",
2436 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
2437 | "keywords": [
2438 | "tokenizer"
2439 | ],
2440 | "time": "2015-06-19 03:43:16"
2441 | },
2442 | {
2443 | "name": "phpunit/phpunit",
2444 | "version": "4.7.7",
2445 | "source": {
2446 | "type": "git",
2447 | "url": "https://github.com/sebastianbergmann/phpunit.git",
2448 | "reference": "9b97f9d807b862c2de2a36e86690000801c85724"
2449 | },
2450 | "dist": {
2451 | "type": "zip",
2452 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9b97f9d807b862c2de2a36e86690000801c85724",
2453 | "reference": "9b97f9d807b862c2de2a36e86690000801c85724",
2454 | "shasum": ""
2455 | },
2456 | "require": {
2457 | "ext-dom": "*",
2458 | "ext-json": "*",
2459 | "ext-pcre": "*",
2460 | "ext-reflection": "*",
2461 | "ext-spl": "*",
2462 | "php": ">=5.3.3",
2463 | "phpspec/prophecy": "~1.3,>=1.3.1",
2464 | "phpunit/php-code-coverage": "~2.1",
2465 | "phpunit/php-file-iterator": "~1.4",
2466 | "phpunit/php-text-template": "~1.2",
2467 | "phpunit/php-timer": ">=1.0.6",
2468 | "phpunit/phpunit-mock-objects": "~2.3",
2469 | "sebastian/comparator": "~1.1",
2470 | "sebastian/diff": "~1.2",
2471 | "sebastian/environment": "~1.2",
2472 | "sebastian/exporter": "~1.2",
2473 | "sebastian/global-state": "~1.0",
2474 | "sebastian/version": "~1.0",
2475 | "symfony/yaml": "~2.1|~3.0"
2476 | },
2477 | "suggest": {
2478 | "phpunit/php-invoker": "~1.1"
2479 | },
2480 | "bin": [
2481 | "phpunit"
2482 | ],
2483 | "type": "library",
2484 | "extra": {
2485 | "branch-alias": {
2486 | "dev-master": "4.7.x-dev"
2487 | }
2488 | },
2489 | "autoload": {
2490 | "classmap": [
2491 | "src/"
2492 | ]
2493 | },
2494 | "notification-url": "https://packagist.org/downloads/",
2495 | "license": [
2496 | "BSD-3-Clause"
2497 | ],
2498 | "authors": [
2499 | {
2500 | "name": "Sebastian Bergmann",
2501 | "email": "sebastian@phpunit.de",
2502 | "role": "lead"
2503 | }
2504 | ],
2505 | "description": "The PHP Unit Testing framework.",
2506 | "homepage": "https://phpunit.de/",
2507 | "keywords": [
2508 | "phpunit",
2509 | "testing",
2510 | "xunit"
2511 | ],
2512 | "time": "2015-07-13 11:28:34"
2513 | },
2514 | {
2515 | "name": "phpunit/phpunit-mock-objects",
2516 | "version": "2.3.6",
2517 | "source": {
2518 | "type": "git",
2519 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
2520 | "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42"
2521 | },
2522 | "dist": {
2523 | "type": "zip",
2524 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/18dfbcb81d05e2296c0bcddd4db96cade75e6f42",
2525 | "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42",
2526 | "shasum": ""
2527 | },
2528 | "require": {
2529 | "doctrine/instantiator": "~1.0,>=1.0.2",
2530 | "php": ">=5.3.3",
2531 | "phpunit/php-text-template": "~1.2",
2532 | "sebastian/exporter": "~1.2"
2533 | },
2534 | "require-dev": {
2535 | "phpunit/phpunit": "~4.4"
2536 | },
2537 | "suggest": {
2538 | "ext-soap": "*"
2539 | },
2540 | "type": "library",
2541 | "extra": {
2542 | "branch-alias": {
2543 | "dev-master": "2.3.x-dev"
2544 | }
2545 | },
2546 | "autoload": {
2547 | "classmap": [
2548 | "src/"
2549 | ]
2550 | },
2551 | "notification-url": "https://packagist.org/downloads/",
2552 | "license": [
2553 | "BSD-3-Clause"
2554 | ],
2555 | "authors": [
2556 | {
2557 | "name": "Sebastian Bergmann",
2558 | "email": "sb@sebastian-bergmann.de",
2559 | "role": "lead"
2560 | }
2561 | ],
2562 | "description": "Mock Object library for PHPUnit",
2563 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
2564 | "keywords": [
2565 | "mock",
2566 | "xunit"
2567 | ],
2568 | "time": "2015-07-10 06:54:24"
2569 | },
2570 | {
2571 | "name": "sebastian/comparator",
2572 | "version": "1.2.0",
2573 | "source": {
2574 | "type": "git",
2575 | "url": "https://github.com/sebastianbergmann/comparator.git",
2576 | "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
2577 | },
2578 | "dist": {
2579 | "type": "zip",
2580 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
2581 | "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
2582 | "shasum": ""
2583 | },
2584 | "require": {
2585 | "php": ">=5.3.3",
2586 | "sebastian/diff": "~1.2",
2587 | "sebastian/exporter": "~1.2"
2588 | },
2589 | "require-dev": {
2590 | "phpunit/phpunit": "~4.4"
2591 | },
2592 | "type": "library",
2593 | "extra": {
2594 | "branch-alias": {
2595 | "dev-master": "1.2.x-dev"
2596 | }
2597 | },
2598 | "autoload": {
2599 | "classmap": [
2600 | "src/"
2601 | ]
2602 | },
2603 | "notification-url": "https://packagist.org/downloads/",
2604 | "license": [
2605 | "BSD-3-Clause"
2606 | ],
2607 | "authors": [
2608 | {
2609 | "name": "Jeff Welch",
2610 | "email": "whatthejeff@gmail.com"
2611 | },
2612 | {
2613 | "name": "Volker Dusch",
2614 | "email": "github@wallbash.com"
2615 | },
2616 | {
2617 | "name": "Bernhard Schussek",
2618 | "email": "bschussek@2bepublished.at"
2619 | },
2620 | {
2621 | "name": "Sebastian Bergmann",
2622 | "email": "sebastian@phpunit.de"
2623 | }
2624 | ],
2625 | "description": "Provides the functionality to compare PHP values for equality",
2626 | "homepage": "http://www.github.com/sebastianbergmann/comparator",
2627 | "keywords": [
2628 | "comparator",
2629 | "compare",
2630 | "equality"
2631 | ],
2632 | "time": "2015-07-26 15:48:44"
2633 | },
2634 | {
2635 | "name": "sebastian/diff",
2636 | "version": "1.3.0",
2637 | "source": {
2638 | "type": "git",
2639 | "url": "https://github.com/sebastianbergmann/diff.git",
2640 | "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3"
2641 | },
2642 | "dist": {
2643 | "type": "zip",
2644 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3",
2645 | "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3",
2646 | "shasum": ""
2647 | },
2648 | "require": {
2649 | "php": ">=5.3.3"
2650 | },
2651 | "require-dev": {
2652 | "phpunit/phpunit": "~4.2"
2653 | },
2654 | "type": "library",
2655 | "extra": {
2656 | "branch-alias": {
2657 | "dev-master": "1.3-dev"
2658 | }
2659 | },
2660 | "autoload": {
2661 | "classmap": [
2662 | "src/"
2663 | ]
2664 | },
2665 | "notification-url": "https://packagist.org/downloads/",
2666 | "license": [
2667 | "BSD-3-Clause"
2668 | ],
2669 | "authors": [
2670 | {
2671 | "name": "Kore Nordmann",
2672 | "email": "mail@kore-nordmann.de"
2673 | },
2674 | {
2675 | "name": "Sebastian Bergmann",
2676 | "email": "sebastian@phpunit.de"
2677 | }
2678 | ],
2679 | "description": "Diff implementation",
2680 | "homepage": "http://www.github.com/sebastianbergmann/diff",
2681 | "keywords": [
2682 | "diff"
2683 | ],
2684 | "time": "2015-02-22 15:13:53"
2685 | },
2686 | {
2687 | "name": "sebastian/environment",
2688 | "version": "1.3.0",
2689 | "source": {
2690 | "type": "git",
2691 | "url": "https://github.com/sebastianbergmann/environment.git",
2692 | "reference": "4fe0a44cddd8cc19583a024bdc7374eb2fef0b87"
2693 | },
2694 | "dist": {
2695 | "type": "zip",
2696 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4fe0a44cddd8cc19583a024bdc7374eb2fef0b87",
2697 | "reference": "4fe0a44cddd8cc19583a024bdc7374eb2fef0b87",
2698 | "shasum": ""
2699 | },
2700 | "require": {
2701 | "php": ">=5.3.3"
2702 | },
2703 | "require-dev": {
2704 | "phpunit/phpunit": "~4.4"
2705 | },
2706 | "type": "library",
2707 | "extra": {
2708 | "branch-alias": {
2709 | "dev-master": "1.3.x-dev"
2710 | }
2711 | },
2712 | "autoload": {
2713 | "classmap": [
2714 | "src/"
2715 | ]
2716 | },
2717 | "notification-url": "https://packagist.org/downloads/",
2718 | "license": [
2719 | "BSD-3-Clause"
2720 | ],
2721 | "authors": [
2722 | {
2723 | "name": "Sebastian Bergmann",
2724 | "email": "sebastian@phpunit.de"
2725 | }
2726 | ],
2727 | "description": "Provides functionality to handle HHVM/PHP environments",
2728 | "homepage": "http://www.github.com/sebastianbergmann/environment",
2729 | "keywords": [
2730 | "Xdebug",
2731 | "environment",
2732 | "hhvm"
2733 | ],
2734 | "time": "2015-07-26 06:42:57"
2735 | },
2736 | {
2737 | "name": "sebastian/exporter",
2738 | "version": "1.2.1",
2739 | "source": {
2740 | "type": "git",
2741 | "url": "https://github.com/sebastianbergmann/exporter.git",
2742 | "reference": "7ae5513327cb536431847bcc0c10edba2701064e"
2743 | },
2744 | "dist": {
2745 | "type": "zip",
2746 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e",
2747 | "reference": "7ae5513327cb536431847bcc0c10edba2701064e",
2748 | "shasum": ""
2749 | },
2750 | "require": {
2751 | "php": ">=5.3.3",
2752 | "sebastian/recursion-context": "~1.0"
2753 | },
2754 | "require-dev": {
2755 | "phpunit/phpunit": "~4.4"
2756 | },
2757 | "type": "library",
2758 | "extra": {
2759 | "branch-alias": {
2760 | "dev-master": "1.2.x-dev"
2761 | }
2762 | },
2763 | "autoload": {
2764 | "classmap": [
2765 | "src/"
2766 | ]
2767 | },
2768 | "notification-url": "https://packagist.org/downloads/",
2769 | "license": [
2770 | "BSD-3-Clause"
2771 | ],
2772 | "authors": [
2773 | {
2774 | "name": "Jeff Welch",
2775 | "email": "whatthejeff@gmail.com"
2776 | },
2777 | {
2778 | "name": "Volker Dusch",
2779 | "email": "github@wallbash.com"
2780 | },
2781 | {
2782 | "name": "Bernhard Schussek",
2783 | "email": "bschussek@2bepublished.at"
2784 | },
2785 | {
2786 | "name": "Sebastian Bergmann",
2787 | "email": "sebastian@phpunit.de"
2788 | },
2789 | {
2790 | "name": "Adam Harvey",
2791 | "email": "aharvey@php.net"
2792 | }
2793 | ],
2794 | "description": "Provides the functionality to export PHP variables for visualization",
2795 | "homepage": "http://www.github.com/sebastianbergmann/exporter",
2796 | "keywords": [
2797 | "export",
2798 | "exporter"
2799 | ],
2800 | "time": "2015-06-21 07:55:53"
2801 | },
2802 | {
2803 | "name": "sebastian/global-state",
2804 | "version": "1.0.0",
2805 | "source": {
2806 | "type": "git",
2807 | "url": "https://github.com/sebastianbergmann/global-state.git",
2808 | "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
2809 | },
2810 | "dist": {
2811 | "type": "zip",
2812 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
2813 | "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
2814 | "shasum": ""
2815 | },
2816 | "require": {
2817 | "php": ">=5.3.3"
2818 | },
2819 | "require-dev": {
2820 | "phpunit/phpunit": "~4.2"
2821 | },
2822 | "suggest": {
2823 | "ext-uopz": "*"
2824 | },
2825 | "type": "library",
2826 | "extra": {
2827 | "branch-alias": {
2828 | "dev-master": "1.0-dev"
2829 | }
2830 | },
2831 | "autoload": {
2832 | "classmap": [
2833 | "src/"
2834 | ]
2835 | },
2836 | "notification-url": "https://packagist.org/downloads/",
2837 | "license": [
2838 | "BSD-3-Clause"
2839 | ],
2840 | "authors": [
2841 | {
2842 | "name": "Sebastian Bergmann",
2843 | "email": "sebastian@phpunit.de"
2844 | }
2845 | ],
2846 | "description": "Snapshotting of global state",
2847 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
2848 | "keywords": [
2849 | "global state"
2850 | ],
2851 | "time": "2014-10-06 09:23:50"
2852 | },
2853 | {
2854 | "name": "sebastian/recursion-context",
2855 | "version": "1.0.1",
2856 | "source": {
2857 | "type": "git",
2858 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
2859 | "reference": "994d4a811bafe801fb06dccbee797863ba2792ba"
2860 | },
2861 | "dist": {
2862 | "type": "zip",
2863 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/994d4a811bafe801fb06dccbee797863ba2792ba",
2864 | "reference": "994d4a811bafe801fb06dccbee797863ba2792ba",
2865 | "shasum": ""
2866 | },
2867 | "require": {
2868 | "php": ">=5.3.3"
2869 | },
2870 | "require-dev": {
2871 | "phpunit/phpunit": "~4.4"
2872 | },
2873 | "type": "library",
2874 | "extra": {
2875 | "branch-alias": {
2876 | "dev-master": "1.0.x-dev"
2877 | }
2878 | },
2879 | "autoload": {
2880 | "classmap": [
2881 | "src/"
2882 | ]
2883 | },
2884 | "notification-url": "https://packagist.org/downloads/",
2885 | "license": [
2886 | "BSD-3-Clause"
2887 | ],
2888 | "authors": [
2889 | {
2890 | "name": "Jeff Welch",
2891 | "email": "whatthejeff@gmail.com"
2892 | },
2893 | {
2894 | "name": "Sebastian Bergmann",
2895 | "email": "sebastian@phpunit.de"
2896 | },
2897 | {
2898 | "name": "Adam Harvey",
2899 | "email": "aharvey@php.net"
2900 | }
2901 | ],
2902 | "description": "Provides functionality to recursively process PHP variables",
2903 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
2904 | "time": "2015-06-21 08:04:50"
2905 | },
2906 | {
2907 | "name": "sebastian/version",
2908 | "version": "1.0.6",
2909 | "source": {
2910 | "type": "git",
2911 | "url": "https://github.com/sebastianbergmann/version.git",
2912 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
2913 | },
2914 | "dist": {
2915 | "type": "zip",
2916 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
2917 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
2918 | "shasum": ""
2919 | },
2920 | "type": "library",
2921 | "autoload": {
2922 | "classmap": [
2923 | "src/"
2924 | ]
2925 | },
2926 | "notification-url": "https://packagist.org/downloads/",
2927 | "license": [
2928 | "BSD-3-Clause"
2929 | ],
2930 | "authors": [
2931 | {
2932 | "name": "Sebastian Bergmann",
2933 | "email": "sebastian@phpunit.de",
2934 | "role": "lead"
2935 | }
2936 | ],
2937 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2938 | "homepage": "https://github.com/sebastianbergmann/version",
2939 | "time": "2015-06-21 13:59:46"
2940 | },
2941 | {
2942 | "name": "symfony/yaml",
2943 | "version": "v2.7.3",
2944 | "source": {
2945 | "type": "git",
2946 | "url": "https://github.com/symfony/Yaml.git",
2947 | "reference": "71340e996171474a53f3d29111d046be4ad8a0ff"
2948 | },
2949 | "dist": {
2950 | "type": "zip",
2951 | "url": "https://api.github.com/repos/symfony/Yaml/zipball/71340e996171474a53f3d29111d046be4ad8a0ff",
2952 | "reference": "71340e996171474a53f3d29111d046be4ad8a0ff",
2953 | "shasum": ""
2954 | },
2955 | "require": {
2956 | "php": ">=5.3.9"
2957 | },
2958 | "require-dev": {
2959 | "symfony/phpunit-bridge": "~2.7"
2960 | },
2961 | "type": "library",
2962 | "extra": {
2963 | "branch-alias": {
2964 | "dev-master": "2.7-dev"
2965 | }
2966 | },
2967 | "autoload": {
2968 | "psr-4": {
2969 | "Symfony\\Component\\Yaml\\": ""
2970 | }
2971 | },
2972 | "notification-url": "https://packagist.org/downloads/",
2973 | "license": [
2974 | "MIT"
2975 | ],
2976 | "authors": [
2977 | {
2978 | "name": "Fabien Potencier",
2979 | "email": "fabien@symfony.com"
2980 | },
2981 | {
2982 | "name": "Symfony Community",
2983 | "homepage": "https://symfony.com/contributors"
2984 | }
2985 | ],
2986 | "description": "Symfony Yaml Component",
2987 | "homepage": "https://symfony.com",
2988 | "time": "2015-07-28 14:07:07"
2989 | }
2990 | ],
2991 | "aliases": [],
2992 | "minimum-stability": "stable",
2993 | "stability-flags": [],
2994 | "prefer-stable": false,
2995 | "prefer-lowest": false,
2996 | "platform": {
2997 | "php": ">=5.5.9"
2998 | },
2999 | "platform-dev": []
3000 | }
3001 |
--------------------------------------------------------------------------------
/config/app.php:
--------------------------------------------------------------------------------
1 | env('APP_DEBUG', false),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Application URL
21 | |--------------------------------------------------------------------------
22 | |
23 | | This URL is used by the console to properly generate URLs when using
24 | | the Artisan command line tool. You should set this to the root of
25 | | your application so that it is used when running Artisan tasks.
26 | |
27 | */
28 |
29 | 'url' => 'http://localhost',
30 |
31 | /*
32 | |--------------------------------------------------------------------------
33 | | Application Timezone
34 | |--------------------------------------------------------------------------
35 | |
36 | | Here you may specify the default timezone for your application, which
37 | | will be used by the PHP date and date-time functions. We have gone
38 | | ahead and set this to a sensible default for you out of the box.
39 | |
40 | */
41 |
42 | 'timezone' => 'UTC',
43 |
44 | /*
45 | |--------------------------------------------------------------------------
46 | | Application Locale Configuration
47 | |--------------------------------------------------------------------------
48 | |
49 | | The application locale determines the default locale that will be used
50 | | by the translation service provider. You are free to set this value
51 | | to any of the locales which will be supported by the application.
52 | |
53 | */
54 |
55 | 'locale' => 'en',
56 |
57 | /*
58 | |--------------------------------------------------------------------------
59 | | Application Fallback Locale
60 | |--------------------------------------------------------------------------
61 | |
62 | | The fallback locale determines the locale to use when the current one
63 | | is not available. You may change the value to correspond to any of
64 | | the language folders that are provided through your application.
65 | |
66 | */
67 |
68 | 'fallback_locale' => 'en',
69 |
70 | /*
71 | |--------------------------------------------------------------------------
72 | | Encryption Key
73 | |--------------------------------------------------------------------------
74 | |
75 | | This key is used by the Illuminate encrypter service and should be set
76 | | to a random, 32 character string, otherwise these encrypted strings
77 | | will not be safe. Please do this before deploying an application!
78 | |
79 | */
80 |
81 | 'key' => env('APP_KEY', 'SomeRandomString'),
82 |
83 | 'cipher' => 'AES-256-CBC',
84 |
85 | /*
86 | |--------------------------------------------------------------------------
87 | | Logging Configuration
88 | |--------------------------------------------------------------------------
89 | |
90 | | Here you may configure the log settings for your application. Out of
91 | | the box, Laravel uses the Monolog PHP logging library. This gives
92 | | you a variety of powerful log handlers / formatters to utilize.
93 | |
94 | | Available Settings: "single", "daily", "syslog", "errorlog"
95 | |
96 | */
97 |
98 | 'log' => 'single',
99 |
100 | /*
101 | |--------------------------------------------------------------------------
102 | | Autoloaded Service Providers
103 | |--------------------------------------------------------------------------
104 | |
105 | | The service providers listed here will be automatically loaded on the
106 | | request to your application. Feel free to add your own services to
107 | | this array to grant expanded functionality to your applications.
108 | |
109 | */
110 |
111 | 'providers' => [
112 |
113 | /*
114 | * Laravel Framework Service Providers...
115 | */
116 | Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
117 | Illuminate\Auth\AuthServiceProvider::class,
118 | Illuminate\Broadcasting\BroadcastServiceProvider::class,
119 | Illuminate\Bus\BusServiceProvider::class,
120 | Illuminate\Cache\CacheServiceProvider::class,
121 | Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
122 | Illuminate\Routing\ControllerServiceProvider::class,
123 | Illuminate\Cookie\CookieServiceProvider::class,
124 | Illuminate\Database\DatabaseServiceProvider::class,
125 | Illuminate\Encryption\EncryptionServiceProvider::class,
126 | Illuminate\Filesystem\FilesystemServiceProvider::class,
127 | Illuminate\Foundation\Providers\FoundationServiceProvider::class,
128 | Illuminate\Hashing\HashServiceProvider::class,
129 | Illuminate\Mail\MailServiceProvider::class,
130 | Illuminate\Pagination\PaginationServiceProvider::class,
131 | Illuminate\Pipeline\PipelineServiceProvider::class,
132 | Illuminate\Queue\QueueServiceProvider::class,
133 | Illuminate\Redis\RedisServiceProvider::class,
134 | Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
135 | Illuminate\Session\SessionServiceProvider::class,
136 | Illuminate\Translation\TranslationServiceProvider::class,
137 | Illuminate\Validation\ValidationServiceProvider::class,
138 | Illuminate\View\ViewServiceProvider::class,
139 |
140 | /*
141 | * Application Service Providers...
142 | */
143 | App\Providers\AppServiceProvider::class,
144 | App\Providers\EventServiceProvider::class,
145 | App\Providers\RouteServiceProvider::class,
146 |
147 | ],
148 |
149 | /*
150 | |--------------------------------------------------------------------------
151 | | Class Aliases
152 | |--------------------------------------------------------------------------
153 | |
154 | | This array of class aliases will be registered when this application
155 | | is started. However, feel free to register as many as you wish as
156 | | the aliases are "lazy" loaded so they don't hinder performance.
157 | |
158 | */
159 |
160 | 'aliases' => [
161 |
162 | 'App' => Illuminate\Support\Facades\App::class,
163 | 'Artisan' => Illuminate\Support\Facades\Artisan::class,
164 | 'Auth' => Illuminate\Support\Facades\Auth::class,
165 | 'Blade' => Illuminate\Support\Facades\Blade::class,
166 | 'Bus' => Illuminate\Support\Facades\Bus::class,
167 | 'Cache' => Illuminate\Support\Facades\Cache::class,
168 | 'Config' => Illuminate\Support\Facades\Config::class,
169 | 'Cookie' => Illuminate\Support\Facades\Cookie::class,
170 | 'Crypt' => Illuminate\Support\Facades\Crypt::class,
171 | 'DB' => Illuminate\Support\Facades\DB::class,
172 | 'Eloquent' => Illuminate\Database\Eloquent\Model::class,
173 | 'Event' => Illuminate\Support\Facades\Event::class,
174 | 'File' => Illuminate\Support\Facades\File::class,
175 | 'Hash' => Illuminate\Support\Facades\Hash::class,
176 | 'Input' => Illuminate\Support\Facades\Input::class,
177 | 'Inspiring' => Illuminate\Foundation\Inspiring::class,
178 | 'Lang' => Illuminate\Support\Facades\Lang::class,
179 | 'Log' => Illuminate\Support\Facades\Log::class,
180 | 'Mail' => Illuminate\Support\Facades\Mail::class,
181 | 'Password' => Illuminate\Support\Facades\Password::class,
182 | 'Queue' => Illuminate\Support\Facades\Queue::class,
183 | 'Redirect' => Illuminate\Support\Facades\Redirect::class,
184 | 'Redis' => Illuminate\Support\Facades\Redis::class,
185 | 'Request' => Illuminate\Support\Facades\Request::class,
186 | 'Response' => Illuminate\Support\Facades\Response::class,
187 | 'Route' => Illuminate\Support\Facades\Route::class,
188 | 'Schema' => Illuminate\Support\Facades\Schema::class,
189 | 'Session' => Illuminate\Support\Facades\Session::class,
190 | 'Storage' => Illuminate\Support\Facades\Storage::class,
191 | 'URL' => Illuminate\Support\Facades\URL::class,
192 | 'Validator' => Illuminate\Support\Facades\Validator::class,
193 | 'View' => Illuminate\Support\Facades\View::class,
194 |
195 | ],
196 |
197 | ];
198 |
--------------------------------------------------------------------------------
/config/auth.php:
--------------------------------------------------------------------------------
1 | 'eloquent',
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Authentication Model
23 | |--------------------------------------------------------------------------
24 | |
25 | | When using the "Eloquent" authentication driver, we need to know which
26 | | Eloquent model should be used to retrieve your users. Of course, it
27 | | is often just the "User" model but you may use whatever you like.
28 | |
29 | */
30 |
31 | 'model' => App\User::class,
32 |
33 | /*
34 | |--------------------------------------------------------------------------
35 | | Authentication Table
36 | |--------------------------------------------------------------------------
37 | |
38 | | When using the "Database" authentication driver, we need to know which
39 | | table should be used to retrieve your users. We have chosen a basic
40 | | default value but you may easily change it to any table you like.
41 | |
42 | */
43 |
44 | 'table' => 'users',
45 |
46 | /*
47 | |--------------------------------------------------------------------------
48 | | Password Reset Settings
49 | |--------------------------------------------------------------------------
50 | |
51 | | Here you may set the options for resetting passwords including the view
52 | | that is your password reset e-mail. You can also set the name of the
53 | | table that maintains all of the reset tokens for your application.
54 | |
55 | | The expire time is the number of minutes that the reset token should be
56 | | considered valid. This security feature keeps tokens short-lived so
57 | | they have less time to be guessed. You may change this as needed.
58 | |
59 | */
60 |
61 | 'password' => [
62 | 'email' => 'emails.password',
63 | 'table' => 'password_resets',
64 | 'expire' => 60,
65 | ],
66 |
67 | ];
68 |
--------------------------------------------------------------------------------
/config/broadcasting.php:
--------------------------------------------------------------------------------
1 | env('BROADCAST_DRIVER', 'pusher'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Broadcast Connections
21 | |--------------------------------------------------------------------------
22 | |
23 | | Here you may define all of the broadcast connections that will be used
24 | | to broadcast events to other systems or over websockets. Samples of
25 | | each available type of connection are provided inside this array.
26 | |
27 | */
28 |
29 | 'connections' => [
30 |
31 | 'pusher' => [
32 | 'driver' => 'pusher',
33 | 'key' => env('PUSHER_KEY'),
34 | 'secret' => env('PUSHER_SECRET'),
35 | 'app_id' => env('PUSHER_APP_ID'),
36 | ],
37 |
38 | 'redis' => [
39 | 'driver' => 'redis',
40 | 'connection' => 'default',
41 | ],
42 |
43 | 'log' => [
44 | 'driver' => 'log',
45 | ],
46 |
47 | ],
48 |
49 | ];
50 |
--------------------------------------------------------------------------------
/config/cache.php:
--------------------------------------------------------------------------------
1 | env('CACHE_DRIVER', 'file'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Cache Stores
21 | |--------------------------------------------------------------------------
22 | |
23 | | Here you may define all of the cache "stores" for your application as
24 | | well as their drivers. You may even define multiple stores for the
25 | | same cache driver to group types of items stored in your caches.
26 | |
27 | */
28 |
29 | 'stores' => [
30 |
31 | 'apc' => [
32 | 'driver' => 'apc',
33 | ],
34 |
35 | 'array' => [
36 | 'driver' => 'array',
37 | ],
38 |
39 | 'database' => [
40 | 'driver' => 'database',
41 | 'table' => 'cache',
42 | 'connection' => null,
43 | ],
44 |
45 | 'file' => [
46 | 'driver' => 'file',
47 | 'path' => storage_path('framework/cache'),
48 | ],
49 |
50 | 'memcached' => [
51 | 'driver' => 'memcached',
52 | 'servers' => [
53 | [
54 | 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100,
55 | ],
56 | ],
57 | ],
58 |
59 | 'redis' => [
60 | 'driver' => 'redis',
61 | 'connection' => 'default',
62 | ],
63 |
64 | ],
65 |
66 | /*
67 | |--------------------------------------------------------------------------
68 | | Cache Key Prefix
69 | |--------------------------------------------------------------------------
70 | |
71 | | When utilizing a RAM based store such as APC or Memcached, there might
72 | | be other applications utilizing the same cache. So, we'll specify a
73 | | value to get prefixed to all our keys so we can avoid collisions.
74 | |
75 | */
76 |
77 | 'prefix' => 'laravel',
78 |
79 | ];
80 |
--------------------------------------------------------------------------------
/config/compile.php:
--------------------------------------------------------------------------------
1 | [
17 | //
18 | ],
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Compiled File Providers
23 | |--------------------------------------------------------------------------
24 | |
25 | | Here you may list service providers which define a "compiles" function
26 | | that returns additional files that should be compiled, providing an
27 | | easy way to get common files from any packages you are utilizing.
28 | |
29 | */
30 |
31 | 'providers' => [
32 | //
33 | ],
34 |
35 | ];
36 |
--------------------------------------------------------------------------------
/config/database.php:
--------------------------------------------------------------------------------
1 | PDO::FETCH_CLASS,
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Default Database Connection Name
21 | |--------------------------------------------------------------------------
22 | |
23 | | Here you may specify which of the database connections below you wish
24 | | to use as your default connection for all database work. Of course
25 | | you may use many connections at once using the Database library.
26 | |
27 | */
28 |
29 | 'default' => env('DB_CONNECTION', 'sqlite'),
30 |
31 | /*
32 | |--------------------------------------------------------------------------
33 | | Database Connections
34 | |--------------------------------------------------------------------------
35 | |
36 | | Here are each of the database connections setup for your application.
37 | | Of course, examples of configuring each database platform that is
38 | | supported by Laravel is shown below to make development simple.
39 | |
40 | |
41 | | All database work in Laravel is done through the PHP PDO facilities
42 | | so make sure you have the driver for your particular database of
43 | | choice installed on your machine before you begin development.
44 | |
45 | */
46 |
47 | 'connections' => [
48 |
49 | 'sqlite' => [
50 | 'driver' => 'sqlite',
51 | 'database' => storage_path('database.sqlite'),
52 | 'prefix' => '',
53 | ],
54 |
55 | 'mysql' => [
56 | 'driver' => 'mysql',
57 | 'host' => env('DB_HOST', 'localhost'),
58 | 'database' => env('DB_DATABASE', 'forge'),
59 | 'username' => env('DB_USERNAME', 'forge'),
60 | 'password' => env('DB_PASSWORD', ''),
61 | 'charset' => 'utf8',
62 | 'collation' => 'utf8_unicode_ci',
63 | 'prefix' => '',
64 | 'strict' => false,
65 | ],
66 |
67 | 'pgsql' => [
68 | 'driver' => 'pgsql',
69 | 'host' => env('DB_HOST', 'localhost'),
70 | 'database' => env('DB_DATABASE', 'forge'),
71 | 'username' => env('DB_USERNAME', 'forge'),
72 | 'password' => env('DB_PASSWORD', ''),
73 | 'charset' => 'utf8',
74 | 'prefix' => '',
75 | 'schema' => 'public',
76 | ],
77 |
78 | 'sqlsrv' => [
79 | 'driver' => 'sqlsrv',
80 | 'host' => env('DB_HOST', 'localhost'),
81 | 'database' => env('DB_DATABASE', 'forge'),
82 | 'username' => env('DB_USERNAME', 'forge'),
83 | 'password' => env('DB_PASSWORD', ''),
84 | 'charset' => 'utf8',
85 | 'prefix' => '',
86 | ],
87 |
88 | 'sqlite-testing' => [
89 | 'driver' => 'sqlite',
90 | 'database' => ':memory:',
91 | 'prefix' => '',
92 | ],
93 |
94 | ],
95 |
96 | /*
97 | |--------------------------------------------------------------------------
98 | | Migration Repository Table
99 | |--------------------------------------------------------------------------
100 | |
101 | | This table keeps track of all the migrations that have already run for
102 | | your application. Using this information, we can determine which of
103 | | the migrations on disk haven't actually been run in the database.
104 | |
105 | */
106 |
107 | 'migrations' => 'migrations',
108 |
109 | /*
110 | |--------------------------------------------------------------------------
111 | | Redis Databases
112 | |--------------------------------------------------------------------------
113 | |
114 | | Redis is an open source, fast, and advanced key-value store that also
115 | | provides a richer set of commands than a typical key-value systems
116 | | such as APC or Memcached. Laravel makes it easy to dig right in.
117 | |
118 | */
119 |
120 | 'redis' => [
121 |
122 | 'cluster' => false,
123 |
124 | 'default' => [
125 | 'host' => '127.0.0.1',
126 | 'port' => 6379,
127 | 'database' => 0,
128 | ],
129 |
130 | ],
131 |
132 | ];
133 |
--------------------------------------------------------------------------------
/config/filesystems.php:
--------------------------------------------------------------------------------
1 | 'local',
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Default Cloud Filesystem Disk
23 | |--------------------------------------------------------------------------
24 | |
25 | | Many applications store files both locally and in the cloud. For this
26 | | reason, you may specify a default "cloud" driver here. This driver
27 | | will be bound as the Cloud disk implementation in the container.
28 | |
29 | */
30 |
31 | 'cloud' => 's3',
32 |
33 | /*
34 | |--------------------------------------------------------------------------
35 | | Filesystem Disks
36 | |--------------------------------------------------------------------------
37 | |
38 | | Here you may configure as many filesystem "disks" as you wish, and you
39 | | may even configure multiple disks of the same driver. Defaults have
40 | | been setup for each driver as an example of the required options.
41 | |
42 | */
43 |
44 | 'disks' => [
45 |
46 | 'local' => [
47 | 'driver' => 'local',
48 | 'root' => storage_path('app'),
49 | ],
50 |
51 | 'ftp' => [
52 | 'driver' => 'ftp',
53 | 'host' => 'ftp.example.com',
54 | 'username' => 'your-username',
55 | 'password' => 'your-password',
56 |
57 | // Optional FTP Settings...
58 | // 'port' => 21,
59 | // 'root' => '',
60 | // 'passive' => true,
61 | // 'ssl' => true,
62 | // 'timeout' => 30,
63 | ],
64 |
65 | 's3' => [
66 | 'driver' => 's3',
67 | 'key' => 'your-key',
68 | 'secret' => 'your-secret',
69 | 'region' => 'your-region',
70 | 'bucket' => 'your-bucket',
71 | ],
72 |
73 | 'rackspace' => [
74 | 'driver' => 'rackspace',
75 | 'username' => 'your-username',
76 | 'key' => 'your-key',
77 | 'container' => 'your-container',
78 | 'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/',
79 | 'region' => 'IAD',
80 | 'url_type' => 'publicURL',
81 | ],
82 |
83 | ],
84 |
85 | ];
86 |
--------------------------------------------------------------------------------
/config/mail.php:
--------------------------------------------------------------------------------
1 | env('MAIL_DRIVER', 'smtp'),
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | SMTP Host Address
23 | |--------------------------------------------------------------------------
24 | |
25 | | Here you may provide the host address of the SMTP server used by your
26 | | applications. A default option is provided that is compatible with
27 | | the Mailgun mail service which will provide reliable deliveries.
28 | |
29 | */
30 |
31 | 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
32 |
33 | /*
34 | |--------------------------------------------------------------------------
35 | | SMTP Host Port
36 | |--------------------------------------------------------------------------
37 | |
38 | | This is the SMTP port used by your application to deliver e-mails to
39 | | users of the application. Like the host we have set this value to
40 | | stay compatible with the Mailgun e-mail application by default.
41 | |
42 | */
43 |
44 | 'port' => env('MAIL_PORT', 587),
45 |
46 | /*
47 | |--------------------------------------------------------------------------
48 | | Global "From" Address
49 | |--------------------------------------------------------------------------
50 | |
51 | | You may wish for all e-mails sent by your application to be sent from
52 | | the same address. Here, you may specify a name and address that is
53 | | used globally for all e-mails that are sent by your application.
54 | |
55 | */
56 |
57 | 'from' => ['address' => null, 'name' => null],
58 |
59 | /*
60 | |--------------------------------------------------------------------------
61 | | E-Mail Encryption Protocol
62 | |--------------------------------------------------------------------------
63 | |
64 | | Here you may specify the encryption protocol that should be used when
65 | | the application send e-mail messages. A sensible default using the
66 | | transport layer security protocol should provide great security.
67 | |
68 | */
69 |
70 | 'encryption' => env('MAIL_ENCRYPTION', 'tls'),
71 |
72 | /*
73 | |--------------------------------------------------------------------------
74 | | SMTP Server Username
75 | |--------------------------------------------------------------------------
76 | |
77 | | If your SMTP server requires a username for authentication, you should
78 | | set it here. This will get used to authenticate with your server on
79 | | connection. You may also set the "password" value below this one.
80 | |
81 | */
82 |
83 | 'username' => env('MAIL_USERNAME'),
84 |
85 | /*
86 | |--------------------------------------------------------------------------
87 | | SMTP Server Password
88 | |--------------------------------------------------------------------------
89 | |
90 | | Here you may set the password required by your SMTP server to send out
91 | | messages from your application. This will be given to the server on
92 | | connection so that the application will be able to send messages.
93 | |
94 | */
95 |
96 | 'password' => env('MAIL_PASSWORD'),
97 |
98 | /*
99 | |--------------------------------------------------------------------------
100 | | Sendmail System Path
101 | |--------------------------------------------------------------------------
102 | |
103 | | When using the "sendmail" driver to send e-mails, we will need to know
104 | | the path to where Sendmail lives on this server. A default path has
105 | | been provided here, which will work well on most of your systems.
106 | |
107 | */
108 |
109 | 'sendmail' => '/usr/sbin/sendmail -bs',
110 |
111 | /*
112 | |--------------------------------------------------------------------------
113 | | Mail "Pretend"
114 | |--------------------------------------------------------------------------
115 | |
116 | | When this option is enabled, e-mail will not actually be sent over the
117 | | web and will instead be written to your application's logs files so
118 | | you may inspect the message. This is great for local development.
119 | |
120 | */
121 |
122 | 'pretend' => false,
123 |
124 | ];
125 |
--------------------------------------------------------------------------------
/config/queue.php:
--------------------------------------------------------------------------------
1 | env('QUEUE_DRIVER', 'sync'),
20 |
21 | /*
22 | |--------------------------------------------------------------------------
23 | | Queue Connections
24 | |--------------------------------------------------------------------------
25 | |
26 | | Here you may configure the connection information for each server that
27 | | is used by your application. A default configuration has been added
28 | | for each back-end shipped with Laravel. You are free to add more.
29 | |
30 | */
31 |
32 | 'connections' => [
33 |
34 | 'sync' => [
35 | 'driver' => 'sync',
36 | ],
37 |
38 | 'database' => [
39 | 'driver' => 'database',
40 | 'table' => 'jobs',
41 | 'queue' => 'default',
42 | 'expire' => 60,
43 | ],
44 |
45 | 'beanstalkd' => [
46 | 'driver' => 'beanstalkd',
47 | 'host' => 'localhost',
48 | 'queue' => 'default',
49 | 'ttr' => 60,
50 | ],
51 |
52 | 'sqs' => [
53 | 'driver' => 'sqs',
54 | 'key' => 'your-public-key',
55 | 'secret' => 'your-secret-key',
56 | 'queue' => 'your-queue-url',
57 | 'region' => 'us-east-1',
58 | ],
59 |
60 | 'iron' => [
61 | 'driver' => 'iron',
62 | 'host' => 'mq-aws-us-east-1.iron.io',
63 | 'token' => 'your-token',
64 | 'project' => 'your-project-id',
65 | 'queue' => 'your-queue-name',
66 | 'encrypt' => true,
67 | ],
68 |
69 | 'redis' => [
70 | 'driver' => 'redis',
71 | 'connection' => 'default',
72 | 'queue' => 'default',
73 | 'expire' => 60,
74 | ],
75 |
76 | ],
77 |
78 | /*
79 | |--------------------------------------------------------------------------
80 | | Failed Queue Jobs
81 | |--------------------------------------------------------------------------
82 | |
83 | | These options configure the behavior of failed queue job logging so you
84 | | can control which database and table are used to store the jobs that
85 | | have failed. You may change them to any database / table you wish.
86 | |
87 | */
88 |
89 | 'failed' => [
90 | 'database' => 'mysql', 'table' => 'failed_jobs',
91 | ],
92 |
93 | ];
94 |
--------------------------------------------------------------------------------
/config/services.php:
--------------------------------------------------------------------------------
1 | [
18 | 'domain' => '',
19 | 'secret' => '',
20 | ],
21 |
22 | 'mandrill' => [
23 | 'secret' => '',
24 | ],
25 |
26 | 'ses' => [
27 | 'key' => '',
28 | 'secret' => '',
29 | 'region' => 'us-east-1',
30 | ],
31 |
32 | 'stripe' => [
33 | 'model' => App\User::class,
34 | 'key' => '',
35 | 'secret' => '',
36 | ],
37 |
38 | ];
39 |
--------------------------------------------------------------------------------
/config/session.php:
--------------------------------------------------------------------------------
1 | env('SESSION_DRIVER', 'file'),
20 |
21 | /*
22 | |--------------------------------------------------------------------------
23 | | Session Lifetime
24 | |--------------------------------------------------------------------------
25 | |
26 | | Here you may specify the number of minutes that you wish the session
27 | | to be allowed to remain idle before it expires. If you want them
28 | | to immediately expire on the browser closing, set that option.
29 | |
30 | */
31 |
32 | 'lifetime' => 120,
33 |
34 | 'expire_on_close' => false,
35 |
36 | /*
37 | |--------------------------------------------------------------------------
38 | | Session Encryption
39 | |--------------------------------------------------------------------------
40 | |
41 | | This option allows you to easily specify that all of your session data
42 | | should be encrypted before it is stored. All encryption will be run
43 | | automatically by Laravel and you can use the Session like normal.
44 | |
45 | */
46 |
47 | 'encrypt' => false,
48 |
49 | /*
50 | |--------------------------------------------------------------------------
51 | | Session File Location
52 | |--------------------------------------------------------------------------
53 | |
54 | | When using the native session driver, we need a location where session
55 | | files may be stored. A default has been set for you but a different
56 | | location may be specified. This is only needed for file sessions.
57 | |
58 | */
59 |
60 | 'files' => storage_path('framework/sessions'),
61 |
62 | /*
63 | |--------------------------------------------------------------------------
64 | | Session Database Connection
65 | |--------------------------------------------------------------------------
66 | |
67 | | When using the "database" or "redis" session drivers, you may specify a
68 | | connection that should be used to manage these sessions. This should
69 | | correspond to a connection in your database configuration options.
70 | |
71 | */
72 |
73 | 'connection' => null,
74 |
75 | /*
76 | |--------------------------------------------------------------------------
77 | | Session Database Table
78 | |--------------------------------------------------------------------------
79 | |
80 | | When using the "database" session driver, you may specify the table we
81 | | should use to manage the sessions. Of course, a sensible default is
82 | | provided for you; however, you are free to change this as needed.
83 | |
84 | */
85 |
86 | 'table' => 'sessions',
87 |
88 | /*
89 | |--------------------------------------------------------------------------
90 | | Session Sweeping Lottery
91 | |--------------------------------------------------------------------------
92 | |
93 | | Some session drivers must manually sweep their storage location to get
94 | | rid of old sessions from storage. Here are the chances that it will
95 | | happen on a given request. By default, the odds are 2 out of 100.
96 | |
97 | */
98 |
99 | 'lottery' => [2, 100],
100 |
101 | /*
102 | |--------------------------------------------------------------------------
103 | | Session Cookie Name
104 | |--------------------------------------------------------------------------
105 | |
106 | | Here you may change the name of the cookie used to identify a session
107 | | instance by ID. The name specified here will get used every time a
108 | | new session cookie is created by the framework for every driver.
109 | |
110 | */
111 |
112 | 'cookie' => 'laravel_session',
113 |
114 | /*
115 | |--------------------------------------------------------------------------
116 | | Session Cookie Path
117 | |--------------------------------------------------------------------------
118 | |
119 | | The session cookie path determines the path for which the cookie will
120 | | be regarded as available. Typically, this will be the root path of
121 | | your application but you are free to change this when necessary.
122 | |
123 | */
124 |
125 | 'path' => '/',
126 |
127 | /*
128 | |--------------------------------------------------------------------------
129 | | Session Cookie Domain
130 | |--------------------------------------------------------------------------
131 | |
132 | | Here you may change the domain of the cookie used to identify a session
133 | | in your application. This will determine which domains the cookie is
134 | | available to in your application. A sensible default has been set.
135 | |
136 | */
137 |
138 | 'domain' => null,
139 |
140 | /*
141 | |--------------------------------------------------------------------------
142 | | HTTPS Only Cookies
143 | |--------------------------------------------------------------------------
144 | |
145 | | By setting this option to true, session cookies will only be sent back
146 | | to the server if the browser has a HTTPS connection. This will keep
147 | | the cookie from being sent to you if it can not be done securely.
148 | |
149 | */
150 |
151 | 'secure' => false,
152 |
153 | ];
154 |
--------------------------------------------------------------------------------
/config/view.php:
--------------------------------------------------------------------------------
1 | [
17 | realpath(base_path('resources/views')),
18 | ],
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Compiled View Path
23 | |--------------------------------------------------------------------------
24 | |
25 | | This option determines where all the compiled Blade templates will be
26 | | stored for your application. Typically, this is within the storage
27 | | directory. However, as usual, you are free to change this value.
28 | |
29 | */
30 |
31 | 'compiled' => realpath(storage_path('framework/views')),
32 |
33 | ];
34 |
--------------------------------------------------------------------------------
/database/.gitignore:
--------------------------------------------------------------------------------
1 | *.sqlite
2 |
--------------------------------------------------------------------------------
/database/factories/ModelFactory.php:
--------------------------------------------------------------------------------
1 | define(App\Secret::class, function ($faker) {
18 | return [
19 | 'secret' => Crypt::encrypt($faker->word(32)),
20 | 'uuid4' => Hash::make(Uuid::uuid4()->toString()),
21 | 'created_at' => Carbon::now(),
22 | 'expires_at' => $faker->dateTimeBetween('+5 minutes', '+5 days'),
23 | 'expires_views' => $faker->numberBetween(5,1000),
24 | 'count_views' => 0
25 | ];
26 | });
27 |
--------------------------------------------------------------------------------
/database/migrations/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unicalabs/agrippa/7f669a1df6fce54c7a71a79b681396adbbd8c7b6/database/migrations/.gitkeep
--------------------------------------------------------------------------------
/database/migrations/2015_08_02_025919_create_secrets_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
18 | $table->text('uuid4');
19 |
20 | // Timestamps
21 | $table->timestamps();
22 | $table->timestamp('expires_at');
23 |
24 | // Views
25 | $table->bigInteger('count_views')->unsigned()->default(0);
26 | $table->bigInteger('expires_views')->unsigned()->default(1);
27 |
28 | // Secret
29 | $table->text('secret');
30 | });
31 | }
32 |
33 | /**
34 | * Reverse the migrations.
35 | *
36 | * @return void
37 | */
38 | public function down()
39 | {
40 | Schema::drop('secrets');
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/database/seeds/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unicalabs/agrippa/7f669a1df6fce54c7a71a79b681396adbbd8c7b6/database/seeds/.gitkeep
--------------------------------------------------------------------------------
/database/seeds/DatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | call(UserTableSeeder::class);
18 |
19 | Model::reguard();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/gulpfile.js:
--------------------------------------------------------------------------------
1 | var elixir = require('laravel-elixir');
2 |
3 | /*
4 | |--------------------------------------------------------------------------
5 | | Elixir Asset Management
6 | |--------------------------------------------------------------------------
7 | |
8 | | Elixir provides a clean, fluent API for defining some basic Gulp tasks
9 | | for your Laravel application. By default, we are compiling the Sass
10 | | file for our application, as well as publishing vendor resources.
11 | |
12 | */
13 |
14 | elixir(function(mix) {
15 | mix.less("app.less");
16 | mix.phpUnit();
17 | });
18 |
--------------------------------------------------------------------------------
/license.md:
--------------------------------------------------------------------------------
1 | Copyright © 2015 Unica Labs, LLC
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "devDependencies": {
4 | "gulp": "^3.8.8"
5 | },
6 | "dependencies": {
7 | "laravel-elixir": "^2.0.0",
8 | "bootstrap-sass": "^3.0.0"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/phpspec.yml:
--------------------------------------------------------------------------------
1 | suites:
2 | main:
3 | namespace: App
4 | psr4_prefix: App
5 | src_path: app
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 | ./tests/
15 |
16 |
17 |
18 |
19 | app/
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/public/.htaccess:
--------------------------------------------------------------------------------
1 |
2 |
3 | Options -MultiViews
4 |
5 |
6 | RewriteEngine On
7 |
8 | # Redirect Trailing Slashes If Not A Folder...
9 | RewriteCond %{REQUEST_FILENAME} !-d
10 | RewriteRule ^(.*)/$ /$1 [L,R=301]
11 |
12 | # Handle Front Controller...
13 | RewriteCond %{REQUEST_FILENAME} !-d
14 | RewriteCond %{REQUEST_FILENAME} !-f
15 | RewriteRule ^ index.php [L]
16 |
17 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unicalabs/agrippa/7f669a1df6fce54c7a71a79b681396adbbd8c7b6/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.php:
--------------------------------------------------------------------------------
1 |
8 | */
9 |
10 | /*
11 | |--------------------------------------------------------------------------
12 | | Register The Auto Loader
13 | |--------------------------------------------------------------------------
14 | |
15 | | Composer provides a convenient, automatically generated class loader for
16 | | our application. We just need to utilize it! We'll simply require it
17 | | into the script here so that we don't have to worry about manual
18 | | loading any of our classes later on. It feels nice to relax.
19 | |
20 | */
21 |
22 | require __DIR__.'/../bootstrap/autoload.php';
23 |
24 | /*
25 | |--------------------------------------------------------------------------
26 | | Turn On The Lights
27 | |--------------------------------------------------------------------------
28 | |
29 | | We need to illuminate PHP development, so let us turn on the lights.
30 | | This bootstraps the framework and gets it ready for use, then it
31 | | will load up this application so that we can run it and send
32 | | the responses back to the browser and delight our users.
33 | |
34 | */
35 |
36 | $app = require_once __DIR__.'/../bootstrap/app.php';
37 |
38 | /*
39 | |--------------------------------------------------------------------------
40 | | Run The Application
41 | |--------------------------------------------------------------------------
42 | |
43 | | Once we have the application, we can handle the incoming request
44 | | through the kernel, and send the associated response back to
45 | | the client's browser allowing them to enjoy the creative
46 | | and wonderful application we have prepared for them.
47 | |
48 | */
49 |
50 | $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
51 |
52 | $response = $kernel->handle(
53 | $request = Illuminate\Http\Request::capture()
54 | );
55 |
56 | $response->send();
57 |
58 | $kernel->terminate($request, $response);
59 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | [](https://travis-ci.org/unicalabs/agrippa)
2 |
3 | ## Agrippa
4 |
5 | Agrippa is a PHP-based secret sharing mechanism. Named after the work of [William Gibson](https://en.wikipedia.org/wiki/Agrippa_(A_Book_of_the_Dead)), Agrippa operates on the principle that sharing a temporary link to sensitive information is better than having the sensitive information itself persist in email, chat, or any other insecure communications channel.
6 |
7 | For more information, visit [the homepage](http://unicalabs.github.io/agrippa/) or jump straight to the [Quick Start](http://unicalabs.github.io/agrippa/quickstart.html).
8 |
9 | ## Overview
10 |
11 | #### 1. The secret is submitted with an expiration date/time and a view limit.
12 |
13 | [](https://github.com/unicalabs/agrippa/blob/gh-pages/images/1.png)
14 |
15 | #### 2. The submitter receives a link that can be shared with the intended recipient.
16 |
17 | [](https://github.com/unicalabs/agrippa/blob/gh-pages/images/2.png)
18 |
19 | #### 3. The recipient is able to use the link to retrieve the secret.
20 |
21 | [](https://github.com/unicalabs/agrippa/blob/gh-pages/images/3.png)
22 |
23 | #### 4. The expiration and view limits are checked each time the secret is retrieved.
24 |
25 | [](https://github.com/unicalabs/agrippa/blob/gh-pages/images/4.png)
26 |
27 | #### 5. Past the expiry or view limits, the secret is deleted and cannot be retrieved.
28 |
29 | [](https://github.com/unicalabs/agrippa/blob/gh-pages/images/5.png)
30 |
31 | ## Maintainer
32 | Agrippa is maintained by [Unica Labs, LLC](http://unicalabs.com).
33 |
34 | ## License
35 | Distributed under the [MIT license](license.md).
36 |
--------------------------------------------------------------------------------
/resources/assets/sass/app.scss:
--------------------------------------------------------------------------------
1 | // @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
2 |
3 |
--------------------------------------------------------------------------------
/resources/lang/en/pagination.php:
--------------------------------------------------------------------------------
1 | '« Previous',
17 | 'next' => 'Next »',
18 |
19 | ];
20 |
--------------------------------------------------------------------------------
/resources/lang/en/passwords.php:
--------------------------------------------------------------------------------
1 | 'Passwords must be at least six characters and match the confirmation.',
17 | 'user' => "We can't find a user with that e-mail address.",
18 | 'token' => 'This password reset token is invalid.',
19 | 'sent' => 'We have e-mailed your password reset link!',
20 | 'reset' => 'Your password has been reset!',
21 |
22 | ];
23 |
--------------------------------------------------------------------------------
/resources/lang/en/validation.php:
--------------------------------------------------------------------------------
1 | 'The :attribute must be accepted.',
17 | 'active_url' => 'The :attribute is not a valid URL.',
18 | 'after' => 'The :attribute must be a date after :date.',
19 | 'alpha' => 'The :attribute may only contain letters.',
20 | 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
21 | 'alpha_num' => 'The :attribute may only contain letters and numbers.',
22 | 'array' => 'The :attribute must be an array.',
23 | 'before' => 'The :attribute must be a date before :date.',
24 | 'between' => [
25 | 'numeric' => 'The :attribute must be between :min and :max.',
26 | 'file' => 'The :attribute must be between :min and :max kilobytes.',
27 | 'string' => 'The :attribute must be between :min and :max characters.',
28 | 'array' => 'The :attribute must have between :min and :max items.',
29 | ],
30 | 'boolean' => 'The :attribute field must be true or false.',
31 | 'confirmed' => 'The :attribute confirmation does not match.',
32 | 'date' => 'The :attribute is not a valid date.',
33 | 'date_format' => 'The :attribute does not match the format :format.',
34 | 'different' => 'The :attribute and :other must be different.',
35 | 'digits' => 'The :attribute must be :digits digits.',
36 | 'digits_between' => 'The :attribute must be between :min and :max digits.',
37 | 'email' => 'The :attribute must be a valid email address.',
38 | 'filled' => 'The :attribute field is required.',
39 | 'exists' => 'The selected :attribute is invalid.',
40 | 'image' => 'The :attribute must be an image.',
41 | 'in' => 'The selected :attribute is invalid.',
42 | 'integer' => 'The :attribute must be an integer.',
43 | 'ip' => 'The :attribute must be a valid IP address.',
44 | 'max' => [
45 | 'numeric' => 'The :attribute may not be greater than :max.',
46 | 'file' => 'The :attribute may not be greater than :max kilobytes.',
47 | 'string' => 'The :attribute may not be greater than :max characters.',
48 | 'array' => 'The :attribute may not have more than :max items.',
49 | ],
50 | 'mimes' => 'The :attribute must be a file of type: :values.',
51 | 'min' => [
52 | 'numeric' => 'The :attribute must be at least :min.',
53 | 'file' => 'The :attribute must be at least :min kilobytes.',
54 | 'string' => 'The :attribute must be at least :min characters.',
55 | 'array' => 'The :attribute must have at least :min items.',
56 | ],
57 | 'not_in' => 'The selected :attribute is invalid.',
58 | 'numeric' => 'The :attribute must be a number.',
59 | 'regex' => 'The :attribute format is invalid.',
60 | 'required' => 'The :attribute field is required.',
61 | 'required_if' => 'The :attribute field is required when :other is :value.',
62 | 'required_with' => 'The :attribute field is required when :values is present.',
63 | 'required_with_all' => 'The :attribute field is required when :values is present.',
64 | 'required_without' => 'The :attribute field is required when :values is not present.',
65 | 'required_without_all' => 'The :attribute field is required when none of :values are present.',
66 | 'same' => 'The :attribute and :other must match.',
67 | 'size' => [
68 | 'numeric' => 'The :attribute must be :size.',
69 | 'file' => 'The :attribute must be :size kilobytes.',
70 | 'string' => 'The :attribute must be :size characters.',
71 | 'array' => 'The :attribute must contain :size items.',
72 | ],
73 | 'string' => 'The :attribute must be a string.',
74 | 'timezone' => 'The :attribute must be a valid zone.',
75 | 'unique' => 'The :attribute has already been taken.',
76 | 'url' => 'The :attribute format is invalid.',
77 |
78 | /*
79 | |--------------------------------------------------------------------------
80 | | Custom Validation Language Lines
81 | |--------------------------------------------------------------------------
82 | |
83 | | Here you may specify custom validation messages for attributes using the
84 | | convention "attribute.rule" to name the lines. This makes it quick to
85 | | specify a specific custom language line for a given attribute rule.
86 | |
87 | */
88 |
89 | 'custom' => [
90 | 'attribute-name' => [
91 | 'rule-name' => 'custom-message',
92 | ],
93 | ],
94 |
95 | /*
96 | |--------------------------------------------------------------------------
97 | | Custom Validation Attributes
98 | |--------------------------------------------------------------------------
99 | |
100 | | The following language lines are used to swap attribute place-holders
101 | | with something more reader friendly such as E-Mail Address instead
102 | | of "email". This simply helps us make messages a little cleaner.
103 | |
104 | */
105 |
106 | 'attributes' => [],
107 |
108 | ];
109 |
--------------------------------------------------------------------------------
/resources/views/app.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Agrippa - @yield('title')
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | @yield('content')
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | @yield('scriptFooter')
26 |
27 |
28 |
--------------------------------------------------------------------------------
/resources/views/errors/503.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Be right back.
5 |
6 |
7 |
8 |
39 |
40 |
41 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/resources/views/secret/create.blade.php:
--------------------------------------------------------------------------------
1 | @extends ('app')
2 |
3 | @section('title', 'Create')
4 |
5 | @section('content')
6 |
7 |
35 | @stop
36 |
37 | @section('scriptFooter')
38 |
43 | @stop
--------------------------------------------------------------------------------
/resources/views/secret/show.blade.php:
--------------------------------------------------------------------------------
1 | @extends ('app')
2 |
3 | @section('title', 'Retrieve')
4 |
5 | @section('content')
6 |
7 | @if(!empty($secretDecrypted))
8 | {{ $secretDecrypted }}
9 |
10 | @if($views_remaining == 0)
11 | Expired! (This link won't work again.)
12 | @else
13 | Expires {{ $expires_at }} or in {{ $views_remaining }}
14 | @if($views_remaining == 1)
15 | view.
16 | @else
17 | views.
18 | @endif
19 |
20 | @endif
21 | @else
22 |
23 | Secret not found.
24 | @endif
25 | @stop
26 |
27 | @section('scriptFooter')
28 |
34 | @stop
--------------------------------------------------------------------------------
/resources/views/secret/store.blade.php:
--------------------------------------------------------------------------------
1 | @extends ('app')
2 |
3 | @section('title', 'Created')
4 |
5 | @section('content')
6 |
7 | https://{{ Request::getHost() }}/show/{{ $uuid4 }}
8 | Expires {{ $expires_at }} or in {{ $views_remaining }}
9 | @if($views_remaining == 1)
10 | view.
11 | @else
12 | views.
13 | @endif
14 |
15 | @stop
16 |
17 | @section('scriptFooter')
18 |
24 | @stop
--------------------------------------------------------------------------------
/resources/views/vendor/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unicalabs/agrippa/7f669a1df6fce54c7a71a79b681396adbbd8c7b6/resources/views/vendor/.gitkeep
--------------------------------------------------------------------------------
/server.php:
--------------------------------------------------------------------------------
1 |
8 | */
9 |
10 | $uri = urldecode(
11 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
12 | );
13 |
14 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the
15 | // built-in PHP web server. This provides a convenient way to test a Laravel
16 | // application without having installed a "real" web server software here.
17 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
18 | return false;
19 | }
20 |
21 | require_once __DIR__.'/public/index.php';
22 |
--------------------------------------------------------------------------------
/storage/app/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/storage/framework/.gitignore:
--------------------------------------------------------------------------------
1 | config.php
2 | routes.php
3 | compiled.php
4 | services.json
5 | events.scanned.php
6 | routes.scanned.php
7 | down
8 |
--------------------------------------------------------------------------------
/storage/framework/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/storage/framework/sessions/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/storage/framework/views/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/storage/logs/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/tests/SecretTest.php:
--------------------------------------------------------------------------------
1 | faker = Faker\Factory::create();
23 | Artisan::call('migrate');
24 | }
25 |
26 | /**
27 | * Test secret creation.
28 | *
29 | * @return void
30 | */
31 | public function testCreateSecret()
32 | {
33 | $this->visit('/create')
34 | ->type('a secret', 'secret')
35 | ->press('Submit')
36 | ->see('/show/')
37 | ->seePageIs('/store');
38 | }
39 |
40 | /**
41 | * Test secret retrieval.
42 | *
43 | * @return void
44 | */
45 | public function testRetrieveSecret()
46 | {
47 | $data = $this->secretData();
48 |
49 | $secret = factory(App\Secret::class)->create([
50 | 'uuid4' => $data['uuid4'],
51 | 'secret' => $data['secret']
52 | ]);
53 |
54 | $this->visit('/show/' . $data['uuid4_intermediate'])
55 | ->see($data['secret_intermediate']);
56 | }
57 |
58 | /**
59 | * Test views-expired secret retrieval.
60 | *
61 | * @return void
62 | */
63 | public function testRetrieveViewsExpiredSecret()
64 | {
65 | $data = $this->secretData();
66 |
67 | $secret = factory(App\Secret::class)->create([
68 | 'uuid4' => $data['uuid4'],
69 | 'secret' => $data['secret'],
70 | 'expires_views' => $data['count_views'],
71 | 'count_views' => $data['count_views']
72 | ]);
73 |
74 | $this->visit('/show/' . $data['uuid4_intermediate'])
75 | ->see('Secret not found.');
76 | }
77 |
78 | /**
79 | * Test time-expired secret retrieval.
80 | *
81 | * @return void
82 | */
83 | public function testRetrieveTimeExpiredSecret()
84 | {
85 | $data = $this->secretData();
86 |
87 | $secret = factory(App\Secret::class)->create([
88 | 'uuid4' => $data['uuid4'],
89 | 'secret' => $data['secret'],
90 | 'expires_at' => $this->faker->dateTimeBetween('-5 days', '-5 minutes')
91 | ]);
92 |
93 | $this->visit('/show/' . $data['uuid4_intermediate'])
94 | ->see('Secret not found.');
95 | }
96 |
97 | /**
98 | * Create basic data for secret creation.
99 | *
100 | * @return data
101 | */
102 | public function secretData()
103 | {
104 | $data['secret_intermediate'] = $this->faker->word(32);
105 | $data['secret'] = Crypt::encrypt($data['secret_intermediate']);
106 | $data['uuid4_intermediate'] = Uuid::uuid4()->toString();
107 | $data['uuid4'] = crypt($data['uuid4_intermediate'], '$6$rounds=5000$' . getenv('APP_SALT') . '$');
108 | $data['count_views'] = $this->faker->numberBetween(5,1000);
109 |
110 | return $data;
111 | }
112 |
113 | }
114 |
--------------------------------------------------------------------------------
/tests/TestCase.php:
--------------------------------------------------------------------------------
1 | make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
22 |
23 | return $app;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------