Merge branch '11.x'

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>
This commit is contained in:
Mior Muhammad Zaki
2024-12-27 09:03:41 +08:00
22 changed files with 111 additions and 32 deletions

View File

@@ -10,7 +10,9 @@ APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US APP_FAKER_LOCALE=en_US
APP_MAINTENANCE_DRIVER=file APP_MAINTENANCE_DRIVER=file
APP_MAINTENANCE_STORE=database # APP_MAINTENANCE_STORE=database
PHP_CLI_SERVER_WORKERS=4
BCRYPT_ROUNDS=12 BCRYPT_ROUNDS=12
@@ -47,11 +49,11 @@ REDIS_PASSWORD=null
REDIS_PORT=6379 REDIS_PORT=6379
MAIL_MAILER=log MAIL_MAILER=log
MAIL_SCHEME=null
MAIL_HOST=127.0.0.1 MAIL_HOST=127.0.0.1
MAIL_PORT=2525 MAIL_PORT=2525
MAIL_USERNAME=null MAIL_USERNAME=null
MAIL_PASSWORD=null MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}" MAIL_FROM_NAME="${APP_NAME}"

View File

@@ -1,4 +1,4 @@
name: issues name: Issues
on: on:
issues: issues:

View File

@@ -1,4 +1,4 @@
name: pull requests name: Pull Requests
on: on:
pull_request_target: pull_request_target:

View File

@@ -1,4 +1,4 @@
name: update changelog name: Update Changelog
on: on:
release: release:

4
.gitignore vendored
View File

@@ -4,10 +4,12 @@
/public/hot /public/hot
/public/storage /public/storage
/storage/*.key /storage/*.key
/storage/pail
/vendor /vendor
.env .env
.env.backup .env.backup
.env.production .env.production
.phpactor.json
.phpunit.result.cache .phpunit.result.cache
Homestead.json Homestead.json
Homestead.yaml Homestead.yaml
@@ -16,4 +18,6 @@ npm-debug.log
yarn-error.log yarn-error.log
/.fleet /.fleet
/.idea /.idea
/.nova
/.vscode /.vscode
/.zed

View File

@@ -9,12 +9,13 @@ use Illuminate\Notifications\Notifiable;
class User extends Authenticatable class User extends Authenticatable
{ {
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasFactory, Notifiable; use HasFactory, Notifiable;
/** /**
* The attributes that are mass assignable. * The attributes that are mass assignable.
* *
* @var array<int, string> * @var list<string>
*/ */
protected $fillable = [ protected $fillable = [
'name', 'name',
@@ -25,7 +26,7 @@ class User extends Authenticatable
/** /**
* The attributes that should be hidden for serialization. * The attributes that should be hidden for serialization.
* *
* @var array<int, string> * @var list<string>
*/ */
protected $hidden = [ protected $hidden = [
'password', 'password',

View File

@@ -1,4 +1,5 @@
{ {
"$schema": "https://getcomposer.org/schema.json",
"name": "laravel/laravel", "name": "laravel/laravel",
"type": "project", "type": "project",
"description": "The skeleton application for the Laravel framework.", "description": "The skeleton application for the Laravel framework.",
@@ -11,10 +12,16 @@
}, },
"require-dev": { "require-dev": {
"fakerphp/faker": "^1.23", "fakerphp/faker": "^1.23",
"laravel/pail": "^1.1",
"laravel/pint": "^1.13", "laravel/pint": "^1.13",
"laravel/sail": "dev-develop", "laravel/sail": "dev-develop",
"mockery/mockery": "^1.6", "mockery/mockery": "^1.6",
<<<<<<< HEAD
"phpunit/phpunit": "^10.5" "phpunit/phpunit": "^10.5"
=======
"nunomaduro/collision": "^8.1",
"phpunit/phpunit": "^11.0.1"
>>>>>>> 11.x
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@@ -43,6 +50,10 @@
"@php artisan key:generate --ansi", "@php artisan key:generate --ansi",
"@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"", "@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
"@php artisan migrate --graceful --ansi" "@php artisan migrate --graceful --ansi"
],
"dev": [
"Composer\\Config::disableProcessTimeout",
"npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite"
] ]
}, },
"extra": { "extra": {

View File

@@ -26,7 +26,7 @@ return [
| well as their drivers. You may even define multiple stores for the | well as their drivers. You may even define multiple stores for the
| same cache driver to group types of items stored in your caches. | same cache driver to group types of items stored in your caches.
| |
| Supported drivers: "apc", "array", "database", "file", "memcached", | Supported drivers: "array", "database", "file", "memcached",
| "redis", "dynamodb", "octane", "null" | "redis", "dynamodb", "octane", "null"
| |
*/ */
@@ -40,9 +40,10 @@ return [
'database' => [ 'database' => [
'driver' => 'database', 'driver' => 'database',
'connection' => env('DB_CACHE_CONNECTION'),
'table' => env('DB_CACHE_TABLE', 'cache'), 'table' => env('DB_CACHE_TABLE', 'cache'),
'connection' => env('DB_CACHE_CONNECTION', null), 'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'),
'lock_connection' => env('DB_CACHE_LOCK_CONNECTION', null), 'lock_table' => env('DB_CACHE_LOCK_TABLE'),
], ],
'file' => [ 'file' => [

View File

@@ -37,6 +37,9 @@ return [
'database' => env('DB_DATABASE', database_path('database.sqlite')), 'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '', 'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
'busy_timeout' => null,
'journal_mode' => null,
'synchronous' => null,
], ],
'mysql' => [ 'mysql' => [

View File

@@ -24,7 +24,7 @@ return [
| may even configure multiple disks for the same driver. Examples for | may even configure multiple disks for the same driver. Examples for
| most supported storage drivers are configured here for reference. | most supported storage drivers are configured here for reference.
| |
| Supported Drivers: "local", "ftp", "sftp", "s3" | Supported drivers: "local", "ftp", "sftp", "s3"
| |
*/ */
@@ -32,7 +32,8 @@ return [
'local' => [ 'local' => [
'driver' => 'local', 'driver' => 'local',
'root' => storage_path('app'), 'root' => storage_path('app/private'),
'serve' => true,
'throw' => false, 'throw' => false,
], ],

View File

@@ -45,7 +45,7 @@ return [
| utilizes the Monolog PHP logging library, which includes a variety | utilizes the Monolog PHP logging library, which includes a variety
| of powerful log handlers and formatters that you're free to use. | of powerful log handlers and formatters that you're free to use.
| |
| Available Drivers: "single", "daily", "slack", "syslog", | Available drivers: "single", "daily", "slack", "syslog",
| "errorlog", "monolog", "custom", "stack" | "errorlog", "monolog", "custom", "stack"
| |
*/ */

View File

@@ -30,7 +30,8 @@ return [
| your mailers below. You may also add additional mailers if needed. | your mailers below. You may also add additional mailers if needed.
| |
| Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
| "postmark", "log", "array", "failover", "roundrobin" | "postmark", "resend", "log", "array",
| "failover", "roundrobin"
| |
*/ */
@@ -38,14 +39,14 @@ return [
'smtp' => [ 'smtp' => [
'transport' => 'smtp', 'transport' => 'smtp',
'scheme' => env('MAIL_SCHEME'),
'url' => env('MAIL_URL'), 'url' => env('MAIL_URL'),
'host' => env('MAIL_HOST', '127.0.0.1'), 'host' => env('MAIL_HOST', '127.0.0.1'),
'port' => env('MAIL_PORT', 2525), 'port' => env('MAIL_PORT', 2525),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'), 'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'), 'password' => env('MAIL_PASSWORD'),
'timeout' => null, 'timeout' => null,
'local_domain' => env('MAIL_EHLO_DOMAIN'), 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)),
], ],
'ses' => [ 'ses' => [
@@ -60,6 +61,10 @@ return [
// ], // ],
], ],
'resend' => [
'transport' => 'resend',
],
'sendmail' => [ 'sendmail' => [
'transport' => 'sendmail', 'transport' => 'sendmail',
'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
@@ -82,6 +87,14 @@ return [
], ],
], ],
'roundrobin' => [
'transport' => 'roundrobin',
'mailers' => [
'ses',
'postmark',
],
],
], ],
/* /*

View File

@@ -36,10 +36,10 @@ return [
'database' => [ 'database' => [
'driver' => 'database', 'driver' => 'database',
'connection' => env('DB_QUEUE_CONNECTION', null), 'connection' => env('DB_QUEUE_CONNECTION'),
'table' => env('DB_QUEUE_TABLE', 'jobs'), 'table' => env('DB_QUEUE_TABLE', 'jobs'),
'queue' => env('DB_QUEUE', 'default'), 'queue' => env('DB_QUEUE', 'default'),
'retry_after' => env('DB_QUEUE_RETRY_AFTER', 90), 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90),
'after_commit' => false, 'after_commit' => false,
], ],
@@ -47,7 +47,7 @@ return [
'driver' => 'beanstalkd', 'driver' => 'beanstalkd',
'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'), 'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'),
'queue' => env('BEANSTALKD_QUEUE', 'default'), 'queue' => env('BEANSTALKD_QUEUE', 'default'),
'retry_after' => env('BEANSTALKD_QUEUE_RETRY_AFTER', 90), 'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90),
'block_for' => 0, 'block_for' => 0,
'after_commit' => false, 'after_commit' => false,
], ],
@@ -67,7 +67,7 @@ return [
'driver' => 'redis', 'driver' => 'redis',
'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'),
'queue' => env('REDIS_QUEUE', 'default'), 'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => env('REDIS_QUEUE_RETRY_AFTER', 90), 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90),
'block_for' => null, 'block_for' => null,
'after_commit' => false, 'after_commit' => false,
], ],

View File

@@ -24,6 +24,10 @@ return [
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
], ],
'resend' => [
'key' => env('RESEND_KEY'),
],
'slack' => [ 'slack' => [
'notifications' => [ 'notifications' => [
'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'), 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'),

View File

@@ -125,7 +125,6 @@ return [
| the framework. Typically, you should not need to change this value | the framework. Typically, you should not need to change this value
| since doing so does not grant a meaningful security improvement. | since doing so does not grant a meaningful security improvement.
| |
|
*/ */
'cookie' => env( 'cookie' => env(

View File

@@ -2,12 +2,16 @@
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "build": "vite build",
"build": "vite build" "dev": "vite"
}, },
"devDependencies": { "devDependencies": {
"axios": "^1.6.4", "autoprefixer": "^10.4.20",
"axios": "^1.7.4",
"concurrently": "^9.0.1",
"laravel-vite-plugin": "^1.0", "laravel-vite-plugin": "^1.0",
"vite": "^5.0" "postcss": "^8.4.47",
"tailwindcss": "^3.4.13",
"vite": "^6.0"
} }
} }

6
postcss.config.js Normal file
View File

@@ -0,0 +1,6 @@
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};

View File

@@ -0,0 +1,3 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,4 @@
* *
!private/
!public/ !public/
!.gitignore !.gitignore

2
storage/app/private/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*
!.gitignore

20
tailwind.config.js Normal file
View File

@@ -0,0 +1,20 @@
import defaultTheme from 'tailwindcss/defaultTheme';
/** @type {import('tailwindcss').Config} */
export default {
content: [
'./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php',
'./storage/framework/views/*.php',
'./resources/**/*.blade.php',
'./resources/**/*.js',
'./resources/**/*.vue',
],
theme: {
extend: {
fontFamily: {
sans: ['Figtree', ...defaultTheme.fontFamily.sans],
},
},
},
plugins: [],
};