:love_letter: A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
189 matches across 6 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/spec/database-object-registry-spec.ts | 18 | describe('DatabaseObjectRegistry', function DatabaseObjectRegistrySpecs() { |
| LOW | app/spec/spec-runner/react-test-utils-extensions.ts | 6 | export function scryRenderedComponentsWithTypeAndProps(root, type, props) { |
| LOW | app/spec/spec-runner/gui-reporter.tsx | 327 | export function reportPlainTextSpecResult(spec) { |
| LOW | app/spec/stores/folder-sync-progress-store-spec.ts | 1 | xdescribe('FolderSyncProgressStore', function mailspringSyncStatusStore() {}); |
| LOW | app/spec/models/mutable-query-result-set-spec.ts | 5 | describe('MutableQueryResultSet', function MutableQueryResultSetSpecs() { |
| LOW | app/spec/models/query-subscription-pool-spec.ts | 5 | describe('QuerySubscriptionPool', function QuerySubscriptionPoolSpecs() { |
| LOW | app/spec/components/participants-text-field-spec.tsx | 22 | xdescribe('ParticipantsTextField', function ParticipantsTextFieldSpecs() { |
| LOW | …_packages/thread-list/lib/thread-list-participants.tsx | 44 | function getTokensFromParticipants(thread: ThreadWithMessagesMetadata) { |
| LOW | …preferences/specs/preferences-account-details-spec.tsx | 19 | describe('PreferencesAccountDetails', function preferencesAccountDetails() { |
| LOW | …packages/send-reminders/lib/send-reminders-headers.tsx | 10 | export function NotificationExplanationMessageHeader({ |
| LOW | …packages/send-reminders/lib/send-reminders-headers.tsx | 42 | export function ScheduledReminderThreadHeader({ |
| LOW | …al_packages/send-reminders/lib/send-reminders-utils.ts | 82 | export async function updateDraftReminderMetadata( |
| LOW | …s/send-reminders/lib/send-reminders-toolbar-button.tsx | 13 | export default function SendRemindersToolbarButton(props: { items: Thread[] }) { |
| LOW | …-reminders/lib/send-reminders-thread-list-extension.ts | 7 | export function cssClassNamesForThreadListItem(thread: Thread) { |
| LOW | …-reminders/lib/send-reminders-thread-list-extension.ts | 15 | export function cssClassNamesForThreadListIcon(thread: Thread) { |
| LOW | …r-signature/specs/signature-composer-dropdown-spec.tsx | 22 | describe('SignatureComposerDropdown', function signatureComposerDropdown() { |
| LOW | …r-signature/specs/signature-composer-extension-spec.ts | 14 | describe('SignatureComposerExtension', function signatureComposerExtension() { |
| LOW | …internal_packages/composer-signature/lib/templates.tsx | 68 | function widthAndHeightForPhotoURL( |
| LOW | app/internal_packages/thread-snooze/lib/snooze-utils.ts | 58 | export async function markUnreadOrResurfaceThreads(threads: Thread[], source: string) { |
| LOW | …l_packages/main-calendar/lib/core/calendar-helpers.tsx | 19 | export function invalidateThemeTextColorCache() { |
| LOW | …l_packages/main-calendar/lib/core/calendar-helpers.tsx | 319 | export function showNoEditableCalendarsError(): void { |
| LOW | …ages/main-calendar/lib/core/calendar-event-popover.tsx | 728 | function extractNotesFromDescription(description: string) { |
| LOW | …packages/main-calendar/lib/core/calendar-drag-utils.ts | 82 | export function parseEventIdFromOccurrence(occurrenceId: string): string { |
| LOW | …ages/main-calendar/lib/core/recurring-event-actions.ts | 111 | export function createOccurrenceException(options: EventTimeChangeOptions): void { |
| LOW | …ages/main-calendar/lib/core/recurring-event-actions.ts | 199 | export async function modifyEventWithRecurringSupport( |
| LOW | …racking/specs/open-tracking-composer-extension-spec.ts | 25 | xdescribe('Open tracking composer extension', function openTrackingComposerExtension() { |
| LOW | …n-tracking/specs/open-tracking-message-status-spec.tsx | 22 | describe('Open tracking message status', function openTrackingMessageStatus() { |
| LOW | …l_packages/list-unsubscribe/lib/unsubscribe-service.ts | 30 | export function parseListUnsubscribeHeader(header: string): UnsubscribeOption[] { |
| LOW | …l_packages/list-unsubscribe/lib/unsubscribe-service.ts | 82 | export async function performOneClickUnsubscribe(url: string): Promise<UnsubscribeResult> { |
| LOW | …notifications/specs/disabled-mail-rules-notif-spec.tsx | 6 | describe('DisabledMailRulesNotification', function DisabledMailRulesNotifTests() { |
| LOW | …internal_packages/onboarding/lib/onboarding-helpers.ts | 83 | export async function expandAccountWithCommonSettings(account: Account) { |
| LOW | …internal_packages/onboarding/lib/onboarding-helpers.ts | 215 | export async function buildGmailAccountFromAuthResponse(code: string) { |
| LOW | …internal_packages/onboarding/lib/onboarding-helpers.ts | 263 | export async function buildOutlookAccountFromAuthResponse(code: string) { |
| LOW | …internal_packages/onboarding/lib/onboarding-helpers.ts | 267 | export async function buildMicrosoftAccountFromAuthResponse( |
| LOW | …internal_packages/onboarding/lib/onboarding-helpers.ts | 342 | export async function finalizeAndValidateAccount(account: Account) { |
| LOW | app/src/ics-event-helpers.ts | 206 | function removeExistingExceptionVevent( |
| LOW | app/src/ics-event-helpers.ts | 533 | export function createRecurrenceException( |
| LOW | app/src/ics-event-helpers.ts | 762 | export function updateRecurringEventTimes( |
| LOW | app/src/canvas-utils.ts | 131 | export function canvasWithSystemTrayIconAndText(img, text) { |
| LOW | app/src/mail-rules-templates.ts | 121 | export function ConditionTemplatesForAccount(account): Template[] { |
| LOW | app/src/mail-rules-templates.ts | 125 | export function ActionTemplatesForAccount(account): Template[] { |
| LOW | app/src/dnd-utils-linux.ts | 34 | async function queryFreedesktopInhibited(): Promise<boolean | null> { |
| LOW | app/src/promise-extensions.ts | 12 | function thatLooksLikeAPromiseToMe(o) { |
| LOW | app/src/flux/stores/draft-editing-session.ts | 42 | function convertToShapeWithoutContent(value: Value) { |
| LOW | app/src/flux/stores/database-store.ts | 37 | function handleUnrecoverableDatabaseError( |
| LOW | app/src/browser/notification-ipc.ts | 237 | export function registerNotificationIPCHandlers(ipcMain: IpcMain) { |
| LOW | app/src/browser/notification-ipc.ts | 242 | export function handleWindowsToastXMLProtocolAction(parts: UrlWithParsedQuery) { |
| LOW | app/src/browser/quickpreview-ipc.ts | 131 | export function registerQuickpreviewIPCHandlers(ipcMain: IpcMain) { |
| LOW | …/src/components/composer-editor/base-block-plugins.tsx | 41 | function toggleBlockTypeWithBreakout(editor: Editor, type: string) { |
| LOW | app/src/components/composer-editor/conversion.tsx | 462 | export function convertToShapeWithoutContent(value: Value) { |
| LOW | …onents/composer-editor/toolbar-component-factories.tsx | 70 | export function expandSelectionToRangeOfMark(editor: Editor, type: string) { |
| LOW | …onents/composer-editor/toolbar-component-factories.tsx | 136 | export function BuildMarkButtonWithValuePicker(config) { |
| LOW | …c/components/composer-editor/grammar-check-plugins.tsx | 59 | export function clearAllGrammarDecorations() { |
| LOW | …c/components/composer-editor/grammar-check-plugins.tsx | 100 | export function requestInitialCheckForDraft(draftId: string) { |
| LOW | …c/components/composer-editor/grammar-check-plugins.tsx | 123 | function underlineColorForCategory(category: string): string { |
| LOW | …c/components/composer-editor/grammar-check-plugins.tsx | 416 | function FloatingCorrectionPopover({ editor, value }: ComposerEditorPluginTopLevelComponentProps) { |
| LOW | app/src/components/composer-editor/plaintext.ts | 24 | export function wrapPlaintextWithSelection( |
| LOW | app/src/quickpreview/index.ts | 201 | export function canPossiblyPreviewExtension(file: File) { |
| LOW | app/src/quickpreview/index.ts | 208 | export function displayQuickPreviewWindow(filePath: string) { |
| LOW | app/src/services/unwrapped-signature-detector.ts | 28 | export default function unwrappedSignatureDetector(doc, quoteElements) { |
| 19 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/spec/ics-event-helpers-spec.ts | 341 | }); |
| LOW | app/keymaps/README.m | 1 | # This is the core set of universal, cross-platform keymaps. This is |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 1 | // const moment = require('moment'); |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 21 | |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 41 | // updated_at: null, |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 61 | // }, |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 81 | // object: 'thread', |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 101 | // id: 'unseen', |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 121 | // created_at: null, |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 141 | // updated_at: null, |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 161 | // name: 'User One', |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 181 | |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 201 | // const c3 = new ListTabular.Column({ |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 221 | // }); |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 241 | // describe('when the workspace is in list mode', function() { |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 261 | // }); |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 281 | // const view = { |
| LOW | …ternal_packages/thread-list/specs/thread-list-spec.tsx | 301 | // advanceClock(100); |
| LOW | app/internal_packages/ui-darkside/README.md | 21 | @accent: #F18260; |
| LOW | …internal_packages/ui-darkside/styles/ui-variables.less | 1 | // All themes need a file called `ui-variables` that extends from the base |
| LOW | app/internal_packages/ui-less-is-more/styles/index.less | 1 | //==================================================== |
| LOW | …kages/message-list/specs/message-participants-spec.tsx | 121 | // expect(p1._isToEveryone()).toBe true |
| LOW | app/internal_packages/onboarding/lib/page-tutorial.tsx | 41 | xDot: 10, |
| LOW | app/static/style/base/ui-variables.less | 1 | // Color abstraction hierarchy: |
| LOW | app/src/regexp-utils.ts | 1 | import _ from 'underscore'; |
| LOW | app/src/regexp-utils.ts | 201 | // Test cases: https://regex101.com/r/cK0zD8/4 |
| LOW | app/src/secondary-window-bootstrap.ts | 1 | /* eslint import/first: 0 */ |
| LOW | app/src/app-env.ts | 561 | // * `width` The window's width {Number}. |
| LOW | app/src/mailbox-perspective.ts | 181 | // Public: |
| LOW | app/src/mailbox-perspective.ts | 521 | |
| LOW | app/src/config.ts | 21 | } else { |
| LOW | app/src/config.ts | 41 | // You may want to watch for changes. Use {::observe} to catch changes to the setting. |
| LOW | app/src/config.ts | 61 | // allows integers greater than `0`: |
| LOW | app/src/config.ts | 81 | // module.exports = |
| LOW | app/src/config.ts | 101 | // enableThing: |
| LOW | app/src/config.ts | 121 | // |
| LOW | app/src/config.ts | 141 | // |
| LOW | app/src/config.ts | 161 | // |
| LOW | app/src/config.ts | 181 | // minimum: 1.5 |
| LOW | app/src/config.ts | 201 | // |
| LOW | app/src/config.ts | 221 | // type: 'object' |
| LOW | app/src/config.ts | 241 | // default: 4 |
| LOW | app/src/config.ts | 261 | // |
| LOW | app/src/config.ts | 361 | } |
| LOW | app/src/config.ts | 381 | // * `keyPath` {String} name of the key to observe |
| LOW | app/src/config.ts | 421 | // |
| LOW | app/src/config.ts | 441 | // |
| LOW | app/src/menu-manager.ts | 21 | AppEnv.commands.onRegistedCommandsChanged(() => this.update()); |
| LOW | app/src/types/jasmine-global.d.ts | 1 | // Global type declarations for the vendored Jasmine 1.x instance. |
| LOW | app/src/registries/component-registry.ts | 41 | // * `options` {Object}: |
| LOW | app/src/flux/tasks/change-folder-task.ts | 1 | import { ChangeMailTask } from './change-mail-task'; |
| LOW | app/src/flux/tasks/task.ts | 81 | // in flight. |
| LOW | app/src/flux/stores/database-store.ts | 421 | // predicates provided. |
| LOW | app/src/flux/stores/database-store.ts | 441 | // returned model must match. |
| LOW | app/src/flux/stores/contact-store.ts | 21 | return []; |
| LOW | app/src/flux/models/utils.ts | 101 | for (let i = left; ascending ? i < end : i > end; ascending ? i++ : i--) { |
| LOW | app/src/extensions/composer-extension.ts | 61 | // You must return an object that contains the following properties: |
| LOW | app/src/browser/windows-updater.js | 241 | } |
| LOW | app/src/browser/mailspring-protocol-handler.ts | 1 | import { protocol } from 'electron'; |
| LOW | app/src/browser/window-launcher.ts | 121 | } |
| 5 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | playwright/helpers.ts | 17 | // ─── Config & Launch ─────────────────────────────────────────────────────── |
| MEDIUM | playwright/helpers.ts | 200 | // ─── Thread List Helpers ─────────────────────────────────────────────────── |
| MEDIUM | playwright/helpers.ts | 231 | // ─── Sidebar Helpers ─────────────────────────────────────────────────────── |
| MEDIUM | playwright/helpers.ts | 238 | // ─── Task Capture Helpers ───────────────────────────────────────────── |
| MEDIUM | playwright/helpers.ts | 334 | // ─── Native Menu Intercept ──────────────────────────────────────────── |
| MEDIUM | playwright/helpers.ts | 406 | // ─── Search Helpers ─────────────────────────────────────────────────── |
| MEDIUM | playwright/helpers.ts | 419 | // ─── Composer Helpers ────────────────────────────────────────────────────── |
| MEDIUM | playwright/helpers.ts | 459 | // ─��─ SQLite Database Helpers ─────────────────────────────────────────────── |
| MEDIUM | playwright/tests/visual-snapshots.spec.ts | 23 | // ─── Visual regression snapshots ──────────────────────────────────────────── |
| MEDIUM | playwright/tests/folder-management.spec.ts | 26 | // ─── Helpers ────────────────────────────────────────────────────────────── |
| MEDIUM | playwright/tests/folder-management.spec.ts | 40 | // ─── Folder section visibility ──────────────────────────────────────────── |
| MEDIUM | playwright/tests/folder-management.spec.ts | 52 | // ─── Folder hierarchy ───────────────────────────────────────────────────── |
| MEDIUM | playwright/tests/folder-management.spec.ts | 69 | // ─── Create folder via + button ─────────────────────────────────────────── |
| MEDIUM | playwright/tests/folder-management.spec.ts | 97 | // ─── Rename folder via double-click ─────────────────────────────────────── |
| MEDIUM | playwright/tests/folder-management.spec.ts | 139 | // ─── Context menu: rename via right-click ───────────────────────────────── |
| MEDIUM | playwright/tests/folder-management.spec.ts | 162 | // ─── Context menu: create subfolder ─────────────────────────────────────── |
| MEDIUM | playwright/tests/folder-management.spec.ts | 197 | // ─── Context menu: delete folder ────────────────────────────────────────── |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | plans/caldav-provider-quirks/06-mkcalendar.md | 172 | except Exception as e: |
| LOW | plans/caldav-provider-quirks/06-mkcalendar.md | 269 | except Exception as e: |
| LOW | plans/caldav-provider-quirks/06-mkcalendar.md | 361 | except Exception as e: |
| LOW | plans/caldav-provider-quirks/06-mkcalendar.md | 385 | except Exception: |
| LOW | plans/caldav-provider-quirks/06-mkcalendar.md | 481 | except Exception as e: |
| LOW | plans/caldav-provider-quirks/06-mkcalendar.md | 518 | except Exception as e: |
| LOW | plans/caldav-provider-quirks/06-mkcalendar.md | 535 | except Exception as e: |
| LOW | plans/caldav-provider-quirks/06-mkcalendar.md | 542 | except Exception as e: |
| LOW | plans/caldav-provider-quirks/10-http-protocol-issues.md | 632 | except Exception as e: |
| MEDIUM | plans/caldav-provider-quirks/10-http-protocol-issues.md | 617 | def make_request_with_multiplexing_fallback(url, method, **kwargs): |
| LOW | …s/caldav-provider-quirks/01-search-without-comptype.md | 299 | except Exception: |
| LOW | …s/caldav-provider-quirks/09-object-loading-recovery.md | 448 | except Exception as e: |
| LOW | …s/caldav-provider-quirks/09-object-loading-recovery.md | 455 | except Exception as e: |
| LOW | plans/caldav-provider-quirks/03-sync-tokens.md | 628 | except Exception as e: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …p/internal_packages/contacts/specs/vcf-helpers-spec.ts | 243 | expect(result.streetAddress).toBe('123 Main St'); |
| LOW | …p/internal_packages/contacts/specs/vcf-helpers-spec.ts | 265 | expect(result.formattedValue).toContain('123 Main St'); |
| LOW | …p/internal_packages/contacts/specs/vcf-helpers-spec.ts | 292 | streetAddress: '123 Main St', |
| LOW | …p/internal_packages/contacts/specs/vcf-helpers-spec.ts | 441 | streetAddress: '123 Main St', |
| LOW | …p/internal_packages/contacts/specs/vcf-helpers-spec.ts | 451 | expect(result).toContain('123 Main St'); |
| LOW | …l_packages/thread-search/specs/search-bar-util-spec.ts | 63 | expect(wrapInQuotes('John Doe')).toBe('"John Doe"'); |
| LOW | …l_packages/thread-search/specs/search-bar-util-spec.ts | 142 | while ((next = regexp.exec('from:"John Doe"'))) { |
| LOW | …l_packages/thread-search/specs/search-bar-util-spec.ts | 231 | const query = 'from:"John Doe"'; |
| LOW | app/src/calendar-utils.ts | 76 | // Some calendar systems just use "user@example.com" directly |
| LOW | docs/EVENT-RSVP-TASK-SPECIFICATION.md | 301 | ORGANIZER;CN="John Doe":mailto:organizer@example.com |
| LOW | playwright/tests/preferences-data.spec.ts | 57 | await nameField.type('Jane Doe'); |
| LOW | playwright/tests/preferences-data.spec.ts | 71 | expect(testSig.data.name).toBe('Jane Doe'); |
| LOW | playwright/tests/compose.spec.ts | 716 | await composerPage!.keyboard.type('Acme Corp'); |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | app/src/flux/stores/undo-redo-store.ts | 93 | print(): void { |