mirror of
https://github.com/coollabsio/coolify.git
synced 2026-03-11 08:55:47 +00:00
[v5.x] chore: upgrade all dependencies, configs and tooling (#7445)
This commit is contained in:
commit
e7349727a7
21 changed files with 1097 additions and 1122 deletions
|
|
@ -9,18 +9,25 @@
|
|||
node_modules
|
||||
/vendor
|
||||
|
||||
*.log
|
||||
|
||||
.ai
|
||||
CLAUDE.md
|
||||
/.cursor
|
||||
/.fleet
|
||||
/.idea
|
||||
/.junie
|
||||
/.nova
|
||||
/.vscode
|
||||
/.windsurfrules
|
||||
/.zed
|
||||
|
||||
*.log
|
||||
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
*.swo
|
||||
*.swp
|
||||
|
||||
*.sqlite*
|
||||
|
||||
/auth.json
|
||||
|
|
@ -36,9 +43,12 @@ Homestead.yaml
|
|||
/public/build
|
||||
/public/hot
|
||||
/public/storage
|
||||
/public/vendor
|
||||
|
||||
/storage/**
|
||||
!/storage/**/
|
||||
/storage/phpstan/**
|
||||
/storage/rector/**
|
||||
|
||||
.git
|
||||
.gitattributes
|
||||
|
|
|
|||
17
.env.example
17
.env.example
|
|
@ -4,7 +4,12 @@ APP_KEY=
|
|||
APP_DEBUG=true
|
||||
APP_URL=http://localhost
|
||||
|
||||
APP_LOCALE=en
|
||||
APP_FALLBACK_LOCALE=en
|
||||
APP_FAKER_LOCALE=en_US
|
||||
|
||||
APP_MAINTENANCE_DRIVER=file
|
||||
# APP_MAINTENANCE_STORE=database
|
||||
|
||||
# PHP_CLI_SERVER_WORKERS=4
|
||||
|
||||
|
|
@ -16,6 +21,11 @@ LOG_DEPRECATIONS_CHANNEL=null
|
|||
LOG_LEVEL=debug
|
||||
|
||||
DB_CONNECTION=sqlite
|
||||
# DB_HOST=127.0.0.1
|
||||
# DB_PORT=3306
|
||||
# DB_DATABASE=laravel
|
||||
# DB_USERNAME=root
|
||||
# DB_PASSWORD=
|
||||
|
||||
SESSION_DRIVER=database
|
||||
SESSION_LIFETIME=120
|
||||
|
|
@ -28,6 +38,7 @@ FILESYSTEM_DISK=local
|
|||
QUEUE_CONNECTION=sync
|
||||
|
||||
CACHE_STORE=database
|
||||
# CACHE_PREFIX=
|
||||
|
||||
MEMCACHED_HOST=127.0.0.1
|
||||
|
||||
|
|
@ -45,4 +56,10 @@ MAIL_PASSWORD=null
|
|||
MAIL_FROM_ADDRESS="hello@example.com"
|
||||
MAIL_FROM_NAME="${APP_NAME}"
|
||||
|
||||
AWS_ACCESS_KEY_ID=
|
||||
AWS_SECRET_ACCESS_KEY=
|
||||
AWS_DEFAULT_REGION=us-east-1
|
||||
AWS_BUCKET=
|
||||
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||
|
||||
VITE_APP_NAME="${APP_NAME}"
|
||||
|
|
|
|||
8
.github/workflows/lock-threads.yaml
vendored
8
.github/workflows/lock-threads.yaml
vendored
|
|
@ -9,12 +9,16 @@ permissions:
|
|||
discussions: write
|
||||
pull-requests: write
|
||||
|
||||
concurrency:
|
||||
group: lock-threads
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
lock-threads:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||
steps:
|
||||
- name: Lock threads after 30 days of inactivity
|
||||
uses: dessant/lock-threads@v5
|
||||
uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # https://github.com/dessant/lock-threads/releases/tag/v5.0.1
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-inactive-days: 30
|
||||
|
|
|
|||
8
.github/workflows/stale-threads.yaml
vendored
8
.github/workflows/stale-threads.yaml
vendored
|
|
@ -8,12 +8,16 @@ permissions:
|
|||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
concurrency:
|
||||
group: stale-threads
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
stale-threads:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||
steps:
|
||||
- name: Manage stale threads (Issues & PRs)
|
||||
uses: actions/stale@v10
|
||||
uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # https://github.com/actions/stale/releases/tag/v10.1.0
|
||||
with:
|
||||
stale-issue-message: |
|
||||
This issue has been marked as stale due to inactivity. It will be automatically closed in 7 days if no update is received.
|
||||
|
|
|
|||
59
.github/workflows/tests.yaml
vendored
59
.github/workflows/tests.yaml
vendored
|
|
@ -8,40 +8,46 @@ on:
|
|||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: tests-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
composer-validate:
|
||||
name: Validate composer.json
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # https://github.com/actions/checkout/releases/tag/v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
- name: Setup PHP 8.5
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # https://github.com/shivammathur/setup-php/releases/tag/2.36.0
|
||||
with:
|
||||
php-version: "8.4"
|
||||
php-version: "8.5.0" # https://github.com/php/php-src/releases/tag/php-8.5.0
|
||||
|
||||
- name: Validate composer.json
|
||||
run: composer validate --check-lock --strict
|
||||
|
||||
composer-audit:
|
||||
name: Composer Audit
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||
needs: [composer-validate]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # https://github.com/actions/checkout/releases/tag/v6.0.0
|
||||
with:
|
||||
php-version: "8.4"
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup PHP 8.5
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # https://github.com/shivammathur/setup-php/releases/tag/2.36.0
|
||||
with:
|
||||
php-version: "8.5.0" # https://github.com/php/php-src/releases/tag/php-8.5.0
|
||||
|
||||
- name: Cache Composer packages
|
||||
id: composer-cache
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # https://github.com/actions/cache/releases/tag/v4.3.0
|
||||
with:
|
||||
path: /vendor
|
||||
key: php-${{ hashFiles('composer.lock') }}
|
||||
|
|
@ -55,39 +61,40 @@ jobs:
|
|||
|
||||
bun-audit:
|
||||
name: Bun Audit
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||
needs: [composer-validate]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # https://github.com/actions/checkout/releases/tag/v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
uses: oven-sh/setup-bun@735343b667d3e6f658f44d0eca948eb6282f2b76 # https://github.com/oven-sh/setup-bun/releases/tag/v2.0.2
|
||||
with:
|
||||
bun-version: 1.2.16
|
||||
bun-version: 1.3.3 # https://github.com/oven-sh/bun/releases/tag/bun-v1.3.3
|
||||
- name: Run Bun audit
|
||||
run: bun audit --frozen-lockfile
|
||||
|
||||
test:
|
||||
name: Tests
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||
needs: [composer-audit, bun-audit]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup PHP with Xdebug
|
||||
uses: shivammathur/setup-php@v2
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # https://github.com/actions/checkout/releases/tag/v6.0.0
|
||||
with:
|
||||
php-version: "8.4"
|
||||
coverage: xdebug
|
||||
persist-credentials: false
|
||||
|
||||
# - name: Install aspell
|
||||
# run: sudo apt-get update && sudo apt-get install -y aspell aspell-en
|
||||
- name: Setup PHP 8.5 with Xdebug
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # https://github.com/shivammathur/setup-php/releases/tag/2.36.0
|
||||
with:
|
||||
php-version: "8.5.0" # https://github.com/php/php-src/releases/tag/php-8.5.0
|
||||
coverage: xdebug-3.5.0 # https://github.com/xdebug/xdebug/releases/tag/3.5.0
|
||||
|
||||
- name: Cache Composer packages
|
||||
id: composer-cache
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # https://github.com/actions/cache/releases/tag/v4.3.0
|
||||
with:
|
||||
path: /vendor
|
||||
key: php-${{ hashFiles('composer.lock') }}
|
||||
|
|
|
|||
22
.gitignore
vendored
22
.gitignore
vendored
|
|
@ -2,7 +2,7 @@
|
|||
.env.*
|
||||
!.env.testing
|
||||
!.env.example
|
||||
!.env.development.example
|
||||
!.env.local.example
|
||||
!.env.production.example
|
||||
|
||||
.bash_history
|
||||
|
|
@ -13,18 +13,25 @@
|
|||
node_modules
|
||||
/vendor
|
||||
|
||||
*.log
|
||||
|
||||
.ai
|
||||
CLAUDE.md
|
||||
/.cursor
|
||||
/.fleet
|
||||
/.idea
|
||||
/.junie
|
||||
/.nova
|
||||
/.vscode
|
||||
/.windsurfrules
|
||||
/.zed
|
||||
|
||||
*.log
|
||||
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
*.swo
|
||||
*.swp
|
||||
|
||||
*.sqlite*
|
||||
|
||||
/auth.json
|
||||
|
|
@ -35,11 +42,14 @@ Thumbs.db
|
|||
Homestead.json
|
||||
Homestead.yaml
|
||||
|
||||
/public/build/
|
||||
/public/hot/
|
||||
/public/storage/
|
||||
/public/build
|
||||
/public/hot
|
||||
/public/storage
|
||||
/public/vendor
|
||||
|
||||
/storage/**
|
||||
!/storage/app
|
||||
!/storage/framework
|
||||
!/storage/logs
|
||||
!/storage/phpstan
|
||||
!/storage/rector
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ final class AppServiceProvider extends ServiceProvider
|
|||
*/
|
||||
private function configureHttps(): void
|
||||
{
|
||||
if (App::isProduction() && (bool) config('app.force_https')) {
|
||||
if (App::isProduction() && config()->boolean('app.force_https')) {
|
||||
URL::forceScheme('https');
|
||||
}
|
||||
}
|
||||
|
|
@ -85,6 +85,7 @@ final class AppServiceProvider extends ServiceProvider
|
|||
if (! App::isProduction()) {
|
||||
Model::preventLazyLoading();
|
||||
}
|
||||
|
||||
Model::preventSilentlyDiscardingAttributes();
|
||||
Model::preventAccessingMissingAttributes();
|
||||
|
||||
|
|
|
|||
50
bun.lock
50
bun.lock
|
|
@ -9,7 +9,7 @@
|
|||
"concurrently": "^9.2.1",
|
||||
"laravel-vite-plugin": "^2.0.1",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"vite": "^7.2.2",
|
||||
"vite": "^7.2.6",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -76,49 +76,49 @@
|
|||
|
||||
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
|
||||
|
||||
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.2", "", { "os": "android", "cpu": "arm" }, "sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA=="],
|
||||
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.3", "", { "os": "android", "cpu": "arm" }, "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w=="],
|
||||
|
||||
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.2", "", { "os": "android", "cpu": "arm64" }, "sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g=="],
|
||||
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.3", "", { "os": "android", "cpu": "arm64" }, "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w=="],
|
||||
|
||||
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ=="],
|
||||
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA=="],
|
||||
|
||||
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw=="],
|
||||
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ=="],
|
||||
|
||||
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA=="],
|
||||
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w=="],
|
||||
|
||||
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA=="],
|
||||
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q=="],
|
||||
|
||||
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.2", "", { "os": "linux", "cpu": "arm" }, "sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg=="],
|
||||
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw=="],
|
||||
|
||||
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.2", "", { "os": "linux", "cpu": "arm" }, "sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q=="],
|
||||
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg=="],
|
||||
|
||||
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA=="],
|
||||
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w=="],
|
||||
|
||||
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ=="],
|
||||
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A=="],
|
||||
|
||||
"@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ=="],
|
||||
"@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g=="],
|
||||
|
||||
"@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g=="],
|
||||
"@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw=="],
|
||||
|
||||
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA=="],
|
||||
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g=="],
|
||||
|
||||
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ=="],
|
||||
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A=="],
|
||||
|
||||
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w=="],
|
||||
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg=="],
|
||||
|
||||
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.2", "", { "os": "linux", "cpu": "x64" }, "sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw=="],
|
||||
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w=="],
|
||||
|
||||
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.2", "", { "os": "linux", "cpu": "x64" }, "sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA=="],
|
||||
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q=="],
|
||||
|
||||
"@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.2", "", { "os": "none", "cpu": "arm64" }, "sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A=="],
|
||||
"@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.3", "", { "os": "none", "cpu": "arm64" }, "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw=="],
|
||||
|
||||
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA=="],
|
||||
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw=="],
|
||||
|
||||
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg=="],
|
||||
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA=="],
|
||||
|
||||
"@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.2", "", { "os": "win32", "cpu": "x64" }, "sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw=="],
|
||||
"@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg=="],
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.2", "", { "os": "win32", "cpu": "x64" }, "sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA=="],
|
||||
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ=="],
|
||||
|
||||
"@tailwindcss/node": ["@tailwindcss/node@4.1.17", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.1.17" } }, "sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg=="],
|
||||
|
||||
|
|
@ -228,7 +228,7 @@
|
|||
|
||||
"require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="],
|
||||
|
||||
"rollup": ["rollup@4.53.2", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.2", "@rollup/rollup-android-arm64": "4.53.2", "@rollup/rollup-darwin-arm64": "4.53.2", "@rollup/rollup-darwin-x64": "4.53.2", "@rollup/rollup-freebsd-arm64": "4.53.2", "@rollup/rollup-freebsd-x64": "4.53.2", "@rollup/rollup-linux-arm-gnueabihf": "4.53.2", "@rollup/rollup-linux-arm-musleabihf": "4.53.2", "@rollup/rollup-linux-arm64-gnu": "4.53.2", "@rollup/rollup-linux-arm64-musl": "4.53.2", "@rollup/rollup-linux-loong64-gnu": "4.53.2", "@rollup/rollup-linux-ppc64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-musl": "4.53.2", "@rollup/rollup-linux-s390x-gnu": "4.53.2", "@rollup/rollup-linux-x64-gnu": "4.53.2", "@rollup/rollup-linux-x64-musl": "4.53.2", "@rollup/rollup-openharmony-arm64": "4.53.2", "@rollup/rollup-win32-arm64-msvc": "4.53.2", "@rollup/rollup-win32-ia32-msvc": "4.53.2", "@rollup/rollup-win32-x64-gnu": "4.53.2", "@rollup/rollup-win32-x64-msvc": "4.53.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g=="],
|
||||
"rollup": ["rollup@4.53.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.3", "@rollup/rollup-android-arm64": "4.53.3", "@rollup/rollup-darwin-arm64": "4.53.3", "@rollup/rollup-darwin-x64": "4.53.3", "@rollup/rollup-freebsd-arm64": "4.53.3", "@rollup/rollup-freebsd-x64": "4.53.3", "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", "@rollup/rollup-linux-arm-musleabihf": "4.53.3", "@rollup/rollup-linux-arm64-gnu": "4.53.3", "@rollup/rollup-linux-arm64-musl": "4.53.3", "@rollup/rollup-linux-loong64-gnu": "4.53.3", "@rollup/rollup-linux-ppc64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-musl": "4.53.3", "@rollup/rollup-linux-s390x-gnu": "4.53.3", "@rollup/rollup-linux-x64-gnu": "4.53.3", "@rollup/rollup-linux-x64-musl": "4.53.3", "@rollup/rollup-openharmony-arm64": "4.53.3", "@rollup/rollup-win32-arm64-msvc": "4.53.3", "@rollup/rollup-win32-ia32-msvc": "4.53.3", "@rollup/rollup-win32-x64-gnu": "4.53.3", "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA=="],
|
||||
|
||||
"rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="],
|
||||
|
||||
|
|
@ -252,7 +252,7 @@
|
|||
|
||||
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
||||
|
||||
"vite": ["vite@7.2.2", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ=="],
|
||||
"vite": ["vite@7.2.6", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ=="],
|
||||
|
||||
"vite-plugin-full-reload": ["vite-plugin-full-reload@1.2.0", "", { "dependencies": { "picocolors": "^1.0.0", "picomatch": "^2.3.1" } }, "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA=="],
|
||||
|
||||
|
|
|
|||
|
|
@ -2,38 +2,30 @@
|
|||
"$schema": "https://getcomposer.org/schema.json",
|
||||
"name": "coollabsio/coolify",
|
||||
"type": "project",
|
||||
"description": "Coolify a free, open-source & self-hostable PaaS alternative to Heroku, Netlify, Vercel and Railway.",
|
||||
"description": "An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 280+ one-click services on your own servers.",
|
||||
"keywords": ["coolify", "php", "laravel", "inertiajs", "svelte", "svelte5", "self-hosted", "self-hosting", "docker", "docker-compose", "server", "deployment", "databases", "static-site", "nodejs", "nextjs", "mysql", "mariadb", "postgres", "redis"],
|
||||
"homepage": "https://coolify.io",
|
||||
"keywords": [
|
||||
"coolify",
|
||||
"deployment",
|
||||
"self-hosted",
|
||||
"open-source",
|
||||
"docker",
|
||||
"podman"
|
||||
],
|
||||
"license": "AGPL-3.0",
|
||||
"require": {
|
||||
"php": "^8.4",
|
||||
"laravel/framework": "^12.9.2",
|
||||
"laravel/tinker": "^2.10.1"
|
||||
"php": "^8.5",
|
||||
"laravel/framework": "^12.40.2",
|
||||
"laravel/tinker": "^2.10.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"driftingly/rector-laravel": "^2.0.4",
|
||||
"driftingly/rector-laravel": "^2.1.4",
|
||||
"fakerphp/faker": "^1.24.1",
|
||||
"larastan/larastan": "^3.4.0",
|
||||
"laravel/pail": "^1.2.2",
|
||||
"laravel/pint": "^1.22.0",
|
||||
"larastan/larastan": "^3.8.0",
|
||||
"laravel/pail": "^1.2.4",
|
||||
"laravel/pint": "^1.26.0",
|
||||
"mockery/mockery": "^1.6.12",
|
||||
"nunomaduro/collision": "^8.8",
|
||||
"peckphp/peck": "^0.1.3",
|
||||
"pestphp/pest": "^3.8.2",
|
||||
"pestphp/pest-plugin-laravel": "^3.2",
|
||||
"pestphp/pest-plugin-type-coverage": "^3.5.1",
|
||||
"phpstan/phpstan-deprecation-rules": "^2.0.1",
|
||||
"phpstan/phpstan-strict-rules": "^2.0.4",
|
||||
"rector/rector": "^2.0.11",
|
||||
"spatie/laravel-ray": "^1.40.2"
|
||||
"nunomaduro/collision": "^8.8.3",
|
||||
"pestphp/pest": "^4.1.6",
|
||||
"pestphp/pest-plugin-laravel": "^4.0.0",
|
||||
"pestphp/pest-plugin-type-coverage": "^4.0.3",
|
||||
"phpstan/phpstan-deprecation-rules": "^2.0.3",
|
||||
"phpstan/phpstan-strict-rules": "^2.0.7",
|
||||
"rector/rector": "^2.2.10",
|
||||
"spatie/laravel-ray": "^1.43.1"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
|
@ -48,6 +40,19 @@
|
|||
}
|
||||
},
|
||||
"scripts": {
|
||||
"setup": [
|
||||
"composer install",
|
||||
"@php -r \"file_exists('.env') || copy('.env.local.example', '.env');\"",
|
||||
"@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
|
||||
"@php artisan key:generate --ansi",
|
||||
"@php artisan migrate --force --ansi",
|
||||
"bun install",
|
||||
"bun run build"
|
||||
],
|
||||
"dev": [
|
||||
"Composer\\Config::disableProcessTimeout",
|
||||
"bunx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"bun run dev\" --names=server,queue,logs,vite --kill-others"
|
||||
],
|
||||
"post-autoload-dump": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||
"@php artisan package:discover --ansi"
|
||||
|
|
@ -55,32 +60,22 @@
|
|||
"post-update-cmd": [
|
||||
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
|
||||
],
|
||||
"post-root-package-install": [
|
||||
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
||||
"post-install-cmd": [
|
||||
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
|
||||
],
|
||||
"post-create-project-cmd": [
|
||||
"@php artisan key:generate --ansi",
|
||||
"@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
|
||||
"@php artisan migrate --graceful --ansi"
|
||||
],
|
||||
"dev": [
|
||||
"@php artisan key:generate --ansi",
|
||||
"@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
|
||||
"@php artisan migrate --force --ansi",
|
||||
"Composer\\Config::disableProcessTimeout",
|
||||
"bunx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"bun run dev\" --names=server,queue,logs,vite"
|
||||
"pre-package-uninstall": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::prePackageUninstall"
|
||||
],
|
||||
"refactor": "rector",
|
||||
"format": "pint",
|
||||
"lint": "phpstan --memory-limit=1G",
|
||||
"format": "pint --parallel",
|
||||
"lint": "phpstan --memory-limit=2G --ansi",
|
||||
"test": [
|
||||
"@php artisan config:clear --ansi",
|
||||
"XDEBUG_MODE=coverage pest --parallel --coverage --exactly=100"
|
||||
],
|
||||
"test:refactor": "rector --dry-run",
|
||||
"test:format": "pint --test",
|
||||
"test:typos": "peck",
|
||||
"test:type-coverage": "pest --parallel --type-coverage --memory-limit=1G --min=100",
|
||||
"test:format": "pint --parallel --test",
|
||||
"test:type-coverage": "pest --parallel --type-coverage --memory-limit=2G --min=100",
|
||||
"test:all": [
|
||||
"@test:refactor",
|
||||
"@test:format",
|
||||
|
|
|
|||
1563
composer.lock
generated
1563
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -39,6 +39,11 @@ return [
|
|||
'serialize' => false,
|
||||
],
|
||||
|
||||
'session' => [
|
||||
'driver' => 'session',
|
||||
'key' => env('SESSION_CACHE_KEY', '_cache'),
|
||||
],
|
||||
|
||||
'database' => [
|
||||
'driver' => 'database',
|
||||
'connection' => env('DB_CACHE_CONNECTION'),
|
||||
|
|
|
|||
|
|
@ -36,11 +36,13 @@ return [
|
|||
'url' => env('DB_URL'),
|
||||
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => null,
|
||||
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
||||
'busy_timeout' => null,
|
||||
'journal_mode' => null,
|
||||
'synchronous' => null,
|
||||
'transaction_mode' => 'DEFERRED',
|
||||
'pragmas' => [],
|
||||
],
|
||||
|
||||
'mysql' => [
|
||||
|
|
@ -59,7 +61,7 @@ return [
|
|||
'strict' => true,
|
||||
'engine' => null,
|
||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
||||
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
||||
(PHP_VERSION_ID >= 80500 ? Pdo\Mysql::ATTR_SSL_CA : Pdo\Mysql::ATTR_SSL_CA) => env('MYSQL_ATTR_SSL_CA'),
|
||||
]) : [],
|
||||
],
|
||||
|
||||
|
|
@ -79,7 +81,7 @@ return [
|
|||
'strict' => true,
|
||||
'engine' => null,
|
||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
||||
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
||||
(PHP_VERSION_ID >= 80500 ? Pdo\Mysql::ATTR_SSL_CA : Pdo\Mysql::ATTR_SSL_CA) => env('MYSQL_ATTR_SSL_CA'),
|
||||
]) : [],
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ return [
|
|||
'enable' => env('RAY_ENABLED', false),
|
||||
|
||||
/*
|
||||
* When enabled, all cache events will automatically be sent to Ray.
|
||||
* When enabled, all cache events will automatically be sent to Ray.
|
||||
*/
|
||||
'send_cache_to_ray' => env('SEND_CACHE_TO_RAY', false),
|
||||
|
||||
|
|
@ -100,7 +100,7 @@ return [
|
|||
/*
|
||||
* When enabled, all deprecation notices will be automatically sent to Ray.
|
||||
*/
|
||||
'send_deprecated_notices_to_ray' => env('SEND_DEPRECATED_NOTICES_TO_RAY', false),
|
||||
'send_deprecated_notices_to_ray' => env('SEND_DEPRECATED_NOTICES_TO_RAY', true),
|
||||
|
||||
/*
|
||||
* The host used to communicate with the Ray app.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "coolify",
|
||||
"$schema": "https://www.schemastore.org/package.json",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
"concurrently": "^9.2.1",
|
||||
"laravel-vite-plugin": "^2.0.1",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"vite": "^7.2.2"
|
||||
"vite": "^7.2.6"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "vite build",
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"preset": "laravel",
|
||||
"ignore": {
|
||||
"words": [
|
||||
"php"
|
||||
],
|
||||
"paths": []
|
||||
}
|
||||
}
|
||||
23
phpstan.neon
23
phpstan.neon
|
|
@ -1,23 +1,30 @@
|
|||
includes:
|
||||
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
|
||||
- vendor/phpstan/phpstan-strict-rules/rules.neon
|
||||
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
|
||||
- vendor/larastan/larastan/extension.neon
|
||||
- vendor/nesbot/carbon/extension.neon
|
||||
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
|
||||
- vendor/phpstan/phpstan-strict-rules/rules.neon
|
||||
|
||||
parameters:
|
||||
level: max
|
||||
checkModelProperties: true
|
||||
checkOctaneCompatibility: true
|
||||
checkMissingCallableSignature: true
|
||||
|
||||
# Additional Core PHPStan Rules
|
||||
checkTooWideReturnTypesInProtectedAndPublicMethods: true
|
||||
rememberPossiblyImpureFunctionValues: false
|
||||
checkBenevolentUnionTypes: true
|
||||
reportPossiblyNonexistentGeneralArrayOffset: true
|
||||
reportPossiblyNonexistentConstantArrayOffset: true
|
||||
reportAlwaysTrueInLastCondition: true
|
||||
reportAnyTypeWideningInVarTag: true
|
||||
checkMissingCallableSignature: true
|
||||
tipsOfTheDay: false
|
||||
|
||||
# Additional Larastan Rules
|
||||
noUnnecessaryEnumerableToArrayCalls: true
|
||||
checkModelProperties: true
|
||||
checkOctaneCompatibility: true
|
||||
checkModelMethodVisibility: true
|
||||
checkAuthCallsWhenInRequestScope: true
|
||||
checkConfigTypes: true
|
||||
|
||||
tmpDir: ./storage/phpstan
|
||||
paths:
|
||||
- app
|
||||
|
|
@ -32,4 +39,4 @@ parameters:
|
|||
strictRules:
|
||||
strictArrayFilter: false
|
||||
ignoreErrors:
|
||||
- '#Dynamic call to static method Illuminate\\Http\\Request::validate\(\)#'
|
||||
# - '#Dynamic call to static method Illuminate\\Http\\Request::validate\(\)#'
|
||||
|
|
|
|||
16
pint.json
16
pint.json
|
|
@ -60,6 +60,7 @@
|
|||
"heredoc_indentation": {
|
||||
"indentation": "same_as_start"
|
||||
},
|
||||
"indentation_type": false,
|
||||
"logical_operators": true,
|
||||
"long_to_shorthand_operator": true,
|
||||
"mb_str_functions": true,
|
||||
|
|
@ -67,8 +68,13 @@
|
|||
"modernize_stripos": true
|
||||
},
|
||||
"modernize_types_casting": true,
|
||||
"modifier_keywords": true,
|
||||
"multiline_comment_opening_closing": true,
|
||||
"multiline_promoted_properties": {
|
||||
"minimum_number_of_parameters": 3
|
||||
},
|
||||
"multiline_string_to_heredoc": true,
|
||||
"new_expression_parentheses": true,
|
||||
"no_empty_comment": true,
|
||||
"no_extra_blank_lines": {
|
||||
"tokens": [
|
||||
|
|
@ -113,6 +119,7 @@
|
|||
},
|
||||
"no_useless_else": true,
|
||||
"no_useless_nullsafe_operator": true,
|
||||
"no_useless_printf": true,
|
||||
"no_useless_sprintf": true,
|
||||
"no_whitespace_before_comma_in_array": {
|
||||
"after_heredoc": true
|
||||
|
|
@ -162,6 +169,7 @@
|
|||
"phpdoc_no_alias_tag": true,
|
||||
"phpdoc_no_empty_return": true,
|
||||
"phpdoc_return_self_reference": true,
|
||||
"phpdoc_scalar": true,
|
||||
"phpdoc_tag_casing": true,
|
||||
"phpdoc_trim_consecutive_blank_line_separation": true,
|
||||
"phpdoc_types_order": {
|
||||
|
|
@ -175,6 +183,7 @@
|
|||
"self_accessor": true,
|
||||
"set_type_to_cast": true,
|
||||
"single_line_throw": true,
|
||||
"single_space_around_construct": true,
|
||||
"single_trait_insert_per_statement": false,
|
||||
"strict_comparison": true,
|
||||
"strict_param": true,
|
||||
|
|
@ -191,13 +200,8 @@
|
|||
]
|
||||
},
|
||||
"type_declaration_spaces": {
|
||||
"elements": [
|
||||
"constant",
|
||||
"function",
|
||||
"property"
|
||||
]
|
||||
"elements": ["constant", "function", "property"]
|
||||
},
|
||||
"visibility_required": true,
|
||||
"whitespace_after_comma_in_array": {
|
||||
"ensure_single_space": true
|
||||
}
|
||||
|
|
|
|||
140
rector.php
140
rector.php
|
|
@ -2,65 +2,20 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Rector\Caching\ValueObject\Storage\FileCacheStorage;
|
||||
use Rector\Config\RectorConfig;
|
||||
use Rector\Php80\Rector\NotIdentical\MbStrContainsRector;
|
||||
use Rector\Php83\Rector\ClassMethod\AddOverrideAttributeToOverriddenMethodsRector;
|
||||
use RectorLaravel\Rector\ArrayDimFetch\EnvVariableToEnvHelperRector;
|
||||
use RectorLaravel\Rector\ArrayDimFetch\RequestVariablesToRequestFacadeRector;
|
||||
use RectorLaravel\Rector\ArrayDimFetch\ServerVariableToRequestFacadeRector;
|
||||
use RectorLaravel\Rector\ArrayDimFetch\SessionVariableToSessionFacadeRector;
|
||||
use RectorLaravel\Rector\BooleanNot\AvoidNegatedCollectionContainsOrDoesntContainRector;
|
||||
use RectorLaravel\Rector\Cast\DatabaseExpressionCastsToMethodCallRector;
|
||||
use RectorLaravel\Rector\Class_\AddExtendsAnnotationToModelFactoriesRector;
|
||||
use RectorLaravel\Rector\Class_\AddMockConsoleOutputFalseToConsoleTestsRector;
|
||||
use RectorLaravel\Rector\Class_\AnonymousMigrationsRector;
|
||||
use RectorLaravel\Rector\Class_\PropertyDeferToDeferrableProviderToRector;
|
||||
use Rector\Php85\Rector\Expression\NestedFuncCallsToPipeOperatorRector;
|
||||
use Rector\Php85\Rector\StmtsAwareInterface\SequentialAssignmentsToPipeOperatorRector;
|
||||
use RectorLaravel\Rector\Class_\RemoveModelPropertyFromFactoriesRector;
|
||||
use RectorLaravel\Rector\Class_\ReplaceExpectsMethodsInTestsRector;
|
||||
use RectorLaravel\Rector\Class_\UnifyModelDatesWithCastsRector;
|
||||
use RectorLaravel\Rector\ClassMethod\AddGenericReturnTypeToRelationsRector;
|
||||
use RectorLaravel\Rector\ClassMethod\MigrateToSimplifiedAttributeRector;
|
||||
use RectorLaravel\Rector\Empty_\EmptyToBlankAndFilledFuncRector;
|
||||
use RectorLaravel\Rector\Expr\AppEnvironmentComparisonToParameterRector;
|
||||
use RectorLaravel\Rector\Expr\SubStrToStartsWithOrEndsWithStaticMethodCallRector\SubStrToStartsWithOrEndsWithStaticMethodCallRector;
|
||||
use RectorLaravel\Rector\FuncCall\DispatchNonShouldQueueToDispatchSyncRector;
|
||||
use RectorLaravel\Rector\FuncCall\FactoryFuncCallToStaticCallRector;
|
||||
use RectorLaravel\Rector\FuncCall\HelperFuncCallToFacadeClassRector;
|
||||
use RectorLaravel\Rector\FuncCall\NotFilledBlankFuncCallToBlankFilledFuncCallRector;
|
||||
use RectorLaravel\Rector\FuncCall\NowFuncWithStartOfDayMethodCallToTodayFuncRector;
|
||||
use RectorLaravel\Rector\FuncCall\ConfigToTypedConfigMethodCallRector;
|
||||
use RectorLaravel\Rector\FuncCall\RemoveDumpDataDeadCodeRector;
|
||||
use RectorLaravel\Rector\FuncCall\RemoveRedundantValueCallsRector;
|
||||
use RectorLaravel\Rector\FuncCall\RemoveRedundantWithCallsRector;
|
||||
use RectorLaravel\Rector\FuncCall\SleepFuncToSleepStaticCallRector;
|
||||
use RectorLaravel\Rector\FuncCall\TypeHintTappableCallRector;
|
||||
use RectorLaravel\Rector\If_\AbortIfRector;
|
||||
use RectorLaravel\Rector\If_\ReportIfRector;
|
||||
use RectorLaravel\Rector\If_\ThrowIfRector;
|
||||
use RectorLaravel\Rector\MethodCall\AssertSeeToAssertSeeHtmlRector;
|
||||
use RectorLaravel\Rector\MethodCall\AssertStatusToAssertMethodRector;
|
||||
use RectorLaravel\Rector\MethodCall\AvoidNegatedCollectionFilterOrRejectRector;
|
||||
use RectorLaravel\Rector\MethodCall\DatabaseExpressionToStringToMethodCallRector;
|
||||
use RectorLaravel\Rector\MethodCall\FactoryApplyingStatesRector;
|
||||
use RectorLaravel\Rector\MethodCall\JsonCallToExplicitJsonCallRector;
|
||||
use RectorLaravel\Rector\MethodCall\LumenRoutesStringActionToUsesArrayRector;
|
||||
use RectorLaravel\Rector\MethodCall\LumenRoutesStringMiddlewareToArrayRector;
|
||||
use RectorLaravel\Rector\MethodCall\RedirectBackToBackHelperRector;
|
||||
use RectorLaravel\Rector\MethodCall\RedirectRouteToToRouteHelperRector;
|
||||
use RectorLaravel\Rector\MethodCall\RefactorBlueprintGeometryColumnsRector;
|
||||
use RectorLaravel\Rector\MethodCall\ReplaceWithoutJobsEventsAndNotificationsWithFacadeFakeRector;
|
||||
use RectorLaravel\Rector\MethodCall\ResponseHelperCallToJsonResponseRector;
|
||||
use RectorLaravel\Rector\MethodCall\ReverseConditionableMethodCallRector;
|
||||
use RectorLaravel\Rector\MethodCall\UnaliasCollectionMethodsRector;
|
||||
use RectorLaravel\Rector\MethodCall\UseComponentPropertyWithinCommandsRector;
|
||||
use RectorLaravel\Rector\MethodCall\ValidationRuleArrayStringValueToArrayRector;
|
||||
use RectorLaravel\Rector\MethodCall\WhereToWhereLikeRector;
|
||||
use RectorLaravel\Rector\Namespace_\FactoryDefinitionRector;
|
||||
use RectorLaravel\Rector\PropertyFetch\OptionalToNullsafeOperatorRector;
|
||||
use RectorLaravel\Rector\PropertyFetch\ReplaceFakerInstanceWithHelperRector;
|
||||
use RectorLaravel\Rector\StaticCall\CarbonSetTestNowToTravelToRector;
|
||||
use RectorLaravel\Rector\StaticCall\DispatchToHelperFunctionsRector;
|
||||
use RectorLaravel\Rector\StaticCall\Redirect301ToPermanentRedirectRector;
|
||||
use RectorLaravel\Rector\StaticCall\ReplaceAssertTimesSendWithAssertSentTimesRector;
|
||||
use RectorLaravel\Rector\StaticCall\RequestStaticValidateToInjectRector;
|
||||
use RectorLaravel\Set\LaravelSetList;
|
||||
use RectorLaravel\Set\LaravelSetProvider;
|
||||
|
||||
return RectorConfig::configure()
|
||||
->withPaths([
|
||||
|
|
@ -77,78 +32,47 @@ return RectorConfig::configure()
|
|||
__DIR__.'/bootstrap/cache',
|
||||
AddOverrideAttributeToOverriddenMethodsRector::class,
|
||||
])
|
||||
->withCache(__DIR__.'/storage/rector', FileCacheStorage::class)
|
||||
->withPhpSets()
|
||||
->withAttributesSets()
|
||||
->withPreparedSets(
|
||||
deadCode: true,
|
||||
codeQuality: true,
|
||||
codingStyle: true,
|
||||
typeDeclarations: true,
|
||||
typeDeclarationDocblocks: true,
|
||||
privatization: true,
|
||||
naming: true,
|
||||
instanceOf: true,
|
||||
earlyReturn: true,
|
||||
carbon: true,
|
||||
rectorPreset: true,
|
||||
phpunitCodeQuality: true,
|
||||
)
|
||||
->withAttributesSets()
|
||||
->withSetProviders(LaravelSetProvider::class)
|
||||
->withComposerBased(laravel: true)
|
||||
->withSets([
|
||||
LaravelSetList::LARAVEL_ARRAYACCESS_TO_METHOD_CALL,
|
||||
LaravelSetList::LARAVEL_ARRAY_STR_FUNCTION_TO_STATIC_CALL,
|
||||
LaravelSetList::LARAVEL_CODE_QUALITY,
|
||||
LaravelSetList::LARAVEL_COLLECTION,
|
||||
LaravelSetList::LARAVEL_CONTAINER_STRING_TO_FULLY_QUALIFIED_NAME,
|
||||
LaravelSetList::LARAVEL_FACADE_ALIASES_TO_FULL_NAMES,
|
||||
LaravelSetList::LARAVEL_FACTORIES,
|
||||
LaravelSetList::LARAVEL_IF_HELPERS,
|
||||
LaravelSetList::LARAVEL_LEGACY_FACTORIES_TO_CLASSES,
|
||||
LaravelSetList::LARAVEL_TESTING,
|
||||
LaravelSetList::LARAVEL_TYPE_DECLARATIONS,
|
||||
])
|
||||
->withRules([
|
||||
AbortIfRector::class,
|
||||
AddExtendsAnnotationToModelFactoriesRector::class,
|
||||
AddGenericReturnTypeToRelationsRector::class,
|
||||
AddMockConsoleOutputFalseToConsoleTestsRector::class,
|
||||
AnonymousMigrationsRector::class,
|
||||
AppEnvironmentComparisonToParameterRector::class,
|
||||
AssertSeeToAssertSeeHtmlRector::class,
|
||||
AssertStatusToAssertMethodRector::class,
|
||||
AvoidNegatedCollectionContainsOrDoesntContainRector::class,
|
||||
AvoidNegatedCollectionFilterOrRejectRector::class,
|
||||
CarbonSetTestNowToTravelToRector::class,
|
||||
DatabaseExpressionCastsToMethodCallRector::class,
|
||||
DatabaseExpressionToStringToMethodCallRector::class,
|
||||
DispatchNonShouldQueueToDispatchSyncRector::class,
|
||||
DispatchToHelperFunctionsRector::class,
|
||||
// Core Rector Rules
|
||||
SequentialAssignmentsToPipeOperatorRector::class,
|
||||
NestedFuncCallsToPipeOperatorRector::class,
|
||||
MbStrContainsRector::class,
|
||||
|
||||
// Laravel Rector Rules
|
||||
EmptyToBlankAndFilledFuncRector::class,
|
||||
EnvVariableToEnvHelperRector::class,
|
||||
FactoryApplyingStatesRector::class,
|
||||
FactoryDefinitionRector::class,
|
||||
FactoryFuncCallToStaticCallRector::class,
|
||||
HelperFuncCallToFacadeClassRector::class,
|
||||
JsonCallToExplicitJsonCallRector::class,
|
||||
LumenRoutesStringActionToUsesArrayRector::class,
|
||||
LumenRoutesStringMiddlewareToArrayRector::class,
|
||||
MigrateToSimplifiedAttributeRector::class,
|
||||
NotFilledBlankFuncCallToBlankFilledFuncCallRector::class,
|
||||
NowFuncWithStartOfDayMethodCallToTodayFuncRector::class,
|
||||
OptionalToNullsafeOperatorRector::class,
|
||||
PropertyDeferToDeferrableProviderToRector::class,
|
||||
Redirect301ToPermanentRedirectRector::class,
|
||||
RedirectBackToBackHelperRector::class,
|
||||
RedirectRouteToToRouteHelperRector::class,
|
||||
RefactorBlueprintGeometryColumnsRector::class,
|
||||
RemoveDumpDataDeadCodeRector::class,
|
||||
ConfigToTypedConfigMethodCallRector::class,
|
||||
RemoveModelPropertyFromFactoriesRector::class,
|
||||
RemoveRedundantValueCallsRector::class,
|
||||
RemoveRedundantWithCallsRector::class,
|
||||
ReplaceAssertTimesSendWithAssertSentTimesRector::class,
|
||||
ReplaceExpectsMethodsInTestsRector::class,
|
||||
ReplaceFakerInstanceWithHelperRector::class,
|
||||
ReplaceWithoutJobsEventsAndNotificationsWithFacadeFakeRector::class,
|
||||
ReportIfRector::class,
|
||||
RequestStaticValidateToInjectRector::class,
|
||||
RequestVariablesToRequestFacadeRector::class,
|
||||
ResponseHelperCallToJsonResponseRector::class,
|
||||
ReverseConditionableMethodCallRector::class,
|
||||
ServerVariableToRequestFacadeRector::class,
|
||||
SessionVariableToSessionFacadeRector::class,
|
||||
SleepFuncToSleepStaticCallRector::class,
|
||||
SubStrToStartsWithOrEndsWithStaticMethodCallRector::class,
|
||||
ThrowIfRector::class,
|
||||
TypeHintTappableCallRector::class,
|
||||
UnaliasCollectionMethodsRector::class,
|
||||
UnifyModelDatesWithCastsRector::class,
|
||||
UseComponentPropertyWithinCommandsRector::class,
|
||||
ValidationRuleArrayStringValueToArrayRector::class,
|
||||
])
|
||||
->withConfiguredRule(RemoveDumpDataDeadCodeRector::class, [
|
||||
'dd',
|
||||
|
|
|
|||
2
storage/rector/.gitignore
vendored
Normal file
2
storage/rector/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
*
|
||||
!.gitignore
|
||||
|
|
@ -14,12 +14,14 @@ arch('App')
|
|||
->expect('App')
|
||||
->not->toBeEnums()
|
||||
->ignoring('App\Enums')
|
||||
->not->toImplement(Throwable::class)
|
||||
->ignoring('App\Exceptions')
|
||||
->not->toExtend(\Illuminate\Database\Eloquent\Model::class)
|
||||
->ignoring('App\Models')
|
||||
->not->toExtend(\Illuminate\Foundation\Http\FormRequest::class)
|
||||
->ignoring('App\Http\Requests')
|
||||
->not->toExtend(\Illuminate\Http\Resources\Json\JsonResource::class)
|
||||
->ignoring('App\Http\Resources')
|
||||
->not->toExtend(\Illuminate\Http\Resources\Json\ResourceCollection::class)
|
||||
->ignoring('App\Http\Resources')
|
||||
->not->toExtend(\Illuminate\Console\Command::class)
|
||||
->ignoring('App\Console\Commands')
|
||||
->not->toExtend(\Illuminate\Mail\Mailable::class)
|
||||
|
|
@ -28,29 +30,33 @@ arch('App')
|
|||
->ignoring('App\Notifications')
|
||||
->not->toExtend(\Illuminate\Support\ServiceProvider::class)
|
||||
->ignoring('App\Providers')
|
||||
->not->toHaveSuffix('ServiceProvider')
|
||||
->ignoring('App\Providers')
|
||||
->not->toHaveSuffix('Controller')
|
||||
->ignoring('App\Http\Controllers')
|
||||
->not->toImplement(Throwable::class)
|
||||
->ignoring('App\Exceptions')
|
||||
->not->toImplement(\Illuminate\Contracts\Queue\ShouldQueue::class)
|
||||
->ignoring('App\Jobs')
|
||||
->not->toUseTrait(\Illuminate\Foundation\Bus\Dispatchable::class)
|
||||
->ignoring('App\Jobs')
|
||||
->not->toExtend(\Illuminate\Http\Resources\Json\JsonResource::class)
|
||||
->ignoring('App\Http\Resources')
|
||||
->not->toExtend(\Illuminate\Http\Resources\Json\ResourceCollection::class)
|
||||
->ignoring('App\Http\Resources')
|
||||
->not->toUseTrait(\Illuminate\Queue\SerializesModels::class)
|
||||
->ignoring('App\Events');
|
||||
->ignoring('App\Events')
|
||||
->not->toHaveSuffix('Controller')
|
||||
->ignoring('App\Http\Controllers')
|
||||
->not->toHaveSuffix('ServiceProvider')
|
||||
->ignoring('App\Providers');
|
||||
|
||||
arch('Actions')
|
||||
->expect('App\Actions')
|
||||
->toBeClasses()
|
||||
arch('Contracts')
|
||||
->expect('App\Contracts')
|
||||
->toBeInterfaces()
|
||||
->toExtendNothing()
|
||||
->toImplementNothing()
|
||||
->not->toHavePublicMethodsBesides(['handle'])
|
||||
->toHaveLineCountLessThan(250)
|
||||
->toHaveSuffix('Action');
|
||||
->toHaveLineCountLessThan(100);
|
||||
|
||||
arch('Attributes')
|
||||
->expect('App\Attributes')
|
||||
->toBeClasses()
|
||||
->toHaveMethod(method: 'resolve')
|
||||
->toHaveAttribute('Attribute')
|
||||
->toImplement(\Illuminate\Contracts\Container\ContextualAttribute::class)
|
||||
->toHaveLineCountLessThan(100);
|
||||
|
||||
arch('Concerns')
|
||||
->expect('App\Concerns')
|
||||
|
|
@ -60,21 +66,13 @@ arch('Concerns')
|
|||
->toHaveLineCountLessThan(100)
|
||||
->toHavePrefix('Has');
|
||||
|
||||
arch('Commands')
|
||||
->expect('App\Console\Commands')
|
||||
->toBeClasses()
|
||||
->toExtend(\Illuminate\Console\Command::class)
|
||||
->toImplementNothing()
|
||||
->not->toHavePublicMethodsBesides(['handle'])
|
||||
->toHaveLineCountLessThan(150)
|
||||
->toHaveSuffix('Command');
|
||||
|
||||
arch('Contracts')
|
||||
->expect('App\Contracts')
|
||||
->toBeInterfaces()
|
||||
arch('Traits')
|
||||
->expect('App\Traits')
|
||||
->toBeTraits()
|
||||
->toExtendNothing()
|
||||
->toImplementNothing()
|
||||
->toHaveLineCountLessThan(100);
|
||||
->toHaveLineCountLessThan(100)
|
||||
->toHavePrefix('Has');
|
||||
|
||||
arch('Enums')
|
||||
->expect('App\Enums')
|
||||
|
|
@ -84,21 +82,6 @@ arch('Enums')
|
|||
->toImplementNothing()
|
||||
->toHaveLineCountLessThan(80);
|
||||
|
||||
arch('Features')
|
||||
->expect('App\Features')
|
||||
->toBeClasses()
|
||||
->ignoring('App\Features\Concerns')
|
||||
->toHaveMethod('resolve')
|
||||
->toHaveLineCountLessThan(250);
|
||||
|
||||
arch('Events')
|
||||
->expect('App\Events')
|
||||
->toBeClasses()
|
||||
->toExtendNothing()
|
||||
->toUseTrait(\Illuminate\Queue\SerializesModels::class)
|
||||
->toHaveLineCountLessThan(100)
|
||||
->not->toHaveSuffix('Event');
|
||||
|
||||
arch('Exceptions')
|
||||
->expect('App\Exceptions')
|
||||
->toBeClasses()
|
||||
|
|
@ -112,6 +95,12 @@ arch('Http')
|
|||
->toBeClasses()
|
||||
->toOnlyBeUsedIn('App\Http');
|
||||
|
||||
arch('Middleware')
|
||||
->expect('App\Http\Middleware')
|
||||
->toBeClasses()
|
||||
->toHaveMethod('handle')
|
||||
->toHaveLineCountLessThan(150);
|
||||
|
||||
arch('Controllers')
|
||||
->expect('App\Http\Controllers')
|
||||
->toBeClasses()
|
||||
|
|
@ -121,17 +110,11 @@ arch('Controllers')
|
|||
->ignoring('App\Http\Controllers\Api')
|
||||
->toHaveSuffix('Controller');
|
||||
|
||||
arch('Middleware')
|
||||
->expect('App\Http\Middleware')
|
||||
->toBeClasses()
|
||||
->not->toHavePublicMethodsBesides(['handle'])
|
||||
->toHaveLineCountLessThan(150);
|
||||
|
||||
arch('Requests')
|
||||
->expect('App\Http\Requests')
|
||||
->toBeClasses()
|
||||
->toHaveMethod(method: 'rules')
|
||||
->toExtend(\Illuminate\Foundation\Http\FormRequest::class)
|
||||
->toHaveMethod('rules')
|
||||
->toOnlyBeUsedIn('App\Http\Controllers')
|
||||
->toHaveLineCountLessThan(150)
|
||||
->toHaveSuffix('Request');
|
||||
|
|
@ -144,20 +127,52 @@ arch('Resources')
|
|||
->toHaveLineCountLessThan(150)
|
||||
->toHaveSuffix('Resource');
|
||||
|
||||
arch('Jobs')
|
||||
->expect('App\Jobs')
|
||||
arch('Actions')
|
||||
->expect('App\Actions')
|
||||
->toBeClasses()
|
||||
->toImplement(\Illuminate\Contracts\Queue\ShouldQueue::class)
|
||||
->toUseTrait(\Illuminate\Foundation\Bus\Dispatchable::class)
|
||||
->not->toHavePublicMethodsBesides(['handle'])
|
||||
->toExtendNothing()
|
||||
->toImplementNothing()
|
||||
->toHaveLineCountLessThan(250)
|
||||
->toHaveSuffix('Job');
|
||||
->not->toHaveSuffix('Action');
|
||||
|
||||
arch('Services')
|
||||
->expect('App\Services')
|
||||
->toBeClasses()
|
||||
->toHaveLineCountLessThan(250)
|
||||
->toHaveSuffix('Service');
|
||||
|
||||
arch('Events')
|
||||
->expect('App\Events')
|
||||
->toBeClasses()
|
||||
->toExtendNothing()
|
||||
->toUseTrait(\Illuminate\Queue\SerializesModels::class)
|
||||
->toHaveLineCountLessThan(100)
|
||||
->not->toHaveSuffix('Event');
|
||||
|
||||
arch('Listeners')
|
||||
->expect('App\Listeners')
|
||||
->toBeClasses()
|
||||
->not->toHavePublicMethodsBesides(['__construct', 'handle'])
|
||||
->toHaveLineCountLessThan(150);
|
||||
->toHaveLineCountLessThan(100);
|
||||
|
||||
arch('Commands')
|
||||
->expect('App\Console\Commands')
|
||||
->toBeClasses()
|
||||
->not->toHavePublicMethodsBesides(['handle'])
|
||||
->toExtend(\Illuminate\Console\Command::class)
|
||||
->toImplementNothing()
|
||||
->toHaveLineCountLessThan(150)
|
||||
->toHaveSuffix('Command');
|
||||
|
||||
arch('Jobs')
|
||||
->expect('App\Jobs')
|
||||
->toBeClasses()
|
||||
->not->toHavePublicMethodsBesides(['handle'])
|
||||
->toImplement(\Illuminate\Contracts\Queue\ShouldQueue::class)
|
||||
->toUseTrait(\Illuminate\Foundation\Bus\Dispatchable::class)
|
||||
->toHaveLineCountLessThan(250)
|
||||
->toHaveSuffix('Job');
|
||||
|
||||
arch('Mail')
|
||||
->expect('App\Mail')
|
||||
|
|
@ -166,20 +181,28 @@ arch('Mail')
|
|||
->toImplement(\Illuminate\Contracts\Queue\ShouldQueue::class)
|
||||
->toHaveLineCountLessThan(150);
|
||||
|
||||
arch('Models')
|
||||
->expect('App\Models')
|
||||
->toBeClasses()
|
||||
->toOnlyUse('Illuminate\Database')
|
||||
->not->toUseTrait(\Illuminate\Database\Eloquent\SoftDeletes::class)
|
||||
->toHaveLineCountLessThan(250)
|
||||
->not->toHaveSuffix('Model');
|
||||
|
||||
arch('Notifications')
|
||||
->expect('App\Notifications')
|
||||
->toBeClasses()
|
||||
->toExtend(\Illuminate\Notifications\Notification::class)
|
||||
->toHaveLineCountLessThan(150)
|
||||
->not->toHaveSuffix('Notification');
|
||||
->toHaveLineCountLessThan(200)
|
||||
->toHaveSuffix('Notification');
|
||||
|
||||
arch('Models')
|
||||
->expect('App\Models')
|
||||
->toBeClasses()
|
||||
->toExtend(\Illuminate\Database\Eloquent\Model::class)
|
||||
->not->toUseTrait(\Illuminate\Database\Eloquent\SoftDeletes::class)
|
||||
->toOnlyUse('Illuminate\Database')
|
||||
->toHaveLineCountLessThan(250)
|
||||
->not->toHaveSuffix('Model');
|
||||
|
||||
arch('Queries')
|
||||
->expect('App\Queries')
|
||||
->toBeClasses()
|
||||
->toExtend(\Illuminate\Database\Eloquent\Builder::class)
|
||||
->not->toHavePublicMethodsBesides(['__construct', 'builder'])
|
||||
->toHaveLineCountLessThan(150);
|
||||
|
||||
arch('Policies')
|
||||
->expect('App\Policies')
|
||||
|
|
@ -190,31 +213,11 @@ arch('Policies')
|
|||
arch('Providers')
|
||||
->expect('App\Providers')
|
||||
->toBeClasses()
|
||||
->toHaveSuffix('ServiceProvider')
|
||||
->toExtend(\Illuminate\Support\ServiceProvider::class)
|
||||
->not->toBeUsed()
|
||||
->toHaveLineCountLessThan(250);
|
||||
|
||||
arch('Queries')
|
||||
->expect('App\Queries')
|
||||
->toBeClasses()
|
||||
->toExtend(\Illuminate\Database\Eloquent\Builder::class)
|
||||
->not->toHavePublicMethodsBesides(['__construct', 'builder'])
|
||||
->toHaveLineCountLessThan(150);
|
||||
|
||||
arch('Services')
|
||||
->expect('App\Services')
|
||||
->toBeClasses()
|
||||
->toHaveSuffix('Service')
|
||||
->toHaveLineCountLessThan(250);
|
||||
|
||||
arch('Traits')
|
||||
->expect('App\Traits')
|
||||
->toBeTraits()
|
||||
->toExtendNothing()
|
||||
->toImplementNothing()
|
||||
->toHaveLineCountLessThan(100);
|
||||
->toHaveLineCountLessThan(250)
|
||||
->toHaveSuffix('ServiceProvider');
|
||||
|
||||
arch('Functions')
|
||||
->expect(['dd', 'ddd', 'dump', 'env', 'exit'])
|
||||
->expect(['dd', 'ddd', 'dump', 'env', 'exit', 'ray'])
|
||||
->not->toBeUsed();
|
||||
|
|
|
|||
Loading…
Reference in a new issue