diff --git a/app/Console/Commands/Ping.php b/app/Console/Commands/Ping.php index f81b25aa..4e31bfb5 100644 --- a/app/Console/Commands/Ping.php +++ b/app/Console/Commands/Ping.php @@ -31,6 +31,8 @@ class Ping extends Command /** * Execute the console command. + * + * @psalm-return 0|1 */ public function handle(): int { diff --git a/app/Exceptions/QuickBooksFault.php b/app/Exceptions/QuickBooksFault.php index 96af4dd3..dedcd82e 100644 --- a/app/Exceptions/QuickBooksFault.php +++ b/app/Exceptions/QuickBooksFault.php @@ -11,6 +11,8 @@ class QuickBooksFault extends Exception { /** * Construct a new instance. + * + * @psalm-mutation-free */ public function __construct(IPPFault $fault) { diff --git a/app/HorizonHealthCheck.php b/app/HorizonHealthCheck.php index d11b649e..7f545f7a 100644 --- a/app/HorizonHealthCheck.php +++ b/app/HorizonHealthCheck.php @@ -22,6 +22,11 @@ class HorizonHealthCheck extends HealthCheck */ protected string $name = 'horizon'; + /** + * Construct a new instance of this health check. + * + * @psalm-mutation-free + */ public function __construct(private readonly MasterSupervisorRepository $supervisorRepository) { } diff --git a/app/Http/Controllers/EngagePurchaseRequestController.php b/app/Http/Controllers/EngagePurchaseRequestController.php index 2f0a7c35..c7de668d 100644 --- a/app/Http/Controllers/EngagePurchaseRequestController.php +++ b/app/Http/Controllers/EngagePurchaseRequestController.php @@ -109,6 +109,11 @@ public function update(EngagePurchaseRequest $purchaseRequest, UpdateEngagePurch return response()->json($purchaseRequest); } + /** + * Simplify the finance stage name. + * + * @psalm-pure + */ private static function cleanFinanceStageName(string $input): string { if (str_contains($input, ':')) { @@ -137,7 +142,7 @@ private static function getUserByEmailAddress(string $email): User $result = Sentry::wrapWithChildSpan( 'ldap.get_user_by_username', - static fn (): array => Container::getDefaultConnection() + static fn (): array|\LdapRecord\Query\Collection => Container::getDefaultConnection() ->query() ->where('uid', '=', $parts[0]) ->select('sn', 'givenName', 'primaryUid', 'mail') diff --git a/app/Http/Controllers/WorkerController.php b/app/Http/Controllers/WorkerController.php index 0fad9834..de65753c 100644 --- a/app/Http/Controllers/WorkerController.php +++ b/app/Http/Controllers/WorkerController.php @@ -45,7 +45,7 @@ public function __invoke(UpsertWorker $request): JsonResponse static function () use ($email): ?string { $result = Sentry::wrapWithChildSpan( 'ldap.get_username_by_email', - static fn (): array => Container::getDefaultConnection() + static fn (): array|\LdapRecord\Query\Collection => Container::getDefaultConnection() ->query() ->where('mail', '=', $email) ->select('primaryUid') diff --git a/app/Http/Requests/UpdateEngagePurchaseRequest.php b/app/Http/Requests/UpdateEngagePurchaseRequest.php index c576f94e..0aae0d02 100644 --- a/app/Http/Requests/UpdateEngagePurchaseRequest.php +++ b/app/Http/Requests/UpdateEngagePurchaseRequest.php @@ -10,8 +10,10 @@ class UpdateEngagePurchaseRequest extends FormRequest { /** * Determine if the user is authorized to make this request. + * + * @psalm-pure */ - public function authorize(): bool + public function authorize(): true { return true; } @@ -20,6 +22,8 @@ public function authorize(): bool * Get the validation rules that apply to the request. * * @return array> + * + * @psalm-pure */ public function rules(): array { diff --git a/app/Http/Requests/UpdateExpenseReport.php b/app/Http/Requests/UpdateExpenseReport.php index 08ec2b44..d89e1232 100644 --- a/app/Http/Requests/UpdateExpenseReport.php +++ b/app/Http/Requests/UpdateExpenseReport.php @@ -10,8 +10,10 @@ class UpdateExpenseReport extends FormRequest { /** * Determine if the user is authorized to make this request. + * + * @psalm-pure */ - public function authorize(): bool + public function authorize(): true { return true; } @@ -20,6 +22,8 @@ public function authorize(): bool * Get the validation rules that apply to the request. * * @return array> + * + * @psalm-pure */ public function rules(): array { diff --git a/app/Http/Requests/UpdateExpenseReportLine.php b/app/Http/Requests/UpdateExpenseReportLine.php index 4787802c..8c650dcb 100644 --- a/app/Http/Requests/UpdateExpenseReportLine.php +++ b/app/Http/Requests/UpdateExpenseReportLine.php @@ -10,8 +10,10 @@ class UpdateExpenseReportLine extends FormRequest { /** * Determine if the user is authorized to make this request. + * + * @psalm-pure */ - public function authorize(): bool + public function authorize(): true { return true; } @@ -20,6 +22,8 @@ public function authorize(): bool * Get the validation rules that apply to the request. * * @return array> + * + * @psalm-pure */ public function rules(): array { diff --git a/app/Http/Requests/UploadEngageAttachment.php b/app/Http/Requests/UploadEngageAttachment.php index f942b804..b9150c57 100644 --- a/app/Http/Requests/UploadEngageAttachment.php +++ b/app/Http/Requests/UploadEngageAttachment.php @@ -10,8 +10,10 @@ class UploadEngageAttachment extends FormRequest { /** * Determine if the user is authorized to make this request. + * + * @psalm-pure */ - public function authorize(): bool + public function authorize(): true { return true; } @@ -20,6 +22,8 @@ public function authorize(): bool * Get the validation rules that apply to the request. * * @return array> + * + * @psalm-pure */ public function rules(): array { diff --git a/app/Http/Requests/UploadWorkdayAttachment.php b/app/Http/Requests/UploadWorkdayAttachment.php index 7303c8d6..6fa2866c 100644 --- a/app/Http/Requests/UploadWorkdayAttachment.php +++ b/app/Http/Requests/UploadWorkdayAttachment.php @@ -10,8 +10,10 @@ class UploadWorkdayAttachment extends FormRequest { /** * Determine if the user is authorized to make this request. + * + * @psalm-pure */ - public function authorize(): bool + public function authorize(): true { return true; } @@ -20,6 +22,8 @@ public function authorize(): bool * Get the validation rules that apply to the request. * * @return array> + * + * @psalm-pure */ public function rules(): array { diff --git a/app/Http/Requests/UpsertEngagePurchaseRequests.php b/app/Http/Requests/UpsertEngagePurchaseRequests.php index e74d7076..ac98ae6f 100644 --- a/app/Http/Requests/UpsertEngagePurchaseRequests.php +++ b/app/Http/Requests/UpsertEngagePurchaseRequests.php @@ -10,8 +10,10 @@ class UpsertEngagePurchaseRequests extends FormRequest { /** * Determine if the user is authorized to make this request. + * + * @psalm-pure */ - public function authorize(): bool + public function authorize(): true { return true; } @@ -20,6 +22,8 @@ public function authorize(): bool * Get the validation rules that apply to the request. * * @return array> + * + * @psalm-pure */ public function rules(): array { diff --git a/app/Http/Requests/UpsertExpenseReports.php b/app/Http/Requests/UpsertExpenseReports.php index ce225cc2..39fcf5d6 100644 --- a/app/Http/Requests/UpsertExpenseReports.php +++ b/app/Http/Requests/UpsertExpenseReports.php @@ -10,8 +10,10 @@ class UpsertExpenseReports extends FormRequest { /** * Determine if the user is authorized to make this request. + * + * @psalm-pure */ - public function authorize(): bool + public function authorize(): true { return true; } @@ -20,6 +22,8 @@ public function authorize(): bool * Get the validation rules that apply to the request. * * @return array> + * + * @psalm-pure */ public function rules(): array { diff --git a/app/Http/Requests/UpsertExternalCommitteeMember.php b/app/Http/Requests/UpsertExternalCommitteeMember.php index fcf3e984..fea12d63 100644 --- a/app/Http/Requests/UpsertExternalCommitteeMember.php +++ b/app/Http/Requests/UpsertExternalCommitteeMember.php @@ -16,8 +16,10 @@ class UpsertExternalCommitteeMember extends FormRequest { /** * Determine if the user is authorized to make this request. + * + * @psalm-pure */ - public function authorize(): bool + public function authorize(): true { return true; } @@ -26,6 +28,8 @@ public function authorize(): bool * Get the validation rules that apply to the request. * * @return array> + * + * @psalm-pure */ public function rules(): array { diff --git a/app/Http/Requests/UpsertWorker.php b/app/Http/Requests/UpsertWorker.php index cb8ad845..a6ed84c4 100644 --- a/app/Http/Requests/UpsertWorker.php +++ b/app/Http/Requests/UpsertWorker.php @@ -10,8 +10,10 @@ class UpsertWorker extends FormRequest { /** * Determine if the user is authorized to make this request. + * + * @psalm-pure */ - public function authorize(): bool + public function authorize(): true { return true; } @@ -20,6 +22,8 @@ public function authorize(): bool * Get the validation rules that apply to the request. * * @return array> + * + * @psalm-pure */ public function rules(): array { diff --git a/app/Jobs/AttachAccessWorkdayPermission.php b/app/Jobs/AttachAccessWorkdayPermission.php index f427b244..21d3b6ac 100644 --- a/app/Jobs/AttachAccessWorkdayPermission.php +++ b/app/Jobs/AttachAccessWorkdayPermission.php @@ -24,6 +24,8 @@ class AttachAccessWorkdayPermission implements ShouldBeUnique, ShouldQueue /** * Create a new job instance. + * + * @psalm-mutation-free */ public function __construct(private readonly User $user) { @@ -52,6 +54,8 @@ public function handle(): void /** * The unique ID of the job. + * + * @psalm-mutation-free */ public function uniqueId(): string { diff --git a/app/Jobs/CancelExpensePayments.php b/app/Jobs/CancelExpensePayments.php index c23bb859..a99a2308 100644 --- a/app/Jobs/CancelExpensePayments.php +++ b/app/Jobs/CancelExpensePayments.php @@ -19,6 +19,8 @@ class CancelExpensePayments implements ShouldBeUnique, ShouldQueue /** * Execute the job. + * + * @psalm-mutation-free */ public function handle(): void { diff --git a/app/Jobs/GenerateThumbnail.php b/app/Jobs/GenerateThumbnail.php index b3b3b9a2..13ddb597 100644 --- a/app/Jobs/GenerateThumbnail.php +++ b/app/Jobs/GenerateThumbnail.php @@ -22,6 +22,8 @@ class GenerateThumbnail implements ShouldBeUnique, ShouldQueue /** * Create a new job instance. + * + * @psalm-mutation-free */ public function __construct(private readonly string $original_file_path) { diff --git a/app/Jobs/MatchAttachment.php b/app/Jobs/MatchAttachment.php index 21be59f3..4354c9db 100644 --- a/app/Jobs/MatchAttachment.php +++ b/app/Jobs/MatchAttachment.php @@ -32,6 +32,8 @@ class MatchAttachment implements ShouldBeUnique, ShouldQueue /** * Create a new job instance. + * + * @psalm-mutation-free */ public function __construct(private readonly Attachment $attachment) { @@ -73,6 +75,8 @@ public function handle(): void /** * The unique ID of the job. + * + * @psalm-mutation-free */ public function uniqueId(): string { diff --git a/app/Jobs/MatchBankTransaction.php b/app/Jobs/MatchBankTransaction.php index fca996ab..56fdd5b2 100644 --- a/app/Jobs/MatchBankTransaction.php +++ b/app/Jobs/MatchBankTransaction.php @@ -29,6 +29,8 @@ class MatchBankTransaction implements ShouldBeUnique, ShouldQueue /** * Create a new job instance. + * + * @psalm-mutation-free */ public function __construct(private readonly BankTransaction $bankTransaction) { @@ -78,6 +80,8 @@ public function handle(): void /** * The unique ID of the job. + * + * @psalm-mutation-free */ public function uniqueId(): string { diff --git a/app/Jobs/MatchExpenseReport.php b/app/Jobs/MatchExpenseReport.php index 020f538f..f026aa4e 100644 --- a/app/Jobs/MatchExpenseReport.php +++ b/app/Jobs/MatchExpenseReport.php @@ -35,6 +35,8 @@ class MatchExpenseReport implements ShouldBeUnique, ShouldQueue /** * Create a new job instance. + * + * @psalm-mutation-free */ public function __construct(private readonly ExpenseReport $expenseReport) { @@ -106,6 +108,8 @@ static function (Attachment $attachment, int $key) use (&$engage_request_numbers /** * The unique ID of the job. + * + * @psalm-mutation-free */ public function uniqueId(): string { diff --git a/app/Jobs/ProcessSensibleOutput.php b/app/Jobs/ProcessSensibleOutput.php index 75ab8765..aaad8496 100644 --- a/app/Jobs/ProcessSensibleOutput.php +++ b/app/Jobs/ProcessSensibleOutput.php @@ -35,6 +35,8 @@ class ProcessSensibleOutput implements ShouldQueue /** * Create a new job instance. + * + * @psalm-mutation-free */ public function __construct(private readonly EmailRequest $emailRequest) { @@ -79,6 +81,8 @@ public function handle(): void * Get a field value from Sensible or add a validation error to the array. * * @phan-suppress PhanTypeArraySuspiciousNullable + * + * @psalm-external-mutation-free */ private function getValueOrAddValidationError(string $field_name): string|float|int|null { diff --git a/app/Jobs/SubmitEmailRequestToSensible.php b/app/Jobs/SubmitEmailRequestToSensible.php index cfbdc855..1306ec9b 100644 --- a/app/Jobs/SubmitEmailRequestToSensible.php +++ b/app/Jobs/SubmitEmailRequestToSensible.php @@ -24,6 +24,8 @@ class SubmitEmailRequestToSensible implements ShouldBeUnique, ShouldQueue /** * Create a new job instance. + * + * @psalm-mutation-free */ public function __construct(private readonly EmailRequest $emailRequest) { @@ -73,6 +75,8 @@ public function handle(): void /** * The unique ID of the job. + * + * @psalm-mutation-free */ public function uniqueId(): string { diff --git a/app/Mail/EmailRequestProcessed.php b/app/Mail/EmailRequestProcessed.php index 5488897d..4421dd00 100644 --- a/app/Mail/EmailRequestProcessed.php +++ b/app/Mail/EmailRequestProcessed.php @@ -25,6 +25,8 @@ class EmailRequestProcessed extends Mailable implements ShouldQueue * Create a new message instance. * * @param array $validation_errors + * + * @psalm-mutation-free */ public function __construct(public readonly EmailRequest $email, public readonly array $validation_errors) { @@ -33,7 +35,7 @@ public function __construct(public readonly EmailRequest $email, public readonly /** * Build the message. */ - public function build(): self + public function build(): static { $this->to(config('services.treasurer_email_address'), config('services.treasurer_name')); diff --git a/app/Models/DocuSignEnvelope.php b/app/Models/DocuSignEnvelope.php index 372bb9a4..d9fae7fb 100644 --- a/app/Models/DocuSignEnvelope.php +++ b/app/Models/DocuSignEnvelope.php @@ -295,6 +295,8 @@ public function expenseReport(): BelongsTo /** * Get the sensible_extraction_url attribute to show this envelope in the Sensible UI. + * + * @psalm-mutation-free */ public function getSensibleExtractionUrlAttribute(): ?string { @@ -303,6 +305,11 @@ public function getSensibleExtractionUrlAttribute(): ?string : 'https://app.sensible.so/extraction/?e='.$this->sensible_extraction_uuid; } + /** + * Get the quickbooks_invoice_url attribute to show this envelope in QuickBooks Online. + * + * @psalm-mutation-free + */ public function getQuickbooksInvoiceUrlAttribute(): ?string { return $this->quickbooks_invoice_id === null diff --git a/app/Models/EmailRequest.php b/app/Models/EmailRequest.php index 94cde59a..ae5b5850 100644 --- a/app/Models/EmailRequest.php +++ b/app/Models/EmailRequest.php @@ -199,6 +199,8 @@ public function toSearchableArray(): array /** * Get the sensible_extraction_url attribute to show this request in the Sensible UI. + * + * @psalm-mutation-free */ public function getSensibleExtractionUrlAttribute(): ?string { @@ -207,6 +209,11 @@ public function getSensibleExtractionUrlAttribute(): ?string : 'https://app.sensible.so/extraction/?e='.$this->sensible_extraction_uuid; } + /** + * Get the quickbooks_invoice_url attribute to show this request in QuickBooks Online. + * + * @psalm-mutation-free + */ public function getQuickbooksInvoiceUrlAttribute(): ?string { return $this->quickbooks_invoice_id === null diff --git a/app/Models/EngagePurchaseRequest.php b/app/Models/EngagePurchaseRequest.php index 83092ff4..df4340fb 100644 --- a/app/Models/EngagePurchaseRequest.php +++ b/app/Models/EngagePurchaseRequest.php @@ -239,6 +239,11 @@ public function expenseReport(): BelongsTo return $this->belongsTo(ExpenseReport::class); } + /** + * Get the quickbooks_invoice_url attribute to show this request in QuickBooks Online. + * + * @psalm-mutation-free + */ public function getQuickbooksInvoiceUrlAttribute(): ?string { return $this->quickbooks_invoice_id === null @@ -246,6 +251,11 @@ public function getQuickbooksInvoiceUrlAttribute(): ?string : 'https://app.qbo.intuit.com/app/invoice?txnId='.$this->quickbooks_invoice_id; } + /** + * Get the engage_url attribute to show this request in Engage. + * + * @psalm-mutation-free + */ public function getEngageUrlAttribute(): ?string { return $this->engage_id === null @@ -274,6 +284,11 @@ public static function getPurchaseRequestNumberFromText(string $pdf_text): int return intval($collection->sole()); } + /** + * Fix spelling error in the step name. + * + * @psalm-pure + */ public static function fixStepSpelling(string $stepName): string { return $stepName === 'Submited to SOFO/CRC Accountant' ? 'Submitted to SOFO/CRC Accountant' : $stepName; diff --git a/app/Models/ExpensePayment.php b/app/Models/ExpensePayment.php index 58d1e378..9ca7712d 100644 --- a/app/Models/ExpensePayment.php +++ b/app/Models/ExpensePayment.php @@ -124,6 +124,11 @@ public function bankTransaction(): BelongsTo return $this->belongsTo(BankTransaction::class); } + /** + * Get the quickbooks_payment_url attribute to show this payment in QuickBooks Online. + * + * @psalm-mutation-free + */ public function getQuickbooksPaymentUrlAttribute(): ?string { return $this->quickbooks_payment_id === null diff --git a/app/Models/ExpenseReport.php b/app/Models/ExpenseReport.php index 40197e41..cbc52aab 100644 --- a/app/Models/ExpenseReport.php +++ b/app/Models/ExpenseReport.php @@ -208,6 +208,8 @@ public function emailRequests(): HasMany /** * Get the workday_url attribute to show this ECM in the Workday UI. + * + * @psalm-mutation-free */ public function getWorkdayUrlAttribute(): string { diff --git a/app/Models/ExternalCommitteeMember.php b/app/Models/ExternalCommitteeMember.php index 433deae4..31f918a7 100644 --- a/app/Models/ExternalCommitteeMember.php +++ b/app/Models/ExternalCommitteeMember.php @@ -117,6 +117,8 @@ public function expensePayments(): HasMany /** * Get the workday_url attribute to show this ECM in the Workday UI. + * + * @psalm-mutation-free */ public function getWorkdayUrlAttribute(): string { diff --git a/app/Models/FiscalYear.php b/app/Models/FiscalYear.php index bacbd775..2fac3746 100644 --- a/app/Models/FiscalYear.php +++ b/app/Models/FiscalYear.php @@ -103,11 +103,21 @@ public function expenseReports(): HasMany return $this->hasMany(ExpenseReport::class); } + /** + * Convert a Carbon date object to a FiscalYear model. + * + * @psalm-pure + */ public static function fromDate(Carbon $date): self { return self::where('ending_year', self::intFromDate($date))->sole(); } + /** + * Convert a Carbon date object to a fiscal year integer value. + * + * @psalm-pure + */ public static function intFromDate(Carbon $date): int { return $date->year + ($date->month < 7 ? 0 : 1); diff --git a/app/Models/FundingAllocation.php b/app/Models/FundingAllocation.php index 3783e774..a36b7fdd 100644 --- a/app/Models/FundingAllocation.php +++ b/app/Models/FundingAllocation.php @@ -116,6 +116,8 @@ public function fundingAllocationLines(): HasMany /** * Get the display name for this funding allocation. + * + * @psalm-external-mutation-free */ public function getNameAttribute(): string { @@ -125,6 +127,8 @@ public function getNameAttribute(): string /** * Get the type display name for this funding allocation. + * + * @psalm-external-mutation-free */ public function getTypeDisplayNameAttribute(): ?string { diff --git a/app/Models/FundingAllocationLine.php b/app/Models/FundingAllocationLine.php index a04feaa3..d0ebfc46 100644 --- a/app/Models/FundingAllocationLine.php +++ b/app/Models/FundingAllocationLine.php @@ -98,6 +98,8 @@ public function fundingAllocation(): BelongsTo /** * Get the display name for this funding allocation. + * + * @psalm-mutation-free */ public function getNameAttribute(): string { diff --git a/app/Models/User.php b/app/Models/User.php index 1e591b79..8d1dfcea 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -144,6 +144,8 @@ public function expenseReports(): HasMany /** * Get the name associated with the User. + * + * @psalm-mutation-free */ public function getNameAttribute(): string { @@ -152,6 +154,8 @@ public function getNameAttribute(): string /** * Get the workday_url attribute to show this Worker in the Workday UI. + * + * @psalm-mutation-free */ public function getWorkdayUrlAttribute(): ?string { diff --git a/app/Nova/BankTransaction.php b/app/Nova/BankTransaction.php index f47acb24..c9b1ca44 100644 --- a/app/Nova/BankTransaction.php +++ b/app/Nova/BankTransaction.php @@ -141,8 +141,8 @@ public function actions(NovaRequest $request): array ): bool => $request->user()->can('update-bank-transactions') ), MatchBankTransaction::make() - ->canSee(static fn (NovaRequest $request): bool => true) - ->canRun(static fn (NovaRequest $request, \App\Models\BankTransaction $bankTransaction): bool => true), + ->canSee(static fn (NovaRequest $request): true => true) + ->canRun(static fn (NovaRequest $request, \App\Models\BankTransaction $bankTransaction): true => true), ]; } diff --git a/app/Nova/ExpenseReport.php b/app/Nova/ExpenseReport.php index 7724eb89..7d5e8ed7 100644 --- a/app/Nova/ExpenseReport.php +++ b/app/Nova/ExpenseReport.php @@ -187,8 +187,8 @@ public function actions(NovaRequest $request): array { return [ MatchExpenseReport::make() - ->canSee(static fn (NovaRequest $request): bool => true) - ->canRun(static fn (NovaRequest $request, \App\Models\ExpenseReport $expenseReport): bool => true), + ->canSee(static fn (NovaRequest $request): true => true) + ->canRun(static fn (NovaRequest $request, \App\Models\ExpenseReport $expenseReport): true => true), ]; } diff --git a/app/Nova/Metrics/FiscalYearRanges.php b/app/Nova/Metrics/FiscalYearRanges.php index d604b0b5..4f4f57c8 100644 --- a/app/Nova/Metrics/FiscalYearRanges.php +++ b/app/Nova/Metrics/FiscalYearRanges.php @@ -6,6 +6,11 @@ use App\Models\FiscalYear; +/** + * Shared definition for metrics that can be meaningfully filtered by fiscal year. + * + * @psalm-immutable + */ trait FiscalYearRanges { /** diff --git a/app/Nova/User.php b/app/Nova/User.php index 2cb71eaf..b3794fd4 100644 --- a/app/Nova/User.php +++ b/app/Nova/User.php @@ -210,6 +210,8 @@ static function () use ($username): ?string { * Convert a Whitepages directory entry to a string. * * @param array> $entry + * + * @psalm-pure */ private static function whitepagesEntryToString(array $entry): string { diff --git a/app/Policies/AttachmentPolicy.php b/app/Policies/AttachmentPolicy.php index 436de53b..beb4d2d5 100644 --- a/app/Policies/AttachmentPolicy.php +++ b/app/Policies/AttachmentPolicy.php @@ -14,56 +14,70 @@ class AttachmentPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, Attachment $attachment): bool + public function view(User $user, Attachment $attachment): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, Attachment $attachment): bool + public function update(User $user, Attachment $attachment): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, Attachment $attachment): bool + public function delete(User $user, Attachment $attachment): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, Attachment $attachment): bool + public function restore(User $user, Attachment $attachment): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, Attachment $attachment): bool + public function forceDelete(User $user, Attachment $attachment): false { return false; } diff --git a/app/Policies/BankTransactionPolicy.php b/app/Policies/BankTransactionPolicy.php index 684f3b8b..168a2a37 100644 --- a/app/Policies/BankTransactionPolicy.php +++ b/app/Policies/BankTransactionPolicy.php @@ -14,56 +14,70 @@ class BankTransactionPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, BankTransaction $bankTransaction): bool + public function view(User $user, BankTransaction $bankTransaction): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, BankTransaction $bankTransaction): bool + public function update(User $user, BankTransaction $bankTransaction): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, BankTransaction $bankTransaction): bool + public function delete(User $user, BankTransaction $bankTransaction): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, BankTransaction $bankTransaction): bool + public function restore(User $user, BankTransaction $bankTransaction): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, BankTransaction $bankTransaction): bool + public function forceDelete(User $user, BankTransaction $bankTransaction): false { return false; } diff --git a/app/Policies/DocuSignEnvelopePolicy.php b/app/Policies/DocuSignEnvelopePolicy.php index b70f3c34..3fecca03 100644 --- a/app/Policies/DocuSignEnvelopePolicy.php +++ b/app/Policies/DocuSignEnvelopePolicy.php @@ -14,56 +14,70 @@ class DocuSignEnvelopePolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, DocuSignEnvelope $docuSignEnvelope): bool + public function view(User $user, DocuSignEnvelope $docuSignEnvelope): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, DocuSignEnvelope $docuSignEnvelope): bool + public function update(User $user, DocuSignEnvelope $docuSignEnvelope): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, DocuSignEnvelope $docuSignEnvelope): bool + public function delete(User $user, DocuSignEnvelope $docuSignEnvelope): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, DocuSignEnvelope $docuSignEnvelope): bool + public function restore(User $user, DocuSignEnvelope $docuSignEnvelope): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, DocuSignEnvelope $docuSignEnvelope): bool + public function forceDelete(User $user, DocuSignEnvelope $docuSignEnvelope): false { return false; } diff --git a/app/Policies/EmailRequestPolicy.php b/app/Policies/EmailRequestPolicy.php index 3aa09cd4..d69de75d 100644 --- a/app/Policies/EmailRequestPolicy.php +++ b/app/Policies/EmailRequestPolicy.php @@ -14,6 +14,8 @@ class EmailRequestPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ public function viewAny(User $user): true { @@ -22,6 +24,8 @@ public function viewAny(User $user): true /** * Determine whether the user can view the model. + * + * @psalm-pure */ public function view(User $user, EmailRequest $emailRequest): true { @@ -30,8 +34,10 @@ public function view(User $user, EmailRequest $emailRequest): true /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } @@ -62,12 +68,19 @@ public function restore(User $user, EmailRequest $emailRequest): bool /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ public function forceDelete(User $user, EmailRequest $emailRequest): false { return false; } + /** + * Determine whether the user can replicate the model. + * + * @psalm-pure + */ public function replicate(User $user, EmailRequest $emailRequest): false { return false; diff --git a/app/Policies/EngagePurchaseRequestPolicy.php b/app/Policies/EngagePurchaseRequestPolicy.php index b15c4438..af3804f5 100644 --- a/app/Policies/EngagePurchaseRequestPolicy.php +++ b/app/Policies/EngagePurchaseRequestPolicy.php @@ -14,56 +14,70 @@ class EngagePurchaseRequestPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, EngagePurchaseRequest $request): bool + public function view(User $user, EngagePurchaseRequest $request): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, EngagePurchaseRequest $request): bool + public function update(User $user, EngagePurchaseRequest $request): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, EngagePurchaseRequest $request): bool + public function delete(User $user, EngagePurchaseRequest $request): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, EngagePurchaseRequest $request): bool + public function restore(User $user, EngagePurchaseRequest $request): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, EngagePurchaseRequest $request): bool + public function forceDelete(User $user, EngagePurchaseRequest $request): false { return false; } diff --git a/app/Policies/ExpensePaymentPolicy.php b/app/Policies/ExpensePaymentPolicy.php index d3f4a61a..554c8870 100644 --- a/app/Policies/ExpensePaymentPolicy.php +++ b/app/Policies/ExpensePaymentPolicy.php @@ -14,56 +14,70 @@ class ExpensePaymentPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, ExpensePayment $expensePayment): bool + public function view(User $user, ExpensePayment $expensePayment): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, ExpensePayment $expensePayment): bool + public function update(User $user, ExpensePayment $expensePayment): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, ExpensePayment $expensePayment): bool + public function delete(User $user, ExpensePayment $expensePayment): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, ExpensePayment $expensePayment): bool + public function restore(User $user, ExpensePayment $expensePayment): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, ExpensePayment $expensePayment): bool + public function forceDelete(User $user, ExpensePayment $expensePayment): false { return false; } diff --git a/app/Policies/ExpenseReportLinePolicy.php b/app/Policies/ExpenseReportLinePolicy.php index d997f24c..c83650f5 100644 --- a/app/Policies/ExpenseReportLinePolicy.php +++ b/app/Policies/ExpenseReportLinePolicy.php @@ -14,56 +14,70 @@ class ExpenseReportLinePolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, ExpenseReportLine $expenseReportLine): bool + public function view(User $user, ExpenseReportLine $expenseReportLine): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, ExpenseReportLine $expenseReportLine): bool + public function update(User $user, ExpenseReportLine $expenseReportLine): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, ExpenseReportLine $expenseReportLine): bool + public function delete(User $user, ExpenseReportLine $expenseReportLine): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, ExpenseReportLine $expenseReportLine): bool + public function restore(User $user, ExpenseReportLine $expenseReportLine): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, ExpenseReportLine $expenseReportLine): bool + public function forceDelete(User $user, ExpenseReportLine $expenseReportLine): false { return false; } diff --git a/app/Policies/ExpenseReportPolicy.php b/app/Policies/ExpenseReportPolicy.php index 9357c09f..1c80334a 100644 --- a/app/Policies/ExpenseReportPolicy.php +++ b/app/Policies/ExpenseReportPolicy.php @@ -14,56 +14,70 @@ class ExpenseReportPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, ExpenseReport $expenseReport): bool + public function view(User $user, ExpenseReport $expenseReport): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, ExpenseReport $expenseReport): bool + public function update(User $user, ExpenseReport $expenseReport): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, ExpenseReport $expenseReport): bool + public function delete(User $user, ExpenseReport $expenseReport): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, ExpenseReport $expenseReport): bool + public function restore(User $user, ExpenseReport $expenseReport): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, ExpenseReport $expenseReport): bool + public function forceDelete(User $user, ExpenseReport $expenseReport): false { return false; } diff --git a/app/Policies/ExternalCommitteeMemberPolicy.php b/app/Policies/ExternalCommitteeMemberPolicy.php index f20b4a01..56cece3a 100644 --- a/app/Policies/ExternalCommitteeMemberPolicy.php +++ b/app/Policies/ExternalCommitteeMemberPolicy.php @@ -14,24 +14,30 @@ class ExternalCommitteeMemberPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, ExternalCommitteeMember $externalCommitteeMember): bool + public function view(User $user, ExternalCommitteeMember $externalCommitteeMember): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } @@ -46,24 +52,30 @@ public function update(User $user, ExternalCommitteeMember $externalCommitteeMem /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, ExternalCommitteeMember $externalCommitteeMember): bool + public function delete(User $user, ExternalCommitteeMember $externalCommitteeMember): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, ExternalCommitteeMember $externalCommitteeMember): bool + public function restore(User $user, ExternalCommitteeMember $externalCommitteeMember): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, ExternalCommitteeMember $externalCommitteeMember): bool + public function forceDelete(User $user, ExternalCommitteeMember $externalCommitteeMember): false { return false; } diff --git a/app/Policies/FiscalYearPolicy.php b/app/Policies/FiscalYearPolicy.php index 3657263a..6d674c16 100644 --- a/app/Policies/FiscalYearPolicy.php +++ b/app/Policies/FiscalYearPolicy.php @@ -14,16 +14,20 @@ class FiscalYearPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, FiscalYear $fiscalYear): bool + public function view(User $user, FiscalYear $fiscalYear): true { return true; } @@ -46,24 +50,30 @@ public function update(User $user, FiscalYear $fiscalYear): bool /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, FiscalYear $fiscalYear): bool + public function delete(User $user, FiscalYear $fiscalYear): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, FiscalYear $fiscalYear): bool + public function restore(User $user, FiscalYear $fiscalYear): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, FiscalYear $fiscalYear): bool + public function forceDelete(User $user, FiscalYear $fiscalYear): false { return false; } diff --git a/app/Policies/FundingAllocationLinePolicy.php b/app/Policies/FundingAllocationLinePolicy.php index ba56ab87..b65f918f 100644 --- a/app/Policies/FundingAllocationLinePolicy.php +++ b/app/Policies/FundingAllocationLinePolicy.php @@ -14,16 +14,20 @@ class FundingAllocationLinePolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, FundingAllocationLine $fundingAllocationLine): bool + public function view(User $user, FundingAllocationLine $fundingAllocationLine): true { return true; } @@ -62,8 +66,10 @@ public function restore(User $user, FundingAllocationLine $fundingAllocationLine /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, FundingAllocationLine $fundingAllocationLine): bool + public function forceDelete(User $user, FundingAllocationLine $fundingAllocationLine): false { return false; } diff --git a/app/Policies/FundingAllocationPolicy.php b/app/Policies/FundingAllocationPolicy.php index ab740370..7ad3cd61 100644 --- a/app/Policies/FundingAllocationPolicy.php +++ b/app/Policies/FundingAllocationPolicy.php @@ -14,16 +14,20 @@ class FundingAllocationPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, FundingAllocation $fundingAllocation): bool + public function view(User $user, FundingAllocation $fundingAllocation): true { return true; } @@ -62,8 +66,10 @@ public function restore(User $user, FundingAllocation $fundingAllocation): bool /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, FundingAllocation $fundingAllocation): bool + public function forceDelete(User $user, FundingAllocation $fundingAllocation): false { return false; } diff --git a/app/Policies/PermissionPolicy.php b/app/Policies/PermissionPolicy.php index 727e815b..4577b93c 100644 --- a/app/Policies/PermissionPolicy.php +++ b/app/Policies/PermissionPolicy.php @@ -14,56 +14,70 @@ class PermissionPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, Permission $permission): bool + public function view(User $user, Permission $permission): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, Permission $permission): bool + public function update(User $user, Permission $permission): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, Permission $permission): bool + public function delete(User $user, Permission $permission): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, Permission $permission): bool + public function restore(User $user, Permission $permission): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, Permission $permission): bool + public function forceDelete(User $user, Permission $permission): false { return false; } diff --git a/app/Policies/RolePolicy.php b/app/Policies/RolePolicy.php index a6125aa2..121c95b0 100644 --- a/app/Policies/RolePolicy.php +++ b/app/Policies/RolePolicy.php @@ -14,56 +14,70 @@ class RolePolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $user): bool + public function viewAny(User $user): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $user, Role $role): bool + public function view(User $user, Role $role): true { return true; } /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, Role $role): bool + public function update(User $user, Role $role): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, Role $role): bool + public function delete(User $user, Role $role): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, Role $role): bool + public function restore(User $user, Role $role): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, Role $role): bool + public function forceDelete(User $user, Role $role): false { return false; } diff --git a/app/Policies/UserPolicy.php b/app/Policies/UserPolicy.php index fad49a4a..dc6e6bc2 100644 --- a/app/Policies/UserPolicy.php +++ b/app/Policies/UserPolicy.php @@ -13,16 +13,20 @@ class UserPolicy /** * Determine whether the user can view any models. + * + * @psalm-pure */ - public function viewAny(User $actor): bool + public function viewAny(User $actor): true { return true; } /** * Determine whether the user can view the model. + * + * @psalm-pure */ - public function view(User $actor, User $target): bool + public function view(User $actor, User $target): true { return true; } @@ -45,24 +49,30 @@ public function update(User $actor, User $target): bool /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $actor, User $target): bool + public function delete(User $actor, User $target): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $actor, User $target): bool + public function restore(User $actor, User $target): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $actor, User $target): bool + public function forceDelete(User $actor, User $target): false { return false; } diff --git a/app/Policies/WebhookCallPolicy.php b/app/Policies/WebhookCallPolicy.php index cfa7678c..7f8bca48 100644 --- a/app/Policies/WebhookCallPolicy.php +++ b/app/Policies/WebhookCallPolicy.php @@ -30,40 +30,50 @@ public function view(User $user, WebhookCall $webhookCall): bool /** * Determine whether the user can create models. + * + * @psalm-pure */ - public function create(User $user): bool + public function create(User $user): false { return false; } /** * Determine whether the user can update the model. + * + * @psalm-pure */ - public function update(User $user, WebhookCall $webhookCall): bool + public function update(User $user, WebhookCall $webhookCall): false { return false; } /** * Determine whether the user can delete the model. + * + * @psalm-pure */ - public function delete(User $user, WebhookCall $webhookCall): bool + public function delete(User $user, WebhookCall $webhookCall): false { return false; } /** * Determine whether the user can restore the model. + * + * @psalm-pure */ - public function restore(User $user, WebhookCall $webhookCall): bool + public function restore(User $user, WebhookCall $webhookCall): false { return false; } /** * Determine whether the user can permanently delete the model. + * + * @psalm-pure */ - public function forceDelete(User $user, WebhookCall $webhookCall): bool + public function forceDelete(User $user, WebhookCall $webhookCall): false { return false; } diff --git a/app/Traits/GetMorphClassStatic.php b/app/Traits/GetMorphClassStatic.php index ac2e7b2b..9f9cfef3 100644 --- a/app/Traits/GetMorphClassStatic.php +++ b/app/Traits/GetMorphClassStatic.php @@ -7,7 +7,9 @@ use Illuminate\Database\Eloquent\Relations\Relation; /** - * This is a copy of a function that Laravel provides dynamically. + * This is a static copy of a function that Laravel provides dynamically. + * + * @psalm-immutable */ trait GetMorphClassStatic { diff --git a/app/Util/Workday.php b/app/Util/Workday.php index 1f1fb8e3..fadb6b0b 100644 --- a/app/Util/Workday.php +++ b/app/Util/Workday.php @@ -8,6 +8,8 @@ class Workday { /** * Inspired by https://stackoverflow.com/a/1019126. + * + * @psalm-pure */ public static function searchForKeyValuePair(array $widgets, string $key, string $value): array { @@ -30,6 +32,8 @@ public static function searchForKeyValuePair(array $widgets, string $key, string * Converts Workday date format to ISO 8601. * * @param array> $widget + * + * @psalm-pure */ public static function getDate(array $widget): string { @@ -38,6 +42,8 @@ public static function getDate(array $widget): string /** * Extracts the instance ID from a widget. + * + * @psalm-pure */ public static function getInstanceId(array $widget): string { diff --git a/composer.json b/composer.json index 9a56e8d2..51293e33 100644 --- a/composer.json +++ b/composer.json @@ -51,7 +51,7 @@ "spatie/laravel-ignition": "2.10.0", "spatie/ray": "1.46.0", "squizlabs/php_codesniffer": "4.0.1", - "vimeo/psalm": "7.0.0-beta14" + "vimeo/psalm": "7.0.0-beta15" }, "replace": { "felixfbecker/advanced-json-rpc": "*", @@ -109,7 +109,6 @@ "ci": [ "vendor/bin/pint --test", "vendor/bin/phpcs", - "vendor/bin/phpstan analyse --level=max .", "vendor/bin/phan", "vendor/bin/psalm" ], diff --git a/composer.lock b/composer.lock index 4c291566..8788d093 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "33ac1b83fe5138bd54fa8d037bd6e070", + "content-hash": "4642fcdb953dc358a190035107352718", "packages": [ { "name": "ans-group/laravel-health-check", @@ -12721,16 +12721,16 @@ }, { "name": "vimeo/psalm", - "version": "7.0.0-beta14", + "version": "7.0.0-beta15", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "e66ca9901442421cbdec6c571899410922e22ff6" + "reference": "90bb719c909380be79f7bb788751041f7bc8efb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/e66ca9901442421cbdec6c571899410922e22ff6", - "reference": "e66ca9901442421cbdec6c571899410922e22ff6", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/90bb719c909380be79f7bb788751041f7bc8efb2", + "reference": "90bb719c909380be79f7bb788751041f7bc8efb2", "shasum": "" }, "require": { @@ -12754,7 +12754,7 @@ "netresearch/jsonmapper": "^5.0", "nikic/php-parser": "^5.0.0", "php": "~8.1.31 || ~8.2.27 || ~8.3.16 || ~8.4.3 || ~8.5.0", - "sebastian/diff": "^4.0 || ^5.0 || ^6.0 || ^7.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", "spatie/array-to-xml": "^2.17.0 || ^3.0", "symfony/console": "^6.0 || ^7.0 || ^8.0", "symfony/filesystem": "~6.3.12 || ~6.4.3 || ^7.0.3 || ^8.0", @@ -12835,7 +12835,7 @@ "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm" }, - "time": "2025-12-23T17:03:58+00:00" + "time": "2026-02-19T21:55:44+00:00" }, { "name": "webmozart/assert",