Offline - Alle Schreibzugriffe von API-Nutzern laufen über eine Warteschlange in IndexedDB (services/syncQueue.js): FIFO, zusammengefasste Updates, Wiederholung bei Netz/Sichtbarkeit/Backoff, 4xx wird als Fehler gemeldet. - Medien-Uploads liegen mit Bytes in der Queue, erscheinen sofort mit Marker und werden nach dem Upload durch das Server-Objekt ersetzt. - PWA-Modus mit Service Worker für die App-Hülle; API nie gecacht. npm run build erzeugt dist/pwa. - Speicherzustand im Panel: ausstehend / Fehler mit Wiederholen-Knopf, Verbindungsanzeige im Header. Event - Event entsteht erst mit dem ersten Eintrag; jede Löschung fragt nach. - Key Image als 4:3-Rahmen, Galerie mit Video, mehrere Sprachnotizen mit Notiz, Live-Pegel beim Aufnehmen, WAV-Umwandlung für lokale Aufnahmen. - Neue Felder: Zeitraum, Kategorie, Personen, Meilenstein; Stimmung als kompakte Zeile mit ausklappbarer Punktfarbe. Oberfläche - Untere Leiste: Darstellung und Zoom links, Jahres-Pille mittig, Plus rechts. - Logos und Goldpalette, Login neu, zehn Wellen-Presets mit Vorschau, Hintergrundbilder als Kacheln, Kontomenü und Einstellungen bereinigt, Escape schließt Ebenen, größere Touch-Ziele. - Alten Sync-Service und ungenutzte Legacy-Seiten entfernt. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
67 lines
2.3 KiB
JSON
67 lines
2.3 KiB
JSON
{
|
|
"name": "thatsme-quasar",
|
|
"version": "0.0.1",
|
|
"description": " Thats me Quasar Project",
|
|
"productName": "Thats me App",
|
|
"author": "Kevin Adametz",
|
|
"type": "module",
|
|
"private": true,
|
|
"scripts": {
|
|
"lint": "eslint -c ./eslint.config.js \"src/**/*.{js,cjs,mjs,vue}\" test/vitest",
|
|
"format": "prettier --write \"**/*.{js,vue,scss,html,md,json}\" --ignore-path .gitignore",
|
|
"test": "vitest run",
|
|
"dev": "npm install && quasar dev",
|
|
"dev:pwa": "npm install && quasar dev -m pwa",
|
|
"build": "quasar build -m pwa",
|
|
"build:spa": "quasar build",
|
|
"serve:pwa": "quasar serve dist/pwa --history --port 9100",
|
|
"postinstall": "quasar prepare",
|
|
"test:watch": "vitest",
|
|
"test:tz": "TZ=America/Los_Angeles vitest run test/vitest/calendar-date.spec.js test/vitest/components-timeline.spec.js && TZ=Pacific/Kiritimati vitest run test/vitest/calendar-date.spec.js test/vitest/components-timeline.spec.js && TZ=Europe/Berlin vitest run test/vitest/calendar-date.spec.js test/vitest/components-timeline.spec.js"
|
|
},
|
|
"dependencies": {
|
|
"@quasar/extras": "^1.16.4",
|
|
"dexie": "^4.3.0",
|
|
"pinia": "^3.0.1",
|
|
"quasar": "^2.16.0",
|
|
"register-service-worker": "^1.7.2",
|
|
"three": "^0.183.0",
|
|
"vue": "^3.4.18",
|
|
"vue-router": "^4.0.0",
|
|
"vue-select": "^4.0.0-beta.6"
|
|
},
|
|
"optionalDependencies": {
|
|
"@rollup/rollup-darwin-arm64": "^4.0.0",
|
|
"@rollup/rollup-linux-arm64-gnu": "^4.0.0",
|
|
"@rollup/rollup-linux-x64-gnu": "^4.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.14.0",
|
|
"@quasar/app-vite": "^2.1.0",
|
|
"@vitejs/plugin-vue": "^6.0.9",
|
|
"@vue/eslint-config-prettier": "^10.1.0",
|
|
"@vue/test-utils": "^2.5.1",
|
|
"autoprefixer": "^10.4.2",
|
|
"eslint": "^9.14.0",
|
|
"eslint-plugin-vue": "^9.30.0",
|
|
"fake-indexeddb": "^6.2.5",
|
|
"globals": "^15.12.0",
|
|
"happy-dom": "^20.14.5",
|
|
"postcss": "^8.4.14",
|
|
"prettier": "^3.3.3",
|
|
"vite-plugin-checker": "^0.9.0",
|
|
"vitest": "^3.2.7",
|
|
"workbox-build": "^7.4.1",
|
|
"workbox-cacheable-response": "^7.4.1",
|
|
"workbox-core": "^7.4.1",
|
|
"workbox-expiration": "^7.4.1",
|
|
"workbox-precaching": "^7.4.1",
|
|
"workbox-routing": "^7.4.1",
|
|
"workbox-strategies": "^7.4.1"
|
|
},
|
|
"engines": {
|
|
"node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18",
|
|
"npm": ">= 6.13.4",
|
|
"yarn": ">= 1.21.1"
|
|
}
|
|
}
|