Chrome-tillagg som visar totalkostnaden direkt pa bilannonser fran svenska bilsajter.
- Automatisk kostnadsberakning — Ser direkt vad bilen kostar per manad
- Stod for flera sajter — Blocket, Wayke och Carla
- Detaljerad kostnadsfordelning — Bransle, vardeminskning, skatt, underhall, dack, forsakring, parkering, tvatt & skotsel och finansiering
- Aldersbaserad vardeminskning — Kurva justerad for bilens alder, bransletyp och anvandarens val (Lag/Normal/Hog)
- Finansieringsberakning — Kontant, restvardelslan, annuitetslan och leasing (privat/foretag)
- PDF-export — Exportera kostnadssammanstallning med bilbild till PDF
- Historik — Spara och jamfor tidigare visade bilar
- Automatisk dataextraktion — Pris, bransletyp, fordonsskatt, registreringsnummer och effektiv ranta
- Konto & inloggning — Magic link-autentisering via dinbilkostnad.se med saker token exchange
- Datadelning — Valfri synk av bilvisningar till molnet med GDPR-samtycke
| Sajt | URL |
|---|---|
| Blocket | blocket.se/annons/* |
| Wayke | wayke.se/* |
| Carla | carla.se/* |
# Installera dependencies
npm install
# Bygg for utveckling (med watch)
npm run dev
# Bygg for produktion
npm run build- Oppna
chrome://extensions/ - Aktivera "Utvecklarlage"
- Klicka "Ladda uppackad"
- Valj
dist-mappen
src/
├── adapters/ # Sajt-specifika datautdragare
│ ├── blocket.ts
│ ├── carla.ts
│ └── wayke.ts
├── background/ # Service worker (auth callback, consent sync)
├── content/ # Content script entrypoint
├── core/ # Berakningslogik och konstanter
│ ├── calculator.ts
│ ├── calculator.test.ts
│ ├── constants.ts
│ └── fuelDetection.test.ts
├── overlay/ # UI-overlay som visas pa sidor
├── panel/ # Detaljpanel med alla kostnader
├── popup/ # Extension popup (Om, Historik, Konto)
│ ├── popup.ts
│ ├── popup.html
│ └── popup.css
├── storage/ # Chrome storage hantering
│ ├── auth.ts # Autentisering + fetchWithTimeout
│ ├── emailGate.ts # Email gate (magic link-initiering)
│ ├── history.ts # Visningshistorik
│ ├── preferences.ts # Anvandarprefenser
│ └── syncManager.ts # Synk av bilvisningar till backend
└── types/ # TypeScript typedefinitioner
Tillaget stoder inloggning via dinbilkostnad.se med magic link:
- Anvandaren anger e-post i popup → magic link skickas
- Anvandaren klickar lanken → dinbilkostnad.se genererar en exchange code
- Anvandaren omdirigeras till
/auth/extension-callback?code=xxx - Background script fangar URL:en, POSTar koden till
/api/auth/exchange - Servern returnerar session-token → sparas i
chrome.storage.local
Exchange code-flodet sakerstarler att session-tokens aldrig exponeras i URL:er, webbhistorik eller serverloggar.
- Scoped permissions —
host_permissionsbegransade till blocket.se, wayke.se, carla.se och dinbilkostnad.se - Exakt URL-matchning — Callback-URL valideras med exakt
pathname-kontroll, intestartsWith - Request timeouts — Alla fetch-anrop anvander
fetchWithTimeout(8s default) via AbortController - authenticatedFetch — Popup och background script anvander gemensam auth-wrapper
- web_accessible_resources — Begransade till enbart bilsajterna, inte
<all_urls>
Kalkylatorn raknar ut foljande kostnader:
- Bransle — Baserat pa forbrukning, bransletyp och arlig korstracka. Laddhybrider viktas mellan bensin och el.
- Underhall — Skalat efter biltyp (enkel/normal/stor/lyx), underhallsniva och korstracka
- Dack — Baserat pa biltyp och dacklivslangd (~60 000 km)
- Vardeminskning — Aldersbaserad kurva (25%→15%→10%→6%→4%) justerad med bransletypsfaktor och anvandarens val
- Skatt — Fordonsskatt (extraheras automatiskt fran annonser) med stod for malusskatt
- Forsakring — Manatlig kostnad
- Parkering — Manatlig kostnad
- Tvatt & skotsel — Manatlig kostnad
- Finansiering — Lanebetalning eller leasingavgift
Modellen bygger pa tre faktorer:
-
Alderskurva — Arlig vardeminskning baserad pa bilens alder:
Alder Takt 0-1 ar 25% 1-3 ar 15% 3-5 ar 10% 5-8 ar 6% 8+ ar 4% -
Bransletypsfaktor — Justerar baserat pa drivmedel (bensin x0,75, diesel x1,0, el x1,25 m.fl.)
-
Anvandarjustering — Lag (x0,75), Normal (x1,0), Hog (x1,3)
Kontant — Ingen finansieringskostnad
Restvardelslan
- Lagre manatliga betalningar
- Restvarde betalas vid periodens slut
- Kontantinsats minimum 20%
Annuitetslan
- Fullstandig avbetalning under laneperioden
- Fast manatlig betalning
- Kontantinsats minimum 20%
Leasing (privat/foretag)
- Manuellt angiven manadsavgift
Obs: Administrativ avgift ar inkluderad i den effektiva rantan.
- Bensin
- Diesel
- El
- Laddhybrid (dubbla branslen)
- Hybrid/Elhybrid
- E85/Etanol
- Biogas
| Kommando | Beskrivning |
|---|---|
npm run dev |
Bygg med watch for utveckling |
npm run build |
Bygg for produktion |
npm run clean |
Ta bort dist-mappen |
npm run test |
Kor tester |
npm run test:watch |
Kor tester med watch |
- TypeScript
- Webpack
- Chrome Extension Manifest V3
- Vitest for testning
- Nytt: Automatisk synk av bilvisningar till backend via
syncManager.ts - Nytt: Synk triggas efter varje bilvisning, vid inloggning, vid samtycke och var 30:e minut (Chrome Alarms)
- Nytt: Kostnadsfordelning (bransle, vardeminskning, skatt, underhall, forsakring) sparas i historiken
- Andrat: Email gate aktiverad — anvandare ombeds skapa konto efter 10 gratisvisningar
- Andrat:
alarms-permission aterinford for periodisk synk - Fix: HistoryItem utokad med kostnadsfalt for fullstandig backend-synk
- Nytt: Konto-flik i popup — inloggning, utloggning, e-postvisning
- Nytt: Datadelnings-toggle med GDPR-samtycke i popup
- Nytt:
fetchWithTimeoututility (8s default) med AbortController - Nytt:
authenticatedFetchwrapper for API-anrop - Sakerhet:
host_permissionsbegransade fran<all_urls>till enbart bilsajter + dinbilkostnad.se - Sakerhet:
web_accessible_resourcesbegransade till enbart bilsajter - Sakerhet: Callback-URL valideras med exakt pathname-kontroll
- Sakerhet: Exchange code-flode — session-tokens skickas aldrig i URL:er
- Fix: Popup anvander
authenticatedFetchistallet for rafetch - Fix: Consent-toggle atergar vid fel och inaktiveras under synk
- Borttagen: Keep-alive alarm (onodigt med MV3 event-driven service workers)
- Borttagen:
alarms-permission
- Nytt: Aldersbaserad vardeminskning med bransletypsjustering (ersatter statisk 3-nivamodell)
- Nytt: Dropdown for vardeminskningtakt (Lag/Normal/Hog) med info-tooltip
- Nytt: Tvatt & skotsel som kostnadskategori
- Nytt: Leasing-stod (privatleasing/foretagsleasing)
- Nytt: Malusskatt-toggle med manuellt belopp
- Nytt: Email gate-system med visningsraknare
- Nytt: Automatisk extraktion av fordonsskatt, registreringsnummer och effektiv ranta
- Nytt: Content scripts aterinjiceras vid installation/uppdatering
- Nytt: Uppdaterad metodiksida ("Sa har raknar vi") med fullstandig modellbeskrivning
- Fix: Forbattrad elbilsdetektering — korrekt enhet (kr/kWh) visas nu
- Borttagen: "Forsakring ingar i leasingavgiften"-checkbox
- Minimum kontantinsats satt till 20%
- Administrativ avgift borttagen (inkluderad i effektiv ranta)
- Bilbild laggs till i PDF-export
- Bildextraktion for alla stodda sajter
Proprietar - Alla rattigheter forbehallna.