Compare commits
12 Commits
58c5c57cc3
...
2c44584c81
Author | SHA1 | Date | |
---|---|---|---|
2c44584c81 | |||
374ea35e42 | |||
2b13367970 | |||
64454ddee7 | |||
78d6383b15 | |||
a29f28c11d | |||
b8e8f212d6 | |||
b56dd305c1 | |||
cf828164c3 | |||
75d5f8c6c3 | |||
3e42869bbb | |||
46b6cb678e |
@ -5,9 +5,9 @@ sed -i "/^GIT_HASH=\".*\"/ s//GIT_HASH=\"${SHORT_HASH}\"/" .env
|
|||||||
|
|
||||||
DIRTY_STATE=$(git diff --stat)
|
DIRTY_STATE=$(git diff --stat)
|
||||||
if [ -n "$DIRTY_STATE" ]; then
|
if [ -n "$DIRTY_STATE" ]; then
|
||||||
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_TAG=true/" .env
|
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_DIRTY_STATE=true/" .env
|
||||||
else
|
else
|
||||||
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_TAG=false/" .env
|
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_DIRTY_STATE=false/" .env
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GIT_TAG=$(git tag --points-at HEAD)
|
GIT_TAG=$(git tag --points-at HEAD)
|
||||||
|
@ -5,17 +5,21 @@ sed -i "/^GIT_HASH=\".*\"/ s//GIT_HASH=\"${SHORT_HASH}\"/" .env
|
|||||||
|
|
||||||
DIRTY_STATE=$(git diff --stat)
|
DIRTY_STATE=$(git diff --stat)
|
||||||
if [ -n "$DIRTY_STATE" ]; then
|
if [ -n "$DIRTY_STATE" ]; then
|
||||||
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_TAG=true/" .env
|
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_DIRTY_STATE=true/" .env
|
||||||
else
|
else
|
||||||
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_TAG=false/" .env
|
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_DIRTY_STATE=false/" .env
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SHORT_HASH=$(git rev-parse --short HEAD)
|
|
||||||
sed -i "/^GIT_HASH=\".*\"/ s//GIT_HASH=\"${SHORT_HASH}\"/" .env
|
|
||||||
|
|
||||||
GIT_TAG=$(git tag --points-at HEAD)
|
GIT_TAG=$(git tag --points-at HEAD)
|
||||||
if [ -n "$GIT_TAG" ]; then
|
if [ -n "$GIT_TAG" ]; then
|
||||||
sed -i "/^GIT_TAG=\".*\"/ s//GIT_TAG=\"${GIT_TAG}\"/" .env
|
sed -i "/^GIT_TAG=\".*\"/ s//GIT_TAG=\"${GIT_TAG}\"/" .env
|
||||||
else
|
else
|
||||||
sed -i "/^GIT_TAG=\".*\"/ s//GIT_TAG=\"\"/" .env
|
sed -i "/^GIT_TAG=\".*\"/ s//GIT_TAG=\"\"/" .env
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
GIT_BRANCH=$(git branch --show-current)
|
||||||
|
if [ -n "$GIT_BRANCH" ]; then
|
||||||
|
sed -i "/^GIT_BRANCH=\".*\"/ s//GIT_BRANCH=\"${GIT_BRANCH}\"/" .env
|
||||||
|
else
|
||||||
|
sed -i "/^GIT_BRANCH=\".*\"/ s//GIT_BRANCH=\"\"/" .env
|
||||||
|
fi
|
||||||
|
@ -5,9 +5,9 @@ sed -i "/^GIT_HASH=\".*\"/ s//GIT_HASH=\"${SHORT_HASH}\"/" .env
|
|||||||
|
|
||||||
DIRTY_STATE=$(git diff --stat)
|
DIRTY_STATE=$(git diff --stat)
|
||||||
if [ -n "$DIRTY_STATE" ]; then
|
if [ -n "$DIRTY_STATE" ]; then
|
||||||
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_TAG=true/" .env
|
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_DIRTY_STATE=true/" .env
|
||||||
else
|
else
|
||||||
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_TAG=false/" .env
|
sed -i "/^GIT_DIRTY_STATE=.*/ s//GIT_DIRTY_STATE=false/" .env
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GIT_TAG=$(git tag --points-at HEAD)
|
GIT_TAG=$(git tag --points-at HEAD)
|
||||||
|
32
git-hooks/pre-commit
Normal file
32
git-hooks/pre-commit
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# get bash colors and styles here:
|
||||||
|
# http://misc.flogisoft.com/bash/tip_colors_and_formatting
|
||||||
|
C_RESET='\e[0m'
|
||||||
|
C_RED='\e[31m'
|
||||||
|
C_GREEN='\e[32m'
|
||||||
|
C_YELLOW='\e[33m'
|
||||||
|
|
||||||
|
function __run() #(step, name, cmd)
|
||||||
|
{
|
||||||
|
local color output exitcode
|
||||||
|
|
||||||
|
printf "${C_YELLOW}[%s]${C_RESET} %-20s" "$1" "$2"
|
||||||
|
output=$(eval "$3" 2>&1)
|
||||||
|
exitcode=$?
|
||||||
|
|
||||||
|
if [[ 0 == $exitcode || 130 == $exitcode ]]; then
|
||||||
|
echo -e "${C_GREEN}OK!${C_RESET}"
|
||||||
|
else
|
||||||
|
echo -e "${C_RED}NOK!${C_RESET}\n\n$output"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
modified="git diff --diff-filter=M --name-only --cached | grep \".php$\""
|
||||||
|
ignore="resources/lang,resources/views,bootstrap/helpers,database/migrations,bin"
|
||||||
|
phpcs="vendor/bin/phpcs --report=code --colors --report-width=80 --ignore=${ignore}"
|
||||||
|
|
||||||
|
__run "1/1" "code sniffer" "${modified} | xargs -r ${phpcs}"
|
||||||
|
# __run "2/3" "php lint" "${modified} | xargs -r php -l"
|
||||||
|
# __run "3/3" "phpstan" "${modified} | xargs -r vendor/bin/phpstan analyse"
|
@ -9,6 +9,7 @@ APP_UID_BYTES=8
|
|||||||
GIT_HASH="00000000"
|
GIT_HASH="00000000"
|
||||||
GIT_TAG="x.x.x"
|
GIT_TAG="x.x.x"
|
||||||
GIT_BRANCH="master"
|
GIT_BRANCH="master"
|
||||||
|
GIT_DIRTY_STATE=false
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
LOG_CHANNEL=stack
|
||||||
LOG_DEPRECATIONS_CHANNEL=null
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
@ -38,7 +39,8 @@ SCOUT_DRIVER=meilisearch
|
|||||||
SCOUT_PREFIX=
|
SCOUT_PREFIX=
|
||||||
SCOUT_QUEUE=false
|
SCOUT_QUEUE=false
|
||||||
MEILISEARCH_HOST=http://localhost:7700
|
MEILISEARCH_HOST=http://localhost:7700
|
||||||
MEILISEARCH_KEY=
|
MEILISEARCH_PRIVATE_KEY=
|
||||||
|
MEILISEARCH_PUBLIC_KEY=
|
||||||
|
|
||||||
MAIL_MAILER=smtp
|
MAIL_MAILER=smtp
|
||||||
MAIL_HOST=mailhog
|
MAIL_HOST=mailhog
|
||||||
|
62
src/app/Console/Commands/CreateUser.php
Normal file
62
src/app/Console/Commands/CreateUser.php
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class CreateUser extends Command
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The name and signature of the console command.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signature = 'user:create {--e|email= : The email address of the user}';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The console command description.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $description = 'Create a new user';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the console command.
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function handle(): int
|
||||||
|
{
|
||||||
|
$email = trim($this->option('email'));
|
||||||
|
|
||||||
|
$name = $this->ask("Please provide a name");
|
||||||
|
$surname = $this->ask("Please provide a surname");
|
||||||
|
|
||||||
|
if (empty($email)) {
|
||||||
|
$email = $this->ask("Please provide an email address");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($password)) {
|
||||||
|
// TODO: have a way to hide the input and do a confirm password input
|
||||||
|
$password = $this->ask("Please provide a password");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
User::create([
|
||||||
|
'name' => trim($name),
|
||||||
|
'surname' => trim($surname),
|
||||||
|
'email' => trim($email),
|
||||||
|
'password' => Hash::make(trim($password)),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->info("$email created successfully.");
|
||||||
|
return 0;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$this->error('Unable to create your user.');
|
||||||
|
$this->line($e->getMessage());
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -51,7 +51,7 @@ class HandleInertiaRequests extends Middleware
|
|||||||
}
|
}
|
||||||
|
|
||||||
return array_merge(parent::share($request), [
|
return array_merge(parent::share($request), [
|
||||||
'app_name' => config('app.name'),
|
'appName' => config('app.name'),
|
||||||
'notifications' => $notifications,
|
'notifications' => $notifications,
|
||||||
'unreadNotifications' => $unreadNotifications,
|
'unreadNotifications' => $unreadNotifications,
|
||||||
]);
|
]);
|
||||||
|
@ -29,6 +29,10 @@ class SuccessfulLogin
|
|||||||
public function handle(Login $event): void
|
public function handle(Login $event): void
|
||||||
{
|
{
|
||||||
Session::put('timezone_name', $event->user->timezone_name);
|
Session::put('timezone_name', $event->user->timezone_name);
|
||||||
|
|
||||||
|
// TODO: this may need to be reworked so that the language is stored
|
||||||
|
// in a cookie and attempted to be retrieved from there
|
||||||
|
// first before pulling from the database.
|
||||||
Session::put('language', $event->user->language->locale);
|
Session::put('language', $event->user->language->locale);
|
||||||
|
|
||||||
// Optionally log the info
|
// Optionally log the info
|
||||||
|
@ -1,4 +1,67 @@
|
|||||||
{
|
{
|
||||||
|
//...
|
||||||
|
"require": {
|
||||||
|
//..
|
||||||
|
|
||||||
|
// Laravel provided stuff
|
||||||
|
"laravel/cashier": "", // fluent interface to Stripe
|
||||||
|
"laravel/horizon": "", // dashboard and configuration for Laravel queues
|
||||||
|
"laravel/telescope": "", // debugging tool from Laravel for Laravel
|
||||||
|
|
||||||
|
"laravel/scout": "", // full-text search to Eloquent models
|
||||||
|
"meilisearch/meilisearch-php": "", // use Meilisearch for Scout funtionality
|
||||||
|
"http-interop/http-factory-guzzle": "", // use Meilisearch for Scout funtionality
|
||||||
|
|
||||||
|
// Roles / Permissions
|
||||||
|
"spatie/laravel-permission": "",
|
||||||
|
"zizaco/entrust": "",
|
||||||
|
|
||||||
|
// SDKs
|
||||||
|
"aws/aws-sdk-php-laravel": "", // interact with S3 or S3-compatible storage
|
||||||
|
"propaganistas/laravel-phone": "", // uses Google's libphonenumber API to (try to) sanely handle phone numbers
|
||||||
|
"vladimir-yuldashev/laravel-queue-rabbitmq": "", // Interface with RabbitMQ servers
|
||||||
|
"grimzy/laravel-mysql-spatial": "", // Adds Geo-spatial column support for MySQL
|
||||||
|
"irazasyed/telegram-bot-sdk": "", // unofficial Telegram Bot API/SDK
|
||||||
|
"torann/geoip": "", // support for multiple GeoIP services
|
||||||
|
|
||||||
|
// Media (image/video/audio) Management
|
||||||
|
"intervention/image": "", // image manipulation
|
||||||
|
"intervention/imagecache": "", // caching for intervention/image
|
||||||
|
"spatie/laravel-medialibrary": "", // manage a small or large amount of media smartly
|
||||||
|
"spatie/laravel-image-optimizer": "", // optimize png, jpg, svg, and gif
|
||||||
|
"unisharp/laravel-filemanager": "", // File manager (including uploads)
|
||||||
|
"pbmedia/laravel-ffmpeg": "", // Integration with FFMpeg
|
||||||
|
|
||||||
|
// Localization
|
||||||
|
"mcamara/laravel-localization": "", // localization that also handles route translations
|
||||||
|
"barryvdh/laravel-translation-manager": "", // self-evident
|
||||||
|
|
||||||
|
// Geo-spatial
|
||||||
|
"brick/geo": "", // GIS geometry library
|
||||||
|
"stevebauman/location": "", // retrieve a user's location by their IP address
|
||||||
|
|
||||||
|
// Websockets
|
||||||
|
"beyondcode/laravel-websockets": "", // use websockets in the same laravel application
|
||||||
|
|
||||||
|
// Helpers/Generators
|
||||||
|
"infyomlabs/laravel-calendar-events": "", // help with handling future dates without having to store records in the database
|
||||||
|
"lab404/laravel-impersonate": "", // Impersonate other users in your application
|
||||||
|
"kitloong/laravel-migrations-generator": "", // create migrations based on your existing database
|
||||||
|
"spatie/laravel-sitemap": "", // generate site maps
|
||||||
|
"artesaos/seotools": "", // automatic SEO tools
|
||||||
|
|
||||||
|
// Others/uncategorized
|
||||||
|
"appstract/laravel-opcache": "", // provides artisan commands to interact with opcache (not sure if site-specific)
|
||||||
|
"brick/math": "", // arbitrary-precision arithmetic library
|
||||||
|
"brick/money": "", // money and currency library
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
//..
|
||||||
|
"itsgoingd/clockwork": "",
|
||||||
|
"phpstan/phpstan": "",
|
||||||
|
"psalm/plugin-laravel": "",
|
||||||
|
"vimeo/psalm": "",
|
||||||
|
},
|
||||||
//...
|
//...
|
||||||
"autoload": {
|
"autoload": {
|
||||||
//...,
|
//...,
|
||||||
|
@ -15,12 +15,12 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('sessions', function (Blueprint $table) {
|
Schema::create('sessions', function (Blueprint $table) {
|
||||||
$table->string('id')->primary();
|
$table->string('id')->primary();
|
||||||
$table->string('user_id', 64);
|
$table->string('user_id', 64)->nullable()->index();
|
||||||
$table->string('ip_address', 45)->nullable();
|
$table->string('ip_address', 45)->nullable();
|
||||||
$table->text('user_agent')->nullable()->index();
|
$table->text('user_agent')->nullable()->index();
|
||||||
$table->text('payload');
|
$table->text('payload');
|
||||||
$table->integer('last_activity')->index();
|
$table->integer('last_activity')->index();
|
||||||
$table->timestamp('vr_last_activity_at')->virtualAs('FROM_UNIXTIME(last_activity)');
|
$table->timestamp('vrt_last_activity_at')->virtualAs('FROM_UNIXTIME(last_activity)');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"production": "mix --production"
|
"production": "mix --production"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"laravel-mix": "^6.0.43",
|
"laravel-mix": "^6.0.49",
|
||||||
"postcss": "^8.4.14",
|
"postcss": "^8.4.14",
|
||||||
"postcss-import": "^14.1.0",
|
"postcss-import": "^14.1.0",
|
||||||
"vue-loader": "^17.0.0"
|
"vue-loader": "^17.0.0"
|
||||||
@ -19,16 +19,17 @@
|
|||||||
"@inertiajs/inertia": "^0.11.0",
|
"@inertiajs/inertia": "^0.11.0",
|
||||||
"@inertiajs/inertia-vue3": "^0.6.0",
|
"@inertiajs/inertia-vue3": "^0.6.0",
|
||||||
"@inertiajs/progress": "^0.2.7",
|
"@inertiajs/progress": "^0.2.7",
|
||||||
|
"@tailwindcss/aspect-ratio": "^0.4.0",
|
||||||
"@tailwindcss/forms": "^0.5.2",
|
"@tailwindcss/forms": "^0.5.2",
|
||||||
"@tailwindcss/typography": "^0.5.2",
|
"@tailwindcss/typography": "^0.5.2",
|
||||||
"@vueuse/core": "^8.5.0",
|
"@vueuse/core": "^8.7.5",
|
||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
"dayjs": "^1.11.2",
|
"dayjs": "^1.11.3",
|
||||||
"laravel-vue-i18n": "^1.4.3",
|
"laravel-vue-i18n": "^1.4.3",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"notiwind": "^1.2.5",
|
"notiwind": "^1.2.5",
|
||||||
"tailwindcss": "^3.0.24",
|
"tailwindcss": "^3.1.0",
|
||||||
"tailwindcss-neu": "^0.2.1",
|
"tailwindcss-neu": "^0.2.1",
|
||||||
"vue": "^3.2.36"
|
"vue": "^3.2.37"
|
||||||
}
|
}
|
||||||
}
|
}
|
213
src/phpcs.xml
Normal file
213
src/phpcs.xml
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<ruleset name="Laravel Standards" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd">
|
||||||
|
<description>PHP Codesniffer ruleset to follow Laravel's coding style</description>
|
||||||
|
<rule ref="Generic.Classes.DuplicateClassName">
|
||||||
|
<exclude name="Generic.CodeAnalysis.EmptyStatement.DetectedIf"/>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Generic.CodeAnalysis.EmptyStatement"/>
|
||||||
|
<rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop"/>
|
||||||
|
<rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall"/>
|
||||||
|
<rule ref="Generic.CodeAnalysis.JumbledIncrementer"/>
|
||||||
|
<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
|
||||||
|
<rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
|
||||||
|
<rule ref="Generic.CodeAnalysis.UnusedFunctionParameter">
|
||||||
|
<exclude-pattern>/app/Http/Resources/*\.php</exclude-pattern>
|
||||||
|
<exclude-pattern>/routes/*\.php</exclude-pattern>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
|
||||||
|
<rule ref="Generic.Commenting.DocComment">
|
||||||
|
<exclude name="Generic.Commenting.DocComment.TagValueIndent"/>
|
||||||
|
<exclude name="Generic.Commenting.DocComment.NonParamGroup"/>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Generic.ControlStructures.InlineControlStructure"/>
|
||||||
|
<rule ref="Generic.Files.ByteOrderMark"/>
|
||||||
|
<rule ref="Generic.Files.LineEndings">
|
||||||
|
<exclude name="Generic.Files.LineEndings.InvalidEOLChar"/>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Generic.Formatting.DisallowMultipleStatements"/>
|
||||||
|
<rule ref="Generic.Formatting.SpaceAfterCast"/>
|
||||||
|
<rule ref="Generic.Formatting.SpaceAfterNot"/>
|
||||||
|
<rule ref="Generic.Functions.CallTimePassByReference"/>
|
||||||
|
<rule ref="Generic.Functions.FunctionCallArgumentSpacing"/>
|
||||||
|
<rule ref="Generic.Functions.OpeningFunctionBraceBsdAllman"/>
|
||||||
|
<rule ref="Generic.Metrics.CyclomaticComplexity">
|
||||||
|
<properties>
|
||||||
|
<property name="complexity" value="20"/>
|
||||||
|
<property name="absoluteComplexity" value="25"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Generic.Metrics.NestingLevel">
|
||||||
|
<properties>
|
||||||
|
<property name="nestingLevel" value="5"/>
|
||||||
|
<property name="absoluteNestingLevel" value="15"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Generic.NamingConventions.ConstructorName"/>
|
||||||
|
<rule ref="Generic.NamingConventions.CamelCapsFunctionName">
|
||||||
|
<exclude-pattern>*/tests</exclude-pattern>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Generic.PHP.LowerCaseConstant"/>
|
||||||
|
<rule ref="Generic.PHP.DeprecatedFunctions"/>
|
||||||
|
<rule ref="Generic.PHP.DisallowShortOpenTag"/>
|
||||||
|
<rule ref="Generic.PHP.ForbiddenFunctions"/>
|
||||||
|
<rule ref="Generic.PHP.NoSilencedErrors"/>
|
||||||
|
<rule ref="Generic.WhiteSpace.DisallowTabIndent"/>
|
||||||
|
<rule ref="Generic.WhiteSpace.ScopeIndent">
|
||||||
|
<properties>
|
||||||
|
<property name="indent" value="4"/>
|
||||||
|
<property name="tabIndent" value="true"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="MySource.PHP.EvalObjectFactory"/>
|
||||||
|
<rule ref="PSR1.Classes.ClassDeclaration"/>
|
||||||
|
<rule ref="PSR1.Files.SideEffects">
|
||||||
|
<exclude-pattern>*/artisan</exclude-pattern>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PSR1.Files.SideEffects"/>
|
||||||
|
<rule ref="PSR2.Classes.ClassDeclaration"/>
|
||||||
|
<rule ref="PSR2.Classes.PropertyDeclaration"/>
|
||||||
|
<rule ref="PSR2.ControlStructures.ControlStructureSpacing"/>
|
||||||
|
<rule ref="PSR2.ControlStructures.ElseIfDeclaration"/>
|
||||||
|
<rule ref="PSR2.ControlStructures.SwitchDeclaration"/>
|
||||||
|
<rule ref="PSR2.Files.EndFileNewline"/>
|
||||||
|
<rule ref="PSR2.Methods.MethodDeclaration"/>
|
||||||
|
<rule ref="PSR2.Namespaces.NamespaceDeclaration"/>
|
||||||
|
<rule ref="PSR2.Namespaces.UseDeclaration"/>
|
||||||
|
<rule ref="PSR1">
|
||||||
|
<exclude-pattern>*.php</exclude-pattern>
|
||||||
|
<exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps"/>
|
||||||
|
|
||||||
|
<exclude-pattern>database/*</exclude-pattern>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PSR2">
|
||||||
|
<exclude name="PSR2.ControlStructures.SwitchDeclaration.BodyOnNextLineCASE" />
|
||||||
|
<properties>
|
||||||
|
<property name="lineLimit" value="130"/>
|
||||||
|
<property name="absoluteLineLimit" value="135"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Squiz.Arrays.ArrayDeclaration">
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.ValueNotAligned" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.KeyNotAligned" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.DoubleArrowNotAligned" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.ValueNotAligned" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.CloseBraceNotAligned" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.ValueNoNewline" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.MultiLineNotAllowed" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.IndexNoNewline" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.CloseBraceNewLine" />
|
||||||
|
<exclude name="Squiz.Functions.MultiLineFunctionDeclaration.NewlineBeforeOpenBrace" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.NoKeySpecified" />
|
||||||
|
<exclude name="Squiz.Arrays.ArrayDeclaration.KeySpecified" />
|
||||||
|
</rule>
|
||||||
|
<rule ref="Squiz.PHP.CommentedOutCode"/>
|
||||||
|
<rule ref="Squiz.PHP.DisallowSizeFunctionsInLoops"/>
|
||||||
|
<rule ref="Squiz.PHP.DiscouragedFunctions">
|
||||||
|
<properties>
|
||||||
|
<property name="error" value="true"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Squiz.PHP.Eval"/>
|
||||||
|
<rule ref="Squiz.PHP.GlobalKeyword"/>
|
||||||
|
<rule ref="Squiz.PHP.Heredoc"/>
|
||||||
|
<rule ref="Squiz.PHP.LowercasePHPFunctions"/>
|
||||||
|
<rule ref="Squiz.PHP.NonExecutableCode"/>
|
||||||
|
<rule ref="Squiz.Scope.MemberVarScope"/>
|
||||||
|
<rule ref="Squiz.Scope.MethodScope"/>
|
||||||
|
<rule ref="Squiz.Scope.StaticThisUsage"/>
|
||||||
|
<rule ref="Squiz.WhiteSpace.CastSpacing"/>
|
||||||
|
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing"/>
|
||||||
|
<rule ref="Squiz.WhiteSpace.LanguageConstructSpacing"/>
|
||||||
|
<rule ref="Squiz.WhiteSpace.LogicalOperatorSpacing"/>
|
||||||
|
<rule ref="Squiz.WhiteSpace.ObjectOperatorSpacing">
|
||||||
|
<properties>
|
||||||
|
<property name="ignoreNewlines" value="true"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Squiz.WhiteSpace.OperatorSpacing">
|
||||||
|
<properties>
|
||||||
|
<property name="ignoreNewlines" value="true"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Squiz.WhiteSpace.PropertyLabelSpacing"/>
|
||||||
|
<rule ref="Squiz.WhiteSpace.ScopeClosingBrace"/>
|
||||||
|
<rule ref="Squiz.WhiteSpace.ScopeKeywordSpacing"/>
|
||||||
|
<rule ref="Squiz.WhiteSpace.SemicolonSpacing"/>
|
||||||
|
<rule ref="Squiz.Strings.DoubleQuoteUsage.NotRequired"/>
|
||||||
|
<rule ref="Zend.Files.ClosingTag"/>
|
||||||
|
|
||||||
|
<!-- Custom Sniffs -->
|
||||||
|
<rule ref="SlevomatCodingStandard.Namespaces.UnusedUses">
|
||||||
|
<properties>
|
||||||
|
<property name="searchAnnotations" value="true"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="SlevomatCodingStandard.Namespaces.UseFromSameNamespace"/>
|
||||||
|
<rule ref="SlevomatCodingStandard.Namespaces.AlphabeticallySortedUses">
|
||||||
|
<properties>
|
||||||
|
<property name="caseSensitive" value="true"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="SlevomatCodingStandard.Namespaces.FullyQualifiedClassNameInAnnotation"/>
|
||||||
|
<rule ref="SlevomatCodingStandard.PHP.UselessSemicolon"/>
|
||||||
|
<rule ref="SlevomatCodingStandard.Classes.MethodSpacing">
|
||||||
|
<properties>
|
||||||
|
<property name="minLinesCount" value="1"/>
|
||||||
|
<property name="maxLinesCount" value="1"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="SlevomatCodingStandard.Functions.ArrowFunctionDeclaration">
|
||||||
|
<properties>
|
||||||
|
<property name="spacesCountAfterKeyword" value="1"/>
|
||||||
|
<property name="spacesCountBeforeArrow" value="1"/>
|
||||||
|
<property name="spacesCountAfterArrow" value="1"/>
|
||||||
|
<property name="allowMultiLine" value="true"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="SlevomatCodingStandard.Files.TypeNameMatchesFileName">
|
||||||
|
<properties>
|
||||||
|
<property name="rootNamespaces" type="array">
|
||||||
|
<element key="app" value="App"/>
|
||||||
|
<element key="database/factories" value="Database\Factories"/>
|
||||||
|
<element key="database/seeders" value="Database\Seeders"/>
|
||||||
|
<element key="tests" value="Tests"/>
|
||||||
|
</property>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="SlevomatCodingStandard.Files.TypeNameMatchesFileName">
|
||||||
|
<exclude-pattern>/database/schema/*</exclude-pattern>
|
||||||
|
<exclude-pattern>/database/migrations/*</exclude-pattern>
|
||||||
|
</rule>
|
||||||
|
|
||||||
|
<file>./app</file>
|
||||||
|
<file>./config</file>
|
||||||
|
<file>./resources</file>
|
||||||
|
<file>./routes</file>
|
||||||
|
<file>./tests</file>
|
||||||
|
|
||||||
|
<exclude-pattern>*/.phpstorm.meta.php</exclude-pattern>
|
||||||
|
<exclude-pattern>*/_ide_helper.php</exclude-pattern>
|
||||||
|
<exclude-pattern>*/cache/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/config/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/database/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/docs/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/migrations/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/storage/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/public/index.php</exclude-pattern>
|
||||||
|
<exclude-pattern>*/resources/lang/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/vendor/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/*.js</exclude-pattern>
|
||||||
|
<exclude-pattern>*/*.css</exclude-pattern>
|
||||||
|
<exclude-pattern>*/*.xml</exclude-pattern>
|
||||||
|
<exclude-pattern>*/*.blade.php</exclude-pattern>
|
||||||
|
<exclude-pattern>*/autoload.php</exclude-pattern>
|
||||||
|
<exclude-pattern>*/Console/Kernel.php</exclude-pattern>
|
||||||
|
<exclude-pattern>*/Exceptions/Handler.php</exclude-pattern>
|
||||||
|
<exclude-pattern>*/Http/Kernel.php</exclude-pattern>
|
||||||
|
|
||||||
|
<arg name="basepath" value="."/>
|
||||||
|
<arg name="colors"/>
|
||||||
|
<arg value="spv"/>
|
||||||
|
<ini name="memory_limit" value="128M"/>
|
||||||
|
</ruleset>
|
@ -0,0 +1 @@
|
|||||||
|
.accordian {}
|
@ -0,0 +1 @@
|
|||||||
|
.alert {}
|
@ -0,0 +1 @@
|
|||||||
|
.breadcrumbs {}
|
@ -338,6 +338,6 @@ module.exports = {
|
|||||||
plugins: [
|
plugins: [
|
||||||
require('@tailwindcss/forms'),
|
require('@tailwindcss/forms'),
|
||||||
require('@tailwindcss/typography'),
|
require('@tailwindcss/typography'),
|
||||||
//require('tailwindcss-neumorphism'),
|
require('tailwindcss-neu'),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
@ -38,8 +38,9 @@ mix.js('resources/js/app.js', 'public/js')
|
|||||||
require('tailwindcss'),
|
require('tailwindcss'),
|
||||||
])
|
])
|
||||||
.sourceMaps()
|
.sourceMaps()
|
||||||
.webpackConfig(require('./webpack.config'))
|
.alias({
|
||||||
.after(stats => {
|
'@': 'resources/js',
|
||||||
|
}).after(stats => {
|
||||||
resIntegrityFiles.forEach(file => {
|
resIntegrityFiles.forEach(file => {
|
||||||
exec(`cat ${file.path} | openssl dgst -sha512 -binary | openssl base64 -A`, (shaError, shaStdout, shaStderr) => {
|
exec(`cat ${file.path} | openssl dgst -sha512 -binary | openssl base64 -A`, (shaError, shaStdout, shaStderr) => {
|
||||||
if (shaError) {
|
if (shaError) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user