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
|
node_modules
|
||||||
/vendor
|
/vendor
|
||||||
|
|
||||||
|
*.log
|
||||||
|
|
||||||
|
.ai
|
||||||
|
CLAUDE.md
|
||||||
/.cursor
|
/.cursor
|
||||||
/.fleet
|
/.fleet
|
||||||
/.idea
|
/.idea
|
||||||
|
/.junie
|
||||||
/.nova
|
/.nova
|
||||||
/.vscode
|
/.vscode
|
||||||
|
/.windsurfrules
|
||||||
/.zed
|
/.zed
|
||||||
|
|
||||||
*.log
|
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
|
*.swo
|
||||||
|
*.swp
|
||||||
|
|
||||||
*.sqlite*
|
*.sqlite*
|
||||||
|
|
||||||
/auth.json
|
/auth.json
|
||||||
|
|
@ -36,9 +43,12 @@ Homestead.yaml
|
||||||
/public/build
|
/public/build
|
||||||
/public/hot
|
/public/hot
|
||||||
/public/storage
|
/public/storage
|
||||||
|
/public/vendor
|
||||||
|
|
||||||
/storage/**
|
/storage/**
|
||||||
!/storage/**/
|
!/storage/**/
|
||||||
|
/storage/phpstan/**
|
||||||
|
/storage/rector/**
|
||||||
|
|
||||||
.git
|
.git
|
||||||
.gitattributes
|
.gitattributes
|
||||||
|
|
|
||||||
17
.env.example
17
.env.example
|
|
@ -4,7 +4,12 @@ APP_KEY=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_URL=http://localhost
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
APP_MAINTENANCE_DRIVER=file
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
# APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
# PHP_CLI_SERVER_WORKERS=4
|
# PHP_CLI_SERVER_WORKERS=4
|
||||||
|
|
||||||
|
|
@ -16,6 +21,11 @@ LOG_DEPRECATIONS_CHANNEL=null
|
||||||
LOG_LEVEL=debug
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
DB_CONNECTION=sqlite
|
DB_CONNECTION=sqlite
|
||||||
|
# DB_HOST=127.0.0.1
|
||||||
|
# DB_PORT=3306
|
||||||
|
# DB_DATABASE=laravel
|
||||||
|
# DB_USERNAME=root
|
||||||
|
# DB_PASSWORD=
|
||||||
|
|
||||||
SESSION_DRIVER=database
|
SESSION_DRIVER=database
|
||||||
SESSION_LIFETIME=120
|
SESSION_LIFETIME=120
|
||||||
|
|
@ -28,6 +38,7 @@ FILESYSTEM_DISK=local
|
||||||
QUEUE_CONNECTION=sync
|
QUEUE_CONNECTION=sync
|
||||||
|
|
||||||
CACHE_STORE=database
|
CACHE_STORE=database
|
||||||
|
# CACHE_PREFIX=
|
||||||
|
|
||||||
MEMCACHED_HOST=127.0.0.1
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
|
@ -45,4 +56,10 @@ MAIL_PASSWORD=null
|
||||||
MAIL_FROM_ADDRESS="hello@example.com"
|
MAIL_FROM_ADDRESS="hello@example.com"
|
||||||
MAIL_FROM_NAME="${APP_NAME}"
|
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}"
|
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
|
discussions: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: lock-threads
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lock-threads:
|
lock-threads:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||||
steps:
|
steps:
|
||||||
- name: Lock threads after 30 days of inactivity
|
- 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:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
issue-inactive-days: 30
|
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
|
issues: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: stale-threads
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
stale-threads:
|
stale-threads:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||||
steps:
|
steps:
|
||||||
- name: Manage stale threads (Issues & PRs)
|
- 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:
|
with:
|
||||||
stale-issue-message: |
|
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.
|
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:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: tests-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
composer-validate:
|
composer-validate:
|
||||||
name: Validate composer.json
|
name: Validate composer.json
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # https://github.com/actions/checkout/releases/tag/v6.0.0
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup PHP
|
- name: Setup PHP 8.5
|
||||||
uses: shivammathur/setup-php@v2
|
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # https://github.com/shivammathur/setup-php/releases/tag/2.36.0
|
||||||
with:
|
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
|
- name: Validate composer.json
|
||||||
run: composer validate --check-lock --strict
|
run: composer validate --check-lock --strict
|
||||||
|
|
||||||
composer-audit:
|
composer-audit:
|
||||||
name: Composer Audit
|
name: Composer Audit
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||||
needs: [composer-validate]
|
needs: [composer-validate]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # https://github.com/actions/checkout/releases/tag/v6.0.0
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
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
|
- name: Cache Composer packages
|
||||||
id: composer-cache
|
id: composer-cache
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # https://github.com/actions/cache/releases/tag/v4.3.0
|
||||||
with:
|
with:
|
||||||
path: /vendor
|
path: /vendor
|
||||||
key: php-${{ hashFiles('composer.lock') }}
|
key: php-${{ hashFiles('composer.lock') }}
|
||||||
|
|
@ -55,39 +61,40 @@ jobs:
|
||||||
|
|
||||||
bun-audit:
|
bun-audit:
|
||||||
name: Bun Audit
|
name: Bun Audit
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||||
needs: [composer-validate]
|
needs: [composer-validate]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- 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
|
- 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:
|
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
|
- name: Run Bun audit
|
||||||
run: bun audit --frozen-lockfile
|
run: bun audit --frozen-lockfile
|
||||||
|
|
||||||
test:
|
test:
|
||||||
name: Tests
|
name: Tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04 # https://github.com/actions/runner-images
|
||||||
needs: [composer-audit, bun-audit]
|
needs: [composer-audit, bun-audit]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # https://github.com/actions/checkout/releases/tag/v6.0.0
|
||||||
|
|
||||||
- name: Setup PHP with Xdebug
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
with:
|
||||||
php-version: "8.4"
|
persist-credentials: false
|
||||||
coverage: xdebug
|
|
||||||
|
|
||||||
# - name: Install aspell
|
- name: Setup PHP 8.5 with Xdebug
|
||||||
# run: sudo apt-get update && sudo apt-get install -y aspell aspell-en
|
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
|
- name: Cache Composer packages
|
||||||
id: composer-cache
|
id: composer-cache
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # https://github.com/actions/cache/releases/tag/v4.3.0
|
||||||
with:
|
with:
|
||||||
path: /vendor
|
path: /vendor
|
||||||
key: php-${{ hashFiles('composer.lock') }}
|
key: php-${{ hashFiles('composer.lock') }}
|
||||||
|
|
|
||||||
22
.gitignore
vendored
22
.gitignore
vendored
|
|
@ -2,7 +2,7 @@
|
||||||
.env.*
|
.env.*
|
||||||
!.env.testing
|
!.env.testing
|
||||||
!.env.example
|
!.env.example
|
||||||
!.env.development.example
|
!.env.local.example
|
||||||
!.env.production.example
|
!.env.production.example
|
||||||
|
|
||||||
.bash_history
|
.bash_history
|
||||||
|
|
@ -13,18 +13,25 @@
|
||||||
node_modules
|
node_modules
|
||||||
/vendor
|
/vendor
|
||||||
|
|
||||||
|
*.log
|
||||||
|
|
||||||
|
.ai
|
||||||
|
CLAUDE.md
|
||||||
/.cursor
|
/.cursor
|
||||||
/.fleet
|
/.fleet
|
||||||
/.idea
|
/.idea
|
||||||
|
/.junie
|
||||||
/.nova
|
/.nova
|
||||||
/.vscode
|
/.vscode
|
||||||
|
/.windsurfrules
|
||||||
/.zed
|
/.zed
|
||||||
|
|
||||||
*.log
|
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
|
*.swo
|
||||||
|
*.swp
|
||||||
|
|
||||||
*.sqlite*
|
*.sqlite*
|
||||||
|
|
||||||
/auth.json
|
/auth.json
|
||||||
|
|
@ -35,11 +42,14 @@ Thumbs.db
|
||||||
Homestead.json
|
Homestead.json
|
||||||
Homestead.yaml
|
Homestead.yaml
|
||||||
|
|
||||||
/public/build/
|
/public/build
|
||||||
/public/hot/
|
/public/hot
|
||||||
/public/storage/
|
/public/storage
|
||||||
|
/public/vendor
|
||||||
|
|
||||||
/storage/**
|
/storage/**
|
||||||
!/storage/app
|
!/storage/app
|
||||||
!/storage/framework
|
!/storage/framework
|
||||||
!/storage/logs
|
!/storage/logs
|
||||||
|
!/storage/phpstan
|
||||||
|
!/storage/rector
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ final class AppServiceProvider extends ServiceProvider
|
||||||
*/
|
*/
|
||||||
private function configureHttps(): void
|
private function configureHttps(): void
|
||||||
{
|
{
|
||||||
if (App::isProduction() && (bool) config('app.force_https')) {
|
if (App::isProduction() && config()->boolean('app.force_https')) {
|
||||||
URL::forceScheme('https');
|
URL::forceScheme('https');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -85,6 +85,7 @@ final class AppServiceProvider extends ServiceProvider
|
||||||
if (! App::isProduction()) {
|
if (! App::isProduction()) {
|
||||||
Model::preventLazyLoading();
|
Model::preventLazyLoading();
|
||||||
}
|
}
|
||||||
|
|
||||||
Model::preventSilentlyDiscardingAttributes();
|
Model::preventSilentlyDiscardingAttributes();
|
||||||
Model::preventAccessingMissingAttributes();
|
Model::preventAccessingMissingAttributes();
|
||||||
|
|
||||||
|
|
|
||||||
50
bun.lock
50
bun.lock
|
|
@ -9,7 +9,7 @@
|
||||||
"concurrently": "^9.2.1",
|
"concurrently": "^9.2.1",
|
||||||
"laravel-vite-plugin": "^2.0.1",
|
"laravel-vite-plugin": "^2.0.1",
|
||||||
"tailwindcss": "^4.1.17",
|
"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=="],
|
"@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=="],
|
"@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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"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",
|
"$schema": "https://getcomposer.org/schema.json",
|
||||||
"name": "coollabsio/coolify",
|
"name": "coollabsio/coolify",
|
||||||
"type": "project",
|
"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",
|
"homepage": "https://coolify.io",
|
||||||
"keywords": [
|
|
||||||
"coolify",
|
|
||||||
"deployment",
|
|
||||||
"self-hosted",
|
|
||||||
"open-source",
|
|
||||||
"docker",
|
|
||||||
"podman"
|
|
||||||
],
|
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.4",
|
"php": "^8.5",
|
||||||
"laravel/framework": "^12.9.2",
|
"laravel/framework": "^12.40.2",
|
||||||
"laravel/tinker": "^2.10.1"
|
"laravel/tinker": "^2.10.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"driftingly/rector-laravel": "^2.0.4",
|
"driftingly/rector-laravel": "^2.1.4",
|
||||||
"fakerphp/faker": "^1.24.1",
|
"fakerphp/faker": "^1.24.1",
|
||||||
"larastan/larastan": "^3.4.0",
|
"larastan/larastan": "^3.8.0",
|
||||||
"laravel/pail": "^1.2.2",
|
"laravel/pail": "^1.2.4",
|
||||||
"laravel/pint": "^1.22.0",
|
"laravel/pint": "^1.26.0",
|
||||||
"mockery/mockery": "^1.6.12",
|
"mockery/mockery": "^1.6.12",
|
||||||
"nunomaduro/collision": "^8.8",
|
"nunomaduro/collision": "^8.8.3",
|
||||||
"peckphp/peck": "^0.1.3",
|
"pestphp/pest": "^4.1.6",
|
||||||
"pestphp/pest": "^3.8.2",
|
"pestphp/pest-plugin-laravel": "^4.0.0",
|
||||||
"pestphp/pest-plugin-laravel": "^3.2",
|
"pestphp/pest-plugin-type-coverage": "^4.0.3",
|
||||||
"pestphp/pest-plugin-type-coverage": "^3.5.1",
|
"phpstan/phpstan-deprecation-rules": "^2.0.3",
|
||||||
"phpstan/phpstan-deprecation-rules": "^2.0.1",
|
"phpstan/phpstan-strict-rules": "^2.0.7",
|
||||||
"phpstan/phpstan-strict-rules": "^2.0.4",
|
"rector/rector": "^2.2.10",
|
||||||
"rector/rector": "^2.0.11",
|
"spatie/laravel-ray": "^1.43.1"
|
||||||
"spatie/laravel-ray": "^1.40.2"
|
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
|
@ -48,6 +40,19 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"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": [
|
"post-autoload-dump": [
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||||
"@php artisan package:discover --ansi"
|
"@php artisan package:discover --ansi"
|
||||||
|
|
@ -55,32 +60,22 @@
|
||||||
"post-update-cmd": [
|
"post-update-cmd": [
|
||||||
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
|
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
|
||||||
],
|
],
|
||||||
"post-root-package-install": [
|
"post-install-cmd": [
|
||||||
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
|
||||||
],
|
],
|
||||||
"post-create-project-cmd": [
|
"pre-package-uninstall": [
|
||||||
"@php artisan key:generate --ansi",
|
"Illuminate\\Foundation\\ComposerScripts::prePackageUninstall"
|
||||||
"@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"
|
|
||||||
],
|
],
|
||||||
"refactor": "rector",
|
"refactor": "rector",
|
||||||
"format": "pint",
|
"format": "pint --parallel",
|
||||||
"lint": "phpstan --memory-limit=1G",
|
"lint": "phpstan --memory-limit=2G --ansi",
|
||||||
"test": [
|
"test": [
|
||||||
"@php artisan config:clear --ansi",
|
"@php artisan config:clear --ansi",
|
||||||
"XDEBUG_MODE=coverage pest --parallel --coverage --exactly=100"
|
"XDEBUG_MODE=coverage pest --parallel --coverage --exactly=100"
|
||||||
],
|
],
|
||||||
"test:refactor": "rector --dry-run",
|
"test:refactor": "rector --dry-run",
|
||||||
"test:format": "pint --test",
|
"test:format": "pint --parallel --test",
|
||||||
"test:typos": "peck",
|
"test:type-coverage": "pest --parallel --type-coverage --memory-limit=2G --min=100",
|
||||||
"test:type-coverage": "pest --parallel --type-coverage --memory-limit=1G --min=100",
|
|
||||||
"test:all": [
|
"test:all": [
|
||||||
"@test:refactor",
|
"@test:refactor",
|
||||||
"@test:format",
|
"@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,
|
'serialize' => false,
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'session' => [
|
||||||
|
'driver' => 'session',
|
||||||
|
'key' => env('SESSION_CACHE_KEY', '_cache'),
|
||||||
|
],
|
||||||
|
|
||||||
'database' => [
|
'database' => [
|
||||||
'driver' => 'database',
|
'driver' => 'database',
|
||||||
'connection' => env('DB_CACHE_CONNECTION'),
|
'connection' => env('DB_CACHE_CONNECTION'),
|
||||||
|
|
|
||||||
|
|
@ -36,11 +36,13 @@ return [
|
||||||
'url' => env('DB_URL'),
|
'url' => env('DB_URL'),
|
||||||
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
|
'prefix_indexes' => null,
|
||||||
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
||||||
'busy_timeout' => null,
|
'busy_timeout' => null,
|
||||||
'journal_mode' => null,
|
'journal_mode' => null,
|
||||||
'synchronous' => null,
|
'synchronous' => null,
|
||||||
'transaction_mode' => 'DEFERRED',
|
'transaction_mode' => 'DEFERRED',
|
||||||
|
'pragmas' => [],
|
||||||
],
|
],
|
||||||
|
|
||||||
'mysql' => [
|
'mysql' => [
|
||||||
|
|
@ -59,7 +61,7 @@ return [
|
||||||
'strict' => true,
|
'strict' => true,
|
||||||
'engine' => null,
|
'engine' => null,
|
||||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
'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,
|
'strict' => true,
|
||||||
'engine' => null,
|
'engine' => null,
|
||||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
'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),
|
'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),
|
'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.
|
* 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.
|
* The host used to communicate with the Ray app.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "coolify",
|
"$schema": "https://www.schemastore.org/package.json",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
"concurrently": "^9.2.1",
|
"concurrently": "^9.2.1",
|
||||||
"laravel-vite-plugin": "^2.0.1",
|
"laravel-vite-plugin": "^2.0.1",
|
||||||
"tailwindcss": "^4.1.17",
|
"tailwindcss": "^4.1.17",
|
||||||
"vite": "^7.2.2"
|
"vite": "^7.2.6"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"preset": "laravel",
|
|
||||||
"ignore": {
|
|
||||||
"words": [
|
|
||||||
"php"
|
|
||||||
],
|
|
||||||
"paths": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
23
phpstan.neon
23
phpstan.neon
|
|
@ -1,23 +1,30 @@
|
||||||
includes:
|
includes:
|
||||||
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
|
- 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/larastan/larastan/extension.neon
|
||||||
- vendor/nesbot/carbon/extension.neon
|
- vendor/nesbot/carbon/extension.neon
|
||||||
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
|
|
||||||
- vendor/phpstan/phpstan-strict-rules/rules.neon
|
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
level: max
|
level: max
|
||||||
checkModelProperties: true
|
|
||||||
checkOctaneCompatibility: true
|
# Additional Core PHPStan Rules
|
||||||
checkMissingCallableSignature: true
|
|
||||||
checkTooWideReturnTypesInProtectedAndPublicMethods: true
|
checkTooWideReturnTypesInProtectedAndPublicMethods: true
|
||||||
rememberPossiblyImpureFunctionValues: false
|
|
||||||
checkBenevolentUnionTypes: true
|
checkBenevolentUnionTypes: true
|
||||||
reportPossiblyNonexistentGeneralArrayOffset: true
|
reportPossiblyNonexistentGeneralArrayOffset: true
|
||||||
reportPossiblyNonexistentConstantArrayOffset: true
|
reportPossiblyNonexistentConstantArrayOffset: true
|
||||||
reportAlwaysTrueInLastCondition: true
|
|
||||||
reportAnyTypeWideningInVarTag: true
|
reportAnyTypeWideningInVarTag: true
|
||||||
|
checkMissingCallableSignature: true
|
||||||
tipsOfTheDay: false
|
tipsOfTheDay: false
|
||||||
|
|
||||||
|
# Additional Larastan Rules
|
||||||
|
noUnnecessaryEnumerableToArrayCalls: true
|
||||||
|
checkModelProperties: true
|
||||||
|
checkOctaneCompatibility: true
|
||||||
|
checkModelMethodVisibility: true
|
||||||
|
checkAuthCallsWhenInRequestScope: true
|
||||||
|
checkConfigTypes: true
|
||||||
|
|
||||||
tmpDir: ./storage/phpstan
|
tmpDir: ./storage/phpstan
|
||||||
paths:
|
paths:
|
||||||
- app
|
- app
|
||||||
|
|
@ -32,4 +39,4 @@ parameters:
|
||||||
strictRules:
|
strictRules:
|
||||||
strictArrayFilter: false
|
strictArrayFilter: false
|
||||||
ignoreErrors:
|
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": {
|
"heredoc_indentation": {
|
||||||
"indentation": "same_as_start"
|
"indentation": "same_as_start"
|
||||||
},
|
},
|
||||||
|
"indentation_type": false,
|
||||||
"logical_operators": true,
|
"logical_operators": true,
|
||||||
"long_to_shorthand_operator": true,
|
"long_to_shorthand_operator": true,
|
||||||
"mb_str_functions": true,
|
"mb_str_functions": true,
|
||||||
|
|
@ -67,8 +68,13 @@
|
||||||
"modernize_stripos": true
|
"modernize_stripos": true
|
||||||
},
|
},
|
||||||
"modernize_types_casting": true,
|
"modernize_types_casting": true,
|
||||||
|
"modifier_keywords": true,
|
||||||
"multiline_comment_opening_closing": true,
|
"multiline_comment_opening_closing": true,
|
||||||
|
"multiline_promoted_properties": {
|
||||||
|
"minimum_number_of_parameters": 3
|
||||||
|
},
|
||||||
"multiline_string_to_heredoc": true,
|
"multiline_string_to_heredoc": true,
|
||||||
|
"new_expression_parentheses": true,
|
||||||
"no_empty_comment": true,
|
"no_empty_comment": true,
|
||||||
"no_extra_blank_lines": {
|
"no_extra_blank_lines": {
|
||||||
"tokens": [
|
"tokens": [
|
||||||
|
|
@ -113,6 +119,7 @@
|
||||||
},
|
},
|
||||||
"no_useless_else": true,
|
"no_useless_else": true,
|
||||||
"no_useless_nullsafe_operator": true,
|
"no_useless_nullsafe_operator": true,
|
||||||
|
"no_useless_printf": true,
|
||||||
"no_useless_sprintf": true,
|
"no_useless_sprintf": true,
|
||||||
"no_whitespace_before_comma_in_array": {
|
"no_whitespace_before_comma_in_array": {
|
||||||
"after_heredoc": true
|
"after_heredoc": true
|
||||||
|
|
@ -162,6 +169,7 @@
|
||||||
"phpdoc_no_alias_tag": true,
|
"phpdoc_no_alias_tag": true,
|
||||||
"phpdoc_no_empty_return": true,
|
"phpdoc_no_empty_return": true,
|
||||||
"phpdoc_return_self_reference": true,
|
"phpdoc_return_self_reference": true,
|
||||||
|
"phpdoc_scalar": true,
|
||||||
"phpdoc_tag_casing": true,
|
"phpdoc_tag_casing": true,
|
||||||
"phpdoc_trim_consecutive_blank_line_separation": true,
|
"phpdoc_trim_consecutive_blank_line_separation": true,
|
||||||
"phpdoc_types_order": {
|
"phpdoc_types_order": {
|
||||||
|
|
@ -175,6 +183,7 @@
|
||||||
"self_accessor": true,
|
"self_accessor": true,
|
||||||
"set_type_to_cast": true,
|
"set_type_to_cast": true,
|
||||||
"single_line_throw": true,
|
"single_line_throw": true,
|
||||||
|
"single_space_around_construct": true,
|
||||||
"single_trait_insert_per_statement": false,
|
"single_trait_insert_per_statement": false,
|
||||||
"strict_comparison": true,
|
"strict_comparison": true,
|
||||||
"strict_param": true,
|
"strict_param": true,
|
||||||
|
|
@ -191,13 +200,8 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"type_declaration_spaces": {
|
"type_declaration_spaces": {
|
||||||
"elements": [
|
"elements": ["constant", "function", "property"]
|
||||||
"constant",
|
|
||||||
"function",
|
|
||||||
"property"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"visibility_required": true,
|
|
||||||
"whitespace_after_comma_in_array": {
|
"whitespace_after_comma_in_array": {
|
||||||
"ensure_single_space": true
|
"ensure_single_space": true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
140
rector.php
140
rector.php
|
|
@ -2,65 +2,20 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Rector\Caching\ValueObject\Storage\FileCacheStorage;
|
||||||
use Rector\Config\RectorConfig;
|
use Rector\Config\RectorConfig;
|
||||||
|
use Rector\Php80\Rector\NotIdentical\MbStrContainsRector;
|
||||||
use Rector\Php83\Rector\ClassMethod\AddOverrideAttributeToOverriddenMethodsRector;
|
use Rector\Php83\Rector\ClassMethod\AddOverrideAttributeToOverriddenMethodsRector;
|
||||||
use RectorLaravel\Rector\ArrayDimFetch\EnvVariableToEnvHelperRector;
|
use Rector\Php85\Rector\Expression\NestedFuncCallsToPipeOperatorRector;
|
||||||
use RectorLaravel\Rector\ArrayDimFetch\RequestVariablesToRequestFacadeRector;
|
use Rector\Php85\Rector\StmtsAwareInterface\SequentialAssignmentsToPipeOperatorRector;
|
||||||
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 RectorLaravel\Rector\Class_\RemoveModelPropertyFromFactoriesRector;
|
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\Empty_\EmptyToBlankAndFilledFuncRector;
|
||||||
use RectorLaravel\Rector\Expr\AppEnvironmentComparisonToParameterRector;
|
use RectorLaravel\Rector\FuncCall\ConfigToTypedConfigMethodCallRector;
|
||||||
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\RemoveDumpDataDeadCodeRector;
|
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\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\Rector\StaticCall\RequestStaticValidateToInjectRector;
|
||||||
|
use RectorLaravel\Set\LaravelSetList;
|
||||||
|
use RectorLaravel\Set\LaravelSetProvider;
|
||||||
|
|
||||||
return RectorConfig::configure()
|
return RectorConfig::configure()
|
||||||
->withPaths([
|
->withPaths([
|
||||||
|
|
@ -77,78 +32,47 @@ return RectorConfig::configure()
|
||||||
__DIR__.'/bootstrap/cache',
|
__DIR__.'/bootstrap/cache',
|
||||||
AddOverrideAttributeToOverriddenMethodsRector::class,
|
AddOverrideAttributeToOverriddenMethodsRector::class,
|
||||||
])
|
])
|
||||||
|
->withCache(__DIR__.'/storage/rector', FileCacheStorage::class)
|
||||||
->withPhpSets()
|
->withPhpSets()
|
||||||
|
->withAttributesSets()
|
||||||
->withPreparedSets(
|
->withPreparedSets(
|
||||||
deadCode: true,
|
deadCode: true,
|
||||||
codeQuality: true,
|
codeQuality: true,
|
||||||
codingStyle: true,
|
codingStyle: true,
|
||||||
typeDeclarations: true,
|
typeDeclarations: true,
|
||||||
|
typeDeclarationDocblocks: true,
|
||||||
privatization: true,
|
privatization: true,
|
||||||
naming: true,
|
|
||||||
instanceOf: true,
|
instanceOf: true,
|
||||||
earlyReturn: true,
|
earlyReturn: true,
|
||||||
carbon: true,
|
carbon: true,
|
||||||
rectorPreset: 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([
|
->withRules([
|
||||||
AbortIfRector::class,
|
// Core Rector Rules
|
||||||
AddExtendsAnnotationToModelFactoriesRector::class,
|
SequentialAssignmentsToPipeOperatorRector::class,
|
||||||
AddGenericReturnTypeToRelationsRector::class,
|
NestedFuncCallsToPipeOperatorRector::class,
|
||||||
AddMockConsoleOutputFalseToConsoleTestsRector::class,
|
MbStrContainsRector::class,
|
||||||
AnonymousMigrationsRector::class,
|
|
||||||
AppEnvironmentComparisonToParameterRector::class,
|
// Laravel Rector Rules
|
||||||
AssertSeeToAssertSeeHtmlRector::class,
|
|
||||||
AssertStatusToAssertMethodRector::class,
|
|
||||||
AvoidNegatedCollectionContainsOrDoesntContainRector::class,
|
|
||||||
AvoidNegatedCollectionFilterOrRejectRector::class,
|
|
||||||
CarbonSetTestNowToTravelToRector::class,
|
|
||||||
DatabaseExpressionCastsToMethodCallRector::class,
|
|
||||||
DatabaseExpressionToStringToMethodCallRector::class,
|
|
||||||
DispatchNonShouldQueueToDispatchSyncRector::class,
|
|
||||||
DispatchToHelperFunctionsRector::class,
|
|
||||||
EmptyToBlankAndFilledFuncRector::class,
|
EmptyToBlankAndFilledFuncRector::class,
|
||||||
EnvVariableToEnvHelperRector::class,
|
ConfigToTypedConfigMethodCallRector::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,
|
|
||||||
RemoveModelPropertyFromFactoriesRector::class,
|
RemoveModelPropertyFromFactoriesRector::class,
|
||||||
RemoveRedundantValueCallsRector::class,
|
|
||||||
RemoveRedundantWithCallsRector::class,
|
|
||||||
ReplaceAssertTimesSendWithAssertSentTimesRector::class,
|
|
||||||
ReplaceExpectsMethodsInTestsRector::class,
|
|
||||||
ReplaceFakerInstanceWithHelperRector::class,
|
|
||||||
ReplaceWithoutJobsEventsAndNotificationsWithFacadeFakeRector::class,
|
|
||||||
ReportIfRector::class,
|
|
||||||
RequestStaticValidateToInjectRector::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, [
|
->withConfiguredRule(RemoveDumpDataDeadCodeRector::class, [
|
||||||
'dd',
|
'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')
|
->expect('App')
|
||||||
->not->toBeEnums()
|
->not->toBeEnums()
|
||||||
->ignoring('App\Enums')
|
->ignoring('App\Enums')
|
||||||
->not->toImplement(Throwable::class)
|
|
||||||
->ignoring('App\Exceptions')
|
|
||||||
->not->toExtend(\Illuminate\Database\Eloquent\Model::class)
|
->not->toExtend(\Illuminate\Database\Eloquent\Model::class)
|
||||||
->ignoring('App\Models')
|
->ignoring('App\Models')
|
||||||
->not->toExtend(\Illuminate\Foundation\Http\FormRequest::class)
|
->not->toExtend(\Illuminate\Foundation\Http\FormRequest::class)
|
||||||
->ignoring('App\Http\Requests')
|
->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)
|
->not->toExtend(\Illuminate\Console\Command::class)
|
||||||
->ignoring('App\Console\Commands')
|
->ignoring('App\Console\Commands')
|
||||||
->not->toExtend(\Illuminate\Mail\Mailable::class)
|
->not->toExtend(\Illuminate\Mail\Mailable::class)
|
||||||
|
|
@ -28,29 +30,33 @@ arch('App')
|
||||||
->ignoring('App\Notifications')
|
->ignoring('App\Notifications')
|
||||||
->not->toExtend(\Illuminate\Support\ServiceProvider::class)
|
->not->toExtend(\Illuminate\Support\ServiceProvider::class)
|
||||||
->ignoring('App\Providers')
|
->ignoring('App\Providers')
|
||||||
->not->toHaveSuffix('ServiceProvider')
|
->not->toImplement(Throwable::class)
|
||||||
->ignoring('App\Providers')
|
->ignoring('App\Exceptions')
|
||||||
->not->toHaveSuffix('Controller')
|
|
||||||
->ignoring('App\Http\Controllers')
|
|
||||||
->not->toImplement(\Illuminate\Contracts\Queue\ShouldQueue::class)
|
->not->toImplement(\Illuminate\Contracts\Queue\ShouldQueue::class)
|
||||||
->ignoring('App\Jobs')
|
->ignoring('App\Jobs')
|
||||||
->not->toUseTrait(\Illuminate\Foundation\Bus\Dispatchable::class)
|
->not->toUseTrait(\Illuminate\Foundation\Bus\Dispatchable::class)
|
||||||
->ignoring('App\Jobs')
|
->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)
|
->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')
|
arch('Contracts')
|
||||||
->expect('App\Actions')
|
->expect('App\Contracts')
|
||||||
->toBeClasses()
|
->toBeInterfaces()
|
||||||
->toExtendNothing()
|
->toExtendNothing()
|
||||||
->toImplementNothing()
|
->toImplementNothing()
|
||||||
->not->toHavePublicMethodsBesides(['handle'])
|
->toHaveLineCountLessThan(100);
|
||||||
->toHaveLineCountLessThan(250)
|
|
||||||
->toHaveSuffix('Action');
|
arch('Attributes')
|
||||||
|
->expect('App\Attributes')
|
||||||
|
->toBeClasses()
|
||||||
|
->toHaveMethod(method: 'resolve')
|
||||||
|
->toHaveAttribute('Attribute')
|
||||||
|
->toImplement(\Illuminate\Contracts\Container\ContextualAttribute::class)
|
||||||
|
->toHaveLineCountLessThan(100);
|
||||||
|
|
||||||
arch('Concerns')
|
arch('Concerns')
|
||||||
->expect('App\Concerns')
|
->expect('App\Concerns')
|
||||||
|
|
@ -60,21 +66,13 @@ arch('Concerns')
|
||||||
->toHaveLineCountLessThan(100)
|
->toHaveLineCountLessThan(100)
|
||||||
->toHavePrefix('Has');
|
->toHavePrefix('Has');
|
||||||
|
|
||||||
arch('Commands')
|
arch('Traits')
|
||||||
->expect('App\Console\Commands')
|
->expect('App\Traits')
|
||||||
->toBeClasses()
|
->toBeTraits()
|
||||||
->toExtend(\Illuminate\Console\Command::class)
|
|
||||||
->toImplementNothing()
|
|
||||||
->not->toHavePublicMethodsBesides(['handle'])
|
|
||||||
->toHaveLineCountLessThan(150)
|
|
||||||
->toHaveSuffix('Command');
|
|
||||||
|
|
||||||
arch('Contracts')
|
|
||||||
->expect('App\Contracts')
|
|
||||||
->toBeInterfaces()
|
|
||||||
->toExtendNothing()
|
->toExtendNothing()
|
||||||
->toImplementNothing()
|
->toImplementNothing()
|
||||||
->toHaveLineCountLessThan(100);
|
->toHaveLineCountLessThan(100)
|
||||||
|
->toHavePrefix('Has');
|
||||||
|
|
||||||
arch('Enums')
|
arch('Enums')
|
||||||
->expect('App\Enums')
|
->expect('App\Enums')
|
||||||
|
|
@ -84,21 +82,6 @@ arch('Enums')
|
||||||
->toImplementNothing()
|
->toImplementNothing()
|
||||||
->toHaveLineCountLessThan(80);
|
->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')
|
arch('Exceptions')
|
||||||
->expect('App\Exceptions')
|
->expect('App\Exceptions')
|
||||||
->toBeClasses()
|
->toBeClasses()
|
||||||
|
|
@ -112,6 +95,12 @@ arch('Http')
|
||||||
->toBeClasses()
|
->toBeClasses()
|
||||||
->toOnlyBeUsedIn('App\Http');
|
->toOnlyBeUsedIn('App\Http');
|
||||||
|
|
||||||
|
arch('Middleware')
|
||||||
|
->expect('App\Http\Middleware')
|
||||||
|
->toBeClasses()
|
||||||
|
->toHaveMethod('handle')
|
||||||
|
->toHaveLineCountLessThan(150);
|
||||||
|
|
||||||
arch('Controllers')
|
arch('Controllers')
|
||||||
->expect('App\Http\Controllers')
|
->expect('App\Http\Controllers')
|
||||||
->toBeClasses()
|
->toBeClasses()
|
||||||
|
|
@ -121,17 +110,11 @@ arch('Controllers')
|
||||||
->ignoring('App\Http\Controllers\Api')
|
->ignoring('App\Http\Controllers\Api')
|
||||||
->toHaveSuffix('Controller');
|
->toHaveSuffix('Controller');
|
||||||
|
|
||||||
arch('Middleware')
|
|
||||||
->expect('App\Http\Middleware')
|
|
||||||
->toBeClasses()
|
|
||||||
->not->toHavePublicMethodsBesides(['handle'])
|
|
||||||
->toHaveLineCountLessThan(150);
|
|
||||||
|
|
||||||
arch('Requests')
|
arch('Requests')
|
||||||
->expect('App\Http\Requests')
|
->expect('App\Http\Requests')
|
||||||
->toBeClasses()
|
->toBeClasses()
|
||||||
|
->toHaveMethod(method: 'rules')
|
||||||
->toExtend(\Illuminate\Foundation\Http\FormRequest::class)
|
->toExtend(\Illuminate\Foundation\Http\FormRequest::class)
|
||||||
->toHaveMethod('rules')
|
|
||||||
->toOnlyBeUsedIn('App\Http\Controllers')
|
->toOnlyBeUsedIn('App\Http\Controllers')
|
||||||
->toHaveLineCountLessThan(150)
|
->toHaveLineCountLessThan(150)
|
||||||
->toHaveSuffix('Request');
|
->toHaveSuffix('Request');
|
||||||
|
|
@ -144,20 +127,52 @@ arch('Resources')
|
||||||
->toHaveLineCountLessThan(150)
|
->toHaveLineCountLessThan(150)
|
||||||
->toHaveSuffix('Resource');
|
->toHaveSuffix('Resource');
|
||||||
|
|
||||||
arch('Jobs')
|
arch('Actions')
|
||||||
->expect('App\Jobs')
|
->expect('App\Actions')
|
||||||
->toBeClasses()
|
->toBeClasses()
|
||||||
->toImplement(\Illuminate\Contracts\Queue\ShouldQueue::class)
|
|
||||||
->toUseTrait(\Illuminate\Foundation\Bus\Dispatchable::class)
|
|
||||||
->not->toHavePublicMethodsBesides(['handle'])
|
->not->toHavePublicMethodsBesides(['handle'])
|
||||||
|
->toExtendNothing()
|
||||||
|
->toImplementNothing()
|
||||||
->toHaveLineCountLessThan(250)
|
->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')
|
arch('Listeners')
|
||||||
->expect('App\Listeners')
|
->expect('App\Listeners')
|
||||||
->toBeClasses()
|
->toBeClasses()
|
||||||
->not->toHavePublicMethodsBesides(['__construct', 'handle'])
|
->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')
|
arch('Mail')
|
||||||
->expect('App\Mail')
|
->expect('App\Mail')
|
||||||
|
|
@ -166,20 +181,28 @@ arch('Mail')
|
||||||
->toImplement(\Illuminate\Contracts\Queue\ShouldQueue::class)
|
->toImplement(\Illuminate\Contracts\Queue\ShouldQueue::class)
|
||||||
->toHaveLineCountLessThan(150);
|
->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')
|
arch('Notifications')
|
||||||
->expect('App\Notifications')
|
->expect('App\Notifications')
|
||||||
->toBeClasses()
|
->toBeClasses()
|
||||||
->toExtend(\Illuminate\Notifications\Notification::class)
|
->toExtend(\Illuminate\Notifications\Notification::class)
|
||||||
->toHaveLineCountLessThan(150)
|
->toHaveLineCountLessThan(200)
|
||||||
->not->toHaveSuffix('Notification');
|
->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')
|
arch('Policies')
|
||||||
->expect('App\Policies')
|
->expect('App\Policies')
|
||||||
|
|
@ -190,31 +213,11 @@ arch('Policies')
|
||||||
arch('Providers')
|
arch('Providers')
|
||||||
->expect('App\Providers')
|
->expect('App\Providers')
|
||||||
->toBeClasses()
|
->toBeClasses()
|
||||||
->toHaveSuffix('ServiceProvider')
|
|
||||||
->toExtend(\Illuminate\Support\ServiceProvider::class)
|
->toExtend(\Illuminate\Support\ServiceProvider::class)
|
||||||
->not->toBeUsed()
|
->not->toBeUsed()
|
||||||
->toHaveLineCountLessThan(250);
|
->toHaveLineCountLessThan(250)
|
||||||
|
->toHaveSuffix('ServiceProvider');
|
||||||
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);
|
|
||||||
|
|
||||||
arch('Functions')
|
arch('Functions')
|
||||||
->expect(['dd', 'ddd', 'dump', 'env', 'exit'])
|
->expect(['dd', 'ddd', 'dump', 'env', 'exit', 'ray'])
|
||||||
->not->toBeUsed();
|
->not->toBeUsed();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue