mirror of
https://github.com/karatektus/pl_mail.git
synced 2026-10-25 10:04:18 +00:00
A fresh install with one GMX mailbox stopped importing two folders, each
on a batch it fetched again on every sync:
invalid byte sequence for encoding "UTF8": 0xe4 0x72 0x75 ($2)
invalid byte sequence for encoding "UTF8": 0x80 ($30)
$2 of a MessagePart INSERT is its filename: "Erklärung.pdf" in raw
latin-1. The IMAP path stored webklex's name as it came, where
GmailMessageBuilder already decodes it. $30 of a Message INSERT is
body_html: a part labelled UTF-8 carrying a windows-1252 "€". webklex
converts nothing when the label already names the target, UTF-8 and
us-ascii both, and Utf8AwareMessageDecoder only corrected the opposite
lie.
MessageSyncer decodes the attachment name before storing
it, and writes a refused batch again one
message per transaction, so only the refused
one is held back by holdForRetry()
Utf8AwareMessageDecoder puts whatever the library returns past
ensureUtf8()
CharsetHelper ensureUtf8() repairs byte by byte and drops
NUL
Each stopped a folder because the batch was refused at its flush, not
while building, and holdForRetry() had only ever seen build failures.
The mark stayed below the batch, and the next sync fetched the same
fifty.
ensureUtf8() read a whole invalid string as cp1252, so a UTF-8 body
with one stray "€" had every umlaut turned into "ü". Now only the
invalid bytes are read that way, at about 130ms for a 6 MB body. NUL is
valid UTF-8 that Postgres refuses in text, which made "unconditionally
storable" untrue.
The uid cast in storeMessages() retires a baseline entry: webklex
declares getUid() only in a docblock that PHPStan cannot read as an int.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
678 lines
28 KiB
Plaintext
678 lines
28 KiB
Plaintext
parameters:
|
|
ignoreErrors:
|
|
-
|
|
message: '#^Call to an undefined method Webklex\\PHPIMAP\\Connection\\Protocols\\ProtocolInterface\:\:nextLine\(\)\.$#'
|
|
identifier: method.notFound
|
|
count: 1
|
|
path: src/Command/Imap/ImapIdleCommand.php
|
|
|
|
-
|
|
message: '#^Strict comparison using \=\=\= between true and false will always evaluate to false\.$#'
|
|
identifier: identical.alwaysFalse
|
|
count: 2
|
|
path: src/Command/Imap/ImapIdleCommand.php
|
|
|
|
-
|
|
message: '#^Strict comparison using \=\=\= between false and true will always evaluate to false\.$#'
|
|
identifier: identical.alwaysFalse
|
|
count: 1
|
|
path: src/Command/Imap/ImapSuperviseCommand.php
|
|
|
|
-
|
|
message: '#^Parameter \#2 \$options of method Webklex\\PHPIMAP\\Folder\:\:appendMessage\(\) expects array\|null, string given\.$#'
|
|
identifier: argument.type
|
|
count: 1
|
|
path: src/Command/Imap/ImapTestCommand.php
|
|
|
|
-
|
|
message: '#^Parameter \#3 \$internal_date of method Webklex\\PHPIMAP\\Folder\:\:appendMessage\(\) expects Carbon\\Carbon\|string\|null, DateTimeImmutable given\.$#'
|
|
identifier: argument.type
|
|
count: 1
|
|
path: src/Command/Imap/ImapTestCommand.php
|
|
|
|
-
|
|
message: '#^Strict comparison using \=\=\= between false and true will always evaluate to false\.$#'
|
|
identifier: identical.alwaysFalse
|
|
count: 1
|
|
path: src/Command/Test/SeedTestEmailCommand.php
|
|
|
|
-
|
|
message: '#^Strict comparison using \=\=\= between true and true will always evaluate to true\.$#'
|
|
identifier: identical.alwaysTrue
|
|
count: 1
|
|
path: src/Command/Test/SeedTestEmailCommand.php
|
|
|
|
-
|
|
message: '#^PHPDoc tag @param references unknown parameter\: \$assign$#'
|
|
identifier: parameter.notFound
|
|
count: 1
|
|
path: src/Controller/Admin/IntegrationProviderController.php
|
|
|
|
-
|
|
message: '#^Parameter \#1 \$token of method League\\OAuth2\\Client\\Provider\\AbstractProvider\:\:getResourceOwner\(\) expects League\\OAuth2\\Client\\Token\\AccessToken, League\\OAuth2\\Client\\Token\\AccessTokenInterface given\.$#'
|
|
identifier: argument.type
|
|
count: 1
|
|
path: src/Controller/Auth/OAuthController.php
|
|
|
|
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Label\\Label\:\:\$usr \(App\\Entity\\User\\User\|null\) does not accept Symfony\\Component\\Security\\Core\\User\\UserInterface\|null\.$#'
|
|
identifier: assign.propertyType
|
|
count: 1
|
|
path: src/Controller/Mail/LabelController.php
|
|
|
|
-
|
|
message: '#^Property App\\Controller\\Mail\\MailController\:\:\$mailboxRepository is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Controller/Mail/MailController.php
|
|
|
|
-
|
|
message: '#^Instantiating DateTimeImmutable with in 1 day produces an error\: The timezone could not be found in the database$#'
|
|
identifier: new.dateTimeImmutable
|
|
count: 1
|
|
path: src/Controller/Mail/ThreadStatusController.php
|
|
|
|
|
|
-
|
|
message: '#^Attribute class Symfony\\Component\\HttpKernel\\Attribute\\MapEntity does not exist\.$#'
|
|
identifier: attribute.notFound
|
|
count: 2
|
|
path: src/Controller/Onboarding/OnboardingController.php
|
|
|
|
-
|
|
message: '#^Parameter \#2 \$user of method App\\Service\\Mail\\AccountCreator\:\:create\(\) expects App\\Entity\\User\\User, Symfony\\Component\\Security\\Core\\User\\UserInterface\|null given\.$#'
|
|
identifier: argument.type
|
|
count: 1
|
|
path: src/Controller/Settings/AccountController.php
|
|
|
|
-
|
|
message: '#^Property App\\Controller\\Settings\\AccountController\:\:\$aliasSeeder is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Controller/Settings/AccountController.php
|
|
|
|
-
|
|
message: '#^Property App\\Controller\\Settings\\AccountController\:\:\$graphSubscriptionManager is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Controller/Settings/AccountController.php
|
|
|
|
-
|
|
message: '#^Property App\\Controller\\Settings\\AccountController\:\:\$logger is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Controller/Settings/AccountController.php
|
|
|
|
|
|
-
|
|
message: '#^Parameter \#1 \$user of method App\\Repository\\Mail\\MessageRepository\:\:countMatchingForUser\(\) expects App\\Entity\\User\\User, Symfony\\Component\\Security\\Core\\User\\UserInterface\|null given\.$#'
|
|
identifier: argument.type
|
|
count: 1
|
|
path: src/Controller/Settings/MailRuleController.php
|
|
|
|
-
|
|
message: '#^Property App\\Controller\\Settings\\MailRuleController\:\:\$executor is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Controller/Settings/MailRuleController.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Rule\\MailRule\:\:\$usr \(App\\Entity\\User\\User\|null\) does not accept Symfony\\Component\\Security\\Core\\User\\UserInterface\|null\.$#'
|
|
identifier: assign.propertyType
|
|
count: 1
|
|
path: src/Controller/Settings/MailRuleController.php
|
|
|
|
-
|
|
message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Session\\SessionInterface\:\:getFlashBag\(\)\.$#'
|
|
identifier: method.notFound
|
|
count: 1
|
|
path: src/Controller/Settings/SettingsController.php
|
|
|
|
-
|
|
message: '#^Access to an undefined property Symfony\\Component\\Security\\Core\\User\\UserInterface\:\:\$locale\.$#'
|
|
identifier: property.notFound
|
|
count: 1
|
|
path: src/Controller/Settings/SettingsController.php
|
|
|
|
-
|
|
message: '#^Parameter \#1 \$user of method App\\Service\\User\\ProfileSectionViewData\:\:build\(\) expects App\\Entity\\User\\User, Symfony\\Component\\Security\\Core\\User\\UserInterface\|null given\.$#'
|
|
identifier: argument.type
|
|
count: 1
|
|
path: src/Controller/Settings/SettingsController.php
|
|
|
|
-
|
|
message: '#^Parameter \#1 \$user of method App\\Service\\User\\TwoFactor\\SecuritySectionViewData\:\:build\(\) expects App\\Entity\\User\\User, Symfony\\Component\\Security\\Core\\User\\UserInterface\|null given\.$#'
|
|
identifier: argument.type
|
|
count: 1
|
|
path: src/Controller/Settings/SettingsController.php
|
|
|
|
-
|
|
message: '#^Property App\\Controller\\Settings\\SettingsController\:\:\$pushSubscriptionRegistry is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Controller/Settings/SettingsController.php
|
|
|
|
-
|
|
message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Session\\SessionInterface\:\:getFlashBag\(\)\.$#'
|
|
identifier: method.notFound
|
|
count: 2
|
|
path: src/Controller/Settings/TwoFactorController.php
|
|
|
|
-
|
|
message: '#^Call to an undefined method Symfony\\Contracts\\Translation\\TranslatorInterface\:\:setLocale\(\)\.$#'
|
|
identifier: method.notFound
|
|
count: 1
|
|
path: src/Controller/Setup/InstallController.php
|
|
|
|
-
|
|
message: '#^Match arm comparison between \$this\(App\\Domain\\Enum\\Integration\\Provider\)&App\\Domain\\Enum\\Integration\\Provider\:\:Dropbox and App\\Domain\\Enum\\Integration\\Provider\:\:Dropbox is always true\.$#'
|
|
identifier: match.alwaysTrue
|
|
count: 1
|
|
path: src/Domain/Enum/Integration/Provider.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\Calendar\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Calendar/Calendar.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEvent\:\:\$calendar type mapping mismatch\: property can contain App\\Entity\\Calendar\\Calendar\|null but database expects App\\Entity\\Calendar\\Calendar\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEvent.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEvent\:\:\$endsAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEvent.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEvent\:\:\$startsAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEvent.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEvent\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEvent.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$calendar type mapping mismatch\: property can contain App\\Entity\\Calendar\\Calendar\|null but database expects App\\Entity\\Calendar\\Calendar\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEventOccurrence.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$endsAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEventOccurrence.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$event type mapping mismatch\: property can contain App\\Entity\\Calendar\\CalendarEvent\|null but database expects App\\Entity\\Calendar\\CalendarEvent\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEventOccurrence.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$recurrenceId type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEventOccurrence.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$startsAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEventOccurrence.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Calendar/CalendarEventOccurrence.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\EventSourceLink\:\:\$event type mapping mismatch\: property can contain App\\Entity\\Calendar\\CalendarEvent\|null but database expects App\\Entity\\Calendar\\CalendarEvent\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Calendar/EventSourceLink.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\EventSourceLink\:\:\$message type mapping mismatch\: property can contain App\\Entity\\Mail\\Message\|null but database expects App\\Entity\\Mail\\Message\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Calendar/EventSourceLink.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Calendar\\EventSuppression\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Calendar/EventSuppression.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Label\\Label\:\:\$name type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Label/Label.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Label\\Label\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Label/Label.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Label\\LabelBinding\:\:\$account type mapping mismatch\: property can contain App\\Entity\\Mail\\Account\|null but database expects App\\Entity\\Mail\\Account\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Label/LabelBinding.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Label\\LabelBinding\:\:\$label type mapping mismatch\: property can contain App\\Entity\\Label\\Label\|null but database expects App\\Entity\\Label\\Label\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Label/LabelBinding.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Account\:\:\$authType type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Account.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Account\:\:\$isActive type mapping mismatch\: property can contain bool\|null but database expects bool\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Account.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Account\:\:\$username type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Account.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Account\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Mail/Account.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Contact\:\:\$email type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Contact.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Contact\:\:\$firstSeenAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Contact.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Contact\:\:\$lastSeenAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Contact.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Contact\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Mail/Contact.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\EmailAlias\:\:\$account type mapping mismatch\: property can contain App\\Entity\\Mail\\Account\|null but database expects App\\Entity\\Mail\\Account\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Mail/EmailAlias.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Mailbox\:\:\$account type mapping mismatch\: property can contain App\\Entity\\Mail\\Account\|null but database expects App\\Entity\\Mail\\Account\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Mail/Mailbox.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Mailbox\:\:\$fullPath type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Mailbox.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Mailbox\:\:\$isSyncEnabled type mapping mismatch\: property can contain bool\|null but database expects bool\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Mailbox.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Mailbox\:\:\$name type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Mailbox.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\Message\:\:\$hasAttachments type mapping mismatch\: property can contain bool\|null but database expects bool\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/Message.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\MessagePart\:\:\$contentType type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/MessagePart.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\MessagePart\:\:\$disposition type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/MessagePart.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\MessagePart\:\:\$isInline type mapping mismatch\: property can contain bool\|null but database expects bool\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/MessagePart.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\MessagePart\:\:\$message type mapping mismatch\: property can contain App\\Entity\\Mail\\Message\|null but database expects App\\Entity\\Mail\\Message\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Mail/MessagePart.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$account type mapping mismatch\: property can contain App\\Entity\\Mail\\Account\|null but database expects App\\Entity\\Mail\\Account\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Mail/MessageThread.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$messageCount type mapping mismatch\: property can contain int\|null but database expects int\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/MessageThread.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$normalizedSubject type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/MessageThread.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$threadingMethod type mapping mismatch\: property can contain App\\Domain\\Enum\\Mail\\ThreadingMethod\|null but database expects App\\Domain\\Enum\\Mail\\ThreadingMethod\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/MessageThread.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$unreadCount type mapping mismatch\: property can contain int\|null but database expects int\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Mail/MessageThread.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Monitoring\\ProcessHeartbeat\:\:\$lastBeatAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Monitoring/ProcessHeartbeat.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Rule\\MailRule\:\:\$name type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/Rule/MailRule.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\Rule\\MailRule\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
|
|
identifier: doctrine.associationType
|
|
count: 1
|
|
path: src/Entity/Rule/MailRule.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\User\\User\:\:\$email type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/User/User.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\User\\User\:\:\$nameFirst type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/User/User.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\User\\User\:\:\$nameLast type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/User/User.php
|
|
|
|
-
|
|
message: '#^Property App\\Entity\\User\\User\:\:\$password type mapping mismatch\: property can contain string\|null but database expects string\.$#'
|
|
identifier: doctrine.columnType
|
|
count: 1
|
|
path: src/Entity/User/User.php
|
|
|
|
-
|
|
message: '#^Strict comparison using \=\=\= between true and 0\|1 will always evaluate to false\.$#'
|
|
identifier: identical.alwaysFalse
|
|
count: 1
|
|
path: src/Jmap/Controller/JmapEventSourceController.php
|
|
|
|
-
|
|
message: '#^Method App\\Jmap\\Mail\\EmailPatchApplier\:\:currentMailboxIds\(\) should return array\<string, bool\> but returns array\<int, true\>\.$#'
|
|
identifier: return.type
|
|
count: 1
|
|
path: src/Jmap/Mail/EmailPatchApplier.php
|
|
|
|
-
|
|
message: '#^Property App\\Jmap\\Mail\\EmailPatchApplier\:\:\$labelRepository is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Jmap/Mail/EmailPatchApplier.php
|
|
|
|
-
|
|
message: '#^Method App\\Jmap\\Mapper\\EmailMapper\:\:mailboxIds\(\) never returns array\<string, bool\> so it can be removed from the return type\.$#'
|
|
identifier: return.unusedType
|
|
count: 1
|
|
path: src/Jmap/Mapper/EmailMapper.php
|
|
|
|
-
|
|
message: '#^Method App\\Jmap\\Mapper\\EmailMapper\:\:mailboxIds\(\) should return array\<string, bool\>\|stdClass but returns array\<int, bool\>\.$#'
|
|
identifier: return.type
|
|
count: 1
|
|
path: src/Jmap/Mapper/EmailMapper.php
|
|
|
|
-
|
|
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
|
|
identifier: arrayValues.list
|
|
count: 1
|
|
path: src/Jmap/Method/Core/PushSubscriptionSetMethod.php
|
|
|
|
-
|
|
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
|
|
identifier: arrayValues.list
|
|
count: 1
|
|
path: src/Jmap/Method/Mail/EmailSetMethod.php
|
|
|
|
-
|
|
message: '#^Property App\\Jmap\\Method\\Mail\\EmailSetMethod\:\:\$mailboxRepository is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Jmap/Method/Mail/EmailSetMethod.php
|
|
|
|
-
|
|
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
|
|
identifier: arrayValues.list
|
|
count: 1
|
|
path: src/Jmap/Method/Mail/IdentitySetMethod.php
|
|
|
|
-
|
|
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
|
|
identifier: arrayValues.list
|
|
count: 1
|
|
path: src/Jmap/Method/Mail/MailboxSetMethod.php
|
|
|
|
-
|
|
message: '#^Method App\\Jmap\\Push\\PushDispatcher\:\:groupByUser\(\) should return array\<int, array\<string, array\<string, string\>\>\> but returns array\<int, array\<int, array\<string, string\>\>\>\.$#'
|
|
identifier: return.type
|
|
count: 1
|
|
path: src/Jmap/Push/PushDispatcher.php
|
|
|
|
-
|
|
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
|
|
identifier: arrayValues.list
|
|
count: 3
|
|
path: src/Jmap/State/StateManager.php
|
|
|
|
-
|
|
message: '#^Method App\\Kernel\:\:getAllowedEnvs\(\) is unused\.$#'
|
|
identifier: method.unused
|
|
count: 1
|
|
path: src/Kernel.php
|
|
|
|
-
|
|
message: '#^Access to an undefined property Symfony\\Component\\Security\\Core\\User\\UserInterface\:\:\$id\.$#'
|
|
identifier: property.notFound
|
|
count: 1
|
|
path: src/Repository/Calendar/CalendarEventOccurrenceRepository.php
|
|
|
|
-
|
|
message: '#^PHPDoc tag @return with type iterable\<App\\Entity\\Mail\\Account\> is not subtype of native type array\.$#'
|
|
identifier: return.phpDocType
|
|
count: 2
|
|
path: src/Repository/Mail/AccountRepository.php
|
|
|
|
-
|
|
message: '#^Access to an undefined property Symfony\\Component\\Security\\Core\\User\\UserInterface\:\:\$id\.$#'
|
|
identifier: property.notFound
|
|
count: 1
|
|
path: src/Repository/Mail/MessageThreadRepository.php
|
|
|
|
-
|
|
message: '#^Method App\\Security\\ApiTokenAuthenticator\:\:onAuthenticationFailure\(\) never returns null so it can be removed from the return type\.$#'
|
|
identifier: return.unusedType
|
|
count: 1
|
|
path: src/Security/ApiTokenAuthenticator.php
|
|
|
|
-
|
|
message: '#^Method App\\Security\\ApiTokenAuthenticator\:\:supports\(\) never returns null so it can be removed from the return type\.$#'
|
|
identifier: return.unusedType
|
|
count: 1
|
|
path: src/Security/ApiTokenAuthenticator.php
|
|
|
|
-
|
|
message: '#^Strict comparison using \=\=\= between null and App\\Entity\\Mail\\Account will always evaluate to false\.$#'
|
|
identifier: identical.alwaysFalse
|
|
count: 1
|
|
path: src/Service/Imap/MessageSendService.php
|
|
|
|
-
|
|
message: '#^Expression on left side of \?\? is not nullable\.$#'
|
|
identifier: nullCoalesce.expr
|
|
count: 2
|
|
path: src/Service/Imap/MessageSyncer.php
|
|
|
|
-
|
|
message: '#^Property App\\Service\\Label\\LabelChangePropagator\:\:\$mailboxRepository is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Service/Label/LabelChangePropagator.php
|
|
|
|
-
|
|
message: '#^Using nullsafe property access "\?\-\>gmailLabelId" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
|
|
identifier: nullsafe.neverNull
|
|
count: 1
|
|
path: src/Service/Label/LabelStructurePropagator.php
|
|
|
|
-
|
|
message: '#^Method App\\Service\\Mail\\GraphApiClient\:\:batchWrite\(\) never assigns null to &\$resultIds so it can be removed from the by\-ref type\.$#'
|
|
identifier: parameterByRef.unusedType
|
|
count: 1
|
|
path: src/Service/Mail/GraphApiClient.php
|
|
|
|
-
|
|
message: '#^Unreachable statement \- code above always terminates\.$#'
|
|
identifier: deadCode.unreachable
|
|
count: 1
|
|
path: src/Service/OAuth/OAuthProviderFactory.php
|
|
|
|
-
|
|
message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Session\\SessionInterface\:\:getFlashBag\(\)\.$#'
|
|
identifier: method.notFound
|
|
count: 1
|
|
path: src/Service/Onboarding/Step/SecurityStepHandler.php
|
|
|
|
-
|
|
message: '#^Access to an undefined property Symfony\\Component\\Security\\Core\\User\\UserInterface\:\:\$id\.$#'
|
|
identifier: property.notFound
|
|
count: 2
|
|
path: src/Service/Rule/FilterDescriber.php
|
|
|
|
-
|
|
message: '#^Call to new App\\Infrastructure\\Encryption\\Encryptor\(\) on a separate line has no effect\.$#'
|
|
identifier: new.resultUnused
|
|
count: 1
|
|
path: tests/Infrastructure/Encryption/EncryptorTest.php
|
|
|
|
-
|
|
message: '#^Call to an undefined method App\\Repository\\Mail\\MessageRepository\:\:method\(\)\.$#'
|
|
identifier: method.notFound
|
|
count: 1
|
|
path: tests/Service/Gmail/GmailApiSyncerBackfillTest.php
|
|
|
|
-
|
|
message: '#^Using nullsafe property access on non\-nullable type App\\Entity\\Mail\\MessageThread\. Use \-\> instead\.$#'
|
|
identifier: nullsafe.neverNull
|
|
count: 1
|
|
path: tests/Service/Imap/MessageThreaderTest.php
|
|
|
|
-
|
|
message: '#^Offset ''body'' does not exist on array\{method\: string, url\: string, options\: array\<string, mixed\>\}\.$#'
|
|
identifier: offsetAccess.notFound
|
|
count: 2
|
|
path: tests/Service/Integration/ImmichDriverTest.php
|
|
|
|
-
|
|
message: '#^Offset ''body'' does not exist on array\{method\: ''SEARCH'', url\: string, options\: array\<string, mixed\>\}\.$#'
|
|
identifier: offsetAccess.notFound
|
|
count: 1
|
|
path: tests/Service/Integration/NextcloudDriverTest.php
|
|
|
|
-
|
|
message: '#^Offset ''body'' does not exist on array\{method\: string, url\: string, options\: array\<string, mixed\>\}\.$#'
|
|
identifier: offsetAccess.notFound
|
|
count: 1
|
|
path: tests/Service/Integration/NextcloudDriverTest.php
|
|
|
|
-
|
|
message: '#^Method App\\Tests\\Service\\Mail\\ThreadSnoozeServiceTest\:\:transport\(\) should return Symfony\\Component\\Messenger\\Transport\\InMemory\\InMemoryTransport but returns Symfony\\Component\\Messenger\\Transport\\TransportInterface\.$#'
|
|
identifier: return.type
|
|
count: 1
|
|
path: tests/Service/Mail/ThreadSnoozeServiceTest.php
|
|
|
|
-
|
|
message: '#^Property App\\Tests\\Service\\Mail\\ThreadSnoozeServiceTest\:\:\$labelRepository is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: tests/Service/Mail/ThreadSnoozeServiceTest.php
|
|
|
|
-
|
|
message: '#^Access to an undefined property League\\OAuth2\\Client\\Provider\\AbstractProvider\:\:\$tenant\.$#'
|
|
identifier: property.notFound
|
|
count: 1
|
|
path: tests/Service/OAuth/OAuthProviderFactoryTest.php
|
|
|
|
-
|
|
message: '#^Call to function method_exists\(\) with ''Symfony\\\\Component\\\\Dotenv\\\\Dotenv'' and ''bootEnv'' will always evaluate to true\.$#'
|
|
identifier: function.alreadyNarrowedType
|
|
count: 1
|
|
path: tests/bootstrap.php
|