Changed prettier printWidth to 100 to put Services.jsm on one line, prettified and then
grep -rEl "/Services.jsm" --exclude-dir=.hg --exclude-dir=suite --include="*.js" --include="*.jsm" --exclude=".*" . | xargs xargs sed -i -e '/\/Services.jsm/d'
Differential Revision: https://phabricator.services.mozilla.com/D151575
--HG--
extra : rebase_source : 43da2706d3b30f5062511cedd527e9fb65631f02
extra : amend_source : 863bfd4ad3930f4fe4ed0b3dba6061370118f9a5
Setting mail.useNewMailTabs to true will make Thunderbird open with the new mail tab as the first tab.
Differential Revision: https://phabricator.services.mozilla.com/D136963
--HG--
extra : rebase_source : 517f8c373d0ae80f767e2eb18065a1a464ebcba2
Restored:
+ Middle mouse click on a tab closes it.
+ Prevent switching to a tab before closing it when the tab's close button is clicked.
Differential Revision: https://phabricator.services.mozilla.com/D126971
This fixes browser_dragndrop.js on Mac, which is failing because the triggerNode property is empty for the Recently Closed Tabs submenu. I'm sure this is actually a platform bug, but we can work around it.
This makes two changes:
* When a tab monitor is registered, its onTabSwitched method is now called immediately with the current tab, so that its state can match the current tab at the time of registration.
* When calendar starts up, which may be during the account set-up process, the UI is not put in the "mail" mode if the account set-up tab (or other content tab) is open. Instead the "special" mode is used, which is the right mode for content tabs.
Differential Revision: https://phabricator.services.mozilla.com/D118942
--HG--
extra : rebase_source : 0b9502893d078ecfeb3bd5462f8895f11c509a5d
If when switching tabs the active element is within the current tab, focus is removed from it, and it is remembered so that focus can be restored when that tab becomes selected again.
This prevents elements in background tabs from retaining focus without being visible.
I've added a test which opens a few tabs and switches between them, testing the "selected" attribute, the focussed element, and TabOpen/TabSelect/TabClose events.
Differential Revision: https://phabricator.services.mozilla.com/D106569
--HG--
extra : rebase_source : 53ba220d9cf4487e3343800bbc1461a4d93f7b9b
extra : amend_source : dd0f3053f6b4c34f9548f8c052d96fdec68d21ab
The presence of gBrowser confuses the DateTimePicker actor. Since pdf.js has now been updated to run without gBrowser (instead using browser.getTabBrowser) this patch removes it.
Differential Revision: https://phabricator.services.mozilla.com/D103974
--HG--
extra : amend_source : c8e871182c56da12a91f0563bf7f60a5bb088771
Provider can send back
- x-thunderbird-account-name specifying the chosen display name
- x-thunderbird-account-email specifying the chosen email
Other bug fixes:
- only check main language, so if the provider supports "en", it will be shown to "en-US" users.
- close the provider window after selecting an account - onload doesn't happen on trunk, and I don't see why we need to wait for the load to finish
- tabmail: gStatusBar is an <hbox> - and sometimes not there. removing pointless setting of value
- MsgAccountManager: needed in the provisioner success message, but wasn't included in accountProvisioner.xhtml
TabProgressListener QIs to nsISupportsWeakReference, which means the instances we add only survive
until the next GC. Also if we change the layout of the 3-pane window, the progress listener on
#messagepane disappears.
Once all that is fixed we can more reliably test events on the tabs API.
Differential Revision: https://phabricator.services.mozilla.com/D89089
--HG--
extra : rebase_source : a1b779c62acf5523d36c8a259dcfac21c2c9dd79
extra : amend_source : 73be9ac58806e67ee8837d9c767f43679f2d9c0c
grep -rEl EXPORTED_SYMBOLS --exclude-dir=.hg --exclude-dir=suite --exclude-dir=editor --include="*.js" --exclude=".*" . | xargs -I '{}' bash -c 'oldpath=$1; oldname=$(basename $1); newname="${oldname/\.js/.jsm}";newname="${newname^}"; newname=$(sed -E "s/(.*)[_-](.)(.*)/\1\U\2\L\3/g" <<< $newname); newpath="${oldpath%/*}/$newname"; echo "$newname $oldpath $newpath"; hg mv $oldpath $newpath; grep -rEl $oldname --exclude-dir=.hg --exclude-dir=suite --exclude-dir=editor --exclude-dir=chat/protocols/matrix/ . | xargs sed -E -i "s/( |\\\"|'\''|\/)${oldname/./\\.}/\1$newname/g"' -- {}
hg revert calendar/test/modules/CalendarUtils.jsm
hg revert chat/protocols/matrix/
hg revert chat/protocols/xmpp/xmpp-authmechs.jsm
# change Utils.jsm to utils.jsm
sed -i -e 's/Utils.jsm/utils.jsm/g' mail/test/browser/shared-modules/moz.build
# there's the mozmill/utils.js file
find . -type f -not -path "*.hg/*" -not -path "suite/*" -not -path "editor/*" -exec sed -i 's#mozmill/Utils.jsm*"#mozmill/utils.jsm#g' {} \;
correct sorting in
/home/magnus/Code/tb/mozilla/comm/mailnews/db/gloda/modules/moz.build
* * *
Bug 1529583 - fix linting errors discovered by js -> jsm renaming.
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/base/util/JXON.jsm:217:21 | 'document' is not defined. (no-undef)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/base/util/JsTreeSelection.jsm:7:7 | 'XPCOMUtils' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/base/util/TraceHelper.jsm:7:7 | 'XPCOMUtils' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Connotent.jsm:14:5 | 'LOG' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Databind.jsm:9:5 | 'DBC_LOG' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Datamodel.jsm:17:9 | 'MailServices' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Datamodel.jsm:24:43 | Replace `"resource:///modules/gloda/Utils.jsm"` with `⏎··"resource:///modules/gloda/Utils.jsm"⏎` (prettier/prettier)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Dbview.jsm:14:9 | 'Gloda' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Dbview.jsm:15:9 | 'GlodaMsgSearcher' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Everybody.jsm:8:5 | 'LOG' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Explattr.jsm:19:9 | 'GlodaUtils' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Explattr.jsm:19:43 | Replace `"resource:///modules/gloda/Utils.jsm"` with `⏎··"resource:///modules/gloda/Utils.jsm"⏎` (prettier/prettier)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Explattr.jsm:26:5 | 'EXT_BUILTIN' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Fundattr.jsm:12:43 | Replace `"resource:///modules/gloda/Utils.jsm"` with `⏎··"resource:///modules/gloda/Utils.jsm"⏎` (prettier/prettier)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Fundattr.jsm:14:9 | 'GlodaDatastore' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Fundattr.jsm:20:9 | 'MimeType' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Gloda.jsm:22:9 | 'GlodaDatabind' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Gloda.jsm:34:43 | Replace `"resource:///modules/gloda/Utils.jsm"` with `⏎··"resource:///modules/gloda/Utils.jsm"⏎` (prettier/prettier)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/IndexAb.jsm:10:9 | 'GlodaDatastore' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/IndexAb.jsm:21:9 | 'GlodaUtils' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/IndexAb.jsm:21:43 | Replace `"resource:///modules/gloda/Utils.jsm"` with `⏎··"resource:///modules/gloda/Utils.jsm"⏎` (prettier/prettier)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/IndexMsg.jsm:17:9 | 'XPCOMUtils' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/IndexMsg.jsm:30:43 | Replace `"resource:///modules/gloda/Utils.jsm"` with `⏎··"resource:///modules/gloda/Utils.jsm"⏎` (prettier/prettier)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/IndexMsg.jsm:84:5 | 'JUNK_HAM_SCORE_STR' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Indexer.jsm:15:9 | 'XPCOMUtils' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Indexer.jsm:22:43 | Replace `"resource:///modules/gloda/Utils.jsm"` with `⏎··"resource:///modules/gloda/Utils.jsm"⏎` (prettier/prettier)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Log4moz.jsm:9:5 | 'MODE_RDONLY' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Log4moz.jsm:13:5 | 'MODE_TRUNCATE' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Log4moz.jsm:16:5 | 'PERMS_DIRECTORY' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Mimemsg.jsm:15:9 | 'XPCOMUtils' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Mimemsg.jsm:19:5 | 'EMITTER_MIME_CODE' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Suffixtree.jsm:42:5 | 'print' is not defined. (no-undef)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/db/gloda/modules/Suffixtree.jsm:388:10 | 'examplar' is defined but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/fakeserver/Imapd.jsm:500:5 | 'IMAP_FLAG_CASE_INSENSITIVE' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/fakeserver/Imapd.jsm:516:5 | 'IMAP_NAMESPACE_OTHER_USERS' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/fakeserver/Imapd.jsm:517:5 | 'IMAP_NAMESPACE_SHARED' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/resources/IMAPpump.jsm:20:7 | 'XPCOMUtils' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/resources/IMAPpump.jsm:29:7 | 'AuthPLAIN' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/resources/IMAPpump.jsm:29:18 | 'AuthLOGIN' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/resources/IMAPpump.jsm:29:29 | 'AuthCRAM' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/resources/MailTestUtils.jsm:12:7 | 'XPCOMUtils' is assigned a value but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/resources/MessageGenerator.jsm:805:10 | 'addMessagesToFolder' is defined but never used. (no-unused-vars)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mailnews/test/resources/MockFactory.jsm:7:7 | 'XPCOMUtils' is assigned a value but never used. (no-unused-vars)
* * *
Bug 1529583 - part tree, cleanup and improve some module namings
declare -A x
x["Bond.jsm"]="BondOpenPGP.jsm"
x["Gnupg.jsm"]="GnuPGCryptoAPI.jsm"
x["RnpCryptoapi.jsm"]="RNPCryptoAPI.jsm"
x["Connotent.jsm"]="GlodaContent.jsm"
x["Databind.jsm"]="GlodaDatabind.jsm"
x["Datamodel.jsm"]="GlodaDataModel.jsm"
x["Datastore.jsm"]="GlodaDatastore.jsm"
x["Dbview.jsm"]="GlodaSyntheticView.jsm"
x["Explattr.jsm"]="GlodaExplicitAttr.jsm"
x["Fundattr.jsm"]="GlodaFundAttr.jsm"
x["IndexAb.jsm"]="GlodaMsgIndexer.jsm"
x["Indexer.jsm"]="GlodaIndexer.jsm"
x["Mimemsg.jsm"]="MimeMessage.jsm"
x["MsgSearch.jsm"]="GlodaMsgSearcher.jsm"
x["Public.jsm"]="GlodaPublic.jsm"
x["Query.jsm"]="GlodaQueryClassFactory.jsm"
x["Suffixtree.jsm"]="SuffixTree.jsm"
#x["Utils.js"]="GlodaUtils.jsm"
for f in "${!x[@]}"; do
export newname=${x[$f]}
find . -type f -not -path "*.hg/*" -name $f | xargs -I '{}' bash -c 'oldpath=$1; oldname=$(basename $1); newpath="${oldpath%/*}/$newname"; echo " newname=$newname $oldpath -> $newpath"; hg mv $oldpath $newpath; grep -rEl $oldname --exclude-dir=.hg --exclude-dir=suite --exclude-dir=editor --exclude-dir=chat/protocols/matrix/ . | xargs sed -E -i "s/( |\\\"|'\''|\/)${oldname/./\\.}/\1$newname/g"' -- {}
done;
hg mv mailnews/db/gloda/modules/Utils.jsm mailnews/db/gloda/modules/GlodaUtils.jsm
grep -rEl --exclude-dir=.hg --exclude-dir=suite --exclude-dir=editor "gloda/Utils.jsm" . | xargs sed -i 's#gloda/Utils.jsm#gloda/GlodaUtils.jsm#g'
# manually sort mailnews/db/gloda/modules/moz.build
# manually update some ical.js references to be that as it's the project name
--HG--
rename : calendar/base/modules/ical.js => calendar/base/modules/Ical.jsm
rename : mail/components/appIdleManager.js => mail/components/AppIdleManager.jsm
rename : mail/components/about-support/aboutSupportMac.js => mail/components/about-support/AboutSupportMac.jsm
rename : mail/components/about-support/aboutSupportUnix.js => mail/components/about-support/AboutSupportUnix.jsm
rename : mail/components/about-support/aboutSupportWin32.js => mail/components/about-support/AboutSupportWin32.jsm
rename : mail/components/wintaskbar/windowsJumpLists.js => mail/components/wintaskbar/WindowsJumpLists.jsm
rename : mail/extensions/openpgp/content/bond.js => mail/extensions/openpgp/content/BondOpenPGP.jsm
rename : mail/extensions/openpgp/content/modules/cryptoAPI/gnupg.js => mail/extensions/openpgp/content/modules/cryptoAPI/GnuPGCryptoAPI.jsm
rename : mail/extensions/openpgp/content/modules/cryptoAPI/rnp-cryptoAPI.js => mail/extensions/openpgp/content/modules/cryptoAPI/RNPCryptoAPI.jsm
rename : mailnews/base/src/virtualFolderWrapper.js => mailnews/base/src/VirtualFolderWrapper.jsm
rename : mailnews/base/util/errUtils.js => mailnews/base/util/ErrUtils.jsm
rename : mailnews/base/util/IOUtils.js => mailnews/base/util/IOUtils.jsm
rename : mailnews/base/util/JXON.js => mailnews/base/util/JXON.jsm
rename : mailnews/base/util/jsTreeSelection.js => mailnews/base/util/JsTreeSelection.jsm
rename : mailnews/base/util/mailnewsMigrator.js => mailnews/base/util/MailnewsMigrator.jsm
rename : mailnews/base/util/msgDBCacheManager.js => mailnews/base/util/MsgDBCacheManager.jsm
rename : mailnews/base/util/StringBundle.js => mailnews/base/util/StringBundle.jsm
rename : mailnews/base/util/templateUtils.js => mailnews/base/util/TemplateUtils.jsm
rename : mailnews/base/util/traceHelper.js => mailnews/base/util/TraceHelper.jsm
rename : mailnews/db/gloda/modules/collection.js => mailnews/db/gloda/modules/Collection.jsm
rename : mailnews/db/gloda/modules/everybody.js => mailnews/db/gloda/modules/Everybody.jsm
rename : mailnews/db/gloda/modules/facet.js => mailnews/db/gloda/modules/Facet.jsm
rename : mailnews/db/gloda/modules/gloda.js => mailnews/db/gloda/modules/Gloda.jsm
rename : mailnews/db/gloda/modules/connotent.js => mailnews/db/gloda/modules/GlodaContent.jsm
rename : mailnews/db/gloda/modules/datamodel.js => mailnews/db/gloda/modules/GlodaDataModel.jsm
rename : mailnews/db/gloda/modules/databind.js => mailnews/db/gloda/modules/GlodaDatabind.jsm
rename : mailnews/db/gloda/modules/datastore.js => mailnews/db/gloda/modules/GlodaDatastore.jsm
rename : mailnews/db/gloda/modules/explattr.js => mailnews/db/gloda/modules/GlodaExplicitAttr.jsm
rename : mailnews/db/gloda/modules/fundattr.js => mailnews/db/gloda/modules/GlodaFundAttr.jsm
rename : mailnews/db/gloda/modules/indexer.js => mailnews/db/gloda/modules/GlodaIndexer.jsm
rename : mailnews/db/gloda/modules/index_ab.js => mailnews/db/gloda/modules/GlodaMsgIndexer.jsm
rename : mailnews/db/gloda/modules/msg_search.js => mailnews/db/gloda/modules/GlodaMsgSearcher.jsm
rename : mailnews/db/gloda/modules/public.js => mailnews/db/gloda/modules/GlodaPublic.jsm
rename : mailnews/db/gloda/modules/query.js => mailnews/db/gloda/modules/GlodaQueryClassFactory.jsm
rename : mailnews/db/gloda/modules/dbview.js => mailnews/db/gloda/modules/GlodaSyntheticView.jsm
rename : mailnews/db/gloda/modules/utils.js => mailnews/db/gloda/modules/GlodaUtils.jsm
rename : mailnews/db/gloda/modules/index_msg.js => mailnews/db/gloda/modules/IndexMsg.jsm
rename : mailnews/db/gloda/modules/log4moz.js => mailnews/db/gloda/modules/Log4moz.jsm
rename : mailnews/db/gloda/modules/mimemsg.js => mailnews/db/gloda/modules/MimeMessage.jsm
rename : mailnews/db/gloda/modules/mimeTypeCategories.js => mailnews/db/gloda/modules/MimeTypeCategories.jsm
rename : mailnews/db/gloda/modules/noun_freetag.js => mailnews/db/gloda/modules/NounFreetag.jsm
rename : mailnews/db/gloda/modules/noun_mimetype.js => mailnews/db/gloda/modules/NounMimetype.jsm
rename : mailnews/db/gloda/modules/noun_tag.js => mailnews/db/gloda/modules/NounTag.jsm
rename : mailnews/db/gloda/modules/suffixtree.js => mailnews/db/gloda/modules/SuffixTree.jsm
rename : mailnews/test/fakeserver/auth.js => mailnews/test/fakeserver/Auth.jsm
rename : mailnews/test/fakeserver/imapd.js => mailnews/test/fakeserver/Imapd.jsm
rename : mailnews/test/fakeserver/maild.js => mailnews/test/fakeserver/Maild.jsm
rename : mailnews/test/fakeserver/nntpd.js => mailnews/test/fakeserver/Nntpd.jsm
rename : mailnews/test/fakeserver/pop3d.js => mailnews/test/fakeserver/Pop3d.jsm
rename : mailnews/test/fakeserver/smtpd.js => mailnews/test/fakeserver/Smtpd.jsm
rename : mailnews/test/resources/IMAPpump.js => mailnews/test/resources/IMAPpump.jsm
rename : mailnews/test/resources/localAccountUtils.js => mailnews/test/resources/LocalAccountUtils.jsm
rename : mailnews/test/resources/mailTestUtils.js => mailnews/test/resources/MailTestUtils.jsm
rename : mailnews/test/resources/messageGenerator.js => mailnews/test/resources/MessageGenerator.jsm
rename : mailnews/test/resources/MockFactory.js => mailnews/test/resources/MockFactory.jsm
extra : amend_source : 810c5e4724ae28add2f66a87e88bc144578425e8
# ignore-this-changeset
These changes were achieved by:
1. Using eslint to add curly brackets to control
statements that did not have them (if, else, etc.),
thanks to the eslint rule: "curly": ["error", "all"]
Done by running |mach eslint mail/ --fix|
2. Reformatting the code using Prettier.
Done by deleting the mail/ line from
the .prettierignore file and running:
|mach eslint mail/ --fix|