Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,11 @@ ThirdStats runs entirely locally and will never contact, send or sell data to, a
ThirdStats features require [Thunderbird permissions](https://developer.thunderbird.net/add-ons/mailextensions/supported-webextension-api) to function, but will always seeks to minimise permissions where possible, and use granular permissions where available (Example: Thunderbird Permissions API does not currently provide for reading only message headers, instead of the entire email, including the body):

- Accounts: Access accounts and identities (read-only)
- Alarms: Schedule periodic background reprocessing of stats data. Can be disabled or adjusted in the add-on options.
- Downloads: Export and download data as a file
- Messages: Access messages to create statistics (read-only)
- Storage: Store processed data (cache) for performance. Can be cleared or disabled at any time.
- Messages Tags: Read the list of user-defined message tags (name and color) to enrich stats
- Storage: Store options and processed data (cache) for performance. Can be cleared or disabled at any time.

See the [Security Policy](./SECURITY.md) for details how ThirdStats values your privacy.

Expand Down
5 changes: 4 additions & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,14 @@ ThirdStats does store the processed stats data in Thunderbirds own extension sto

### 3. What exactly are all the permissions used for?

ThirdStats needs 3 permissions to work:
ThirdStats needs 6 permissions to work:

- `accountsRead`: _"See your mail accounts and their folders"_ - This is needed to iterate over all messages in all folders of your Thunderbird accounts to count and process them.
- `messagesRead`: _"Read your email messages and mark or tag them"_ - This is needed to read the message header and retrieve the following information from it: _author_, _bccList_, _ccList_, _date_, _read_, _recipients_. ThirdStats never reads the email body or marks/tags emails.
- `storage`: _"Store unlimited amount of client-side data"_ - This is needed to store your configured options and the ThirdStats cache (processed stats data), so it doesn't need to be reprocessed on every visit. Can be cleared or disabled at any time in the add-on options.
- `downloads`: _"Download files and read and modify the browser’s download history"_ - This is needed to export processed stats data as a JSON file and provide it as a file download. ThirdStats never reads or modifies the download history.
- `messagesTagsList`: _"Read your tags on messages"_ - This is needed to retrieve the name and color of user-defined message tags, so they can be used to enrich stats. ThirdStats never reads, sets or removes tags on individual messages.
- `alarms`: _"Schedule timed, periodic, or single trigger events"_ - This is needed to periodically reprocess stats data in the background, if automatic processing is enabled in the add-on options. ThirdStats never uses this to run code outside of that scheduled reprocessing.

### 4. Does it run as a web server with an open port which would expose it to vulnerabilities?

Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"test:watch": "vitest",
"test:coverage": "vitest run --coverage"
},
"packageManager": "pnpm@11.9.0",
"packageManager": "pnpm@11.22.0",
"dependencies": {
"chart.js": "^4.5.1",
"chartjs-adapter-date-fns": "^3.0.0",
Expand All @@ -26,7 +26,7 @@
"@vitest/coverage-v8": "^4.1.11",
"oxlint": "^1.79.0",
"prettier": "^3.9.6",
"vite": "^8.2.1",
"vite": "^8.2.2",
"vitest": "^4.1.11"
},
"browserslist": [
Expand Down
32 changes: 16 additions & 16 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 0 additions & 31 deletions public/js/background.js

This file was deleted.

6 changes: 4 additions & 2 deletions public/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
"background": {
"scripts": [
"js/background.js"
]
],
"type": "module"
},
"options_ui": {
"page": "index.options.html",
Expand All @@ -31,7 +32,8 @@
"messagesRead",
"storage",
"downloads",
"messagesTagsList"
"messagesTagsList",
"alarms"
],
"icons": {
"64": "icon.svg",
Expand Down
3 changes: 3 additions & 0 deletions src/background.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { initBackground } from '@/engines/backgroundEngine.js';

initBackground();
Loading