updates
This commit is contained in:
30
composer.lock
generated
30
composer.lock
generated
@@ -804,16 +804,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/framework",
|
"name": "laravel/framework",
|
||||||
"version": "v5.8.17",
|
"version": "v5.8.18",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/laravel/framework.git",
|
"url": "https://github.com/laravel/framework.git",
|
||||||
"reference": "33c04dd2a431adeeb49926a4f2b20590cc033ca2"
|
"reference": "9f571be04435883dab6f23ecfadb204273b7f527"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/laravel/framework/zipball/33c04dd2a431adeeb49926a4f2b20590cc033ca2",
|
"url": "https://api.github.com/repos/laravel/framework/zipball/9f571be04435883dab6f23ecfadb204273b7f527",
|
||||||
"reference": "33c04dd2a431adeeb49926a4f2b20590cc033ca2",
|
"reference": "9f571be04435883dab6f23ecfadb204273b7f527",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -947,20 +947,20 @@
|
|||||||
"framework",
|
"framework",
|
||||||
"laravel"
|
"laravel"
|
||||||
],
|
],
|
||||||
"time": "2019-05-14T16:02:41+00:00"
|
"time": "2019-05-21T16:40:34+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/horizon",
|
"name": "laravel/horizon",
|
||||||
"version": "v3.1.2",
|
"version": "v3.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/laravel/horizon.git",
|
"url": "https://github.com/laravel/horizon.git",
|
||||||
"reference": "32313d787a7a7575c1866e8ed12ec944c1513b7f"
|
"reference": "a9204280f72a1c6d3874e0f98b68e354b212311a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/laravel/horizon/zipball/32313d787a7a7575c1866e8ed12ec944c1513b7f",
|
"url": "https://api.github.com/repos/laravel/horizon/zipball/a9204280f72a1c6d3874e0f98b68e354b212311a",
|
||||||
"reference": "32313d787a7a7575c1866e8ed12ec944c1513b7f",
|
"reference": "a9204280f72a1c6d3874e0f98b68e354b212311a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -1016,7 +1016,7 @@
|
|||||||
"laravel",
|
"laravel",
|
||||||
"queue"
|
"queue"
|
||||||
],
|
],
|
||||||
"time": "2019-04-30T15:20:11+00:00"
|
"time": "2019-05-21T19:58:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/socialite",
|
"name": "laravel/socialite",
|
||||||
@@ -1214,16 +1214,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/flysystem",
|
"name": "league/flysystem",
|
||||||
"version": "1.0.51",
|
"version": "1.0.52",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/thephpleague/flysystem.git",
|
"url": "https://github.com/thephpleague/flysystem.git",
|
||||||
"reference": "755ba7bf3fb9031e6581d091db84d78275874396"
|
"reference": "c5a5097156387970e6f0ccfcdf03f752856f3391"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/755ba7bf3fb9031e6581d091db84d78275874396",
|
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c5a5097156387970e6f0ccfcdf03f752856f3391",
|
||||||
"reference": "755ba7bf3fb9031e6581d091db84d78275874396",
|
"reference": "c5a5097156387970e6f0ccfcdf03f752856f3391",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -1294,7 +1294,7 @@
|
|||||||
"sftp",
|
"sftp",
|
||||||
"storage"
|
"storage"
|
||||||
],
|
],
|
||||||
"time": "2019-03-30T13:22:34+00:00"
|
"time": "2019-05-20T20:21:14+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/oauth1-client",
|
"name": "league/oauth1-client",
|
||||||
|
|||||||
36
vendor/composer/installed.json
vendored
36
vendor/composer/installed.json
vendored
@@ -1113,17 +1113,17 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/framework",
|
"name": "laravel/framework",
|
||||||
"version": "v5.8.17",
|
"version": "v5.8.18",
|
||||||
"version_normalized": "5.8.17.0",
|
"version_normalized": "5.8.18.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/laravel/framework.git",
|
"url": "https://github.com/laravel/framework.git",
|
||||||
"reference": "33c04dd2a431adeeb49926a4f2b20590cc033ca2"
|
"reference": "9f571be04435883dab6f23ecfadb204273b7f527"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/laravel/framework/zipball/33c04dd2a431adeeb49926a4f2b20590cc033ca2",
|
"url": "https://api.github.com/repos/laravel/framework/zipball/9f571be04435883dab6f23ecfadb204273b7f527",
|
||||||
"reference": "33c04dd2a431adeeb49926a4f2b20590cc033ca2",
|
"reference": "9f571be04435883dab6f23ecfadb204273b7f527",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -1226,7 +1226,7 @@
|
|||||||
"symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^1.1).",
|
"symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^1.1).",
|
||||||
"wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
|
"wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
|
||||||
},
|
},
|
||||||
"time": "2019-05-14T16:02:41+00:00",
|
"time": "2019-05-21T16:40:34+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
@@ -1262,17 +1262,17 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/horizon",
|
"name": "laravel/horizon",
|
||||||
"version": "v3.1.2",
|
"version": "v3.2.1",
|
||||||
"version_normalized": "3.1.2.0",
|
"version_normalized": "3.2.1.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/laravel/horizon.git",
|
"url": "https://github.com/laravel/horizon.git",
|
||||||
"reference": "32313d787a7a7575c1866e8ed12ec944c1513b7f"
|
"reference": "a9204280f72a1c6d3874e0f98b68e354b212311a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/laravel/horizon/zipball/32313d787a7a7575c1866e8ed12ec944c1513b7f",
|
"url": "https://api.github.com/repos/laravel/horizon/zipball/a9204280f72a1c6d3874e0f98b68e354b212311a",
|
||||||
"reference": "32313d787a7a7575c1866e8ed12ec944c1513b7f",
|
"reference": "a9204280f72a1c6d3874e0f98b68e354b212311a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -1294,7 +1294,7 @@
|
|||||||
"orchestra/testbench": "^3.7",
|
"orchestra/testbench": "^3.7",
|
||||||
"phpunit/phpunit": "^7.0"
|
"phpunit/phpunit": "^7.0"
|
||||||
},
|
},
|
||||||
"time": "2019-04-30T15:20:11+00:00",
|
"time": "2019-05-21T19:58:03+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
@@ -1533,17 +1533,17 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/flysystem",
|
"name": "league/flysystem",
|
||||||
"version": "1.0.51",
|
"version": "1.0.52",
|
||||||
"version_normalized": "1.0.51.0",
|
"version_normalized": "1.0.52.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/thephpleague/flysystem.git",
|
"url": "https://github.com/thephpleague/flysystem.git",
|
||||||
"reference": "755ba7bf3fb9031e6581d091db84d78275874396"
|
"reference": "c5a5097156387970e6f0ccfcdf03f752856f3391"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/755ba7bf3fb9031e6581d091db84d78275874396",
|
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c5a5097156387970e6f0ccfcdf03f752856f3391",
|
||||||
"reference": "755ba7bf3fb9031e6581d091db84d78275874396",
|
"reference": "c5a5097156387970e6f0ccfcdf03f752856f3391",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -1573,7 +1573,7 @@
|
|||||||
"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"
|
"srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
|
||||||
},
|
},
|
||||||
"time": "2019-03-30T13:22:34+00:00",
|
"time": "2019-05-20T20:21:14+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
|
|||||||
@@ -417,6 +417,8 @@ class Gate implements GateContract
|
|||||||
*
|
*
|
||||||
* @param callable $callback
|
* @param callable $callback
|
||||||
* @return bool
|
* @return bool
|
||||||
|
*
|
||||||
|
* @throws \ReflectionException
|
||||||
*/
|
*/
|
||||||
protected function callbackAllowsGuests($callback)
|
protected function callbackAllowsGuests($callback)
|
||||||
{
|
{
|
||||||
@@ -598,6 +600,8 @@ class Gate implements GateContract
|
|||||||
*
|
*
|
||||||
* @param object|string $class
|
* @param object|string $class
|
||||||
* @return mixed
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws \Illuminate\Contracts\Container\BindingResolutionException
|
||||||
*/
|
*/
|
||||||
public function resolvePolicy($class)
|
public function resolvePolicy($class)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ class AuthMakeCommand extends Command
|
|||||||
/**
|
/**
|
||||||
* Get full view path relative to the app's configured view path.
|
* Get full view path relative to the app's configured view path.
|
||||||
*
|
*
|
||||||
|
* @param string $path
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected function getViewPath($path)
|
protected function getViewPath($path)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
||||||
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css">
|
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Styles -->
|
<!-- Styles -->
|
||||||
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
|
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
|
||||||
|
|||||||
@@ -186,7 +186,13 @@ class FileStore implements Store
|
|||||||
return $this->emptyPayload();
|
return $this->emptyPayload();
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = unserialize(substr($contents, 10));
|
try {
|
||||||
|
$data = unserialize(substr($contents, 10));
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->forget($key);
|
||||||
|
|
||||||
|
return $this->emptyPayload();
|
||||||
|
}
|
||||||
|
|
||||||
// Next, we'll extract the number of seconds that are remaining for a cache
|
// Next, we'll extract the number of seconds that are remaining for a cache
|
||||||
// so that we can properly retain the time for things like the increment
|
// so that we can properly retain the time for things like the increment
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ interface Guard
|
|||||||
/**
|
/**
|
||||||
* Get the ID for the currently authenticated user.
|
* Get the ID for the currently authenticated user.
|
||||||
*
|
*
|
||||||
* @return int|null
|
* @return int|string|null
|
||||||
*/
|
*/
|
||||||
public function id();
|
public function id();
|
||||||
|
|
||||||
|
|||||||
@@ -2078,7 +2078,7 @@ class Builder
|
|||||||
/**
|
/**
|
||||||
* Execute a query for a single record by ID.
|
* Execute a query for a single record by ID.
|
||||||
*
|
*
|
||||||
* @param int $id
|
* @param int|string $id
|
||||||
* @param array $columns
|
* @param array $columns
|
||||||
* @return mixed|static
|
* @return mixed|static
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -138,7 +138,11 @@ class FilesystemAdapter implements FilesystemContract, CloudFilesystemContract
|
|||||||
{
|
{
|
||||||
$response = new StreamedResponse;
|
$response = new StreamedResponse;
|
||||||
|
|
||||||
$disposition = $response->headers->makeDisposition($disposition, $name ?? basename($path));
|
$filename = $name ?? basename($path);
|
||||||
|
|
||||||
|
$disposition = $response->headers->makeDisposition(
|
||||||
|
$disposition, $filename, Str::ascii($filename)
|
||||||
|
);
|
||||||
|
|
||||||
$response->headers->replace($headers + [
|
$response->headers->replace($headers + [
|
||||||
'Content-Type' => $this->mimeType($path),
|
'Content-Type' => $this->mimeType($path),
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class Application extends Container implements ApplicationContract, HttpKernelIn
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
const VERSION = '5.8.17';
|
const VERSION = '5.8.18';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The base path for the Laravel installation.
|
* The base path for the Laravel installation.
|
||||||
|
|||||||
@@ -1,459 +1,459 @@
|
|||||||
<!doctype html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>@yield('title')</title>
|
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
|
<title>@yield('title')</title>
|
||||||
|
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
||||||
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css">
|
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Styles -->
|
<!-- Styles -->
|
||||||
<style>
|
<style>
|
||||||
html {
|
html {
|
||||||
line-height: 1.15;
|
line-height: 1.15;
|
||||||
-ms-text-size-adjust: 100%;
|
-ms-text-size-adjust: 100%;
|
||||||
-webkit-text-size-adjust: 100%;
|
-webkit-text-size-adjust: 100%;
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
header,
|
|
||||||
nav,
|
|
||||||
section {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
figcaption,
|
|
||||||
main {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
background-color: transparent;
|
|
||||||
-webkit-text-decoration-skip: objects;
|
|
||||||
}
|
|
||||||
|
|
||||||
strong {
|
|
||||||
font-weight: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
strong {
|
|
||||||
font-weight: bolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
font-family: monospace, monospace;
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
dfn {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
svg:not(:root) {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
input {
|
|
||||||
font-family: sans-serif;
|
|
||||||
font-size: 100%;
|
|
||||||
line-height: 1.15;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
input {
|
|
||||||
overflow: visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
text-transform: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
html [type="button"],
|
|
||||||
[type="reset"],
|
|
||||||
[type="submit"] {
|
|
||||||
-webkit-appearance: button;
|
|
||||||
}
|
|
||||||
|
|
||||||
button::-moz-focus-inner,
|
|
||||||
[type="button"]::-moz-focus-inner,
|
|
||||||
[type="reset"]::-moz-focus-inner,
|
|
||||||
[type="submit"]::-moz-focus-inner {
|
|
||||||
border-style: none;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:-moz-focusring,
|
|
||||||
[type="button"]:-moz-focusring,
|
|
||||||
[type="reset"]:-moz-focusring,
|
|
||||||
[type="submit"]:-moz-focusring {
|
|
||||||
outline: 1px dotted ButtonText;
|
|
||||||
}
|
|
||||||
|
|
||||||
legend {
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
color: inherit;
|
|
||||||
display: table;
|
|
||||||
max-width: 100%;
|
|
||||||
padding: 0;
|
|
||||||
white-space: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
[type="checkbox"],
|
|
||||||
[type="radio"] {
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
[type="number"]::-webkit-inner-spin-button,
|
|
||||||
[type="number"]::-webkit-outer-spin-button {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
[type="search"] {
|
|
||||||
-webkit-appearance: textfield;
|
|
||||||
outline-offset: -2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
[type="search"]::-webkit-search-cancel-button,
|
|
||||||
[type="search"]::-webkit-search-decoration {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-file-upload-button {
|
|
||||||
-webkit-appearance: button;
|
|
||||||
font: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
menu {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
canvas {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
template {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
[hidden] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
font-family: sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
*,
|
|
||||||
*::before,
|
|
||||||
*::after {
|
|
||||||
-webkit-box-sizing: inherit;
|
|
||||||
box-sizing: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
background: transparent;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:focus {
|
|
||||||
outline: 1px dotted;
|
|
||||||
outline: 5px auto -webkit-focus-ring-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
*,
|
|
||||||
*::before,
|
|
||||||
*::after {
|
|
||||||
border-width: 0;
|
|
||||||
border-style: solid;
|
|
||||||
border-color: #dae1e7;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
[type="button"],
|
|
||||||
[type="reset"],
|
|
||||||
[type="submit"] {
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
input {
|
|
||||||
font-family: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
input::-webkit-input-placeholder {
|
|
||||||
color: inherit;
|
|
||||||
opacity: .5;
|
|
||||||
}
|
|
||||||
|
|
||||||
input:-ms-input-placeholder {
|
|
||||||
color: inherit;
|
|
||||||
opacity: .5;
|
|
||||||
}
|
|
||||||
|
|
||||||
input::-ms-input-placeholder {
|
|
||||||
color: inherit;
|
|
||||||
opacity: .5;
|
|
||||||
}
|
|
||||||
|
|
||||||
input::placeholder {
|
|
||||||
color: inherit;
|
|
||||||
opacity: .5;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
[role=button] {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-transparent {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-white {
|
|
||||||
background-color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-teal-light {
|
|
||||||
background-color: #64d5ca;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-blue-dark {
|
|
||||||
background-color: #2779bd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-indigo-light {
|
|
||||||
background-color: #7886d7;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-purple-light {
|
|
||||||
background-color: #a779e9;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-no-repeat {
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-cover {
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-grey-light {
|
|
||||||
border-color: #dae1e7;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hover\:border-grey:hover {
|
|
||||||
border-color: #b8c2cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rounded-lg {
|
|
||||||
border-radius: .5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-2 {
|
|
||||||
border-width: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.items-center {
|
|
||||||
-webkit-box-align: center;
|
|
||||||
-ms-flex-align: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-center {
|
|
||||||
-webkit-box-pack: center;
|
|
||||||
-ms-flex-pack: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-sans {
|
|
||||||
font-family: Nunito, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-light {
|
|
||||||
font-weight: 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-bold {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-black {
|
|
||||||
font-weight: 900;
|
|
||||||
}
|
|
||||||
|
|
||||||
.h-1 {
|
|
||||||
height: .25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leading-normal {
|
|
||||||
line-height: 1.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.m-8 {
|
|
||||||
margin: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-3 {
|
|
||||||
margin-top: .75rem;
|
|
||||||
margin-bottom: .75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mb-8 {
|
|
||||||
margin-bottom: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.max-w-sm {
|
|
||||||
max-width: 30rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.min-h-screen {
|
|
||||||
min-height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.py-3 {
|
|
||||||
padding-top: .75rem;
|
|
||||||
padding-bottom: .75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.px-6 {
|
|
||||||
padding-left: 1.5rem;
|
|
||||||
padding-right: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pb-full {
|
|
||||||
padding-bottom: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.absolute {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.relative {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pin {
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-black {
|
|
||||||
color: #22292f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-grey-darkest {
|
|
||||||
color: #3d4852;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-grey-darker {
|
|
||||||
color: #606f7b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-2xl {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-5xl {
|
|
||||||
font-size: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.uppercase {
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
.antialiased {
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tracking-wide {
|
|
||||||
letter-spacing: .05em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.w-16 {
|
|
||||||
width: 4rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.w-full {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
|
||||||
.md\:bg-left {
|
|
||||||
background-position: left;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.md\:bg-right {
|
body {
|
||||||
background-position: right;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.md\:flex {
|
header,
|
||||||
|
nav,
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
figcaption,
|
||||||
|
main {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
background-color: transparent;
|
||||||
|
-webkit-text-decoration-skip: objects;
|
||||||
|
}
|
||||||
|
|
||||||
|
strong {
|
||||||
|
font-weight: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
strong {
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: monospace, monospace;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
dfn {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg:not(:root) {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input {
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 100%;
|
||||||
|
line-height: 1.15;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
html [type="button"],
|
||||||
|
[type="reset"],
|
||||||
|
[type="submit"] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
button::-moz-focus-inner,
|
||||||
|
[type="button"]::-moz-focus-inner,
|
||||||
|
[type="reset"]::-moz-focus-inner,
|
||||||
|
[type="submit"]::-moz-focus-inner {
|
||||||
|
border-style: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:-moz-focusring,
|
||||||
|
[type="button"]:-moz-focusring,
|
||||||
|
[type="reset"]:-moz-focusring,
|
||||||
|
[type="submit"]:-moz-focusring {
|
||||||
|
outline: 1px dotted ButtonText;
|
||||||
|
}
|
||||||
|
|
||||||
|
legend {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: inherit;
|
||||||
|
display: table;
|
||||||
|
max-width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="checkbox"],
|
||||||
|
[type="radio"] {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="number"]::-webkit-inner-spin-button,
|
||||||
|
[type="number"]::-webkit-outer-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="search"] {
|
||||||
|
-webkit-appearance: textfield;
|
||||||
|
outline-offset: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="search"]::-webkit-search-cancel-button,
|
||||||
|
[type="search"]::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
canvas {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
template {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
-webkit-box-sizing: inherit;
|
||||||
|
box-sizing: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background: transparent;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus {
|
||||||
|
outline: 1px dotted;
|
||||||
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
border-width: 0;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #dae1e7;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
[type="button"],
|
||||||
|
[type="reset"],
|
||||||
|
[type="submit"] {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input {
|
||||||
|
font-family: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
input::-webkit-input-placeholder {
|
||||||
|
color: inherit;
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:-ms-input-placeholder {
|
||||||
|
color: inherit;
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
input::-ms-input-placeholder {
|
||||||
|
color: inherit;
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
input::placeholder {
|
||||||
|
color: inherit;
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
[role=button] {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-transparent {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-white {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-teal-light {
|
||||||
|
background-color: #64d5ca;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-blue-dark {
|
||||||
|
background-color: #2779bd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-indigo-light {
|
||||||
|
background-color: #7886d7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-purple-light {
|
||||||
|
background-color: #a779e9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-no-repeat {
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-cover {
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.border-grey-light {
|
||||||
|
border-color: #dae1e7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hover\:border-grey:hover {
|
||||||
|
border-color: #b8c2cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rounded-lg {
|
||||||
|
border-radius: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.border-2 {
|
||||||
|
border-width: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex {
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
display: -ms-flexbox;
|
display: -ms-flexbox;
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.md\:my-6 {
|
.items-center {
|
||||||
margin-top: 1.5rem;
|
-webkit-box-align: center;
|
||||||
margin-bottom: 1.5rem;
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.md\:min-h-screen {
|
.justify-center {
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-sans {
|
||||||
|
font-family: Nunito, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-light {
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-bold {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-black {
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h-1 {
|
||||||
|
height: .25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.leading-normal {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.m-8 {
|
||||||
|
margin: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.my-3 {
|
||||||
|
margin-top: .75rem;
|
||||||
|
margin-bottom: .75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mb-8 {
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.max-w-sm {
|
||||||
|
max-width: 30rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.min-h-screen {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.md\:pb-0 {
|
.py-3 {
|
||||||
padding-bottom: 0;
|
padding-top: .75rem;
|
||||||
|
padding-bottom: .75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.md\:text-3xl {
|
.px-6 {
|
||||||
font-size: 1.875rem;
|
padding-left: 1.5rem;
|
||||||
|
padding-right: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.md\:text-15xl {
|
.pb-full {
|
||||||
font-size: 9rem;
|
padding-bottom: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.md\:w-1\/2 {
|
.absolute {
|
||||||
width: 50%;
|
position: absolute;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
.relative {
|
||||||
.lg\:bg-center {
|
position: relative;
|
||||||
background-position: center;
|
}
|
||||||
|
|
||||||
|
.pin {
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-black {
|
||||||
|
color: #22292f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-grey-darkest {
|
||||||
|
color: #3d4852;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-grey-darker {
|
||||||
|
color: #606f7b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-2xl {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-5xl {
|
||||||
|
font-size: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uppercase {
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.antialiased {
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tracking-wide {
|
||||||
|
letter-spacing: .05em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w-16 {
|
||||||
|
width: 4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w-full {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.md\:bg-left {
|
||||||
|
background-position: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md\:bg-right {
|
||||||
|
background-position: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md\:flex {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md\:my-6 {
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md\:min-h-screen {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md\:pb-0 {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md\:text-3xl {
|
||||||
|
font-size: 1.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md\:text-15xl {
|
||||||
|
font-size: 9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md\:w-1\/2 {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
.lg\:bg-center {
|
||||||
|
background-position: center;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="antialiased font-sans">
|
<body class="antialiased font-sans">
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
||||||
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css">
|
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Styles -->
|
<!-- Styles -->
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@@ -445,8 +445,8 @@ class LogManager implements LoggerInterface
|
|||||||
/**
|
/**
|
||||||
* System is unusable.
|
* System is unusable.
|
||||||
*
|
*
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -461,8 +461,8 @@ class LogManager implements LoggerInterface
|
|||||||
* Example: Entire website down, database unavailable, etc. This should
|
* Example: Entire website down, database unavailable, etc. This should
|
||||||
* trigger the SMS alerts and wake you up.
|
* trigger the SMS alerts and wake you up.
|
||||||
*
|
*
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -476,8 +476,8 @@ class LogManager implements LoggerInterface
|
|||||||
*
|
*
|
||||||
* Example: Application component unavailable, unexpected exception.
|
* Example: Application component unavailable, unexpected exception.
|
||||||
*
|
*
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -490,8 +490,8 @@ class LogManager implements LoggerInterface
|
|||||||
* Runtime errors that do not require immediate action but should typically
|
* Runtime errors that do not require immediate action but should typically
|
||||||
* be logged and monitored.
|
* be logged and monitored.
|
||||||
*
|
*
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -506,8 +506,8 @@ class LogManager implements LoggerInterface
|
|||||||
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
||||||
* that are not necessarily wrong.
|
* that are not necessarily wrong.
|
||||||
*
|
*
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -519,8 +519,8 @@ class LogManager implements LoggerInterface
|
|||||||
/**
|
/**
|
||||||
* Normal but significant events.
|
* Normal but significant events.
|
||||||
*
|
*
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -534,8 +534,8 @@ class LogManager implements LoggerInterface
|
|||||||
*
|
*
|
||||||
* Example: User logs in, SQL logs.
|
* Example: User logs in, SQL logs.
|
||||||
*
|
*
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -547,8 +547,8 @@ class LogManager implements LoggerInterface
|
|||||||
/**
|
/**
|
||||||
* Detailed debug information.
|
* Detailed debug information.
|
||||||
*
|
*
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -560,9 +560,9 @@ class LogManager implements LoggerInterface
|
|||||||
/**
|
/**
|
||||||
* Logs with an arbitrary level.
|
* Logs with an arbitrary level.
|
||||||
*
|
*
|
||||||
* @param mixed $level
|
* @param mixed $level
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -575,7 +575,7 @@ class LogManager implements LoggerInterface
|
|||||||
* Dynamically call the default driver instance.
|
* Dynamically call the default driver instance.
|
||||||
*
|
*
|
||||||
* @param string $method
|
* @param string $method
|
||||||
* @param array $parameters
|
* @param array $parameters
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function __call($method, $parameters)
|
public function __call($method, $parameters)
|
||||||
|
|||||||
@@ -137,6 +137,8 @@ class MailChannel
|
|||||||
if (! is_null($message->priority)) {
|
if (! is_null($message->priority)) {
|
||||||
$mailMessage->setPriority($message->priority);
|
$mailMessage->setPriority($message->priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->runCallbacks($mailMessage, $message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -225,4 +227,20 @@ class MailChannel
|
|||||||
$mailMessage->attachData($attachment['data'], $attachment['name'], $attachment['options']);
|
$mailMessage->attachData($attachment['data'], $attachment['name'], $attachment['options']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run the callbacks for the message.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Mail\Message $mailMessage
|
||||||
|
* @param \Illuminate\Notifications\Messages\MailMessage $message
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
protected function runCallbacks($mailMessage, $message)
|
||||||
|
{
|
||||||
|
foreach ($message->callbacks as $callback) {
|
||||||
|
$callback($mailMessage->getSwiftMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,6 +80,13 @@ class MailMessage extends SimpleMessage implements Renderable
|
|||||||
*/
|
*/
|
||||||
public $priority;
|
public $priority;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The callbacks for the message.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $callbacks = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the view for the mail message.
|
* Set the view for the mail message.
|
||||||
*
|
*
|
||||||
@@ -286,4 +293,17 @@ class MailMessage extends SimpleMessage implements Renderable
|
|||||||
->make(Markdown::class)
|
->make(Markdown::class)
|
||||||
->render($this->markdown, $this->data());
|
->render($this->markdown, $this->data());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a callback to be called with the Swift message instance.
|
||||||
|
*
|
||||||
|
* @param callable $callback
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function withSwiftMessage($callback)
|
||||||
|
{
|
||||||
|
$this->callbacks[] = $callback;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ class BusFake implements Dispatcher
|
|||||||
*/
|
*/
|
||||||
public function pipeThrough(array $pipes)
|
public function pipeThrough(array $pipes)
|
||||||
{
|
{
|
||||||
//
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -331,6 +331,6 @@ class MailFake implements Mailer, MailQueue
|
|||||||
*/
|
*/
|
||||||
public function failures()
|
public function failures()
|
||||||
{
|
{
|
||||||
//
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ class Factory implements FactoryContract
|
|||||||
'blade.php' => 'blade',
|
'blade.php' => 'blade',
|
||||||
'php' => 'php',
|
'php' => 'php',
|
||||||
'css' => 'file',
|
'css' => 'file',
|
||||||
|
'html' => 'file',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class FileViewFinder implements ViewFinderInterface
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $extensions = ['blade.php', 'php', 'css'];
|
protected $extensions = ['blade.php', 'php', 'css', 'html'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new file view loader instance.
|
* Create a new file view loader instance.
|
||||||
|
|||||||
2154
vendor/laravel/horizon/package-lock.json
generated
vendored
2154
vendor/laravel/horizon/package-lock.json
generated
vendored
File diff suppressed because it is too large
Load Diff
8
vendor/laravel/horizon/package.json
vendored
8
vendor/laravel/horizon/package.json
vendored
@@ -12,16 +12,16 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"axios": "^0.18",
|
"axios": "^0.18",
|
||||||
"bootstrap": "^4.0.0",
|
"bootstrap": "^4.0.0",
|
||||||
|
"chart.js": "^2.5.0",
|
||||||
"cross-env": "^5.1",
|
"cross-env": "^5.1",
|
||||||
"highlight.js": "^9.12.0",
|
"highlight.js": "^9.12.0",
|
||||||
"jquery": "^3.2",
|
"jquery": "^3.4.1",
|
||||||
"chart.js": "^2.5.0",
|
"laravel-mix": "^4.0.15",
|
||||||
"laravel-mix": "^4.0.7",
|
|
||||||
"lodash": "^4.17.4",
|
"lodash": "^4.17.4",
|
||||||
"phpunserialize": "1.*",
|
|
||||||
"md5": "^2.2.1",
|
"md5": "^2.2.1",
|
||||||
"moment": "^2.10.6",
|
"moment": "^2.10.6",
|
||||||
"moment-timezone": "^0.5.21",
|
"moment-timezone": "^0.5.21",
|
||||||
|
"phpunserialize": "1.*",
|
||||||
"popper.js": "^1.12",
|
"popper.js": "^1.12",
|
||||||
"resolve-url-loader": "^2.3.1",
|
"resolve-url-loader": "^2.3.1",
|
||||||
"sass": "^1.15.2",
|
"sass": "^1.15.2",
|
||||||
|
|||||||
2
vendor/laravel/horizon/public/app-dark.css
vendored
2
vendor/laravel/horizon/public/app-dark.css
vendored
File diff suppressed because one or more lines are too long
2
vendor/laravel/horizon/public/app.css
vendored
2
vendor/laravel/horizon/public/app.css
vendored
File diff suppressed because one or more lines are too long
2
vendor/laravel/horizon/public/app.js
vendored
2
vendor/laravel/horizon/public/app.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"/app.js": "/app.js?id=216ac977397857c5c8db",
|
"/app.js": "/app.js?id=b4b7fcb45d3a4c28de8c",
|
||||||
"/app.css": "/app.css?id=cefed9132a927b70fdd6",
|
"/app.css": "/app.css?id=d586fd661303e476cc02",
|
||||||
"/app-dark.css": "/app-dark.css?id=596688837e7ffbb58e37"
|
"/app-dark.css": "/app-dark.css?id=46f75a6edf4ba03e5586"
|
||||||
}
|
}
|
||||||
|
|||||||
2
vendor/laravel/horizon/resources/js/app.js
vendored
2
vendor/laravel/horizon/resources/js/app.js
vendored
@@ -19,8 +19,6 @@ Vue.use(VueRouter);
|
|||||||
|
|
||||||
window.Popper = require('popper.js').default;
|
window.Popper = require('popper.js').default;
|
||||||
|
|
||||||
moment.tz.setDefault(Horizon.timezone);
|
|
||||||
|
|
||||||
Vue.prototype.$http = axios.create();
|
Vue.prototype.$http = axios.create();
|
||||||
|
|
||||||
const router = new VueRouter({
|
const router = new VueRouter({
|
||||||
|
|||||||
@@ -300,6 +300,8 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>Supervisor</th>
|
<th>Supervisor</th>
|
||||||
<th>Processes</th>
|
<th>Processes</th>
|
||||||
|
<th>CPU Threads</th>
|
||||||
|
<th>Memory</th>
|
||||||
<th>Queues</th>
|
<th>Queues</th>
|
||||||
<th class="text-right">Balancing</th>
|
<th class="text-right">Balancing</th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -309,6 +311,8 @@
|
|||||||
<tr v-for="supervisor in worker.supervisors">
|
<tr v-for="supervisor in worker.supervisors">
|
||||||
<td>{{ superVisorDisplayName(supervisor.name, worker.name) }}</td>
|
<td>{{ superVisorDisplayName(supervisor.name, worker.name) }}</td>
|
||||||
<td>{{ countProcesses(supervisor.processes) }}</td>
|
<td>{{ countProcesses(supervisor.processes) }}</td>
|
||||||
|
<td>{{ supervisor.cpu }}</td>
|
||||||
|
<td>{{ supervisor.mem }}%</td>
|
||||||
<td>{{ supervisor.options.queue.replace(/,/g, ', ') }}</td>
|
<td>{{ supervisor.options.queue.replace(/,/g, ', ') }}</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
({{ supervisor.options.balance.charAt(0).toUpperCase() + supervisor.options.balance.slice(1) }})
|
({{ supervisor.options.balance.charAt(0).toUpperCase() + supervisor.options.balance.slice(1) }})
|
||||||
|
|||||||
1
vendor/laravel/horizon/src/Horizon.php
vendored
1
vendor/laravel/horizon/src/Horizon.php
vendored
@@ -126,7 +126,6 @@ class Horizon
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'path' => config('horizon.path'),
|
'path' => config('horizon.path'),
|
||||||
'timezone' => config('app.timezone'),
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ class FailedJobsController extends Controller
|
|||||||
protected function paginateByTag(Request $request, $tag)
|
protected function paginateByTag(Request $request, $tag)
|
||||||
{
|
{
|
||||||
$jobIds = $this->tags->paginate(
|
$jobIds = $this->tags->paginate(
|
||||||
'failed:'.$tag, $request->query('starting_at', -1) + 1, 50
|
'failed:'.$tag, ($request->query('starting_at') ?: -1) + 1, 50
|
||||||
);
|
);
|
||||||
|
|
||||||
$startingAt = $request->query('starting_at', 0);
|
$startingAt = $request->query('starting_at', 0);
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ class RedisSupervisorRepository implements SupervisorRepository
|
|||||||
{
|
{
|
||||||
$records = $this->connection()->pipeline(function ($pipe) use ($names) {
|
$records = $this->connection()->pipeline(function ($pipe) use ($names) {
|
||||||
foreach ($names as $name) {
|
foreach ($names as $name) {
|
||||||
$pipe->hmget('supervisor:'.$name, ['name', 'master', 'pid', 'status', 'processes', 'options']);
|
$pipe->hmget('supervisor:'.$name, ['name', 'master', 'pid', 'status', 'processes', 'options', 'cpu', 'mem']);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -85,6 +85,8 @@ class RedisSupervisorRepository implements SupervisorRepository
|
|||||||
'status' => $record[3],
|
'status' => $record[3],
|
||||||
'processes' => json_decode($record[4], true),
|
'processes' => json_decode($record[4], true),
|
||||||
'options' => json_decode($record[5], true),
|
'options' => json_decode($record[5], true),
|
||||||
|
'cpu' => $record[6],
|
||||||
|
'mem' => $record[7],
|
||||||
];
|
];
|
||||||
})->filter()->all();
|
})->filter()->all();
|
||||||
}
|
}
|
||||||
@@ -114,6 +116,7 @@ class RedisSupervisorRepository implements SupervisorRepository
|
|||||||
})->toJson();
|
})->toJson();
|
||||||
|
|
||||||
$this->connection()->pipeline(function ($pipe) use ($supervisor, $processes) {
|
$this->connection()->pipeline(function ($pipe) use ($supervisor, $processes) {
|
||||||
|
$workerStats = $supervisor->workerStats();
|
||||||
$pipe->hmset(
|
$pipe->hmset(
|
||||||
'supervisor:'.$supervisor->name, [
|
'supervisor:'.$supervisor->name, [
|
||||||
'name' => $supervisor->name,
|
'name' => $supervisor->name,
|
||||||
@@ -122,6 +125,8 @@ class RedisSupervisorRepository implements SupervisorRepository
|
|||||||
'status' => $supervisor->working ? 'running' : 'paused',
|
'status' => $supervisor->working ? 'running' : 'paused',
|
||||||
'processes' => $processes,
|
'processes' => $processes,
|
||||||
'options' => $supervisor->options->toJson(),
|
'options' => $supervisor->options->toJson(),
|
||||||
|
'cpu' => number_format($workerStats->sum('cpu'), 2),
|
||||||
|
'mem' => round($workerStats->sum('mem')),
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
10
vendor/laravel/horizon/src/Supervisor.php
vendored
10
vendor/laravel/horizon/src/Supervisor.php
vendored
@@ -406,6 +406,16 @@ class Supervisor implements Pausable, Restartable, Terminable
|
|||||||
return $this->processPools->sum->totalProcessCount();
|
return $this->processPools->sum->totalProcessCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get CPU and memory usage for the active workers by asking the OS.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Support\Collection
|
||||||
|
*/
|
||||||
|
public function workerStats()
|
||||||
|
{
|
||||||
|
return app(SystemProcessCounter::class)->getWorkerStats($this->name);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the total active process count by asking the OS.
|
* Get the total active process count by asking the OS.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -13,6 +13,27 @@ class SystemProcessCounter
|
|||||||
*/
|
*/
|
||||||
public static $command = 'horizon:work';
|
public static $command = 'horizon:work';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get CPU and memory usage for each Horizon workers for a given supervisor.
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
* @return \Illuminate\Support\Collection
|
||||||
|
*/
|
||||||
|
public function getWorkerStats($name)
|
||||||
|
{
|
||||||
|
$process = Process::fromShellCommandline('exec ps axo %cpu,%mem,command | grep '.static::$command.' | grep "supervisor='.$name.'" | grep -v "exec ps axo"', null, ['COLUMNS' => '2000']);
|
||||||
|
|
||||||
|
$process->run();
|
||||||
|
|
||||||
|
$rows = explode("\n", $process->getOutput());
|
||||||
|
|
||||||
|
return collect($rows)->filter()->map(function ($rows) {
|
||||||
|
$row = collect(explode(' ', $rows))->filter()->take(2);
|
||||||
|
|
||||||
|
return ['cpu' => $row->first() / 100, 'mem' => $row->last()];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the number of Horizon workers for a given supervisor.
|
* Get the number of Horizon workers for a given supervisor.
|
||||||
*
|
*
|
||||||
@@ -21,10 +42,6 @@ class SystemProcessCounter
|
|||||||
*/
|
*/
|
||||||
public function get($name)
|
public function get($name)
|
||||||
{
|
{
|
||||||
$process = Process::fromShellCommandline('exec ps aux | grep '.static::$command, null, ['COLUMNS' => '2000']);
|
return $this->getWorkerStats($name)->count();
|
||||||
|
|
||||||
$process->run();
|
|
||||||
|
|
||||||
return substr_count($process->getOutput(), 'supervisor='.$name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ class Local extends AbstractAdapter
|
|||||||
public function read($path)
|
public function read($path)
|
||||||
{
|
{
|
||||||
$location = $this->applyPathPrefix($path);
|
$location = $this->applyPathPrefix($path);
|
||||||
$contents = file_get_contents($location);
|
$contents = @file_get_contents($location);
|
||||||
|
|
||||||
if ($contents === false) {
|
if ($contents === false) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class MimeType
|
|||||||
protected static $extensionToMimeTypeMap = [
|
protected static $extensionToMimeTypeMap = [
|
||||||
'hqx' => 'application/mac-binhex40',
|
'hqx' => 'application/mac-binhex40',
|
||||||
'cpt' => 'application/mac-compactpro',
|
'cpt' => 'application/mac-compactpro',
|
||||||
'csv' => 'text/x-comma-separated-values',
|
'csv' => 'text/csv',
|
||||||
'bin' => 'application/octet-stream',
|
'bin' => 'application/octet-stream',
|
||||||
'dms' => 'application/octet-stream',
|
'dms' => 'application/octet-stream',
|
||||||
'lha' => 'application/octet-stream',
|
'lha' => 'application/octet-stream',
|
||||||
|
|||||||
Reference in New Issue
Block a user