Files
TimeTracker/desktop/package.json
T
Dries Peeters eb2f5c6afa fix(apps): harden desktop and mobile server connectivity
Desktop (Electron):
- Add two-step first-run wizard: test TimeTracker via GET /api/v1/info, then log in with API token
- Replace bogus token check with validateSession (users/me, fallback to timer/status for narrow scopes)
- Normalize base URLs; classify TLS/DNS/timeout errors; periodic 401 forces re-login
- Settings save/test use public + authenticated checks; prebuild/prestart and npm test

Server:
- Exempt /api/v1/info, /api/v1/health, and POST /api/v1/auth/login from HTML setup redirect
- Include setup_required on GET /api/v1/info for unfinished installs

Mobile (Flutter):
- Validate saved token against new server URL before persisting settings change
- Remove unused lib/core/config.dart; point BUILD_CONFIGURATION at app_config.dart

Docs: DESKTOP_SETTINGS, desktop README, mobile-desktop-apps README, REST_API /info
2026-04-16 19:59:20 +02:00

109 lines
2.8 KiB
JSON

{
"name": "timetracker-desktop",
"version": "4.20.9",
"description": "TimeTracker desktop app for Windows, Linux, and macOS",
"main": "src/main/main.js",
"scripts": {
"prestart": "npm run build:renderer",
"prebuild": "npm run build:renderer",
"test": "node --test test/",
"start": "npm run build:renderer && electron .",
"dev": "electron . --dev",
"build:renderer": "esbuild src/renderer/js/app.js --bundle --outfile=src/renderer/js/bundle.js --platform=browser --format=iife",
"build": "npm run build:renderer && electron-builder",
"build:win": "npm run build:renderer && electron-builder --win",
"build:mac": "npm run build:renderer && electron-builder --mac",
"build:linux": "npm run build:renderer && electron-builder --linux",
"build:all": "node scripts/build-all-platforms.js",
"build:win+linux": "electron-builder --win --linux",
"build:all-force": "electron-builder --win --mac --linux",
"clean:cache": "node scripts/clean-cache.js",
"dist": "electron-builder --publish=never"
},
"keywords": [
"timetracker",
"time-tracking",
"electron"
],
"author": {
"name": "TimeTracker",
"email": "support@timetracker.app"
},
"homepage": "https://github.com/DRYTRIX/TimeTracker",
"license": "MIT",
"devDependencies": {
"electron": "^35.7.5",
"electron-builder": "^25.1.8",
"esbuild": "^0.24.2"
},
"dependencies": {
"axios": "^1.6.2",
"dexie": "^3.2.4",
"electron-store": "^8.1.0"
},
"build": {
"appId": "com.timetracker.desktop",
"productName": "TimeTracker",
"directories": {
"output": "dist"
},
"files": [
"src/**/*",
"package.json"
],
"asar": true,
"asarUnpack": [],
"win": {
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
],
"icon": "assets/icon.ico",
"artifactName": "${productName}-${version}-${arch}.${ext}",
"sign": null
},
"mac": {
"target": [
{
"target": "dmg",
"arch": [
"x64",
"arm64"
]
}
],
"icon": "assets/icon.icns",
"category": "public.app-category.productivity",
"artifactName": "${productName}-${version}-${arch}.${ext}"
},
"linux": {
"target": [
{
"target": "AppImage",
"arch": [
"x64"
]
},
{
"target": "deb",
"arch": [
"x64"
]
}
],
"icon": "assets/icon.png",
"category": "Utility",
"maintainer": "TimeTracker <support@timetracker.app>",
"artifactName": "${productName}-${version}-${arch}.${ext}"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true
}
}
}