Merge branch 'release/0.5.28'

This commit is contained in:
Jonny Barnes 2017-08-20 22:21:20 +01:00
commit e57d872055
61 changed files with 1038 additions and 615 deletions

View file

@ -1,10 +1,8 @@
APP_NAME=Laravel
APP_ENV=production APP_ENV=production
APP_KEY=SomeRandomString # Leave this APP_KEY=SomeRandomString # Leave this
APP_DEBUG=false APP_DEBUG=false
APP_LOG_LEVEL=warning APP_LOG_LEVEL=warning
APP_TIMEZONE=UTC
APP_LANG=en
APP_LOG=daily
DB_CONNECTION=pgsql DB_CONNECTION=pgsql
DB_HOST=127.0.0.1 DB_HOST=127.0.0.1
@ -13,6 +11,7 @@ DB_DATABASE=
DB_USERNAME= DB_USERNAME=
DB_PASSWORD= DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file CACHE_DRIVER=file
SESSION_DRIVER=file SESSION_DRIVER=file
QUEUE_DRIVER=sync QUEUE_DRIVER=sync
@ -27,8 +26,10 @@ MAIL_PORT=2525
MAIL_USERNAME=null MAIL_USERNAME=null
MAIL_PASSWORD=null MAIL_PASSWORD=null
MAIL_ENCRYPTION=null MAIL_ENCRYPTION=null
MAILGUN_DOMAIN=null
MAILGUN_SECRET=null PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
AWS_S3_KEY=your-key AWS_S3_KEY=your-key
AWS_S3_SECRET=your-secret AWS_S3_SECRET=your-secret
@ -54,3 +55,8 @@ SCOUT_DRIVER=pgsql
PIWIK=false PIWIK=false
PIWIK_ID=1 PIWIK_ID=1
PIWIK_URL=https://analytics.jmb.lv/piwik.php PIWIK_URL=https://analytics.jmb.lv/piwik.php
APP_TIMEZONE=UTC
APP_LANG=en
APP_LOG=daily
SECURE_SESSION_COOKIE=true

1
.gitattributes vendored
View file

@ -2,3 +2,4 @@
*.css linguist-vendored *.css linguist-vendored
*.scss linguist-vendored *.scss linguist-vendored
*.js linguist-vendored *.js linguist-vendored
CHANGELOG.md export-ignore

5
.gitignore vendored
View file

@ -1,11 +1,14 @@
/node_modules /node_modules
/public/storage
/public/hot /public/hot
/public/storage
/storage/*.key /storage/*.key
/vendor /vendor
/.idea /.idea
/.vagrant
Homestead.yaml Homestead.yaml
Homestead.json Homestead.json
.npm-debug.log
yarn-error.log
.env .env
/public/files /public/files
/public/keybase.txt /public/keybase.txt

View file

@ -29,7 +29,7 @@ class ArticlesController extends Controller
*/ */
public function show($year, $month, $slug) public function show($year, $month, $slug)
{ {
$article = Article::where('titleurl', $slug)->first(); $article = Article::where('titleurl', $slug)->firstOrFail();
if ($article->updated_at->year != $year || $article->updated_at->month != $month) { if ($article->updated_at->year != $year || $article->updated_at->month != $month) {
throw new \Exception; throw new \Exception;
} }

View file

@ -21,7 +21,7 @@ class LoginController extends Controller
use AuthenticatesUsers; use AuthenticatesUsers;
/** /**
* Where to redirect users after login / registration. * Where to redirect users after login.
* *
* @var string * @var string
*/ */
@ -34,6 +34,6 @@ class LoginController extends Controller
*/ */
public function __construct() public function __construct()
{ {
$this->middleware('guest', ['except' => 'logout']); $this->middleware('guest')->except('logout');
} }
} }

View file

@ -23,7 +23,7 @@ class RegisterController extends Controller
use RegistersUsers; use RegistersUsers;
/** /**
* Where to redirect users after login / registration. * Where to redirect users after registration.
* *
* @var string * @var string
*/ */
@ -48,9 +48,9 @@ class RegisterController extends Controller
protected function validator(array $data) protected function validator(array $data)
{ {
return Validator::make($data, [ return Validator::make($data, [
'name' => 'required|max:255', 'name' => 'required|string|max:255',
'email' => 'required|email|max:255|unique:users', 'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|min:6|confirmed', 'password' => 'required|string|min:6|confirmed',
]); ]);
} }

View file

@ -269,7 +269,7 @@ class MicropubClientController extends Controller
]; ];
if ($request->session()->has('me')) { if ($request->session()->has('me')) {
$data['me'] = normalize_url($request->session()->get('me')); $data['me'] = normalize_url($request->session()->get('me'));
$user = IndieWebUser::where('me', $request->session()->get('me'))->first(); $user = IndieWebUser::where('me', $request->session()->get('me'))->firstOrFail();
$data['token'] = $user->token ?? 'none defined'; $data['token'] = $user->token ?? 'none defined';
$data['syndication'] = $user->syndication ?? 'none defined'; $data['syndication'] = $user->syndication ?? 'none defined';
$data['media-endpoint'] = $user->mediaEndpoint ?? 'none defined'; $data['media-endpoint'] = $user->mediaEndpoint ?? 'none defined';

View file

@ -9,6 +9,7 @@ use Monolog\Handler\StreamHandler;
use Illuminate\Http\{Request, Response}; use Illuminate\Http\{Request, Response};
use App\Exceptions\InvalidTokenException; use App\Exceptions\InvalidTokenException;
use Phaza\LaravelPostgis\Geometries\Point; use Phaza\LaravelPostgis\Geometries\Point;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException; use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
use App\Services\{NoteService, PlaceService, TokenService}; use App\Services\{NoteService, PlaceService, TokenService};
@ -214,8 +215,8 @@ class MicropubController extends Controller
//is it a note we are updating? //is it a note we are updating?
if (mb_substr($urlPath, 1, 5) === 'notes') { if (mb_substr($urlPath, 1, 5) === 'notes') {
try { try {
$note = Note::nb60(basename($urlPath))->first(); $note = Note::nb60(basename($urlPath))->firstOrFail();
} catch (\Exception $exception) { } catch (ModelNotFoundException $exception) {
return response()->json([ return response()->json([
'error' => 'invalid_request', 'error' => 'invalid_request',
'error_description' => 'No known note with given ID', 'error_description' => 'No known note with given ID',

View file

@ -35,7 +35,7 @@ class NotesController extends Controller
*/ */
public function show($urlId) public function show($urlId)
{ {
$note = Note::nb60($urlId)->with('webmentions')->first(); $note = Note::nb60($urlId)->with('webmentions')->firstOrFail();
return view('notes.show', compact('note')); return view('notes.show', compact('note'));
} }

View file

@ -30,6 +30,7 @@ class Kernel extends HttpKernel
\App\Http\Middleware\EncryptCookies::class, \App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class, \Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class, \App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Routing\Middleware\SubstituteBindings::class,
@ -57,8 +58,8 @@ class Kernel extends HttpKernel
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'myauth' => \App\Http\Middleware\MyAuthMiddleware::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'micropub.token' => \App\Http\Middleware\VerifyMicropubToken::class, 'micropub.token' => \App\Http\Middleware\VerifyMicropubToken::class,
'myauth' => \App\Http\Middleware\MyAuthMiddleware::class,
]; ];
} }

View file

@ -18,7 +18,7 @@ class RedirectIfAuthenticated
public function handle($request, Closure $next, $guard = null) public function handle($request, Closure $next, $guard = null)
{ {
if (Auth::guard($guard)->check()) { if (Auth::guard($guard)->check()) {
return redirect('/'); return redirect('/home');
} }
return $next($request); return $next($request);

View file

@ -104,6 +104,9 @@ class SendWebMentions implements ShouldQueue
*/ */
public function getLinks($html) public function getLinks($html)
{ {
if ($html == '' || is_null($html)) {
return [];
}
$urls = []; $urls = [];
$dom = new \DOMDocument(); $dom = new \DOMDocument();
$dom->loadHTML($html); $dom->loadHTML($html);

View file

@ -23,6 +23,13 @@ class Note extends Model
use Searchable; use Searchable;
use SoftDeletes; use SoftDeletes;
/**
* The reges for matching lone usernames.
*
* @var string
*/
private const USERNAMES_REGEX = '/\[.*?\](*SKIP)(*F)|@(\w+)/';
/** /**
* The database table used by the model. * The database table used by the model.
* *
@ -132,12 +139,9 @@ class Note extends Model
*/ */
public function getNoteAttribute($value) public function getNoteAttribute($value)
{ {
$environment = Environment::createCommonMarkEnvironment();
$environment->addExtension(new LinkifyExtension());
$converter = new Converter(new DocParser($environment), new HtmlRenderer($environment));
$emoji = new EmojiModifier(); $emoji = new EmojiModifier();
$html = $converter->convertToHtml($value); $html = $this->convertMarkdown($value);
$hcards = $this->makeHCards($html); $hcards = $this->makeHCards($html);
$hashtags = $this->autoLinkHashtag($hcards); $hashtags = $this->autoLinkHashtag($hcards);
$modified = $emoji->makeEmojiAccessible($hashtags); $modified = $emoji->makeEmojiAccessible($hashtags);
@ -288,6 +292,93 @@ class Note extends Model
return $oEmbed; return $oEmbed;
} }
/**
* Show a specific form of the note for twitter.
*/
public function getTwitterContentAttribute()
{
// find @mentions
preg_match_all(self::USERNAMES_REGEX, $this->getOriginal('note'), $matches);
if (count($matches[1]) === 0) {
return;
}
// check if any @mentions have a contact associated with them
$count = 0;
foreach ($matches[1] as $match) {
$contact = Contact::where('nick', '=', mb_strtolower($match))->first();
if ($contact) {
$count++;
}
}
if ($count === 0) {
return;
}
// swap in twitter usernames
$swapped = preg_replace_callback(
self::USERNAMES_REGEX,
function ($matches) {
try {
$contact = Contact::where('nick', '=', mb_strtolower($matches[1]))->firstOrFail();
} catch (ModelNotFoundException $e) {
//assume its an actual twitter handle
return $matches[0];
}
if ($contact->twitter) {
return '@' . $contact->twitter;
}
return $contact->name;
},
$this->getOriginal('note')
);
return $this->convertMarkdown($swapped);
}
public function getFacebookContentAttribute()
{
// find @mentions
preg_match_all(self::USERNAMES_REGEX, $this->getOriginal('note'), $matches);
if (count($matches[1]) === 0) {
return;
}
// check if any @mentions have a contact associated with them
$count = 0;
foreach ($matches[1] as $match) {
$contact = Contact::where('nick', '=', mb_strtolower($match))->first();
if ($contact) {
$count++;
}
}
if ($count === 0) {
return;
}
// swap in facebook usernames
$swapped = preg_replace_callback(
self::USERNAMES_REGEX,
function ($matches) {
try {
$contact = Contact::where('nick', '=', mb_strtolower($matches[1]))->firstOrFail();
} catch (ModelNotFoundException $e) {
//assume its an actual twitter handle
return $matches[0];
}
if ($contact->facebook) {
return '<a class="u-category h-card" href="https://facebook.com/' . $contact->facebook . '">' . $contact->name . '</a>';
}
return $contact->name;
},
$this->getOriginal('note')
);
return $this->convertMarkdown($swapped);
}
/** /**
* Scope a query to select a note via a NewBase60 id. * Scope a query to select a note via a NewBase60 id.
* *
@ -313,9 +404,8 @@ class Note extends Model
*/ */
private function makeHCards($text) private function makeHCards($text)
{ {
$regex = '/\[.*?\](*SKIP)(*F)|@(\w+)/'; //match @alice but not [@bob](...)
$hcards = preg_replace_callback( $hcards = preg_replace_callback(
$regex, self::USERNAMES_REGEX,
function ($matches) { function ($matches) {
try { try {
$contact = Contact::where('nick', '=', mb_strtolower($matches[1]))->firstOrFail(); $contact = Contact::where('nick', '=', mb_strtolower($matches[1]))->firstOrFail();
@ -372,6 +462,15 @@ class Note extends Model
return $text; return $text;
} }
private function convertMarkdown($text)
{
$environment = Environment::createCommonMarkEnvironment();
$environment->addExtension(new LinkifyExtension());
$converter = new Converter(new DocParser($environment), new HtmlRenderer($environment));
return $converter->convertToHtml($text);
}
/** /**
* Do a reverse geocode lookup of a `lat,lng` value. * Do a reverse geocode lookup of a `lat,lng` value.
* *

View file

@ -19,7 +19,7 @@ class EventServiceProvider extends ServiceProvider
]; ];
/** /**
* Register any other events for your application. * Register any events for your application.
* *
* @return void * @return void
*/ */

View file

@ -19,7 +19,6 @@ class RouteServiceProvider extends ServiceProvider
/** /**
* Define your route model bindings, pattern filters, etc. * Define your route model bindings, pattern filters, etc.
* *
* @param \Illuminate\Routing\Router $router
* @return void * @return void
*/ */
public function boot() public function boot()

View file

@ -20,7 +20,7 @@ class NoteService
//check the input //check the input
if (array_key_exists('content', $data) === false) { if (array_key_exists('content', $data) === false) {
throw new \Exception('No content defined'); //we cant fudge the data $data['content'] = null;
} }
if (array_key_exists('in-reply-to', $data) === false) { if (array_key_exists('in-reply-to', $data) === false) {
$data['in-reply-to'] = null; $data['in-reply-to'] = null;
@ -64,6 +64,9 @@ class NoteService
if ($place !== null) { if ($place !== null) {
$note->place()->associate($place); $note->place()->associate($place);
$note->swarm_url = $data['swarm-url']; $note->swarm_url = $data['swarm-url'];
if ($note->note === null || $note->note == '') {
$note->note = 'Ive just checked in with Swarm';
}
} }
} }

View file

@ -40,7 +40,7 @@ $status = $kernel->handle(
| Shutdown The Application | Shutdown The Application
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| |
| Once Artisan has finished running. We will fire off the shutdown events | Once Artisan has finished running, we will fire off the shutdown events
| so that any final work may be done by the application before we shut | so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request. | down the process. This is the last thing to happen to the request.
| |

View file

@ -9,8 +9,8 @@ define('LARAVEL_START', microtime(true));
| |
| Composer provides a convenient, automatically generated class loader | Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it | for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the | into the script here so we do not have to manually load any of
| loading of any our classes "manually". Feels great to relax. | our application's PHP classes. It just feels great to relax.
| |
*/ */

View file

@ -1,5 +1,11 @@
# Changelog # Changelog
## Version 0.5.28 (2017-08-20)
- Improve Swarm checkin code to allow checkins without text
+ this required a change in the notes table schema
- Improve code by bringing in latest changes in laravel/laravel
- Improve POSSE compatability with bridgy and silos
## Version 0.5.27 (2017-07-24) ## Version 0.5.27 (2017-07-24)
- Just a bump in dependency versions used - Just a bump in dependency versions used

262
composer.lock generated
View file

@ -8,16 +8,16 @@
"packages": [ "packages": [
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.31.8", "version": "3.33.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "9829a8183016df800110148b467179d67c434f90" "reference": "2820644f411fa261f126727c1c00de15227b9520"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/9829a8183016df800110148b467179d67c434f90", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/2820644f411fa261f126727c1c00de15227b9520",
"reference": "9829a8183016df800110148b467179d67c434f90", "reference": "2820644f411fa261f126727c1c00de15227b9520",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -84,7 +84,7 @@
"s3", "s3",
"sdk" "sdk"
], ],
"time": "2017-07-20T22:22:05+00:00" "time": "2017-08-18T18:04:40+00:00"
}, },
{ {
"name": "barnabywalters/mf-cleaner", "name": "barnabywalters/mf-cleaner",
@ -679,16 +679,16 @@
}, },
{ {
"name": "doctrine/dbal", "name": "doctrine/dbal",
"version": "v2.6.0", "version": "v2.6.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/dbal.git", "url": "https://github.com/doctrine/dbal.git",
"reference": "498760e55195ccaf08076cb9100a2972ba74c001" "reference": "1a086f853425b1f5349775ce57e45a772d2d2ba5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/498760e55195ccaf08076cb9100a2972ba74c001", "url": "https://api.github.com/repos/doctrine/dbal/zipball/1a086f853425b1f5349775ce57e45a772d2d2ba5",
"reference": "498760e55195ccaf08076cb9100a2972ba74c001", "reference": "1a086f853425b1f5349775ce57e45a772d2d2ba5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -748,7 +748,7 @@
"persistence", "persistence",
"queryobject" "queryobject"
], ],
"time": "2017-07-23T01:02:22+00:00" "time": "2017-07-28T10:40:18+00:00"
}, },
{ {
"name": "doctrine/inflector", "name": "doctrine/inflector",
@ -1641,20 +1641,20 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v5.4.30", "version": "v5.4.33",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "b9a64955f4278f45ac348a6e000b5ecc85da167a" "reference": "e53a81a2bf406f501cdf818ad949f8d6c8dabfc0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/b9a64955f4278f45ac348a6e000b5ecc85da167a", "url": "https://api.github.com/repos/laravel/framework/zipball/e53a81a2bf406f501cdf818ad949f8d6c8dabfc0",
"reference": "b9a64955f4278f45ac348a6e000b5ecc85da167a", "reference": "e53a81a2bf406f501cdf818ad949f8d6c8dabfc0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/inflector": "~1.0", "doctrine/inflector": "~1.1",
"erusev/parsedown": "~1.6", "erusev/parsedown": "~1.6",
"ext-mbstring": "*", "ext-mbstring": "*",
"ext-openssl": "*", "ext-openssl": "*",
@ -1766,7 +1766,7 @@
"framework", "framework",
"laravel" "laravel"
], ],
"time": "2017-07-19T19:26:19+00:00" "time": "2017-08-14T20:17:41+00:00"
}, },
{ {
"name": "laravel/scout", "name": "laravel/scout",
@ -1956,16 +1956,16 @@
}, },
{ {
"name": "league/commonmark", "name": "league/commonmark",
"version": "0.15.4", "version": "0.15.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/commonmark.git", "url": "https://github.com/thephpleague/commonmark.git",
"reference": "c4c8e6bf99e62d9568875d9fc3ef473fe3e18e0c" "reference": "91742543c25fecedc84a4883d2919213e04a73b7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c4c8e6bf99e62d9568875d9fc3ef473fe3e18e0c", "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91742543c25fecedc84a4883d2919213e04a73b7",
"reference": "c4c8e6bf99e62d9568875d9fc3ef473fe3e18e0c", "reference": "91742543c25fecedc84a4883d2919213e04a73b7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1978,7 +1978,7 @@
"require-dev": { "require-dev": {
"cebe/markdown": "~1.0", "cebe/markdown": "~1.0",
"erusev/parsedown": "~1.0", "erusev/parsedown": "~1.0",
"jgm/commonmark": "0.27", "jgm/commonmark": "0.28",
"michelf/php-markdown": "~1.4", "michelf/php-markdown": "~1.4",
"mikehaertl/php-shellcommand": "~1.2.0", "mikehaertl/php-shellcommand": "~1.2.0",
"phpunit/phpunit": "~4.3|~5.0", "phpunit/phpunit": "~4.3|~5.0",
@ -2021,20 +2021,20 @@
"markdown", "markdown",
"parser" "parser"
], ],
"time": "2017-05-09T12:47:53+00:00" "time": "2017-08-08T11:47:33+00:00"
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
"version": "1.0.40", "version": "1.0.41",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem.git", "url": "https://github.com/thephpleague/flysystem.git",
"reference": "3828f0b24e2c1918bb362d57a53205d6dc8fde61" "reference": "f400aa98912c561ba625ea4065031b7a41e5a155"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3828f0b24e2c1918bb362d57a53205d6dc8fde61", "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f400aa98912c561ba625ea4065031b7a41e5a155",
"reference": "3828f0b24e2c1918bb362d57a53205d6dc8fde61", "reference": "f400aa98912c561ba625ea4065031b7a41e5a155",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2055,13 +2055,13 @@
"league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
"league/flysystem-azure": "Allows you to use Windows Azure Blob storage", "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
"league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
"league/flysystem-copy": "Allows you to use Copy.com storage",
"league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
"league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
"league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
"league/flysystem-webdav": "Allows you to use WebDAV storage", "league/flysystem-webdav": "Allows you to use WebDAV storage",
"league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
"spatie/flysystem-dropbox": "Allows you to use Dropbox storage" "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
"srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -2104,7 +2104,7 @@
"sftp", "sftp",
"storage" "storage"
], ],
"time": "2017-04-28T10:15:08+00:00" "time": "2017-08-06T17:41:04+00:00"
}, },
{ {
"name": "league/flysystem-aws-s3-v3", "name": "league/flysystem-aws-s3-v3",
@ -2440,16 +2440,16 @@
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v3.0.6", "version": "v3.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "0808939f81c1347a3c8a82a5925385a08074b0f1" "reference": "4d4896e553f2094e657fe493506dc37c509d4e2b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0808939f81c1347a3c8a82a5925385a08074b0f1", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4d4896e553f2094e657fe493506dc37c509d4e2b",
"reference": "0808939f81c1347a3c8a82a5925385a08074b0f1", "reference": "4d4896e553f2094e657fe493506dc37c509d4e2b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2487,7 +2487,7 @@
"parser", "parser",
"php" "php"
], ],
"time": "2017-06-28T20:53:48+00:00" "time": "2017-07-28T14:45:09+00:00"
}, },
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
@ -2791,16 +2791,16 @@
}, },
{ {
"name": "psy/psysh", "name": "psy/psysh",
"version": "v0.8.10", "version": "v0.8.11",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/bobthecow/psysh.git", "url": "https://github.com/bobthecow/psysh.git",
"reference": "7ab97e5a32202585309f3ee35a0c08d2a8e588b1" "reference": "b193cd020e8c6b66cea6457826ae005e94e6d2c0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/7ab97e5a32202585309f3ee35a0c08d2a8e588b1", "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b193cd020e8c6b66cea6457826ae005e94e6d2c0",
"reference": "7ab97e5a32202585309f3ee35a0c08d2a8e588b1", "reference": "b193cd020e8c6b66cea6457826ae005e94e6d2c0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2860,20 +2860,20 @@
"interactive", "interactive",
"shell" "shell"
], ],
"time": "2017-07-22T15:14:19+00:00" "time": "2017-07-29T19:30:02+00:00"
}, },
{ {
"name": "ramsey/uuid", "name": "ramsey/uuid",
"version": "3.6.1", "version": "3.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ramsey/uuid.git", "url": "https://github.com/ramsey/uuid.git",
"reference": "4ae32dd9ab8860a4bbd750ad269cba7f06f7934e" "reference": "0ef23d1b10cf1bc576e9d865a7e9c47982c5715e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/4ae32dd9ab8860a4bbd750ad269cba7f06f7934e", "url": "https://api.github.com/repos/ramsey/uuid/zipball/0ef23d1b10cf1bc576e9d865a7e9c47982c5715e",
"reference": "4ae32dd9ab8860a4bbd750ad269cba7f06f7934e", "reference": "0ef23d1b10cf1bc576e9d865a7e9c47982c5715e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2942,20 +2942,20 @@
"identifier", "identifier",
"uuid" "uuid"
], ],
"time": "2017-03-26T20:37:53+00:00" "time": "2017-08-04T13:39:04+00:00"
}, },
{ {
"name": "sensiolabs/security-checker", "name": "sensiolabs/security-checker",
"version": "v4.0.5", "version": "v4.1.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sensiolabs/security-checker.git", "url": "https://github.com/sensiolabs/security-checker.git",
"reference": "6a3b0c3b42e41c777b1ad75032d8177863fdc5e1" "reference": "72f4238707071459a6680854c8c74a0ebb999549"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/6a3b0c3b42e41c777b1ad75032d8177863fdc5e1", "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/72f4238707071459a6680854c8c74a0ebb999549",
"reference": "6a3b0c3b42e41c777b1ad75032d8177863fdc5e1", "reference": "72f4238707071459a6680854c8c74a0ebb999549",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2968,7 +2968,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "4.0-dev" "dev-master": "4.1-dev"
} }
}, },
"autoload": { "autoload": {
@ -2987,20 +2987,20 @@
} }
], ],
"description": "A security checker for your composer.lock", "description": "A security checker for your composer.lock",
"time": "2017-07-24T11:42:56+00:00" "time": "2017-08-14T18:42:49+00:00"
}, },
{ {
"name": "spatie/laravel-tinker-tools", "name": "spatie/laravel-tinker-tools",
"version": "1.0.0", "version": "1.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/spatie/laravel-tinker-tools.git", "url": "https://github.com/spatie/laravel-tinker-tools.git",
"reference": "4674f9a3d874c8ad488e25ffb7cd936bb7348e43" "reference": "130b5a029fcf6608c462d9fd2e7429e45436a5e5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-tinker-tools/zipball/4674f9a3d874c8ad488e25ffb7cd936bb7348e43", "url": "https://api.github.com/repos/spatie/laravel-tinker-tools/zipball/130b5a029fcf6608c462d9fd2e7429e45436a5e5",
"reference": "4674f9a3d874c8ad488e25ffb7cd936bb7348e43", "reference": "130b5a029fcf6608c462d9fd2e7429e45436a5e5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3028,7 +3028,7 @@
"role": "Developer" "role": "Developer"
} }
], ],
"description": "Flysystem Adapter for the Dropbox v2 API", "description": "Use short class names in an Artisan tinker session",
"homepage": "https://github.com/spatie/laravel-tinker-tools", "homepage": "https://github.com/spatie/laravel-tinker-tools",
"keywords": [ "keywords": [
"Flysystem", "Flysystem",
@ -3038,7 +3038,7 @@
"spatie", "spatie",
"v2" "v2"
], ],
"time": "2017-05-22T11:30:34+00:00" "time": "2017-07-29T03:41:36+00:00"
}, },
{ {
"name": "swiftmailer/swiftmailer", "name": "swiftmailer/swiftmailer",
@ -3096,16 +3096,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "a97e45d98c59510f085fa05225a1acb74dfe0546" "reference": "b0878233cb5c4391347e5495089c7af11b8e6201"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/a97e45d98c59510f085fa05225a1acb74dfe0546", "url": "https://api.github.com/repos/symfony/console/zipball/b0878233cb5c4391347e5495089c7af11b8e6201",
"reference": "a97e45d98c59510f085fa05225a1acb74dfe0546", "reference": "b0878233cb5c4391347e5495089c7af11b8e6201",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3161,11 +3161,11 @@
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-07-03T13:19:36+00:00" "time": "2017-07-29T21:27:59+00:00"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/css-selector.git", "url": "https://github.com/symfony/css-selector.git",
@ -3218,16 +3218,16 @@
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/debug.git", "url": "https://github.com/symfony/debug.git",
"reference": "63b85a968486d95ff9542228dc2e4247f16f9743" "reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/63b85a968486d95ff9542228dc2e4247f16f9743", "url": "https://api.github.com/repos/symfony/debug/zipball/7c13ae8ce1e2adbbd574fc39de7be498e1284e13",
"reference": "63b85a968486d95ff9542228dc2e4247f16f9743", "reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3270,11 +3270,11 @@
], ],
"description": "Symfony Debug Component", "description": "Symfony Debug Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-07-05T13:02:37+00:00" "time": "2017-07-28T15:27:31+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
@ -3337,7 +3337,7 @@
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
@ -3386,16 +3386,16 @@
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "e307abe4b79ccbbfdced9b91c132fd128f456bc5" "reference": "49e8cd2d59a7aa9bfab19e46de680c76e500a031"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/e307abe4b79ccbbfdced9b91c132fd128f456bc5", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/49e8cd2d59a7aa9bfab19e46de680c76e500a031",
"reference": "e307abe4b79ccbbfdced9b91c132fd128f456bc5", "reference": "49e8cd2d59a7aa9bfab19e46de680c76e500a031",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3435,20 +3435,20 @@
], ],
"description": "Symfony HttpFoundation Component", "description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-07-17T14:07:10+00:00" "time": "2017-07-21T11:04:46+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "16ceea64d23abddf58797a782ae96a5242282cd8" "reference": "db10d05f1d95e4168e638db7a81c79616f568ea5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/16ceea64d23abddf58797a782ae96a5242282cd8", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/db10d05f1d95e4168e638db7a81c79616f568ea5",
"reference": "16ceea64d23abddf58797a782ae96a5242282cd8", "reference": "db10d05f1d95e4168e638db7a81c79616f568ea5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3521,20 +3521,20 @@
], ],
"description": "Symfony HttpKernel Component", "description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-07-17T19:08:23+00:00" "time": "2017-08-01T10:25:59+00:00"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.4.0", "version": "v1.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "f29dca382a6485c3cbe6379f0c61230167681937" "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f29dca382a6485c3cbe6379f0c61230167681937", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7c8fae0ac1d216eb54349e6a8baa57d515fe8803",
"reference": "f29dca382a6485c3cbe6379f0c61230167681937", "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3546,7 +3546,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.4-dev" "dev-master": "1.5-dev"
} }
}, },
"autoload": { "autoload": {
@ -3580,11 +3580,11 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2017-06-09T14:24:12+00:00" "time": "2017-06-14T15:44:48+00:00"
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
@ -3633,16 +3633,16 @@
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/routing.git", "url": "https://github.com/symfony/routing.git",
"reference": "dc70bbd0ca7b19259f63cdacc8af370bc32a4728" "reference": "4aee1a917fd4859ff8b51b9fd1dfb790a5ecfa26"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/dc70bbd0ca7b19259f63cdacc8af370bc32a4728", "url": "https://api.github.com/repos/symfony/routing/zipball/4aee1a917fd4859ff8b51b9fd1dfb790a5ecfa26",
"reference": "dc70bbd0ca7b19259f63cdacc8af370bc32a4728", "reference": "4aee1a917fd4859ff8b51b9fd1dfb790a5ecfa26",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3707,11 +3707,11 @@
"uri", "uri",
"url" "url"
], ],
"time": "2017-06-24T09:29:48+00:00" "time": "2017-07-21T17:43:13+00:00"
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
@ -3776,16 +3776,16 @@
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "0f32b62d21991700250fed5109b092949007c5b3" "reference": "b2623bccb969ad595c2090f9be498b74670d0663"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/0f32b62d21991700250fed5109b092949007c5b3", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b2623bccb969ad595c2090f9be498b74670d0663",
"reference": "0f32b62d21991700250fed5109b092949007c5b3", "reference": "b2623bccb969ad595c2090f9be498b74670d0663",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3840,7 +3840,7 @@
"debug", "debug",
"dump" "dump"
], ],
"time": "2017-07-10T14:18:27+00:00" "time": "2017-07-28T06:06:09+00:00"
}, },
{ {
"name": "themattharris/tmhoauth", "name": "themattharris/tmhoauth",
@ -4184,29 +4184,31 @@
}, },
{ {
"name": "fzaninotto/faker", "name": "fzaninotto/faker",
"version": "v1.6.0", "version": "v1.7.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/fzaninotto/Faker.git", "url": "https://github.com/fzaninotto/Faker.git",
"reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123" "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123", "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d3ed4cc37051c1ca52d22d76b437d14809fc7e0d",
"reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123", "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.3.3|^7.0" "php": "^5.3.3 || ^7.0"
}, },
"require-dev": { "require-dev": {
"ext-intl": "*", "ext-intl": "*",
"phpunit/phpunit": "~4.0", "phpunit/phpunit": "^4.0 || ^5.0",
"squizlabs/php_codesniffer": "~1.5" "squizlabs/php_codesniffer": "^1.5"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": [] "branch-alias": {
"dev-master": "1.8-dev"
}
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@ -4228,7 +4230,7 @@
"faker", "faker",
"fixtures" "fixtures"
], ],
"time": "2016-04-29T12:21:54+00:00" "time": "2017-08-15T16:48:10+00:00"
}, },
{ {
"name": "hamcrest/hamcrest-php", "name": "hamcrest/hamcrest-php",
@ -4602,22 +4604,22 @@
}, },
{ {
"name": "phpdocumentor/reflection-docblock", "name": "phpdocumentor/reflection-docblock",
"version": "3.2.0", "version": "3.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "46f7e8bb075036c92695b15a1ddb6971c751e585" "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/46f7e8bb075036c92695b15a1ddb6971c751e585", "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157",
"reference": "46f7e8bb075036c92695b15a1ddb6971c751e585", "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5", "php": ">=5.5",
"phpdocumentor/reflection-common": "^1.0@dev", "phpdocumentor/reflection-common": "^1.0@dev",
"phpdocumentor/type-resolver": "^0.4.0", "phpdocumentor/type-resolver": "^0.3.0",
"webmozart/assert": "^1.0" "webmozart/assert": "^1.0"
}, },
"require-dev": { "require-dev": {
@ -4643,20 +4645,20 @@
} }
], ],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"time": "2017-07-15T11:38:20+00:00" "time": "2017-08-08T06:39:58+00:00"
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"version": "0.4.0", "version": "0.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git", "url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773",
"reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4690,7 +4692,7 @@
"email": "me@mikevanriel.com" "email": "me@mikevanriel.com"
} }
], ],
"time": "2017-07-14T14:27:02+00:00" "time": "2017-06-03T08:32:36+00:00"
}, },
{ {
"name": "phpspec/prophecy", "name": "phpspec/prophecy",
@ -4957,29 +4959,29 @@
}, },
{ {
"name": "phpunit/php-token-stream", "name": "phpunit/php-token-stream",
"version": "1.4.11", "version": "2.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git", "url": "https://github.com/sebastianbergmann/php-token-stream.git",
"reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7" "reference": "9a02332089ac48e704c70f6cefed30c224e3c0b0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7", "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9a02332089ac48e704c70f6cefed30c224e3c0b0",
"reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7", "reference": "9a02332089ac48e704c70f6cefed30c224e3c0b0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-tokenizer": "*", "ext-tokenizer": "*",
"php": ">=5.3.3" "php": "^7.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.2" "phpunit/phpunit": "^6.2.4"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.4-dev" "dev-master": "2.0-dev"
} }
}, },
"autoload": { "autoload": {
@ -5002,7 +5004,7 @@
"keywords": [ "keywords": [
"tokenizer" "tokenizer"
], ],
"time": "2017-02-27T10:12:30+00:00" "time": "2017-08-20T05:47:52+00:00"
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
@ -5749,16 +5751,16 @@
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
"version": "v3.3.5", "version": "v3.3.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/yaml.git", "url": "https://github.com/symfony/yaml.git",
"reference": "1f93a8d19b8241617f5074a123e282575b821df8" "reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/1f93a8d19b8241617f5074a123e282575b821df8", "url": "https://api.github.com/repos/symfony/yaml/zipball/ddc23324e6cfe066f3dd34a37ff494fa80b617ed",
"reference": "1f93a8d19b8241617f5074a123e282575b821df8", "reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5800,7 +5802,7 @@
], ],
"description": "Symfony Yaml Component", "description": "Symfony Yaml Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-06-15T12:58:50+00:00" "time": "2017-07-23T12:43:26+00:00"
}, },
{ {
"name": "theseer/fdomdocument", "name": "theseer/fdomdocument",

View file

@ -90,6 +90,7 @@ return [
| they have less time to be guessed. You may change this as needed. | they have less time to be guessed. You may change this as needed.
| |
*/ */
'passwords' => [ 'passwords' => [
'users' => [ 'users' => [
'provider' => 'users', 'provider' => 'users',

View file

@ -67,6 +67,17 @@ return [
'sslmode' => 'prefer', 'sslmode' => 'prefer',
], ],
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],
'travis' => [ 'travis' => [
'driver' => 'pgsql', 'driver' => 'pgsql',
'host' => 'localhost', 'host' => 'localhost',
@ -106,7 +117,7 @@ return [
'redis' => [ 'redis' => [
'cluster' => false, 'client' => 'predis',
'default' => [ 'default' => [
'host' => env('REDIS_HOST', 'localhost'), 'host' => env('REDIS_HOST', 'localhost'),

View file

@ -13,7 +13,7 @@ return [
| |
*/ */
'default' => 'local', 'default' => env('FILESYSTEM_DRIVER', 'local'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -26,7 +26,7 @@ return [
| |
*/ */
'cloud' => 's3', 'cloud' => env('FILESYSTEM_CLOUD', 's3'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View file

@ -113,6 +113,7 @@ return [
'markdown' => [ 'markdown' => [
'theme' => 'default', 'theme' => 'default',
'paths' => [ 'paths' => [
resource_path('views/vendor/mail'), resource_path('views/vendor/mail'),
], ],

View file

@ -8,7 +8,7 @@ return [
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| |
| This file is for storing the credentials for third party services such | This file is for storing the credentials for third party services such
| as Stripe, Mailgun, Mandrill, and others. This file provides a sane | as Stripe, Mailgun, SparkPost and others. This file provides a sane
| default location for this type of information, allowing packages | default location for this type of information, allowing packages
| to have a conventional place to find your various credentials. | to have a conventional place to find your various credentials.
| |

View file

@ -161,7 +161,7 @@ return [
| |
*/ */
'secure' => (config('app.env') != 'testing'), 'secure' => env('SESSION_SECURE_COOKIE', false),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View file

@ -13,10 +13,12 @@
/** @var \Illuminate\Database\Eloquent\Factory $factory */ /** @var \Illuminate\Database\Eloquent\Factory $factory */
$factory->define(App\User::class, function (Faker\Generator $faker) { $factory->define(App\User::class, function (Faker\Generator $faker) {
static $password;
return [ return [
'name' => $faker->name, 'name' => $faker->name,
'email' => $faker->safeEmail, 'email' => $faker->safeEmail,
'password' => bcrypt(str_random(10)), 'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10), 'remember_token' => str_random(10),
]; ];
}); });

View file

@ -0,0 +1,34 @@
<?php
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AllowEmptyNoteContent extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('notes', function (Blueprint $table) {
DB::statement('ALTER TABLE notes ALTER note DROP NOT NULL');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('notes', function (Blueprint $table) {
// we dont reverse this because we cant know if there
// are NULL entries, in which case SET NOT NULL will fail
});
}
}

929
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,7 @@
"license": "CC0-1.0", "license": "CC0-1.0",
"dependencies": { "dependencies": {
"alertify.js": "^1.0.12", "alertify.js": "^1.0.12",
"mapbox-gl": "^0.39.0", "mapbox-gl": "^0.39.1",
"marked": "^0.3.6", "marked": "^0.3.6",
"normalize.css": "^7.0.0", "normalize.css": "^7.0.0",
"webStorage": "^1.2.4" "webStorage": "^1.2.4"
@ -20,22 +20,22 @@
"babel-preset-env": "^1.6.0", "babel-preset-env": "^1.6.0",
"babel-preset-es2015": "^6.18.0", "babel-preset-es2015": "^6.18.0",
"babel-preset-latest": "^6.16.0", "babel-preset-latest": "^6.16.0",
"babel-runtime": "^6.20.0", "babel-runtime": "^6.25.0",
"dotenv-webpack": "^1.5.4", "dotenv-webpack": "^1.5.4",
"eslint": "^4.3.0", "eslint": "^4.4.1",
"eslint-config-standard": "^10.2.1", "eslint-config-standard": "^10.2.1",
"eslint-plugin-import": "^2.7.0", "eslint-plugin-import": "^2.7.0",
"eslint-plugin-node": "^5.1.1", "eslint-plugin-node": "^5.1.1",
"eslint-plugin-promise": "^3.5.0", "eslint-plugin-promise": "^3.5.0",
"eslint-plugin-standard": "^3.0.1", "eslint-plugin-standard": "^3.0.1",
"lint-staged": "^4.0.2", "lint-staged": "^4.0.3",
"postcss-cli": "^4.1.0", "postcss-cli": "^4.1.0",
"pre-commit": "^1.1.3", "pre-commit": "^1.1.3",
"source-list-map": "^2.0.0", "source-list-map": "^2.0.0",
"stylelint": "^8.0.0", "stylelint": "^8.0.0",
"stylelint-config-standard": "^17.0.0", "stylelint-config-standard": "^17.0.0",
"uglify-js": "^3.0.26", "uglify-js": "^3.0.27",
"webpack": "^3.3.0", "webpack": "^3.5.3",
"webpack-sources": "^1.0.1" "webpack-sources": "^1.0.1"
}, },
"scripts": { "scripts": {

View file

@ -9,10 +9,10 @@
processIsolation="false" processIsolation="false"
stopOnFailure="false"> stopOnFailure="false">
<testsuites> <testsuites>
<testsuite name="Feature Tests"> <testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory> <directory suffix="Test.php">./tests/Feature</directory>
</testsuite> </testsuite>
<testsuite name="Unit Tests"> <testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory> <directory suffix="Test.php">./tests/Unit</directory>
</testsuite> </testsuite>
</testsuites> </testsuites>

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View file

@ -1 +1 @@
{"version":3,"sources":["../../../resources/assets/sass/app.scss","../../../resources/assets/sass/layout.scss","../../../resources/assets/sass/styles.scss","../../../resources/assets/sass/pagination.scss","../../../resources/assets/sass/note-form.scss","../../../resources/assets/sass/mapbox.scss","../../../resources/assets/sass/contacts.scss","../../../resources/assets/sass/emoji.scss"],"names":[],"mappings":"AAIA,KACI,8BACA,AADA,sBACA,cAAe,CAClB,qBAKG,2BAAmB,AAAnB,kBAAmB,CACtB,KCVG,eACA,cACA,iBACA,kBACA,oBAAqB,CACxB,WAGG,iBAAkB,CACrB,SAGG,gBAAiB,CACpB,MAGG,oBACA,AADA,oBACA,AADA,aACA,4BAAsB,AAAtB,6BAAsB,AAAtB,0BAAsB,AAAtB,qBAAsB,CACzB,eAGG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,yBACA,AADA,sBACA,AADA,8BACA,gBAAiB,CACpB,UAGG,gBACA,WACA,eACA,4BAA6B,CAChC,cAGG,oBACA,AADA,oBACA,AADA,aACA,yBAAmB,AAAnB,sBAAmB,AAAnB,kBAAmB,CACtB,kBAGG,gBAAiB,CACpB,aAGG,iBAAkB,CACrB,qBAGG,kBACA,WAAY,CACf,wBAGG,YAAa,CAChB,8BAGG,eACA,uBACA,sBACA,kBACA,gBACA,WACA,UACA,WACA,2BAA4B,CAC/B,oBAGG,kBACA,SACA,WACA,WACA,YACA,mBAAoB,CACvB,wBAGG,aAAc,CACjB,qBAGG,aACA,eAAgB,CACnB,aAGG,eACA,yBAA0B,CAC7B,OAGG,eAAgB,CACnB,cAGG,eAAgB,CACnB,WAGG,eACA,cACA,iBAAkB,CACrB,sBAGG,cAAe,CAClB,sBAGG,iBACA,cAAe,CAClB,WAGG,kBACA,WACA,SACA,qBAAsB,CACzB,SAGG,kBACA,MACA,OACA,WACA,WAAY,CACf,KC9HG,6JAWc,CACjB,EAGG,qBACA,wBACA,UAAW,CACd,gBAGG,kBAAmB,CACtB,MAGG,WACA,UAAW,CACd,OAGG,iBACA,iBAAkB,CACrB,WAGG,kBAAmB,CACtB,UAGG,YACA,WAAY,CACf,YC1CG,WACA,YACA,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,yBACA,AADA,sBACA,AADA,8BACA,yBAAmB,AAAnB,sBAAmB,AAAnB,kBAAmB,CACtB,eAGG,oBAAqB,CACxB,SCVG,oBACA,AADA,oBACA,AADA,aACA,4BAAsB,AAAtB,6BAAsB,AAAtB,0BAAsB,AAAtB,qBAAsB,CACzB,0BAGG,aACI,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,cAAe,CAClB,mBAGG,SAAU,CACb,CAGL,0BACI,mBACI,UAAW,CACd,4BAIG,UAAW,CACd,CAGL,eACI,UACA,oBACA,gBAAiB,CACpB,oDAIG,mBAAO,AAAP,WAAO,AAAP,MAAO,CACV,kBAGG,qBAAsB,CACzB,QAGG,mBAAoB,CACvB,aAGG,oBAAqB,CACxB,cAGG,WACA,SAAU,CACb,KCrDG,eACA,YAAa,CAChB,oBAGG,kBAAmB,CACtB,QAGG,y4HACA,wBACA,WACA,WAAY,CACf,UAGG,kBACA,MACA,OACA,iBACA,cAAe,CAClB,gBAGG,gBACA,gBAAiB,CACpB,SC1BG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,eACA,6BAA8B,CACjC,aAGG,oBACA,YACA,YAAa,CAChB,sDCPG,iBAAkB,CACrB,gFAIG,kBACA,cACA,UACA,aACA,OACA,cACA,qBACA,yBACA,oBACA,4CACA,AADA,oCACA,yBACA,kCACA,WACA,cACA,0CAAkC,AAAlC,iCAAkC,CACrC,2BAGG,KACI,aACA,6BACA,wCACA,0BACA,8BAAkC,AAAlC,qBAAkC,CAGtC,GACI,aACA,kCACA,yBACA,WACA,4CAAgD,AAAhD,mCAAgD,CAAA,CAIxD,AApBC,mBAGG,KACI,aACA,6BACA,wCACA,0BACA,8BAAkC,AAAlC,qBAAkC,CAGtC,GACI,aACA,kCACA,yBACA,WACA,4CAAgD,AAAhD,mCAAgD,CAAA,CAIxD,aACI,kCACI,kCAAmC,CACtC,CAAA","file":"app.css"} {"version":3,"sources":["../../../resources/assets/sass/app.scss","../../../resources/assets/sass/layout.scss","../../../resources/assets/sass/styles.scss","../../../resources/assets/sass/pagination.scss","../../../resources/assets/sass/note-form.scss","../../../resources/assets/sass/mapbox.scss","../../../resources/assets/sass/contacts.scss","../../../resources/assets/sass/emoji.scss","../../../resources/assets/sass/bridgy-links.scss"],"names":[],"mappings":"AAIA,KACI,8BACA,AADA,sBACA,cAAe,CAClB,qBAKG,2BAAmB,AAAnB,kBAAmB,CACtB,KCVG,eACA,cACA,iBACA,kBACA,oBAAqB,CACxB,WAGG,iBAAkB,CACrB,SAGG,gBAAiB,CACpB,MAGG,oBACA,AADA,oBACA,AADA,aACA,4BAAsB,AAAtB,6BAAsB,AAAtB,0BAAsB,AAAtB,qBAAsB,CACzB,eAGG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,yBACA,AADA,sBACA,AADA,8BACA,gBAAiB,CACpB,UAGG,gBACA,WACA,eACA,4BAA6B,CAChC,cAGG,oBACA,AADA,oBACA,AADA,aACA,yBAAmB,AAAnB,sBAAmB,AAAnB,kBAAmB,CACtB,kBAGG,gBAAiB,CACpB,aAGG,iBAAkB,CACrB,qBAGG,kBACA,WAAY,CACf,wBAGG,YAAa,CAChB,8BAGG,eACA,uBACA,sBACA,kBACA,gBACA,WACA,UACA,WACA,2BAA4B,CAC/B,oBAGG,kBACA,SACA,WACA,WACA,YACA,mBAAoB,CACvB,wBAGG,aAAc,CACjB,qBAGG,aACA,eAAgB,CACnB,aAGG,eACA,yBAA0B,CAC7B,OAGG,eAAgB,CACnB,cAGG,eAAgB,CACnB,WAGG,eACA,cACA,iBAAkB,CACrB,sBAGG,cAAe,CAClB,sBAGG,iBACA,cAAe,CAClB,WAGG,kBACA,WACA,SACA,qBAAsB,CACzB,SAGG,kBACA,MACA,OACA,WACA,WAAY,CACf,KC9HG,6JAWc,CACjB,EAGG,qBACA,wBACA,UAAW,CACd,gBAGG,kBAAmB,CACtB,MAGG,WACA,UAAW,CACd,OAGG,iBACA,iBAAkB,CACrB,WAGG,kBAAmB,CACtB,UAGG,YACA,WAAY,CACf,YC1CG,WACA,YACA,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,yBACA,AADA,sBACA,AADA,8BACA,yBAAmB,AAAnB,sBAAmB,AAAnB,kBAAmB,CACtB,eAGG,oBAAqB,CACxB,SCVG,oBACA,AADA,oBACA,AADA,aACA,4BAAsB,AAAtB,6BAAsB,AAAtB,0BAAsB,AAAtB,qBAAsB,CACzB,0BAGG,aACI,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,cAAe,CAClB,mBAGG,SAAU,CACb,CAGL,0BACI,mBACI,UAAW,CACd,4BAIG,UAAW,CACd,CAGL,eACI,UACA,oBACA,gBAAiB,CACpB,oDAIG,mBAAO,AAAP,WAAO,AAAP,MAAO,CACV,kBAGG,qBAAsB,CACzB,QAGG,mBAAoB,CACvB,aAGG,oBAAqB,CACxB,cAGG,WACA,SAAU,CACb,KCrDG,eACA,YAAa,CAChB,oBAGG,kBAAmB,CACtB,QAGG,y4HACA,wBACA,WACA,WAAY,CACf,UAGG,kBACA,MACA,OACA,iBACA,cAAe,CAClB,gBAGG,gBACA,gBAAiB,CACpB,SC1BG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,eACA,6BAA8B,CACjC,aAGG,oBACA,YACA,YAAa,CAChB,sDCPG,iBAAkB,CACrB,gFAIG,kBACA,cACA,UACA,aACA,OACA,cACA,qBACA,yBACA,oBACA,4CACA,AADA,oCACA,yBACA,kCACA,WACA,cACA,0CAAkC,AAAlC,iCAAkC,CACrC,2BAGG,KACI,aACA,6BACA,wCACA,0BACA,8BAAkC,AAAlC,qBAAkC,CAGtC,GACI,aACA,kCACA,yBACA,WACA,4CAAgD,AAAhD,mCAAgD,CAAA,CAIxD,AApBC,mBAGG,KACI,aACA,6BACA,wCACA,0BACA,8BAAkC,AAAlC,qBAAkC,CAGtC,GACI,aACA,kCACA,yBACA,WACA,4CAAgD,AAAhD,mCAAgD,CAAA,CAIxD,aACI,kCACI,kCAAmC,CACtC,CC/CL,qDAEI,YAAa,CAChB","file":"app.css"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View file

@ -15,7 +15,7 @@
| Composer provides a convenient, automatically generated class loader for | Composer provides a convenient, automatically generated class loader for
| our application. We just need to utilize it! We'll simply require it | our application. We just need to utilize it! We'll simply require it
| into the script here so that we don't have to worry about manual | into the script here so that we don't have to worry about manual
| loading any of our classes later on. It feels nice to relax. | loading any of our classes later on. It feels great to relax.
| |
*/ */

View file

@ -20,3 +20,4 @@ html {
@import "mapbox"; @import "mapbox";
@import "contacts"; @import "contacts";
@import "emoji"; @import "emoji";
@import "bridgy-links";

View file

@ -0,0 +1,6 @@
// bridgy-links.scss
.p-bridgy-twitter-content,
.p-bridgy-facebook-content {
display: none;
}

View file

@ -14,6 +14,6 @@ return [
*/ */
'previous' => '&laquo; Previous', 'previous' => '&laquo; Previous',
'next' => 'Next &raquo;', 'next' => 'Next &raquo;',
]; ];

View file

@ -16,11 +16,13 @@ return [
'accepted' => 'The :attribute must be accepted.', 'accepted' => 'The :attribute must be accepted.',
'active_url' => 'The :attribute is not a valid URL.', 'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.', 'after' => 'The :attribute must be a date after :date.',
'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
'alpha' => 'The :attribute may only contain letters.', 'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
'alpha_num' => 'The :attribute may only contain letters and numbers.', 'alpha_num' => 'The :attribute may only contain letters and numbers.',
'array' => 'The :attribute must be an array.', 'array' => 'The :attribute must be an array.',
'before' => 'The :attribute must be a date before :date.', 'before' => 'The :attribute must be a date before :date.',
'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
'between' => [ 'between' => [
'numeric' => 'The :attribute must be between :min and :max.', 'numeric' => 'The :attribute must be between :min and :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.', 'file' => 'The :attribute must be between :min and :max kilobytes.',
@ -38,13 +40,15 @@ return [
'distinct' => 'The :attribute field has a duplicate value.', 'distinct' => 'The :attribute field has a duplicate value.',
'email' => 'The :attribute must be a valid email address.', 'email' => 'The :attribute must be a valid email address.',
'exists' => 'The selected :attribute is invalid.', 'exists' => 'The selected :attribute is invalid.',
'file' => 'The :attribute must be a file.' 'file' => 'The :attribute must be a file.',
'filled' => 'The :attribute field is required.', 'filled' => 'The :attribute field must have a value.',
'image' => 'The :attribute must be an image.', 'image' => 'The :attribute must be an image.',
'in' => 'The selected :attribute is invalid.', 'in' => 'The selected :attribute is invalid.',
'in_array' => 'The :attribute field does not exist in :other.', 'in_array' => 'The :attribute field does not exist in :other.',
'integer' => 'The :attribute must be an integer.', 'integer' => 'The :attribute must be an integer.',
'ip' => 'The :attribute must be a valid IP address.', 'ip' => 'The :attribute must be a valid IP address.',
'ipv4' => 'The :attribute must be a valid IPv4 address.',
'ipv6' => 'The :attribute must be a valid IPv6 address.',
'json' => 'The :attribute must be a valid JSON string.', 'json' => 'The :attribute must be a valid JSON string.',
'max' => [ 'max' => [
'numeric' => 'The :attribute may not be greater than :max.', 'numeric' => 'The :attribute may not be greater than :max.',
@ -53,6 +57,7 @@ return [
'array' => 'The :attribute may not have more than :max items.', 'array' => 'The :attribute may not have more than :max items.',
], ],
'mimes' => 'The :attribute must be a file of type: :values.', 'mimes' => 'The :attribute must be a file of type: :values.',
'mimetypes' => 'The :attribute must be a file of type: :values.',
'min' => [ 'min' => [
'numeric' => 'The :attribute must be at least :min.', 'numeric' => 'The :attribute must be at least :min.',
'file' => 'The :attribute must be at least :min kilobytes.', 'file' => 'The :attribute must be at least :min kilobytes.',
@ -80,6 +85,7 @@ return [
'string' => 'The :attribute must be a string.', 'string' => 'The :attribute must be a string.',
'timezone' => 'The :attribute must be a valid zone.', 'timezone' => 'The :attribute must be a valid zone.',
'unique' => 'The :attribute has already been taken.', 'unique' => 'The :attribute has already been taken.',
'uploaded' => 'The :attribute failed to upload.',
'url' => 'The :attribute format is invalid.', 'url' => 'The :attribute format is invalid.',
/* /*

View file

@ -15,6 +15,12 @@
@if($media->type == 'download')<p><a class="u-attachment" href="{{ $media->url }}">Download the attached media</a></p>@endif @if($media->type == 'download')<p><a class="u-attachment" href="{{ $media->url }}">Download the attached media</a></p>@endif
@endforeach @endforeach
</div> </div>
@if($note->twitter_content)<div class="p-bridgy-twitter-content">
{!! $note->twitter_content !!}
</div>@endif
@if($note->facebook_content)<div class="p-bridgy-facebook-content">
{!! $note->facebook_content !!}
</div>@endif
<div class="note-metadata"> <div class="note-metadata">
<div> <div>
<a class="u-url" href="/notes/{{ $note->nb60id }}"><time class="dt-published" datetime="{{ $note->iso8601 }}" title="{{ $note->iso8601 }}">{{ $note->humandiff }}</time></a>@if($note->client) via <a class="client" href="{{ $note->client->client_url }}">{{ $note->client->client_name }}</a>@endif <a class="u-url" href="/notes/{{ $note->nb60id }}"><time class="dt-published" datetime="{{ $note->iso8601 }}" title="{{ $note->iso8601 }}">{{ $note->humandiff }}</time></a>@if($note->client) via <a class="client" href="{{ $note->client->client_url }}">{{ $note->client->client_name }}</a>@endif

View file

@ -1,44 +1,86 @@
<!DOCTYPE html> <!doctype html>
<html> <html lang="{{ app()->getLocale() }}">
<head> <head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title> <title>Laravel</title>
<link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css"> <!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
<!-- Styles -->
<style> <style>
html, body { html, body {
height: 100%; background-color: #fff;
} color: #636b6f;
font-family: 'Raleway', sans-serif;
body {
margin: 0;
padding: 0;
width: 100%;
display: table;
font-weight: 100; font-weight: 100;
font-family: 'Lato'; height: 100vh;
margin: 0;
} }
.full-height {
.container { height: 100vh;
text-align: center; }
display: table-cell; .flex-center {
vertical-align: middle; align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.top-right {
position: absolute;
right: 10px;
top: 18px;
} }
.content { .content {
text-align: center; text-align: center;
display: inline-block;
} }
.title { .title {
font-size: 96px; font-size: 84px;
}
.links > a {
color: #636b6f;
padding: 0 25px;
font-size: 12px;
font-weight: 600;
letter-spacing: .1rem;
text-decoration: none;
text-transform: uppercase;
}
.m-b-md {
margin-bottom: 30px;
} }
</style> </style>
</head> </head>
<body> <body>
<div class="container"> <div class="flex-center position-ref full-height">
@if (Route::has('login'))
<div class="top-right links">
@auth
<a href="{{ url('/home') }}">Home</a>
@else
<a href="{{ route('login') }}">Login</a>
<a href="{{ route('register') }}">Register</a>
@endauth
</div>
@endif
<div class="content"> <div class="content">
<div class="title">Laravel 5</div> <div class="title m-b-md">
Laravel
</div>
<div class="links">
<a href="https://laravel.com/docs">Documentation</a>
<a href="https://laracasts.com">Laracasts</a>
<a href="https://laravel-news.com">News</a>
<a href="https://forge.laravel.com">Forge</a>
<a href="https://github.com/laravel/laravel">GitHub</a>
</div>
</div> </div>
</div> </div>
</body> </body>

View file

@ -4,7 +4,7 @@
* Laravel - A PHP Framework For Web Artisans * Laravel - A PHP Framework For Web Artisans
* *
* @package Laravel * @package Laravel
* @author Taylor Otwell <taylorotwell@gmail.com> * @author Taylor Otwell <taylor@laravel.com>
*/ */
$uri = urldecode( $uri = urldecode(

View file

@ -14,7 +14,9 @@ trait CreatesApplication
public function createApplication() public function createApplication()
{ {
$app = require __DIR__.'/../bootstrap/app.php'; $app = require __DIR__.'/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap(); $app->make(Kernel::class)->bootstrap();
return $app; return $app;
} }
} }

View file

@ -0,0 +1,27 @@
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class BridgyPosseTest extends TestCase
{
public function test_bridgy_twitter_content()
{
$response = $this->get('/notes/C');
$html = $response->content();
$this->assertTrue(is_string(mb_stristr($html, 'p-bridgy-twitter-content')));
}
public function test_bridgy_facebook_content()
{
$response = $this->get('/notes/C');
$html = $response->content();
$this->assertTrue(is_string(mb_stristr($html, 'p-bridgy-facebook-content')));
}
}

View file

@ -17,6 +17,7 @@ class ExampleTest extends TestCase
public function testBasicTest() public function testBasicTest()
{ {
$response = $this->get('/'); $response = $this->get('/');
$response->assertStatus(200); $response->assertStatus(200);
} }
} }

View file

@ -51,6 +51,40 @@ class SwarmTest extends TestCase
]); ]);
} }
public function test_faked_ownyourswarm_request_with_no_text_content()
{
$response = $this->json(
'POST',
'api/post',
[
'type' => ['h-entry'],
'properties' => [
'published' => [\Carbon\Carbon::now()->toDateTimeString()],
'syndication' => ['https://www.swarmapp.com/checkin/def'],
'checkin' => [[
'type' => ['h-card'],
'properties' => [
'name' => ['Awesomer Venue'],
'url' => ['https://foursquare.com/v/654321'],
'latitude' => ['3.21'],
'longitude' => ['6.54'],
],
]],
],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
);
$response
->assertStatus(201)
->assertJson(['response' => 'created']);
$this->assertDatabaseHas('places', [
'external_urls' => '{"foursquare": "https://foursquare.com/v/654321"}'
]);
$this->assertDatabaseHas('notes', [
'swarm_url' => 'https://www.swarmapp.com/checkin/def'
]);
}
/** /**
* Generate a valid token to be used in the tests. * Generate a valid token to be used in the tests.
* *