Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e334c2a
➕ Install vitest and add tests
devmount Jul 21, 2026
d39ec1c
🔨 Move sections out of Stats.vue
devmount Jul 21, 2026
b4a74a7
🔨 Fix a timezone bug
devmount Jul 21, 2026
8cd2ebe
🔨 Fix leader tab border color
devmount Jul 21, 2026
d53c549
➕ Add test to cover more of utils.js
devmount Jul 21, 2026
4f564b3
🔨 Fix plural calculation
devmount Jul 21, 2026
24c0ee2
📦️ Package updates
devmount Jul 21, 2026
10aa51f
➕ Add prettier and reformat the codebase
devmount Jul 21, 2026
bca1131
➕ Include CSS for prettier
devmount Jul 21, 2026
c00a46d
➕ Add test coverage
devmount Jul 21, 2026
eb92c9d
🔨 Switch to kebab-case component notation
devmount Jul 21, 2026
063975f
🔨 Migrate to provide/inject rather than prop piping
devmount Jul 21, 2026
d3f79ea
🔨 Move logic out of Popup.vue
devmount Jul 21, 2026
70897c2
🔨 Restructure Options.vue
devmount Jul 21, 2026
5d0c75a
🔨 Fix default options mutation and unnecessary address save
devmount Jul 21, 2026
2128130
🔨 Fix a CSS unit inconsistency
devmount Jul 22, 2026
0d3c571
🔨 Restructure action bars
devmount Jul 22, 2026
0ee65dc
➕ UI SFCs and scoped CSS
devmount Jul 22, 2026
e349c0a
🔨 Replace concats by string literals
devmount Jul 23, 2026
6035df8
🔨 Remove utility classes in favour of design tokens
devmount Jul 23, 2026
f1332c7
🔨 Fix theme watcher
devmount Jul 23, 2026
33f5f35
🧹 Fix formatting
devmount Jul 23, 2026
f3afbff
➕ Add tests to bring coverage to 90%
devmount Jul 23, 2026
36008fa
➕ Add testing to validation workflow
devmount Jul 23, 2026
8cdaba0
🔨 Fix job names
devmount Jul 23, 2026
98df930
📜 Update contribution guidelines
devmount Jul 23, 2026
4eaf911
📜 Fix CodeQL badge
devmount Jul 23, 2026
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
20 changes: 17 additions & 3 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ First off, thanks for taking the time to contribute! You are awesome! :tada::cla
- [Reporting Bugs](#reporting-bugs)
- [Suggesting Enhancements](#suggesting-enhancements)
- [Provide Code via Pull Requests](#provide-code-via-pull-requests)
- [Coding Style](#coding-style)
- [Git Commit Messages](#git-commit-messages)
- [Providing Translations](#providing-translations)
- [Beta-Testing](#beta-testing)
Expand All @@ -17,15 +18,28 @@ First off, thanks for taking the time to contribute! You are awesome! :tada::cla

### Reporting Bugs

Before creating bug reports, please make sure there isn't already an existing issue describing your problem, for bugs are tracked as [GitHub issues](https://github.com/devmount/third-stats/issues). Simply create an issue and provide the necessary information by filling in [the bug-report template](https://github.com/devmount/third-stats/issues/new?template=bug_report.md).
Before creating bug reports, please make sure there isn't already [an existing issue](https://github.com/devmount/third-stats/issues?q=state%3Aopen%20label%3A%22bug%22) describing your problem. Create the new issue and provide the necessary information by filling in [the bug-report template](https://github.com/devmount/third-stats/issues/new?template=bug_report.md).

### Suggesting Enhancements

Enhancement suggestions are also tracked as [GitHub issues](https://github.com/devmount/third-stats/issues). Before creating enhancement suggestions, please check the existing issues as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please include as many details as possible. Fill in [the feature-request template](https://github.com/devmount/third-stats/issues/new?template=feature_request.md), including the steps that you imagine you would take if the feature you're requesting existed.
Enhancement suggestions are also tracked as [GitHub issues](https://github.com/devmount/third-stats/issues). Before creating enhancement suggestions, please check [the existing issues](https://github.com/devmount/third-stats/issues?q=state%3Aopen%20label%3A%enhancement%22) as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please include as many details as possible. Fill in [the feature-request template](https://github.com/devmount/third-stats/issues/new?template=feature_request.md), including the steps that you imagine you would take if the feature you're requesting existed.

### Provide Code via Pull Requests

Simply fill in [the required template](PULL_REQUEST_TEMPLATE.md). Please do not include issue numbers in the PR title, but mention it in the PR body.
Simply fill in [the required template](PULL_REQUEST_TEMPLATE.md). Please do not include issue numbers in the PR title, but add it in the PR body, e.g. via "Closes #1234".

All code must pass the validation workflow automatically running when pushing to a PR. All tests must pass to protect against regressions.

Always run `pnpm lint` and `pnpm format` before pushing to this repo.

#### Coding Style

Please always use the existing code as a guide for new code. Linter and formatter should cover most of the code styling automatically. Other than that

- Custom components follow the PascalCalse when importing and dash-case when adding them to the markup.
- Use destructuring where reasonable
- Favor template literals over string concatenation where applicable
- Modularize code where reasonable

#### Git Commit Messages

Expand Down
18 changes: 15 additions & 3 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This workflow will make sure the code is linted and valid
# This workflow will make sure the code is linted, tested and valid

name: Validate

Expand All @@ -15,8 +15,20 @@ on:

jobs:
oxlint:
name: Lint JS
name: Linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: npx --yes oxlint@1.50.0 --deny-warnings # change to the latest release
- run: npx --yes oxlint@latest --deny-warnings # change to the latest release

test:
name: Testing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v6
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run tests
run: pnpm test --coverage
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
# build files
node_modules
dist
coverage

# scripts and config
deploy.sh
Expand Down
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
dist
node_modules
pnpm-lock.yaml
public/_locales
8 changes: 8 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"useTabs": true,
"singleQuote": true,
"semi": true,
"trailingComma": "es5",
"printWidth": 120,
"arrowParens": "always"
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ ThirdStats is a Thunderbird add-on for beautifully visualized email account stat
<p align="center">
<a href="https://github.com/devmount/third-stats/releases" target="_blank"><img src="https://img.shields.io/github/v/tag/devmount/third-stats.svg?label=ThirdStats&colorB=0a84ff&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAADDUlEQVRoge1ZMW7bQBAcB+lYyC2r6AdxXhC6YcnQL0j8A6m+InLBOv6B4h84LNlEeYGlH1gVW7m4WsERy+B0uj3eCQgpARzAMEQuyZ272dmldLXf73HJeHfR2Y8EzgAjgaHxfqjn11mVA3gEsAOwiMv0+ZT7DGKjdVYlAH4bh+/jMv0Zeq/eJVRn1Q0A22ov66z6Fnq/XgnUWXUNQK3yhAkJJtH3DqiV/9gRE0SiNwJ1VqmV/2wc/qO0bwn3JtELAUrmq3F4AyCnwj2ZxH93IcZx3gAkcZmutTiV7NJyC6c7BRMgF1EerhJbKS+Py3TniF1ZivY2LlN13IznSNxxfSJIQpTQC4DvpGf1/7XOqgU5jB7LOc69LXkFh5xuuJy8CVBCtlWYMERsjvPU1awcJKzwllCdVSqhLx6hSt9rm+PEZZr4JkajRrvyK27XvAjUWTUD8MM4rFxk6mhKZmyi10pU4GAWksK6u53oJKDpXsdWW50Z/XFEjhwnKmCdhaRA8CzkJEB6Vg/+YJz6ZFjgtYPIgeNERbNra4ZwMIkuAjbdz+MyfWTiWyIJJflsJH9NtuoaJ4JIsAQYT/4Vl2nue3MTUdEkZnZkG7xJuGx0anxWug8ed1tERbMztnFibglfRoXfs1xvZGZ3zQ0XOerIUhxd08YmFhdTxZ1LgdeoaK4zd1uRQNdOuCQ0pRXfkQ/rLmJzpjd6RTwg4ijaWymg1wc7C7lInDTMRUWTEFeI/4jQZ1vRzqXAkRE4SNxxfSKYQFRgQaNDF7iO/CQFr2+GxFaKo5psEDTMkXTM5LeUrImJJfkN2SwLkos5C5l96DQCNF2ayMmxHhgiLdqitRa6jpA+4E2ApGNq+UEKrFVSUjTnXUQax/F9ni+8aoBxnY0U9jmdOu5Ms9iV7jg+iAocJCYFrmyX+X4zZ9tSthBJJouQhE9Fp4Rc0ukjwS44CTCusyG9nwW6diBIOkOArQFGOgovaka5hB1wNpxzwaX8wLHlTnTtgKuz9gXne8j4O/HQGAkMjZHA0BgJDAoAfwGoiFbuo7sc2QAAAABJRU5ErkJggg==" alt="release" /></a>
<a href="https://github.com/devmount/third-stats/commits/main" target="_blank"><img src="https://img.shields.io/github/last-commit/devmount/third-stats?label=updated&color=0a84ff&style=flat-square" alt="last commit" /></a>
<a href="https://github.com/devmount/third-stats/actions?query=workflow%3ACodeQL" target="_blank"><img src="https://img.shields.io/github/actions/workflow/status/devmount/third-stats/codeql-analysis.yml?label=CodeQL&logo=github&color=0a84ff&style=flat-square" alt="CodeQL analysis" /></a>
<a href="https://github.com/devmount/third-stats/actions/workflows/github-code-scanning/codeql" target="_blank"><img src="https://img.shields.io/github/actions/workflow/status/devmount/third-stats/github-code-scanning/codeql?label=CodeQL&logo=github&color=0a84ff&style=flat-square" alt="CodeQL analysis" /></a>
<a href="./LICENSE" target="_blank"><img src="https://img.shields.io/github/license/devmount/third-stats.svg?colorB=e64db9&style=flat-square" alt="license" /></a>
<a href="./.github/CONTRIBUTING.md" target="_blank"><img src="https://img.shields.io/badge/contributions-welcome-e64db9.svg?style=flat-square" alt="contributions welcome" /></a>
</p>
Expand Down
2 changes: 1 addition & 1 deletion index.options.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<title>ThirdStats: Options</title>
<link rel="icon" href="/icon.svg" />
</head>
<body>
<body class="dark options-bg">
<noscript>
We're sorry but Thunderbird E-Mail Statistics doesn't work properly without JavaScript enabled.
Please enable it to continue.
Expand Down
2 changes: 1 addition & 1 deletion index.popup.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="utf-8" />
<title>Thunderbird E-Mail Account Statistics</title>
</head>
<body class="dark text-normal background-modal">
<body class="dark popup-bg">
<noscript>
We're sorry but Thunderbird E-Mail Statistics doesn't work properly without JavaScript enabled.
Please enable it to continue.
Expand Down
2 changes: 1 addition & 1 deletion index.stats.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<title>E-Mail Account Statistics</title>
<link rel="icon" href="/icon.svg" />
</head>
<body>
<body class="dark stats-bg">
<noscript>
We're sorry but Thunderbird E-Mail Statistics doesn't work properly without JavaScript enabled.
Please enable it to continue.
Expand Down
24 changes: 16 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,31 @@
"build": "vite build",
"serve": "vite preview",
"lint": "oxlint",
"format": "prettier --write \"src/**/*.{js,vue,css}\" \"test/**/*.js\" vite.config.js vitest.config.js",
"format:check": "prettier --check \"src/**/*.{js,vue,css}\" \"test/**/*.js\" vite.config.js vitest.config.js",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"getlang": "localazy download",
"setlang": "localazy upload existing"
},
"packageManager": "pnpm@11.9.0",
"dependencies": {
"chart.js": "^4.0.1",
"chart.js": "^4.5.1",
"chartjs-adapter-date-fns": "^3.0.0",
"chartjs-chart-matrix": "^3.0.0",
"chartjs-chart-matrix": "^3.0.5",
"date-fns": "^4.4.0",
"vue": "^3.2.38",
"vue-i18n": "^11.1.10"
"vue": "^3.5.40",
"vue-i18n": "^11.4.7"
},
"devDependencies": {
"@localazy/cli": "^2.0.5",
"@vitejs/plugin-vue": "^6.0.0",
"oxlint": "^1.9.0",
"vite": "^8.0.16"
"@localazy/cli": "^2.0.11",
"@vitejs/plugin-vue": "^6.0.8",
"@vitest/coverage-v8": "^4.1.10",
"oxlint": "^1.74.0",
"prettier": "^3.9.5",
"vite": "^8.1.5",
"vitest": "^4.1.10"
},
"browserslist": [
"Firefox ESR"
Expand Down
Loading