From 99413db4f4548cbb4d1fb96f444d1515768d0448 Mon Sep 17 00:00:00 2001 From: Kenso Grimm Date: Sun, 18 Jan 2026 01:45:07 +0100 Subject: [PATCH] Update subproject commit to indicate a dirty state --- .cursor/debug.log | 11 + Extension/README.md | 192 +---------- Extension/background.js | 191 +++++++++++ Extension/background/service-worker.js | 419 ------------------------- Extension/config.js | 17 - Extension/content-script.js | 70 +++++ Extension/content/content-script.js | 310 ------------------ Extension/ebay-content-script.js | 361 +++++++++++++++++++++ Extension/lib/appwrite.min.js | 209 ------------ Extension/manifest.json | 79 ++--- Extension/popup.html | 8 + Extension/popup.js | 44 +++ Extension/popup/popup.css | 315 ------------------- Extension/popup/popup.html | 62 ---- Extension/popup/popup.js | 319 ------------------- README.md | 108 ++++++- background.png | Bin 0 -> 796631 bytes db.txt | 230 -------------- logo128.png | Bin 0 -> 9651 bytes logo16.png | Bin 0 -> 1202 bytes logo48.png | Bin 0 -> 2614 bytes setup/API_KEY_SETUP.md | 53 ---- setup/API_SERVER_SETUP.md | 58 ---- setup/USERS_COLLECTION_SETUP.md | 174 ++++++++++ 24 files changed, 1001 insertions(+), 2229 deletions(-) create mode 100644 .cursor/debug.log create mode 100644 Extension/background.js delete mode 100644 Extension/background/service-worker.js delete mode 100644 Extension/config.js create mode 100644 Extension/content-script.js delete mode 100644 Extension/content/content-script.js create mode 100644 Extension/ebay-content-script.js delete mode 100644 Extension/lib/appwrite.min.js create mode 100644 Extension/popup.html create mode 100644 Extension/popup.js delete mode 100644 Extension/popup/popup.css delete mode 100644 Extension/popup/popup.html delete mode 100644 Extension/popup/popup.js create mode 100644 background.png delete mode 100644 db.txt create mode 100644 logo128.png create mode 100644 logo16.png create mode 100644 logo48.png delete mode 100644 setup/API_KEY_SETUP.md delete mode 100644 setup/API_SERVER_SETUP.md create mode 100644 setup/USERS_COLLECTION_SETUP.md diff --git a/.cursor/debug.log b/.cursor/debug.log new file mode 100644 index 0000000..baef34e --- /dev/null +++ b/.cursor/debug.log @@ -0,0 +1,11 @@ +{"location":"BackgroundRippleEffect.jsx:84","message":"Grid cell visibility check","data":{"cellsCount":216,"cellWidth":56,"cellHeight":56,"cellOpacity":"1","cellBackgroundColor":"rgba(255, 255, 255, 0.05)","cellBorderColor":"rgba(255, 255, 255, 0.4)","cellDisplay":"block","rows":8,"cols":27,"cellSize":56},"timestamp":1768696693322,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"BackgroundRippleEffect.jsx:25","message":"Container visibility check","data":{"containerWidth":1070,"containerHeight":853,"zIndex":"0","opacity":"1","display":"block","visibility":"visible","calculatedCols":27,"calculatedRows":8,"viewportSize":{"width":0,"height":0},"pageBackground":"rgba(0, 0, 0, 0)"},"timestamp":1768696693324,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"BackgroundRippleEffect.jsx:84","message":"Grid cell visibility check","data":{"cellsCount":216,"cellWidth":56,"cellHeight":56,"cellOpacity":"1","cellBackgroundColor":"rgba(255, 255, 255, 0.05)","cellBorderColor":"rgba(255, 255, 255, 0.4)","cellDisplay":"block","rows":8,"cols":27,"cellSize":56},"timestamp":1768696693330,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"BackgroundRippleEffect.jsx:25","message":"Container visibility check","data":{"containerWidth":1070,"containerHeight":853,"zIndex":"0","opacity":"1","display":"block","visibility":"visible","calculatedCols":27,"calculatedRows":8,"viewportSize":{"width":0,"height":0},"pageBackground":"rgba(0, 0, 0, 0)"},"timestamp":1768696693330,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"BackgroundRippleEffect.jsx:84","message":"Grid cell visibility check","data":{"cellsCount":396,"cellWidth":56,"cellHeight":56,"cellOpacity":"1","cellBackgroundColor":"rgba(255, 255, 255, 0.05)","cellBorderColor":"rgba(255, 255, 255, 0.4)","cellDisplay":"block","rows":18,"cols":22,"cellSize":56},"timestamp":1768696693374,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"BackgroundRippleEffect.jsx:25","message":"Container visibility check","data":{"containerWidth":1070,"containerHeight":853,"zIndex":"0","opacity":"1","display":"block","visibility":"visible","calculatedCols":22,"calculatedRows":18,"viewportSize":{"width":1070,"height":853},"pageBackground":"rgba(0, 0, 0, 0)"},"timestamp":1768696693376,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"ebayParserService.js:341","message":"parseEbayAccount entry","data":{"url":"https://www.ebay.de/str/apecollection?_trksid=p4429486.m3561.l161210"},"timestamp":1768696699523,"sessionId":"debug-session","runId":"run2","hypothesisId":"C"} +{"location":"ebayParserService.js:346","message":"parseEbayAccount: isExtensionAvailable result","data":{"extAvailable":false,"willTryExtension":false},"timestamp":1768696699525,"sessionId":"debug-session","runId":"run2","hypothesisId":"C"} +{"location":"ebayParserService.js:94","message":"isExtensionAvailable check","data":{"hasFlag":false,"result":false},"timestamp":1768696699524,"sessionId":"debug-session","runId":"run2","hypothesisId":"C"} +{"location":"BackgroundRippleEffect.jsx:84","message":"Grid cell visibility check","data":{"cellsCount":408,"cellWidth":56,"cellHeight":56,"cellOpacity":"1","cellBackgroundColor":"rgba(255, 255, 255, 0.05)","cellBorderColor":"rgba(255, 255, 255, 0.4)","cellDisplay":"block","rows":17,"cols":24,"cellSize":56},"timestamp":1768696852148,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"BackgroundRippleEffect.jsx:25","message":"Container visibility check","data":{"containerWidth":1203,"containerHeight":840,"zIndex":"0","opacity":"1","display":"block","visibility":"visible","calculatedCols":24,"calculatedRows":17,"viewportSize":{"width":1203,"height":840},"pageBackground":"rgba(0, 0, 0, 0)"},"timestamp":1768696852149,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} diff --git a/Extension/README.md b/Extension/README.md index bba79c5..2dc0985 100644 --- a/Extension/README.md +++ b/Extension/README.md @@ -1,189 +1,9 @@ -# EShip Browser Extension +# Extension -Chrome Extension (Manifest V3) fuer die Authentifizierung und Tool-Verwaltung der EShip Web-App. +Dieser Ordner enthält die Browser-Extension, die für Frontend-Funktionalität und Datenextraktion (z.B. von Amazon) zuständig ist. -## Funktionen +## Geplante Funktionen -- **Authentifizierung**: Login via Appwrite (Email/Password) -- **Website-Schutz**: Blockiert die Web-App fuer nicht-authentifizierte Benutzer -- **Tools-System**: Aktivierbare Tools mit individuellen Einstellungen -- **Live-Updates**: Einstellungen werden sofort auf der Website angewendet - -## Projektstruktur - -``` -Extension/ -├── manifest.json # Chrome Extension Manifest (MV3) -├── config.js # Appwrite Konfiguration -├── background/ -│ └── service-worker.js # Background Service Worker -├── popup/ -│ ├── popup.html # Popup UI -│ ├── popup.css # Popup Styles -│ └── popup.js # Popup Logic -├── content/ -│ └── content-script.js # Content Script fuer Website -└── lib/ - └── appwrite.min.js # Appwrite SDK Bundle -``` - -## Installation - -### 1. Appwrite API Key erstellen - -**WICHTIG**: Du musst einen API Key in Appwrite erstellen: - -1. Gehe zu https://cloud.appwrite.io -2. Waehle dein Projekt -3. Settings > API Keys > "Create API Key" -4. Scopes: `users.read`, `users.write`, `sessions.write` -5. Kopiere den API Key (wird nur einmal angezeigt!) - -Siehe auch: `setup/API_KEY_SETUP.md` fuer detaillierte Anleitung. - -### 2. Extension konfigurieren - -Bearbeite `Extension/config.js`: - -```javascript -var APPWRITE_CONFIG = { - endpoint: 'https://cloud.appwrite.io/v1', - projectId: '696b82bb0036d2e547ad', - apiKey: 'DEIN_API_KEY_HIER' // WICHTIG: API Key hier einfuegen -}; -``` - -### 3. Extension in Chrome laden - -1. Oeffne Chrome und navigiere zu `chrome://extensions` -2. Aktiviere den **Entwicklermodus** (Toggle oben rechts) -3. Klicke auf **Entpackte Erweiterung laden** -4. Waehle den `Extension/` Ordner aus -5. Die Extension erscheint in der Toolbar - -### 4. Server starten - -```bash -cd Server -npm install -npm run dev -``` - -Der Server startet unter `http://localhost:5173` - -## Testen - -### Auth-Flow testen - -1. **Ohne Login**: - - Oeffne `http://localhost:5173` - - Die Seite zeigt einen "Zugriff gesperrt" Bildschirm - -2. **Login durchfuehren**: - - Klicke auf das Extension-Icon in der Toolbar - - Gib deine Appwrite-Zugangsdaten ein - - Klicke auf "Anmelden" - - Nach erfolgreichem Login wird die Website automatisch geoeffnet - -3. **Nach Login**: - - Die Website ist voll zugaenglich - - Das Extension-Popup zeigt das Tools-Menu - -### Tools testen - -1. Oeffne das Extension-Popup (nach Login) -2. Aktiviere das Tool "Preise hervorheben" -3. Auf der Website werden alle `.price` Elemente mit rotem Rahmen hervorgehoben -4. Aendere den Selector oder die Farbe in den Tool-Einstellungen -5. Die Aenderungen werden sofort angewendet - -### Demo-Preise - -Die Web-App enthaelt Demo-Preiselemente in der unteren rechten Ecke zum Testen des Highlight-Tools. - -## Tools-Registry - -Tools werden in `background/service-worker.js` definiert: - -```javascript -const DEFAULT_TOOLS = [ - { - id: 'highlight_prices', - name: 'Preise hervorheben', - enabled: false, - settings: { - selector: '.price', - borderColor: '#ff0000', - borderWidth: '2px' - } - } -]; -``` - -### Neues Tool hinzufuegen - -1. Fuege das Tool zur `DEFAULT_TOOLS` Liste hinzu -2. Implementiere die Logik in `content/content-script.js`: - ```javascript - function applyTool(tool) { - switch (tool.id) { - case 'dein_tool_id': - applyDeinTool(tool.settings); - break; - } - } - ``` - -## Message-Kommunikation - -### Popup <-> Service Worker - -| Action | Beschreibung | -|--------|--------------| -| `CHECK_AUTH` | Prueft Auth-Status | -| `LOGIN` | Login mit Email/Password | -| `LOGOUT` | Beendet Session | -| `GET_SETTINGS` | Laedt Tool-Einstellungen | -| `SAVE_SETTINGS` | Speichert Tool-Einstellungen | - -### Service Worker <-> Content Script - -| Action | Beschreibung | -|--------|--------------| -| `SETTINGS_UPDATED` | Neue Tool-Einstellungen | -| `AUTH_CHANGED` | Auth-Status geaendert | - -## Sicherheit - -- Passwoerter werden **nie** im Klartext gespeichert -- Authentifizierung laeuft vollstaendig ueber Appwrite Sessions -- Session-Cookies sind HTTP-only und werden von Appwrite verwaltet -- Tool-Einstellungen werden in `chrome.storage.sync` gespeichert - -## Fehlerbehebung - -### Extension funktioniert nicht - -1. Pruefe die Browser-Konsole auf Fehler -2. Oeffne `chrome://extensions` und klicke auf "Service Worker" bei der Extension -3. Pruefe die Konsole des Service Workers - -### Login schlaegt fehl - -1. Pruefe die Appwrite-Konfiguration in `config.js` -2. Stelle sicher, dass der **API Key** gesetzt ist -3. Pruefe, ob der API Key die richtigen Scopes hat (`users.read`, `users.write`, `sessions.write`) -4. Stelle sicher, dass der Appwrite-Benutzer existiert -5. Pruefe, ob die Appwrite-Plattform-Einstellungen den Extension-Zugriff erlauben - -### Website bleibt blockiert - -1. Lade die Website neu nach dem Login -2. Pruefe, ob die URL in `manifest.json` unter `content_scripts.matches` steht -3. Pruefe die Content-Script-Konsole (F12 auf der Website) - -## Bekannte Einschraenkungen - -- Die Extension funktioniert nur auf den konfigurierten URLs (localhost:5173, localhost:3000) -- Fuer Produktions-URLs muss `manifest.json` angepasst werden -- Icons sind nicht enthalten (Chrome verwendet Standard-Icon) +- Frontend-Benutzeroberfläche +- Datenextraktion von Websites (z.B. Amazon) +- Kommunikation mit dem Server für Verschlüsselung und Authentifizierung diff --git a/Extension/background.js b/Extension/background.js new file mode 100644 index 0000000..2cf43f0 --- /dev/null +++ b/Extension/background.js @@ -0,0 +1,191 @@ +const STORAGE_KEY = "auth_jwt"; +const BACKEND_URL = "http://localhost:5173"; // TODO: Backend URL konfigurieren + +const PARSE_TIMEOUT_MS = 15000; // 15 seconds +const activeParseRequests = new Map(); // Map + +// Messages from content script (der von der Web-App kommt) +chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => { + // Auth messages vom Content Script + if (msg?.type === "AUTH_JWT" && msg.jwt) { + chrome.storage.local.set({ [STORAGE_KEY]: msg.jwt }).then(() => { + sendResponse({ ok: true }); + }); + return true; // async + } + + if (msg?.type === "AUTH_CLEARED") { + chrome.storage.local.remove(STORAGE_KEY).then(() => { + sendResponse({ ok: true }); + }); + return true; + } + + // API calls vom Popup + if (msg?.type === "GET_JWT") { + getJwt().then(jwt => { + sendResponse({ jwt }); + }); + return true; + } + + if (msg?.type === "CALL_API" && msg.path) { + callProtectedApi(msg.path, msg.payload).then(data => { + sendResponse({ ok: true, data }); + }).catch(err => { + sendResponse({ ok: false, error: err.message }); + }); + return true; + } + + // eBay Parsing Request (from Web App via content script or directly) + if (msg?.action === "PARSE_URL" && msg.url) { + handleParseRequest(msg.url, sendResponse); + return true; // async + } + + // eBay Parsing Response (from eBay content script) + if (msg?.action === "PARSE_COMPLETE") { + handleParseComplete(sender.tab?.id, msg.data); + return true; + } +}); + +// Handle messages from external web apps (externally_connectable) +chrome.runtime.onMessageExternal.addListener((msg, sender, sendResponse) => { + if (msg?.action === "PARSE_URL" && msg.url) { + handleParseRequest(msg.url, sendResponse); + return true; // async + } +}); + +/** + * Handles eBay URL parsing request + * Creates a hidden tab, waits for load, sends parse message to content script + */ +async function handleParseRequest(url, sendResponse) { + try { + // Validate URL + if (!url || typeof url !== 'string' || !url.toLowerCase().includes('ebay.')) { + sendResponse({ ok: false, error: "Invalid eBay URL" }); + return; + } + + // Create hidden tab + const tab = await chrome.tabs.create({ + url: url, + active: false + }); + + const tabId = tab.id; + + // Set up timeout + const timeoutId = setTimeout(() => { + cleanupParseRequest(tabId, null, { ok: false, error: "timeout" }); + }, PARSE_TIMEOUT_MS); + + // Store request info + activeParseRequests.set(tabId, { + timeout: timeoutId, + sendResponse: sendResponse + }); + + // Wait for tab to load, then send parse message + const checkTabLoaded = (updatedTabId, changeInfo, updatedTab) => { + if (updatedTabId !== tabId) return; + + // Tab is fully loaded + if (changeInfo.status === 'complete' && updatedTab.url) { + chrome.tabs.onUpdated.removeListener(checkTabLoaded); + + // Small delay to ensure DOM is ready + setTimeout(() => { + // Send parse message to content script + chrome.tabs.sendMessage(tabId, { action: "PARSE_EBAY" }) + .then(response => { + if (response && response.ok && response.data) { + handleParseComplete(tabId, response.data); + } else { + cleanupParseRequest(tabId, null, { ok: false, error: "Parsing failed" }); + } + }) + .catch(err => { + console.error("Error sending parse message:", err); + cleanupParseRequest(tabId, null, { ok: false, error: "Content script error" }); + }); + }, 1000); // 1 second delay for DOM ready + } + }; + + chrome.tabs.onUpdated.addListener(checkTabLoaded); + + } catch (error) { + console.error("Error in handleParseRequest:", error); + sendResponse({ ok: false, error: error.message || "Unknown error" }); + } +} + +/** + * Handles parse complete response from content script + */ +function handleParseComplete(tabId, data) { + cleanupParseRequest(tabId, data, null); +} + +/** + * Cleans up parse request: closes tab, clears timeout, sends response + */ +async function cleanupParseRequest(tabId, data, error) { + const request = activeParseRequests.get(tabId); + if (!request) return; + + // Clear timeout + if (request.timeout) { + clearTimeout(request.timeout); + } + + // Remove from active requests + activeParseRequests.delete(tabId); + + // Close tab + try { + await chrome.tabs.remove(tabId); + } catch (err) { + // Tab might already be closed + console.warn("Could not close tab:", err); + } + + // Send response + if (request.sendResponse) { + if (error) { + request.sendResponse(error); + } else if (data) { + request.sendResponse({ ok: true, data: data }); + } else { + request.sendResponse({ ok: false, error: "Unknown error" }); + } + } +} + + +export async function getJwt() { + const data = await chrome.storage.local.get(STORAGE_KEY); + return data[STORAGE_KEY] || ""; +} + +export async function callProtectedApi(path, payload) { + const jwt = await getJwt(); + if (!jwt) throw new Error("Not authed"); + + const res = await fetch(`${BACKEND_URL}${path}`, { + method: "POST", + headers: { + "content-type": "application/json", + "authorization": `Bearer ${jwt}` + }, + body: JSON.stringify(payload || {}) + }); + + if (!res.ok) throw new Error(`API error: ${res.status}`); + return await res.json(); +} diff --git a/Extension/background/service-worker.js b/Extension/background/service-worker.js deleted file mode 100644 index feea162..0000000 --- a/Extension/background/service-worker.js +++ /dev/null @@ -1,419 +0,0 @@ -// EShip Extension - Background Service Worker -// Handles Appwrite authentication and message passing - -console.log('[SW] Service Worker starting...'); - -// Define APPWRITE_CONFIG directly (fallback if config.js fails to load) -var APPWRITE_CONFIG = { - endpoint: 'https://appwrite.webklar.com/v1', - projectId: '696b82bb0036d2e547ad', - apiKey: 'standard_d48c6eebe825b55e685d8e66ea056161105470702da77b730aca08c106ffbadfa2375ff675dbe9e01d7bb72b4a9fa001ff7c365b73759bc5fb3da432c3cd9cee1151e67517e9838d1f96f942d9891ce66ddc6f11c0fdd67a24f7c84e0fa9999a74dacf2c6aa3533998c177f190fc87ffb5a30b27474be21aece4c70d71d205ba' -}; - -// Global state -let client, account; -let scriptsLoaded = false; -let initError = null; -let DEFAULT_TOOLS = [ - { - id: 'highlight_prices', - name: 'Preise hervorheben', - enabled: false, - settings: { - selector: '.price', - borderColor: '#ff0000', - borderWidth: '2px' - } - } -]; - -// Register message listener FIRST - before any initialization -chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { - console.log('[SW] Message received:', request.action); - - // PING handler - synchronous response - if (request.action === 'PING') { - console.log('[SW] PING received, responding'); - sendResponse({ success: true, message: 'Service Worker is alive' }); - return false; // Synchronous response - } - - // Handle other messages asynchronously - (async () => { - try { - // Ensure scripts are loaded (synchronous operation) - if (!scriptsLoaded) { - loadScripts(); - } - - // Ensure Appwrite is initialized - if (!client || !account) { - initAppwrite(); - } - - // Handle the message - const response = await handleMessage(request, sender); - console.log('[SW] Sending response:', response); - sendResponse(response); - } catch (error) { - console.error('[SW] Error handling message:', error); - sendResponse({ - success: false, - error: error.message || 'Unbekannter Fehler' - }); - } - })(); - - return true; // Keep channel open for async -}); - -// Load scripts - try relative path first, then fallback to inline -function loadScripts() { - if (scriptsLoaded) return; - - try { - console.log('[SW] Loading scripts...'); - - // Try loading config first (smaller file) - will override default if successful - try { - importScripts('../config.js'); - console.log('[SW] config.js loaded (overriding default)'); - } catch (e) { - console.error('[SW] Failed to load config.js:', e); - console.log('[SW] Using default inline config'); - } - - // Try loading Appwrite SDK - try { - importScripts('../lib/appwrite.min.js'); - console.log('[SW] appwrite.min.js loaded via importScripts'); - } catch (e) { - console.error('[SW] Failed to load appwrite.min.js via importScripts:', e); - // Load Appwrite SDK inline - loadAppwriteSDKInline(); - console.log('[SW] appwrite.min.js loaded inline'); - } - - scriptsLoaded = true; - console.log('[SW] Scripts loaded successfully'); - } catch (error) { - console.error('[SW] Failed to load scripts:', error); - throw error; - } -} - -// Load Appwrite SDK inline if importScripts fails -function loadAppwriteSDKInline() { - if (typeof Appwrite !== 'undefined') return; - - (function(global) { - 'use strict'; - const Appwrite = {}; - - class Client { - constructor() { - this.config = { endpoint: 'https://appwrite.webklar.com/v1', project: '' }; - this.headers = { - 'content-type': 'application/json', - 'x-sdk-name': 'Chrome Extension', - 'x-sdk-platform': 'client', - 'x-sdk-language': 'web', - 'x-sdk-version': '21.0.0', - }; - } - setEndpoint(endpoint) { this.config.endpoint = endpoint; return this; } - setProject(project) { this.config.project = project; this.headers['x-appwrite-project'] = project; return this; } - setKey(key) { if (key) this.headers['x-appwrite-key'] = key; else delete this.headers['x-appwrite-key']; return this; } - async call(method, path, headers = {}, params = {}) { - const url = new URL(this.config.endpoint + path); - const options = { method: method.toUpperCase(), headers: { ...this.headers, ...headers }, credentials: 'include' }; - if (method === 'GET') { - for (const [key, value] of Object.entries(params)) { - if (value !== undefined) url.searchParams.append(key, value); - } - } else { - options.body = JSON.stringify(params); - } - const response = await fetch(url.toString(), options); - const contentType = response.headers.get('content-type') || ''; - let data = contentType.includes('application/json') ? await response.json() : await response.text(); - if (response.status >= 400) { - throw new AppwriteException(data.message || 'Unknown error', response.status, data.type || '', data); - } - return data; - } - } - - class Account { - constructor(client) { this.client = client; } - async get() { return await this.client.call('GET', '/account'); } - async createEmailPasswordSession(email, password) { - return await this.client.call('POST', '/account/sessions/email', {}, { email, password }); - } - async deleteSession(sessionId) { return await this.client.call('DELETE', `/account/sessions/${sessionId}`); } - async getSession(sessionId) { return await this.client.call('GET', `/account/sessions/${sessionId}`); } - } - - class AppwriteException extends Error { - constructor(message, code = 0, type = '', response = null) { - super(message); - this.name = 'AppwriteException'; - this.code = code; - this.type = type; - this.response = response; - } - } - - Appwrite.Client = Client; - Appwrite.Account = Account; - Appwrite.AppwriteException = AppwriteException; - global.Appwrite = Appwrite; - })(typeof self !== 'undefined' ? self : this); -} - -// Initialize Appwrite -// Note: For user authentication, we don't use API key (only for server operations) -function initAppwrite() { - try { - if (!scriptsLoaded) { - throw new Error('Scripts nicht geladen'); - } - if (typeof Appwrite === 'undefined') { - throw new Error('Appwrite SDK nicht geladen'); - } - - // APPWRITE_CONFIG should be available (defined at top of file or loaded from config.js) - if (typeof APPWRITE_CONFIG === 'undefined') { - throw new Error('APPWRITE_CONFIG nicht definiert'); - } - - const config = APPWRITE_CONFIG; - console.log('[SW] Using config:', { - endpoint: config.endpoint, - projectId: config.projectId - }); - - // Initialize client WITHOUT API key for user authentication - // API key is only for server-side operations, not user login - client = new Appwrite.Client(); - client - .setEndpoint(config.endpoint) - .setProject(config.projectId); - // Do NOT set API key here - it conflicts with user sessions - - console.log('[SW] Client configured with project:', config.projectId); - console.log('[SW] Note: API Key not set (only for server operations, not user auth)'); - - account = new Appwrite.Account(client); - initError = null; - console.log('[SW] Appwrite Client initialized (session-based, no API key)'); - return true; - } catch (error) { - console.error('[SW] Failed to initialize Appwrite:', error); - initError = error.message; - return false; - } -} - -// Handle messages -async function handleMessage(request, sender) { - switch (request.action) { - case 'CHECK_AUTH': - return await checkAuth(); - - case 'LOGIN': - return await login(request.email, request.password); - - case 'LOGOUT': - return await logout(); - - case 'GET_USER': - return await getUser(); - - case 'GET_SETTINGS': - return await getSettings(); - - case 'SAVE_SETTINGS': - return await saveSettings(request.settings); - - case 'GET_SESSION': - return await getSession(); - - default: - return { success: false, error: 'Unknown action: ' + request.action }; - } -} - -// Check if user is authenticated -async function checkAuth() { - try { - // Check if we have a stored session - const stored = await chrome.storage.local.get(['session']); - if (!stored.session || !stored.session.sessionToken) { - return { success: true, authenticated: false, user: null }; - } - - // Verify session with API server - const API_SERVER_URL = 'http://localhost:3001'; - try { - const response = await fetch(`${API_SERVER_URL}/api/extension/auth`, { - method: 'GET', - headers: { - 'x-session-token': stored.session.sessionToken - } - }); - const data = await response.json(); - - if (data.success && data.authenticated) { - return { success: true, authenticated: true, user: data.user }; - } - } catch (e) { - console.log('[SW] API server check failed:', e.message); - } - - return { success: true, authenticated: false, user: null }; - } catch (error) { - console.log('[SW] Auth check failed:', error.message); - return { success: true, authenticated: false, user: null }; - } -} - -// Login with email and password -// Uses API server proxy to avoid platform registration issues -async function login(email, password) { - try { - console.log('[SW] Attempting login for:', email); - - // Use API server instead of direct Appwrite call - // This avoids the need to register Extension ID as platform - const API_SERVER_URL = 'http://localhost:3001'; - - const response = await fetch(`${API_SERVER_URL}/api/extension/login`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ email, password }) - }); - - const data = await response.json(); - - if (!data.success) { - throw new Error(data.error || 'Login fehlgeschlagen'); - } - - // Store session info including token - await chrome.storage.local.set({ - session: { - userId: data.user.$id, - sessionId: data.session.$id, - sessionToken: data.session.token || data.session.$id, - expire: data.session.expire - } - }); - - console.log('[SW] Login successful for:', data.user.email); - - // Initialize Appwrite client with session for future requests - if (!client || !account) { - initAppwrite(); - } - - return { success: true, user: data.user, session: data.session }; - } catch (error) { - console.error('[SW] Login error:', error); - return { success: false, error: error.message || 'Login fehlgeschlagen' }; - } -} - -// Logout -async function logout() { - try { - // Get session token - const stored = await chrome.storage.local.get(['session']); - const sessionToken = stored.session?.sessionToken; - - if (sessionToken) { - // Logout via API server - const API_SERVER_URL = 'http://localhost:3001'; - try { - await fetch(`${API_SERVER_URL}/api/extension/logout`, { - method: 'POST', - headers: { - 'x-session-token': sessionToken - } - }); - } catch (e) { - // Ignore errors - } - } - - await chrome.storage.local.remove(['session']); - return { success: true }; - } catch (error) { - await chrome.storage.local.remove(['session']); - return { success: true }; - } -} - -// Get current user -async function getUser() { - try { - const user = await account.get(); - return { success: true, user }; - } catch (error) { - return { success: false, error: error.message }; - } -} - -// Get session -async function getSession() { - try { - const session = await account.getSession('current'); - return { success: true, session }; - } catch (error) { - return { success: false, error: error.message }; - } -} - -// Get tool settings -async function getSettings() { - try { - const result = await chrome.storage.sync.get(['tools']); - const tools = result.tools || DEFAULT_TOOLS; - return { success: true, tools }; - } catch (error) { - return { success: true, tools: DEFAULT_TOOLS }; - } -} - -// Save tool settings -async function saveSettings(tools) { - try { - await chrome.storage.sync.set({ tools }); - - // Notify content scripts - const tabs = await chrome.tabs.query({ url: ['http://localhost:5173/*', 'http://localhost:3000/*'] }); - for (const tab of tabs) { - try { - await chrome.tabs.sendMessage(tab.id, { action: 'SETTINGS_UPDATED', tools }); - } catch (e) { - // Tab might not have content script - } - } - - return { success: true }; - } catch (error) { - return { success: false, error: error.message }; - } -} - -// Initialize on install -chrome.runtime.onInstalled.addListener(async (details) => { - if (details.reason === 'install') { - await chrome.storage.sync.set({ tools: DEFAULT_TOOLS }); - console.log('[SW] Extension installed'); - } -}); - -console.log('[SW] Service Worker ready'); diff --git a/Extension/config.js b/Extension/config.js deleted file mode 100644 index f7176af..0000000 --- a/Extension/config.js +++ /dev/null @@ -1,17 +0,0 @@ -// Appwrite Configuration -// Update these values with your Appwrite instance details - -// Use var instead of const to ensure global scope in service worker -var APPWRITE_CONFIG = { - endpoint: 'https://appwrite.webklar.com/v1', - projectId: '696b82bb0036d2e547ad', - apiKey: 'standard_d48c6eebe825b55e685d8e66ea056161105470702da77b730aca08c106ffbadfa2375ff675dbe9e01d7bb72b4a9fa001ff7c365b73759bc5fb3da432c3cd9cee1151e67517e9838d1f96f942d9891ce66ddc6f11c0fdd67a24f7c84e0fa9999a74dacf2c6aa3533998c177f190fc87ffb5a30b27474be21aece4c70d71d205ba' // Set your API Key here (see README for instructions) -}; - -// Protected website URL (where the extension will be active) -var PROTECTED_SITE_URL = 'http://localhost:5173'; - -// Export for use in service worker and content scripts -if (typeof module !== 'undefined' && module.exports) { - module.exports = { APPWRITE_CONFIG, PROTECTED_SITE_URL }; -} diff --git a/Extension/content-script.js b/Extension/content-script.js new file mode 100644 index 0000000..d839291 --- /dev/null +++ b/Extension/content-script.js @@ -0,0 +1,70 @@ +// Content Script läuft auf der Web-App-Seite +// Lauscht auf window.postMessage von der Web-App und leitet an Background weiter + +const MESSAGE_SOURCE = "eship-webapp"; + +// Markiere Extension als verfügbar +// #region agent log +try { + console.log('[ESHIP-CONTENT] Content script loaded'); + if (typeof window !== 'undefined') { + window.__EBAY_EXTENSION__ = true; + console.log('[ESHIP-CONTENT] window.__EBAY_EXTENSION__ set to true'); + } else { + console.error('[ESHIP-CONTENT] window is undefined!'); + } +} catch (e) { + console.error('[ESHIP-CONTENT] Error setting flag:', e); +} +// #endregion + +window.addEventListener("message", (event) => { + // Sicherheitscheck: Nur Nachrichten von derselben Origin akzeptieren + if (event.data?.source !== MESSAGE_SOURCE) return; + + // Auth Messages (JWT) + if (event.data.type === "AUTH_JWT" || event.data.type === "AUTH_CLEARED") { + chrome.runtime.sendMessage( + { + type: event.data.type, + jwt: event.data.jwt, + }, + (response) => { + // Antwort zurück an Web-App senden + window.postMessage( + { + source: "eship-extension", + type: event.data.type, + response: response, + }, + "*" + ); + } + ); + return; + } + + // eBay Parsing Request (PARSE_URL) + if (event.data.action === "PARSE_URL" && event.data.url) { + chrome.runtime.sendMessage( + { + action: "PARSE_URL", + url: event.data.url, + }, + (response) => { + // Antwort zurück an Web-App senden + window.postMessage( + { + source: "eship-extension", + messageId: event.data.messageId, + ok: response?.ok, + data: response?.data, + error: response?.error, + }, + "*" + ); + } + ); + return; + } +}); diff --git a/Extension/content/content-script.js b/Extension/content/content-script.js deleted file mode 100644 index d09a197..0000000 --- a/Extension/content/content-script.js +++ /dev/null @@ -1,310 +0,0 @@ -// EShip Extension Content Script -// Injects into protected website to enforce auth and apply tools - -(function() { - 'use strict'; - - // State - let isAuthenticated = false; - let currentTools = []; - let blockedOverlay = null; - - // Initialize on page load - init(); - - async function init() { - // Check auth status immediately - const authResponse = await sendMessage({ action: 'CHECK_AUTH' }); - - if (authResponse.success && authResponse.authenticated) { - isAuthenticated = true; - await loadAndApplyTools(); - } else { - isAuthenticated = false; - showBlockedScreen(); - } - - // Listen for messages from service worker (settings updates) - chrome.runtime.onMessage.addListener(handleMessage); - } - - // Send message to service worker - function sendMessage(message) { - return new Promise((resolve) => { - chrome.runtime.sendMessage(message, (response) => { - if (chrome.runtime.lastError) { - resolve({ success: false, error: chrome.runtime.lastError.message }); - } else { - resolve(response || { success: false, error: 'No response' }); - } - }); - }); - } - - // Handle incoming messages - function handleMessage(request, sender, sendResponse) { - switch (request.action) { - case 'SETTINGS_UPDATED': - currentTools = request.tools; - applyTools(); - sendResponse({ success: true }); - break; - - case 'AUTH_CHANGED': - if (request.authenticated) { - isAuthenticated = true; - hideBlockedScreen(); - loadAndApplyTools(); - } else { - isAuthenticated = false; - showBlockedScreen(); - } - sendResponse({ success: true }); - break; - } - return true; - } - - // Show blocked screen when not authenticated - function showBlockedScreen() { - // Wait for DOM to be ready - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', createBlockedOverlay); - } else { - createBlockedOverlay(); - } - } - - function createBlockedOverlay() { - // Remove existing overlay if any - hideBlockedScreen(); - - // Create overlay - blockedOverlay = document.createElement('div'); - blockedOverlay.id = 'eship-blocked-overlay'; - blockedOverlay.innerHTML = ` - -
🔒
-

Zugriff gesperrt

-

Diese Website ist geschuetzt und erfordert eine Authentifizierung ueber die EShip Browser-Extension.

-
-

So melden Sie sich an:

-
    -
  1. Klicken Sie auf das EShip-Icon in der Browser-Toolbar
  2. -
  3. Geben Sie Ihre E-Mail und Passwort ein
  4. -
  5. Klicken Sie auf "Anmelden"
  6. -
  7. Die Seite wird automatisch freigeschaltet
  8. -
-
- `; - - document.body.appendChild(blockedOverlay); - - // Prevent scrolling on body - document.body.style.overflow = 'hidden'; - } - - // Hide blocked screen - function hideBlockedScreen() { - if (blockedOverlay) { - blockedOverlay.remove(); - blockedOverlay = null; - document.body.style.overflow = ''; - } - } - - // Load and apply tool settings - async function loadAndApplyTools() { - const response = await sendMessage({ action: 'GET_SETTINGS' }); - if (response.success) { - currentTools = response.tools; - applyTools(); - } - } - - // Apply all enabled tools - function applyTools() { - if (!isAuthenticated) return; - - // Wait for DOM to be ready - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', () => executeTools()); - } else { - executeTools(); - } - } - - function executeTools() { - currentTools.forEach(tool => { - if (tool.enabled) { - applyTool(tool); - } else { - removeTool(tool); - } - }); - } - - // Apply a specific tool - function applyTool(tool) { - switch (tool.id) { - case 'highlight_prices': - applyHighlightPrices(tool.settings); - break; - // Add more tools here as needed - default: - console.log('[EShip] Unknown tool:', tool.id); - } - } - - // Remove a specific tool's effects - function removeTool(tool) { - switch (tool.id) { - case 'highlight_prices': - removeHighlightPrices(tool.settings); - break; - default: - break; - } - } - - // ============================================ - // TOOL: Highlight Prices - // ============================================ - - function applyHighlightPrices(settings) { - const selector = settings.selector || '.price'; - const borderColor = settings.borderColor || '#ff0000'; - const borderWidth = settings.borderWidth || '2px'; - - // Add custom style if not exists - let styleEl = document.getElementById('eship-highlight-prices-style'); - if (!styleEl) { - styleEl = document.createElement('style'); - styleEl.id = 'eship-highlight-prices-style'; - document.head.appendChild(styleEl); - } - - styleEl.textContent = ` - ${selector} { - border: ${borderWidth} solid ${borderColor} !important; - box-shadow: 0 0 8px ${borderColor}40 !important; - border-radius: 4px !important; - padding: 2px 4px !important; - transition: all 0.2s ease !important; - } - `; - - // Also add data attribute to track highlighted elements - document.querySelectorAll(selector).forEach(el => { - el.dataset.eshipHighlighted = 'true'; - }); - - console.log('[EShip] Highlight Prices applied with selector:', selector); - } - - function removeHighlightPrices(settings) { - // Remove style element - const styleEl = document.getElementById('eship-highlight-prices-style'); - if (styleEl) { - styleEl.remove(); - } - - // Remove data attributes - document.querySelectorAll('[data-eship-highlighted]').forEach(el => { - delete el.dataset.eshipHighlighted; - }); - - console.log('[EShip] Highlight Prices removed'); - } - - // ============================================ - // Mutation Observer for dynamic content - // ============================================ - - // Re-apply tools when new content is added - const observer = new MutationObserver((mutations) => { - if (!isAuthenticated) return; - - let shouldReapply = false; - mutations.forEach(mutation => { - if (mutation.addedNodes.length > 0) { - shouldReapply = true; - } - }); - - if (shouldReapply) { - // Debounce reapplication - clearTimeout(observer.timeout); - observer.timeout = setTimeout(() => { - applyTools(); - }, 100); - } - }); - - // Start observing once DOM is ready - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', () => { - observer.observe(document.body, { childList: true, subtree: true }); - }); - } else { - observer.observe(document.body, { childList: true, subtree: true }); - } - -})(); diff --git a/Extension/ebay-content-script.js b/Extension/ebay-content-script.js new file mode 100644 index 0000000..344be80 --- /dev/null +++ b/Extension/ebay-content-script.js @@ -0,0 +1,361 @@ +/** + * eBay Content Script + * Wird auf eBay-Seiten ausgeführt und extrahiert Verkäufer-/Shop-Daten aus dem DOM + */ + +// Message Listener für Parsing-Anfragen +chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { + if (message.action === "PARSE_EBAY") { + try { + const parsedData = parseEbayPage(); + sendResponse({ ok: true, data: parsedData }); + } catch (error) { + // Niemals unhandled throws - immer graceful response + sendResponse({ + ok: true, + data: { + sellerId: "", + shopName: "", + market: extractMarketFromHostname(), + status: "unknown", + stats: {} + } + }); + } + return true; // async response + } +}); + +/** + * Extrahiert Marktplatz aus hostname + * @returns {string} Market Code (z.B. "DE", "US", "UK") + */ +function extractMarketFromHostname() { + try { + const hostname = window.location.hostname.toLowerCase(); + + // eBay Domain-Patterns + if (hostname.includes('.de') || hostname.includes('ebay.de')) { + return 'DE'; + } + if (hostname.includes('.com') && !hostname.includes('.uk')) { + return 'US'; + } + if (hostname.includes('.uk') || hostname.includes('ebay.co.uk')) { + return 'UK'; + } + if (hostname.includes('.fr') || hostname.includes('ebay.fr')) { + return 'FR'; + } + if (hostname.includes('.it') || hostname.includes('ebay.it')) { + return 'IT'; + } + if (hostname.includes('.es') || hostname.includes('ebay.es')) { + return 'ES'; + } + if (hostname.includes('.nl') || hostname.includes('ebay.nl')) { + return 'NL'; + } + if (hostname.includes('.at') || hostname.includes('ebay.at')) { + return 'AT'; + } + if (hostname.includes('.ch') || hostname.includes('ebay.ch')) { + return 'CH'; + } + + // Fallback: erster Teil der Domain nach "ebay." + const match = hostname.match(/ebay\.([a-z]{2,3})/); + if (match && match[1]) { + return match[1].toUpperCase(); + } + + return 'US'; // Default + } catch (e) { + return 'US'; + } +} + +/** + * Extrahiert Seller ID aus URL oder DOM + * @returns {string} Seller ID + */ +function extractSellerId() { + try { + // Methode 1: URL-Patterns + const url = window.location.href; + const urlLower = url.toLowerCase(); + + // Pattern: /usr/username oder /str/storename + const usrMatch = url.match(/\/usr\/([^\/\?]+)/i); + if (usrMatch && usrMatch[1]) { + return usrMatch[1].trim(); + } + + const strMatch = url.match(/\/str\/([^\/\?]+)/i); + if (strMatch && strMatch[1]) { + return strMatch[1].trim(); + } + + // Methode 2: DOM-Elemente suchen + // Suche nach verschiedenen Selektoren, die Seller-ID enthalten könnten + const possibleSelectors = [ + '[data-testid*="seller"]', + '.seller-username', + '.member-info-username', + '[class*="seller-id"]', + '[class*="username"]', + '[id*="seller"]' + ]; + + for (const selector of possibleSelectors) { + try { + const element = document.querySelector(selector); + if (element) { + const text = element.textContent?.trim(); + if (text && text.length > 0 && text.length < 100) { + return text; + } + } + } catch (e) { + // Continue to next selector + } + } + + // Methode 3: Meta-Tags + try { + const metaSeller = document.querySelector('meta[property*="seller"], meta[name*="seller"]'); + if (metaSeller && metaSeller.content) { + return metaSeller.content.trim(); + } + } catch (e) { + // Continue + } + + return ""; // Nicht gefunden + } catch (e) { + return ""; + } +} + +/** + * Extrahiert Shop Name aus DOM + * @returns {string} Shop Name + */ +function extractShopName() { + try { + // Methode 1: Spezifische Selektoren versuchen + const shopNameSelectors = [ + 'h1.shop-name', + '.store-name', + '[data-testid="store-name"]', + '.store-title', + '[class*="shop-name"]', + '[class*="store-title"]', + 'h1[class*="store"]', + 'h1[class*="shop"]' + ]; + + for (const selector of shopNameSelectors) { + try { + const element = document.querySelector(selector); + if (element) { + const text = element.textContent?.trim(); + if (text && text.length > 0) { + return text; + } + } + } catch (e) { + // Continue to next selector + } + } + + // Methode 2: document.title parsen + try { + const title = document.title || ""; + // Versuche Muster wie "Shop Name | eBay" zu extrahieren + const titleMatch = title.match(/^(.+?)\s*[\|\-]\s*eBay/i); + if (titleMatch && titleMatch[1]) { + return titleMatch[1].trim(); + } + // Wenn Titel einfach genug ist, verwende ihn direkt + if (title && title.length < 100 && !title.toLowerCase().includes('ebay')) { + return title.trim(); + } + } catch (e) { + // Continue + } + + // Methode 3: h1 Tag als Fallback + try { + const h1 = document.querySelector('h1'); + if (h1) { + const text = h1.textContent?.trim(); + if (text && text.length > 0 && text.length < 200) { + return text; + } + } + } catch (e) { + // Continue + } + + return ""; // Nicht gefunden + } catch (e) { + return ""; + } +} + +/** + * Extrahiert Stats aus DOM (Feedback Score, Positive Rate, etc.) + * @returns {object} Stats Objekt + */ +function extractStats() { + const stats = {}; + + try { + const pageText = document.body?.textContent || ""; + + // Feedback Score + try { + const feedbackScorePatterns = [ + /feedback\s*score[:\s]+(\d+)/i, + /(?:score|bewertung)[:\s]+(\d+)/i, + /(\d+)\s*feedback/i + ]; + + for (const pattern of feedbackScorePatterns) { + const match = pageText.match(pattern); + if (match && match[1]) { + const score = parseInt(match[1], 10); + if (!isNaN(score) && score >= 0) { + stats.feedbackScore = score; + break; + } + } + } + } catch (e) { + // Continue + } + + // Positive Rate (%) + try { + const positiveRatePatterns = [ + /positive[:\s]+(\d+\.?\d*)\s*%/i, + /(\d+\.?\d*)\s*%\s*positive/i, + /(?:rate|quote)[:\s]+(\d+\.?\d*)\s*%/i + ]; + + for (const pattern of positiveRatePatterns) { + const match = pageText.match(pattern); + if (match && match[1]) { + const rate = parseFloat(match[1]); + if (!isNaN(rate) && rate >= 0 && rate <= 100) { + stats.positiveRate = rate; + break; + } + } + } + } catch (e) { + // Continue + } + + // Feedback Count + try { + const feedbackCountPatterns = [ + /(\d+)\s*(?:bewertungen|ratings|feedbacks?)/i, + /(?:count|anzahl)[:\s]+(\d+)/i + ]; + + for (const pattern of feedbackCountPatterns) { + const match = pageText.match(pattern); + if (match && match[1]) { + const count = parseInt(match[1], 10); + if (!isNaN(count) && count >= 0) { + stats.feedbackCount = count; + break; + } + } + } + } catch (e) { + // Continue + } + + // Items for Sale + try { + const itemsPatterns = [ + /items?\s*(?:for\s*)?sale[:\s]+(\d+)/i, + /(\d+)\s*artikel/i, + /(\d+)\s*(?:items?|artikel)\s*(?:for\s*)?sale/i + ]; + + for (const pattern of itemsPatterns) { + const match = pageText.match(pattern); + if (match && match[1]) { + const items = parseInt(match[1], 10); + if (!isNaN(items) && items >= 0) { + stats.itemsForSale = items; + break; + } + } + } + } catch (e) { + // Continue + } + + // Member Since + try { + const memberSincePatterns = [ + /member\s*since[:\s]+(\d{1,2}[\/\-\.]\d{1,2}[\/\-\.]\d{2,4})/i, + /mitglied\s*seit[:\s]+(\d{1,2}[\/\-\.]\d{1,2}[\/\-\.]\d{2,4})/i, + /(?:since|seit)[:\s]+(\d{4})/i + ]; + + for (const pattern of memberSincePatterns) { + const match = pageText.match(pattern); + if (match && match[1]) { + stats.memberSince = match[1].trim(); + break; + } + } + } catch (e) { + // Continue + } + + } catch (e) { + // Return empty stats object + } + + return stats; +} + +/** + * Haupt-Parsing-Funktion + * @returns {object} Parsed eBay Account Data + */ +function parseEbayPage() { + try { + const sellerId = extractSellerId(); + const shopName = extractShopName(); + const market = extractMarketFromHostname(); + const stats = extractStats(); + + // Status bestimmen: "active" wenn wir mindestens Shop Name oder Seller ID haben + const status = (sellerId || shopName) ? "active" : "unknown"; + + return { + sellerId: sellerId || "", + shopName: shopName || "", + market: market, + status: status, + stats: stats + }; + } catch (error) { + // Graceful fallback + return { + sellerId: "", + shopName: "", + market: extractMarketFromHostname(), + status: "unknown", + stats: {} + }; + } +} \ No newline at end of file diff --git a/Extension/lib/appwrite.min.js b/Extension/lib/appwrite.min.js deleted file mode 100644 index b218f77..0000000 --- a/Extension/lib/appwrite.min.js +++ /dev/null @@ -1,209 +0,0 @@ -/** - * Appwrite Web SDK - Minimal Bundle for Chrome Extension - * This is a simplified version for extension use - * For full SDK, download from: https://cdn.jsdelivr.net/npm/appwrite@latest/dist/iife/sdk.min.js - * - * Version: 21.x compatible - */ - -(function(global) { - 'use strict'; - - // Appwrite namespace - const Appwrite = {}; - - // Client class - class Client { - constructor() { - this.config = { - endpoint: 'https://cloud.appwrite.io/v1', - project: '', - }; - this.headers = { - 'content-type': 'application/json', - 'x-sdk-name': 'Chrome Extension', - 'x-sdk-platform': 'client', - 'x-sdk-language': 'web', - 'x-sdk-version': '21.0.0', - }; - } - - setEndpoint(endpoint) { - this.config.endpoint = endpoint; - return this; - } - - setProject(project) { - this.config.project = project; - this.headers['x-appwrite-project'] = project; - return this; - } - - setKey(key) { - if (key) { - this.headers['x-appwrite-key'] = key; - } else { - delete this.headers['x-appwrite-key']; - } - return this; - } - - async call(method, path, headers = {}, params = {}) { - const url = new URL(this.config.endpoint + path); - const options = { - method: method.toUpperCase(), - headers: { ...this.headers, ...headers }, - credentials: 'include', - }; - - if (method === 'GET') { - for (const [key, value] of Object.entries(params)) { - if (value !== undefined) { - url.searchParams.append(key, value); - } - } - } else { - options.body = JSON.stringify(params); - } - - const response = await fetch(url.toString(), options); - const contentType = response.headers.get('content-type') || ''; - - let data; - if (contentType.includes('application/json')) { - data = await response.json(); - } else { - data = await response.text(); - } - - if (response.status >= 400) { - throw new AppwriteException( - data.message || 'Unknown error', - response.status, - data.type || '', - data - ); - } - - return data; - } - } - - // Account class - class Account { - constructor(client) { - this.client = client; - } - - async get() { - return await this.client.call('GET', '/account'); - } - - async create(userId, email, password, name = undefined) { - const params = { userId, email, password }; - if (name) params.name = name; - return await this.client.call('POST', '/account', {}, params); - } - - async createEmailPasswordSession(email, password) { - return await this.client.call('POST', '/account/sessions/email', {}, { - email, - password, - }); - } - - async createSession(userId, secret) { - return await this.client.call('POST', '/account/sessions', {}, { - userId, - secret, - }); - } - - async getSession(sessionId) { - return await this.client.call('GET', `/account/sessions/${sessionId}`); - } - - async listSessions() { - return await this.client.call('GET', '/account/sessions'); - } - - async deleteSession(sessionId) { - return await this.client.call('DELETE', `/account/sessions/${sessionId}`); - } - - async deleteSessions() { - return await this.client.call('DELETE', '/account/sessions'); - } - - async updateEmail(email, password) { - return await this.client.call('PATCH', '/account/email', {}, { - email, - password, - }); - } - - async updatePassword(password, oldPassword = undefined) { - const params = { password }; - if (oldPassword) params.oldPassword = oldPassword; - return await this.client.call('PATCH', '/account/password', {}, params); - } - - async updateName(name) { - return await this.client.call('PATCH', '/account/name', {}, { name }); - } - - async getPrefs() { - return await this.client.call('GET', '/account/prefs'); - } - - async updatePrefs(prefs) { - return await this.client.call('PATCH', '/account/prefs', {}, { prefs }); - } - - async createRecovery(email, url) { - return await this.client.call('POST', '/account/recovery', {}, { - email, - url, - }); - } - - async updateRecovery(userId, secret, password) { - return await this.client.call('PUT', '/account/recovery', {}, { - userId, - secret, - password, - }); - } - - async createVerification(url) { - return await this.client.call('POST', '/account/verification', {}, { url }); - } - - async updateVerification(userId, secret) { - return await this.client.call('PUT', '/account/verification', {}, { - userId, - secret, - }); - } - } - - // Exception class - class AppwriteException extends Error { - constructor(message, code = 0, type = '', response = null) { - super(message); - this.name = 'AppwriteException'; - this.code = code; - this.type = type; - this.response = response; - } - } - - // Export to Appwrite namespace - Appwrite.Client = Client; - Appwrite.Account = Account; - Appwrite.AppwriteException = AppwriteException; - - // Make available globally - global.Appwrite = Appwrite; - -})(typeof self !== 'undefined' ? self : this); diff --git a/Extension/manifest.json b/Extension/manifest.json index 731747a..c23e53a 100644 --- a/Extension/manifest.json +++ b/Extension/manifest.json @@ -1,44 +1,49 @@ { "manifest_version": 3, - "name": "EShip Auth Extension", - "version": "1.0.0", - "description": "Authentication extension for EShip protected web app", - - "permissions": [ - "storage", - "activeTab", - "tabs" - ], - - "host_permissions": [ - "http://localhost:5173/*", - "http://localhost:3000/*", - "http://localhost:3001/*", - "https://appwrite.webklar.com/*" - ], - - "background": { - "service_worker": "background/service-worker.js" - }, - - "action": { - "default_popup": "popup/popup.html", - "default_title": "EShip Login" - }, - + "name": "Protected Extension", + "version": "0.1.0", + "action": { "default_popup": "popup.html" }, + "background": { "service_worker": "background.js", "type": "module" }, "content_scripts": [ { - "matches": ["http://localhost:5173/*", "http://localhost:3000/*"], - "js": ["content/content-script.js"], - "run_at": "document_start" + "matches": ["http://localhost:*/*", "https://*/*"], + "js": ["content-script.js"], + "run_at": "document_idle" + }, + { + "matches": [ + "*://*.ebay.de/*", + "*://*.ebay.com/*", + "*://*.ebay.co.uk/*", + "*://*.ebay.fr/*", + "*://*.ebay.it/*", + "*://*.ebay.es/*", + "*://*.ebay.nl/*", + "*://*.ebay.at/*", + "*://*.ebay.ch/*", + "*://*.ebay.com.au/*", + "*://*.ebay.ca/*" + ], + "js": ["ebay-content-script.js"], + "run_at": "document_idle" } ], - - - "web_accessible_resources": [ - { - "resources": ["lib/*", "config.js"], - "matches": ["http://localhost:5173/*", "http://localhost:3000/*"] - } - ] + "permissions": ["tabs", "scripting", "storage"], + "host_permissions": [ + "https://*/*", + "*://*.ebay.de/*", + "*://*.ebay.com/*", + "*://*.ebay.co.uk/*", + "*://*.ebay.fr/*", + "*://*.ebay.it/*", + "*://*.ebay.es/*", + "*://*.ebay.nl/*", + "*://*.ebay.at/*", + "*://*.ebay.ch/*", + "*://*.ebay.com.au/*", + "*://*.ebay.ca/*" + ], + "externally_connectable": { + "matches": ["http://localhost:*/*", "https://*/*"] + } } diff --git a/Extension/popup.html b/Extension/popup.html new file mode 100644 index 0000000..4e71890 --- /dev/null +++ b/Extension/popup.html @@ -0,0 +1,8 @@ + + + + +
+ + + diff --git a/Extension/popup.js b/Extension/popup.js new file mode 100644 index 0000000..5f54b2d --- /dev/null +++ b/Extension/popup.js @@ -0,0 +1,44 @@ +async function getJwt() { + return new Promise((resolve) => { + chrome.runtime.sendMessage({ type: "GET_JWT" }, (response) => { + resolve(response?.jwt || ""); + }); + }); +} + +async function callProtectedApi(path, payload) { + return new Promise((resolve, reject) => { + chrome.runtime.sendMessage({ type: "CALL_API", path, payload }, (response) => { + if (response?.ok) { + resolve(response.data); + } else { + reject(new Error(response?.error || "API call failed")); + } + }); + }); +} + +async function main() { + const root = document.getElementById("root"); + const jwt = await getJwt(); + + root.innerHTML = ` +
+
Extension
+
Authed: ${jwt ? "true" : "false"}
+ +
+
+ `; + + document.getElementById("btn").onclick = async () => { + const out = document.getElementById("out"); + try { + const data = await callProtectedApi("/api/action", { ping: true }); + out.textContent = JSON.stringify(data); + } catch (e) { + out.textContent = String(e.message || e); + } + }; +} +main(); diff --git a/Extension/popup/popup.css b/Extension/popup/popup.css deleted file mode 100644 index abdfc5a..0000000 --- a/Extension/popup/popup.css +++ /dev/null @@ -1,315 +0,0 @@ -/* EShip Extension Popup Styles */ - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif; - font-size: 14px; - color: #2D2D31; - background: #FAFAFB; - min-width: 320px; - max-width: 400px; -} - -.container { - padding: 16px; -} - -/* Header */ -header { - text-align: center; - margin-bottom: 20px; - padding-bottom: 12px; - border-bottom: 1px solid #EDEDF0; -} - -header h1 { - font-size: 20px; - font-weight: 600; - color: #FD366E; -} - -/* States */ -.state { - display: block; -} - -.state.hidden { - display: none; -} - -/* Loading */ -#loading { - text-align: center; - padding: 40px 0; -} - -.spinner { - width: 32px; - height: 32px; - border: 3px solid #EDEDF0; - border-top-color: #FD366E; - border-radius: 50%; - animation: spin 0.8s linear infinite; - margin: 0 auto 12px; -} - -@keyframes spin { - to { transform: rotate(360deg); } -} - -/* Form */ -h2 { - font-size: 16px; - font-weight: 500; - margin-bottom: 16px; -} - -.form-group { - margin-bottom: 14px; -} - -.form-group label { - display: block; - font-size: 12px; - font-weight: 500; - color: #97979B; - margin-bottom: 4px; -} - -.form-group input { - width: 100%; - padding: 10px 12px; - border: 1px solid #EDEDF0; - border-radius: 6px; - font-size: 14px; - background: #fff; - transition: border-color 0.2s, box-shadow 0.2s; -} - -.form-group input:focus { - outline: none; - border-color: #FD366E; - box-shadow: 0 0 0 3px rgba(253, 54, 110, 0.1); -} - -/* Error Message */ -.error { - background: #FEE2E2; - color: #B91C1C; - padding: 10px 12px; - border-radius: 6px; - font-size: 13px; - margin-bottom: 14px; -} - -.error.hidden { - display: none; -} - -/* Buttons */ -.btn { - display: inline-flex; - align-items: center; - justify-content: center; - padding: 10px 16px; - border: none; - border-radius: 6px; - font-size: 14px; - font-weight: 500; - cursor: pointer; - transition: background-color 0.2s, transform 0.1s; -} - -.btn:active { - transform: scale(0.98); -} - -.btn-primary { - width: 100%; - background: #FD366E; - color: white; -} - -.btn-primary:hover { - background: #E8305F; -} - -.btn-primary:disabled { - background: #FDA4B8; - cursor: not-allowed; -} - -.btn-secondary { - background: #EDEDF0; - color: #2D2D31; -} - -.btn-secondary:hover { - background: #D8D8DB; -} - -.btn-small { - padding: 6px 12px; - font-size: 12px; -} - -.btn-spinner { - width: 16px; - height: 16px; - border: 2px solid rgba(255, 255, 255, 0.3); - border-top-color: white; - border-radius: 50%; - animation: spin 0.8s linear infinite; -} - -.btn-spinner.hidden { - display: none; -} - -/* User Info */ -.user-info { - display: flex; - align-items: center; - gap: 8px; - padding: 12px; - background: #fff; - border: 1px solid #EDEDF0; - border-radius: 8px; - margin-bottom: 20px; -} - -.user-icon { - font-size: 20px; -} - -#user-email { - flex: 1; - font-size: 13px; - color: #97979B; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -/* Tools List */ -#tools-list { - background: #fff; - border: 1px solid #EDEDF0; - border-radius: 8px; - margin-bottom: 16px; -} - -.tool-item { - padding: 12px; - border-bottom: 1px solid #EDEDF0; -} - -.tool-item:last-child { - border-bottom: none; -} - -.tool-header { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 8px; -} - -.tool-name { - font-weight: 500; -} - -/* Toggle Switch */ -.toggle { - position: relative; - width: 44px; - height: 24px; -} - -.toggle input { - opacity: 0; - width: 0; - height: 0; -} - -.toggle-slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #D8D8DB; - transition: 0.3s; - border-radius: 24px; -} - -.toggle-slider:before { - position: absolute; - content: ""; - height: 18px; - width: 18px; - left: 3px; - bottom: 3px; - background-color: white; - transition: 0.3s; - border-radius: 50%; -} - -.toggle input:checked + .toggle-slider { - background-color: #FD366E; -} - -.toggle input:checked + .toggle-slider:before { - transform: translateX(20px); -} - -/* Tool Settings */ -.tool-settings { - display: none; - padding-top: 8px; -} - -.tool-settings.visible { - display: block; -} - -.setting-row { - display: flex; - align-items: center; - gap: 8px; - margin-bottom: 8px; -} - -.setting-row:last-child { - margin-bottom: 0; -} - -.setting-row label { - font-size: 12px; - color: #97979B; - min-width: 80px; -} - -.setting-row input { - flex: 1; - padding: 6px 8px; - border: 1px solid #EDEDF0; - border-radius: 4px; - font-size: 12px; -} - -.setting-row input:focus { - outline: none; - border-color: #FD366E; -} - -/* Actions */ -.actions { - margin-top: 16px; -} diff --git a/Extension/popup/popup.html b/Extension/popup/popup.html deleted file mode 100644 index 99a6d96..0000000 --- a/Extension/popup/popup.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - EShip Extension - - - -
-
-

EShip

-
- - -
-
-

Laden...

-
- - - - - - -
- - - - diff --git a/Extension/popup/popup.js b/Extension/popup/popup.js deleted file mode 100644 index aa24f4b..0000000 --- a/Extension/popup/popup.js +++ /dev/null @@ -1,319 +0,0 @@ -// EShip Extension Popup Logic - -// DOM Elements -const loadingEl = document.getElementById('loading'); -const loginFormEl = document.getElementById('login-form'); -const toolsMenuEl = document.getElementById('tools-menu'); -const authForm = document.getElementById('auth-form'); -const emailInput = document.getElementById('email'); -const passwordInput = document.getElementById('password'); -const errorMessage = document.getElementById('error-message'); -const loginBtn = document.getElementById('login-btn'); -const logoutBtn = document.getElementById('logout-btn'); -const userEmailEl = document.getElementById('user-email'); -const toolsListEl = document.getElementById('tools-list'); -const openSiteBtn = document.getElementById('open-site-btn'); - -// Protected site URL (should match config.js) -const PROTECTED_SITE_URL = 'http://localhost:5173'; - -// State -let currentUser = null; -let tools = []; - -// Initialize popup -document.addEventListener('DOMContentLoaded', init); - -async function init() { - showState('loading'); - - try { - // Check if service worker is available - if (!chrome.runtime || !chrome.runtime.id) { - throw new Error('Chrome Runtime nicht verfuegbar'); - } - - // First, test if service worker is alive - console.log('Testing service worker...'); - const pingResponse = await sendMessage({ action: 'PING' }); - console.log('PING response:', pingResponse); - - if (!pingResponse) { - throw new Error('Service Worker antwortet nicht. Bitte Extension in chrome://extensions neu laden und Service Worker Konsole pruefen.'); - } - - if (!pingResponse.success) { - throw new Error('Service Worker Fehler: ' + (pingResponse.error || 'Unbekannter Fehler')); - } - - console.log('Service Worker ist aktiv!'); - - console.log('Checking auth status...'); - - // Check current auth status - const response = await sendMessage({ action: 'CHECK_AUTH' }); - - if (!response) { - throw new Error('Keine Antwort vom Service Worker'); - } - - console.log('Auth response:', response); - - // If there's an error, show it but still allow login - if (response.error && !response.success) { - console.error('Service Worker Error:', response.error); - showError('Hinweis: ' + response.error + ' - Login sollte trotzdem funktionieren.'); - } - - if (response.success && response.authenticated) { - currentUser = response.user; - await loadTools(); - showLoggedInState(); - } else { - // Not authenticated - show login form - showState('login-form'); - } - } catch (error) { - console.error('Init error:', error); - showError('Fehler beim Laden: ' + error.message + '. Bitte Extension in chrome://extensions neu laden.'); - showState('login-form'); - } -} - -// Show a specific state (loading, login-form, tools-menu) -function showState(stateId) { - loadingEl.classList.add('hidden'); - loginFormEl.classList.add('hidden'); - toolsMenuEl.classList.add('hidden'); - - document.getElementById(stateId).classList.remove('hidden'); -} - -// Show logged in state with user info -function showLoggedInState() { - userEmailEl.textContent = currentUser.email || currentUser.name || 'Benutzer'; - renderTools(); - showState('tools-menu'); -} - -// Send message to service worker -function sendMessage(message) { - return new Promise((resolve) => { - // Add timeout to prevent hanging - const timeout = setTimeout(() => { - console.error('Message timeout:', message.action); - resolve({ - success: false, - error: 'Service Worker antwortet nicht. Bitte Extension in chrome://extensions neu laden und Service Worker Konsole pruefen.' - }); - }, 2000); // Reduced timeout to 2 seconds for faster feedback - - try { - if (!chrome.runtime || !chrome.runtime.id) { - clearTimeout(timeout); - resolve({ success: false, error: 'Chrome Runtime nicht verfuegbar' }); - return; - } - - chrome.runtime.sendMessage(message, (response) => { - clearTimeout(timeout); - if (chrome.runtime.lastError) { - console.error('Chrome runtime error:', chrome.runtime.lastError); - resolve({ - success: false, - error: chrome.runtime.lastError.message || 'Service Worker Fehler' - }); - } else { - console.log('Response received:', response); - resolve(response || { success: false, error: 'Keine Antwort vom Service Worker' }); - } - }); - } catch (error) { - clearTimeout(timeout); - console.error('Send message error:', error); - resolve({ success: false, error: error.message || 'Fehler beim Senden der Nachricht' }); - } - }); -} - -// Login form submission -authForm.addEventListener('submit', async (e) => { - e.preventDefault(); - - const email = emailInput.value.trim(); - const password = passwordInput.value; - - if (!email || !password) { - showError('Bitte E-Mail und Passwort eingeben'); - return; - } - - setLoginLoading(true); - hideError(); - - const response = await sendMessage({ - action: 'LOGIN', - email, - password - }); - - setLoginLoading(false); - - if (response.success) { - currentUser = response.user; - await loadTools(); - showLoggedInState(); - - // Open protected site after successful login - openProtectedSite(); - } else { - showError(response.error || 'Anmeldung fehlgeschlagen'); - } -}); - -// Logout button -logoutBtn.addEventListener('click', async () => { - const response = await sendMessage({ action: 'LOGOUT' }); - - if (response.success) { - currentUser = null; - tools = []; - emailInput.value = ''; - passwordInput.value = ''; - showState('login-form'); - } -}); - -// Open site button -openSiteBtn.addEventListener('click', () => { - openProtectedSite(); -}); - -// Open protected site in new tab -function openProtectedSite() { - chrome.tabs.create({ url: PROTECTED_SITE_URL }); -} - -// Load tools settings -async function loadTools() { - const response = await sendMessage({ action: 'GET_SETTINGS' }); - if (response.success) { - tools = response.tools; - } -} - -// Render tools list -function renderTools() { - toolsListEl.innerHTML = ''; - - tools.forEach((tool, index) => { - const toolEl = document.createElement('div'); - toolEl.className = 'tool-item'; - toolEl.innerHTML = ` -
- ${escapeHtml(tool.name)} - -
-
- ${renderToolSettings(tool)} -
- `; - toolsListEl.appendChild(toolEl); - - // Toggle event listener - const toggle = toolEl.querySelector('input[type="checkbox"]'); - toggle.addEventListener('change', (e) => { - handleToolToggle(tool.id, e.target.checked); - }); - - // Settings change listeners - const settingsInputs = toolEl.querySelectorAll('.setting-row input'); - settingsInputs.forEach(input => { - input.addEventListener('change', (e) => { - handleSettingChange(tool.id, e.target.dataset.setting, e.target.value); - }); - }); - }); -} - -// Render settings inputs for a tool -function renderToolSettings(tool) { - if (!tool.settings) return ''; - - let html = ''; - for (const [key, value] of Object.entries(tool.settings)) { - html += ` -
- - -
- `; - } - return html; -} - -// Format setting key to readable name -function formatSettingName(key) { - return key - .replace(/([A-Z])/g, ' $1') - .replace(/^./, str => str.toUpperCase()) - .replace(/_/g, ' '); -} - -// Handle tool toggle -async function handleToolToggle(toolId, enabled) { - const tool = tools.find(t => t.id === toolId); - if (tool) { - tool.enabled = enabled; - - // Show/hide settings - const settingsEl = document.getElementById(`settings-${toolId}`); - if (settingsEl) { - settingsEl.classList.toggle('visible', enabled); - } - - await saveTools(); - } -} - -// Handle setting value change -async function handleSettingChange(toolId, settingKey, value) { - const tool = tools.find(t => t.id === toolId); - if (tool && tool.settings) { - tool.settings[settingKey] = value; - await saveTools(); - } -} - -// Save tools to storage -async function saveTools() { - await sendMessage({ action: 'SAVE_SETTINGS', settings: tools }); -} - -// Show error message -function showError(message) { - errorMessage.textContent = message; - errorMessage.classList.remove('hidden'); -} - -// Hide error message -function hideError() { - errorMessage.classList.add('hidden'); -} - -// Set login button loading state -function setLoginLoading(loading) { - loginBtn.disabled = loading; - loginBtn.querySelector('.btn-text').classList.toggle('hidden', loading); - loginBtn.querySelector('.btn-spinner').classList.toggle('hidden', !loading); -} - -// Escape HTML to prevent XSS -function escapeHtml(text) { - const div = document.createElement('div'); - div.textContent = text; - return div.innerHTML; -} diff --git a/README.md b/README.md index d662017..d4afed3 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,108 @@ # Extension & Server Projekt -Dieses Projekt besteht aus zwei Hauptkomponenten: +Dieses Projekt besteht aus drei Hauptkomponenten: ## Extension -- **Zweck**: Frontend und Datenextraktion +- **Zweck**: Browser-Extension mit JWT-basierter Authentifizierung - **Speicherort**: `/Extension` -- Enthält die Browser-Extension für Datenextraktion (z.B. von Amazon) +- Empfängt JWT von der Web-App und kommuniziert mit dem Backend -## Server -- **Zweck**: Backend-Logik, Verschlüsselung und Sicherheit +## Server (React Web App) +- **Zweck**: Login-Interface mit Appwrite-Authentifizierung - **Speicherort**: `/Server` - Basiert auf React mit Appwrite-Integration -- Implementiert Schutzmechanismen gegen Kopieren der Extension +- Sendet JWT an die Extension nach erfolgreichem Login + +## Backend +- **Zweck**: Serverseitige JWT-Validierung und API-Endpoints +- **Speicherort**: `/Server/backend` +- Node/Express Server mit Appwrite-Integration +- Validiert JWTs und führt privilegierte Aktionen aus ## Getting Started -### Server Setup +### 1. Backend starten -1. Navigiere zum Server-Ordner: `cd Server` -2. Dependencies installieren: `npm install` -3. App starten: `npm run dev` -4. Öffne http://localhost:5173 im Browser -5. Klicke auf "Send a ping" um die Appwrite-Verbindung zu testen +```powershell +cd Server\backend +npm install +npm run dev +``` -### Extension Setup +Das Backend läuft auf `http://localhost:3000` -Die Extension-Struktur wird in Kürze implementiert. +**Wichtig**: Vor dem Start `APPWRITE_API_KEY` in `Server/backend/.env` eintragen! + +### 2. React Web App starten + +```powershell +cd Server +npm install +npm run dev +``` + +Die Web-App läuft auf `http://localhost:5173` (oder einem anderen Port, den Vite anzeigt) + +**Wichtig**: Stelle sicher, dass `Server/.env` die korrekten Appwrite-Konfigurationswerte enthält: +- `VITE_APPWRITE_ENDPOINT` +- `VITE_APPWRITE_PROJECT_ID` + +### 3. Extension laden + +1. Öffne Chrome/Edge und gehe zu `chrome://extensions/` (oder `edge://extensions/`) +2. Aktiviere **"Entwicklermodus"** (oben rechts) +3. Klicke auf **"Entpackte Erweiterung laden"** +4. Wähle den `Extension/` Ordner aus +5. Die Extension sollte jetzt geladen sein + +### 4. Testen + +1. Öffne die Web-App im Browser (`http://localhost:5173`) +2. Du siehst den Login-Sperrbildschirm +3. Logge dich mit deinen Appwrite-Credentials ein +4. Nach erfolgreichem Login verschwindet der Sperrbildschirm +5. Öffne die Extension (Klick auf das Extension-Icon) +6. Du solltest "Authed: true" sehen +7. Klicke auf "Test action" um die Backend-Verbindung zu testen + +## Projektstruktur + +``` +eship/ +├── Extension/ # Browser-Extension +│ ├── manifest.json +│ ├── background.js +│ ├── content-script.js +│ ├── popup.html +│ └── popup.js +├── Server/ # React Web App +│ ├── src/ +│ │ └── App.jsx # Login-Sperrbildschirm +│ ├── .env # Vite Env-Variablen +│ └── backend/ # Node/Express Backend +│ ├── server.js +│ ├── .env # Backend Env-Variablen +│ └── package.json +└── setup/ # Setup & Konfiguration +``` + +## Konfiguration + +### Backend `.env` (Server/backend/.env) +``` +APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1 +APPWRITE_PROJECT_ID=696b82bb0036d2e547ad +APPWRITE_API_KEY= +PORT=3000 +``` + +### React App `.env` (Server/.env) +``` +VITE_APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1 +VITE_APPWRITE_PROJECT_ID=696b82bb0036d2e547ad +``` + +### Extension Backend URL (Extension/background.js) +```javascript +const BACKEND_URL = "http://localhost:3000"; // Anpassen falls nötig +``` diff --git a/background.png b/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8f91c6524432b13c6207ad1dcefab5367d08c9b5 GIT binary patch literal 796631 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 z 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 Ml{J;J6ffWWAB!hbNB{r; literal 0 HcmV?d00001 diff --git a/db.txt b/db.txt deleted file mode 100644 index 7eed06b..0000000 --- a/db.txt +++ /dev/null @@ -1,230 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# Appwrite schema bootstrap (4 tables) for Appwrite Server 1.8.1 -# Tables: users, accounts, products, product_details -# -# Notes: -# - Appwrite CLI is compatible with Appwrite Server 1.8.x. (see sdk-for-cli README) :contentReference[oaicite:0]{index=0} -# - The CLI supports "tables" (create-table, create-*-column, create-index). :contentReference[oaicite:1]{index=1} -# -# Prereqs: -# appwrite login -# appwrite init project -# -# Run: -# chmod +x appwrite_schema_v1_8_1.sh -# ./appwrite_schema_v1_8_1.sh - -# ---------------- CONFIG ---------------- -DATABASE_ID="YOUR_DATABASE_ID" - -T_USERS="users" -T_ACCOUNTS="accounts" -T_PRODUCTS="products" -T_PRODUCT_DETAILS="product_details" - -# Permissions: keep minimal for now. Adjust later. -# Example roles: any, users, user:, team: -PERMS_ANY_CRUD='["create(\\"any\\")","read(\\"any\\")","update(\\"any\\")","delete(\\"any\\")"]' - -# If you want more locked down defaults later, tell me your exact access model. - -# ---------------- HELPERS ---------------- -try_cmd() { - # Run command, do not fail script if it errors (idempotent-ish). - # Print what we tried for easy debugging. - echo "+ $*" - set +e - "$@" - local rc=$? - set -e - if [ $rc -ne 0 ]; then - echo " (ignored error, rc=$rc)" - fi - return 0 -} - -# ---------------- CREATE TABLES ---------------- -# Tip: If any of these fail because option names differ in your CLI build, -# run: appwrite databases create-table --help -# and replace flags accordingly. - -try_cmd appwrite databases create-table \ - --database-id "$DATABASE_ID" \ - --table-id "$T_USERS" \ - --name "users" \ - --permissions "$PERMS_ANY_CRUD" \ - --row-security false - -try_cmd appwrite databases create-table \ - --database-id "$DATABASE_ID" \ - --table-id "$T_ACCOUNTS" \ - --name "accounts" \ - --permissions "$PERMS_ANY_CRUD" \ - --row-security false - -try_cmd appwrite databases create-table \ - --database-id "$DATABASE_ID" \ - --table-id "$T_PRODUCTS" \ - --name "products" \ - --permissions "$PERMS_ANY_CRUD" \ - --row-security false - -try_cmd appwrite databases create-table \ - --database-id "$DATABASE_ID" \ - --table-id "$T_PRODUCT_DETAILS" \ - --name "product_details" \ - --permissions "$PERMS_ANY_CRUD" \ - --row-security false - -# ---------------- USERS COLUMNS ---------------- -# You originally wanted basically no fields here. Some people keep this table empty -# (using only system fields), but depending on tooling, an empty table can be annoying. -# Keep one optional column for future user settings/notes. -try_cmd appwrite databases create-string-column \ - --database-id "$DATABASE_ID" \ - --table-id "$T_USERS" \ - --key "user_note" \ - --size 255 \ - --required false \ - --array false - -# ---------------- ACCOUNTS COLUMNS ---------------- -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_ACCOUNTS" --key "account_owner_user_id" --size 64 --required false --array false -try_cmd appwrite databases create-boolean-column --database-id "$DATABASE_ID" --table-id "$T_ACCOUNTS" --key "account_managed" --required true --array false - -try_cmd appwrite databases create-enum-column --database-id "$DATABASE_ID" --table-id "$T_ACCOUNTS" --key "account_platform" --elements '["amazon","ebay"]' --required true --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_ACCOUNTS" --key "account_platform_account_id" --size 255 --required true --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_ACCOUNTS" --key "account_platform_market" --size 32 --required true --array false - -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_ACCOUNTS" --key "account_shop_name" --size 255 --required false --array false -try_cmd appwrite databases create-url-column --database-id "$DATABASE_ID" --table-id "$T_ACCOUNTS" --key "account_url" --required false --array false - -try_cmd appwrite databases create-enum-column --database-id "$DATABASE_ID" --table-id "$T_ACCOUNTS" --key "account_status" --elements '["active","unknown","disabled"]' --required false --array false - -# ---------------- ACCOUNTS INDEXES ---------------- -try_cmd appwrite databases create-index \ - --database-id "$DATABASE_ID" \ - --table-id "$T_ACCOUNTS" \ - --key "accounts_unique_platform_market_accountid" \ - --type "unique" \ - --columns '["account_platform","account_platform_market","account_platform_account_id"]' - -try_cmd appwrite databases create-index \ - --database-id "$DATABASE_ID" \ - --table-id "$T_ACCOUNTS" \ - --key "accounts_by_owner_user" \ - --type "key" \ - --columns '["account_owner_user_id"]' - -# ---------------- PRODUCTS COLUMNS ---------------- -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_account_id" --size 64 --required true --array false - -try_cmd appwrite databases create-enum-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_platform" --elements '["amazon","ebay"]' --required true --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_platform_market" --size 32 --required true --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_platform_product_id" --size 255 --required true --array false - -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_title" --size 1024 --required true --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_category" --size 255 --required false --array false - -try_cmd appwrite databases create-float-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_price" --required true --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_currency" --size 8 --required true --array false - -try_cmd appwrite databases create-integer-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_quantity" --required false --array false - -try_cmd appwrite databases create-enum-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_condition" --elements '["new","used_like_new","used_good","used_ok","parts"]' --required false --array false -try_cmd appwrite databases create-url-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_url" --required false --array false -try_cmd appwrite databases create-enum-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCTS" --key "product_status" --elements '["active","ended","unknown"]' --required false --array false - -# ---------------- PRODUCTS INDEXES ---------------- -try_cmd appwrite databases create-index \ - --database-id "$DATABASE_ID" \ - --table-id "$T_PRODUCTS" \ - --key "products_by_account" \ - --type "key" \ - --columns '["product_account_id"]' - -try_cmd appwrite databases create-index \ - --database-id "$DATABASE_ID" \ - --table-id "$T_PRODUCTS" \ - --key "products_unique_account_platformproductid" \ - --type "unique" \ - --columns '["product_account_id","product_platform_product_id"]' - -# ---------------- PRODUCT_DETAILS COLUMNS ---------------- -# 1:1 to products -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_product_id" --size 64 --required true --array false - -try_cmd appwrite databases create-enum-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_platform" --elements '["amazon","ebay"]' --required true --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_platform_market" --size 32 --required false --array false - -# Identifiers -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_gtin" --size 32 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_ean" --size 32 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_upc" --size 32 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_isbn" --size 32 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_mpn" --size 64 --required false --array false - -# Platform IDs -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_amazon_asin" --size 32 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_ebay_epid" --size 64 --required false --array false - -# Brand / model -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_brand" --size 255 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_manufacturer" --size 255 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_model_name" --size 255 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_model_number" --size 255 --required false --array false - -# Content -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_short_description" --size 2048 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_long_description" --size 8192 --required false --array false - -# Bullet points (no arrays, no JSON) -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_bullet_1" --size 512 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_bullet_2" --size 512 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_bullet_3" --size 512 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_bullet_4" --size 512 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_bullet_5" --size 512 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_bullet_6" --size 512 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_bullet_7" --size 512 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_bullet_8" --size 512 --required false --array false - -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_search_terms" --size 1024 --required false --array false - -# Variants / item specifics (common) -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_color" --size 128 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_size" --size 128 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_material" --size 128 --required false --array false -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_pattern" --size 128 --required false --array false - -# Shipping measurements -try_cmd appwrite databases create-float-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_length" --required false --array false -try_cmd appwrite databases create-float-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_width" --required false --array false -try_cmd appwrite databases create-float-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_height" --required false --array false -try_cmd appwrite databases create-enum-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_dimension_unit" --elements '["mm","cm","m","in"]' --required false --array false - -try_cmd appwrite databases create-float-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_weight" --required false --array false -try_cmd appwrite databases create-enum-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_weight_unit" --elements '["g","kg","oz","lb"]' --required false --array false - -# Misc -try_cmd appwrite databases create-string-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_country_of_origin" --size 64 --required false --array false -try_cmd appwrite databases create-integer-column --database-id "$DATABASE_ID" --table-id "$T_PRODUCT_DETAILS" --key "product_detail_package_quantity" --required false --array false - -# ---------------- PRODUCT_DETAILS INDEXES ---------------- -# One details row per product -try_cmd appwrite databases create-index \ - --database-id "$DATABASE_ID" \ - --table-id "$T_PRODUCT_DETAILS" \ - --key "product_details_unique_product_id" \ - --type "unique" \ - --columns '["product_detail_product_id"]' - -try_cmd appwrite databases create-index \ - --database-id "$DATABASE_ID" \ - --table-id "$T_PRODUCT_DETAILS" \ - --key "product_details_by_platform" \ - --type "key" \ - --columns '["product_detail_platform"]' - -echo "Done. 4 tables ensured: users, accounts, products, product_details" diff --git a/logo128.png b/logo128.png new file mode 100644 index 0000000000000000000000000000000000000000..0d6261deb3f62f38347f15dff88ef077f8924d31 GIT binary patch literal 9651 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 FzW@Z%2!Q|q literal 0 HcmV?d00001 diff --git a/logo16.png b/logo16.png new file mode 100644 index 0000000000000000000000000000000000000000..e63ad7dbb14006322439eb4aaaeb9312750df6cd GIT binary patch literal 1202 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRm!3HEhFR0}KQVPi)LB0$ORcZ_j4J`}|zkosw zFBlj~4Hy_+B``2p&0t^9bSL=1)l#Ia+`I^S;Z4`=Yz%eo_==5)tT32ryLC3rL>O+9_x# zC9Wp5_!$3<7xE4Piv!K`uDtMiyh_`kYgfRL2G7|73Qm{P8VrILI4_@D{;SSL{yOWi z6`k2OyQ|Mf&Y66t_+gs!-|CI;S1#XKo5J#Qvd`uzVcBiD(eEE!_P2Zd=gIs37hdn@ z_kUA6scLUuY2S8!*(DKLe40zc7=JEy-~as7R7tb@8=vl%-Sg|#>kQcd4Uu2cy~qBY zyK`q<(asvp>8DGVEnBuv=B~l7%j@^csK0XE66MRl)G+_Bk$&~jt5H*Le|y8{_qXiR z+Re+)+uY7D;WL#Izb}7x!@hY(P98k@dGhh@r!}wt?DQu#DI{Iej(H+;#4edVOeOT6eB28tI z^G)08mn>Zd9PcyB*6lCc6%_rywD$IiEvwJ3kKbAGZE0!zj7@PmGBaZ~{av(MpfsEN zc+j7R8=2>>m#baxv!c5D3fn4;wPpQ$Ja3AdvrpQ8P|^-9{IF3}e(lcs)E-lX^7!Yo z^myl4B)j>|>78c#DKGVmwb0vDq9Jo3eV`MKJ%5EU72-IXQ2wqB*jw=-=2I{ zI8>A#vj2ORz+}Z^AxCFzO)`qw<#j%TX@20B+`JD`%Cme-tQeL`1jW7Tn03+4??a)D zj_0mJ%i2!wa+||p=dIx>ZNz+Sf~EU287{^pN(M@DPSclZMCe}QjnFqKwfB6Z@nXiJ z`RvJp+%ubem{|IQo(Np4(r+>A3ykW26cfMX^O+Y?YNam>7Co@?NE29X;MgGe_4?P& z4SA0uTGsW*A6|A-ZT2#q9}~2voJ?vr6Rf=6dPecsq)7iX*`@_k4q0A%Q?VnAQ_Bq3rZ?_3b)4qXxc)1X=F!gUk+1gk3ja@=5WKcPcEOaatfjM6b-#qNt+*C$ z`0ZTUH~9)xbCWgPo{gVMG~dQ^T)AYT=#yj|r^7P$x15Yp4M)Ph(#7Y!%MTstFL=eu z7jw_GG&y6+C$|<>*0TlyKLoafiEtmf@qBvTH|Ia`5BU40J&CE>a5^5CVO2|9BT7;d zOH!?pi&B9UgOP!enXZAMuAzB|fr*u|xs{=Xwt<0_fx&d4YuqRra`RI%(<*Umc;=tC o9jHMAZbM0CZfbE!Vr~JZ9#dn8CFbIy89+S@p00i_>zopr06p9cp#T5? literal 0 HcmV?d00001 diff --git a/logo48.png b/logo48.png new file mode 100644 index 0000000000000000000000000000000000000000..00e00af1baf7144e21de2bc4274d74df871c0cde GIT binary patch literal 2614 zcmZ{mc`)0H7RP^TOHob#Rep83p~Ie&dqZlR1g&O^=v0KkDX*0(%U z@w0}qv7F6-mtp?@7_P>aW&jW&0|2oJ0B~?-#V!LtFcbjjP5^+&2LOS9qIVY8&K4{# zH;wdx(|_toYen{%!-_|m8L-kBc$j5iBjx9Q0RV^}sjqX}_T$ndU?X7^$p8_oIqN+}8MzmIhWkNciJPEal_fa-3nzms6@U zEi>atrl#g@z8nS9WDV|qP&TvtbjAxmG6f08ju#VpsPLHeBLQqPex;v`zFSldYW2%o zQg%4%6@&-V!Ts_VCyTf{?;f%H*S zaBjHRKw*#>)M{9UY8-b9_1_~EY2TLy?x1yCrQF6XUyUAbZ!eXcbXN>%XIFnxmPKy8 zx6yEfuda9NaUFl}MS1>eKvit77TVM)ygQVvj!^I4It@Ab+XRsL3X+#k$|rkdU{7Wi z-un1l3)PZxE*thb3VHm(6H!dj)wgxj4w@d&YI^-zA6xYSmM~w&6}=2LusGUR4AcBu zx@vP>^HFmYRk#2pYjoH;EgMtcut|QFyh`z2*vR5O!Hl%Ksmz@mQuWI$STEfWrT>iR zFwH2|J{+oOyhdeDfi81lTh4uD)%v_tvM=Y42p6MHMa9V)-5(nhFM)5q@p}~-02k4^ z^J+ADx;D(^UQ|NOcwzX?nj@_^iKMGdY8QBQJ)kL8ZF2sO*7;EmR}-qsXIRo>W6 zM-@`^tS4!FVq-@`4D+&o*&bjo4*0QWuS{?fD~#+MW1ju;$!e7xlnJ-qJX%YH`@?l!=-R?-0@X_8sSu>1(~lESioo;Q|KwhxDw9?YVPtJ zL8#5%PR}Qi)%M%c8U)goa~4{@fRI?aj*{itQ;X;Kc`35c5J@G6J^oX#*cRSG*l)>= zp^4UMQET%XPZuK@T2txWqEoEFaY7Eza8IkI!pzPddBA~OvW z%GOVq>U2IUz|g2;C34U{=R}ub+tM~dK$O=c%MMQyFb9GLi+6U zxKjNdTMOEv6KA!4kpxQsVAN%twdF~e8=7qFp-nC?K*IV{VB#2H5=lq{lxTiFHs8Tl zoa%r|U80hZq=*IO9YpsI8-v)< zV>ZBCRe@hoIdx8}a0U`cywE$26!_xRwOomS5EFm!y^O7dF?e-NCWqY1*Ze(DUnJB& zrGIUaYBWHGl0h&D?L`q6Fvnl7Xjj{~(Q>ZN)czKG@}ayPwxB4l@` zu#>Ulru>Yqx+yMk-TpX71OH&TONyJ~2LO@@ylhJO4Rt0H4u&v6HnNO*8GqWWUqpKz5^G7J+xsl;5e z#=f%Nceh@!<5(l@dthUhl2gv@aT9^z&OTAiW)M=)GMA@ro2{)5-ip({Lds0!6?y8W zL*Y|RPh%JRaC!-M;WF=Uf!cl+h3koSD-+RZcbJGce=6C|i8+X6UaOO`$fyuZW1+`8 zP}}l)Y6r5--B39P4xXn@869F=NMESayAQgHAtP$3c9-9D5sop$``*i@OYw3r`lENt3RK)R4D5aMtx?`H2-qCOIz! zS2XZ5=kdPR5;0nk>@ju}S*UtBr!-rf7B_rr6#0^a@O2p97lytqebc5PD3F!$ z6MEX?8AAh{8pmhm^;xTmY_j?*Dl)c)n`|LJH4}Z&4ySjo63v8o{jhh8EBSNo4(3&V zJylo{IKI6o~uVw}(wpwXz&xLgi{a17_Xz=I%55{0D`?)+p2=xA4rQxAuW(9&0_ zOwt7<0X>QGJI0qGikhU>pA|%twe34u(^zCy(*?UJK{|bzzBr>`hL%b&(EZcNvTAe< z(_O|Q3#e3#cQBfSi?yFCP0F(pb;-{3BcDJ1SiH7Uk%yKuVADM?-8-M#C((3Gj5Sj= zoOe(G9h9#4`qzZ2SQ63MJ!-xVW9hHfE9}cbbhis{Yiz~U@J6X47Xr9BAGQbacx|L9 z;;m{}Gff^F0~Ol049oV(9qn4XR{mbcbMq61MM8FmRwH{%rhESO+*;~!eNR3$6yFqS zS>0=~*HqyMcbC)IjT1|hqTz_$Z*IL;HJFCy4qZ2mUJj^y$X^@di~2s%@rW-IRq_zU z>xT2EzS-OLEcO2;pGVrSmT1A|I;s1_mJ=fYYc{oaN#qWH$e}v~^mncKiDPX@%~=+C zXRWPstm(m96Hr%qyZtOQN#hM{@ovs|cZ6$@`o+0(|}5a310RA2^3aLe79o|G9w2`MTf3JNpLwFQcyh?<3C#BB^H#fHXkq J*XcUN{|jeR*WCaB literal 0 HcmV?d00001 diff --git a/setup/API_KEY_SETUP.md b/setup/API_KEY_SETUP.md deleted file mode 100644 index 2596613..0000000 --- a/setup/API_KEY_SETUP.md +++ /dev/null @@ -1,53 +0,0 @@ -# Appwrite API Key Setup - -## API Key erstellen - -1. **Appwrite Console oeffnen**: https://cloud.appwrite.io -2. **Projekt auswaehlen**: Waehle dein Projekt (ID: `696b82bb0036d2e547ad`) -3. **Settings > API Keys** navigieren -4. **"Create API Key"** klicken -5. **Konfiguration**: - - **Name**: `EShip Extension Key` (oder beliebiger Name) - - **Scopes**: - - `users.read` - Benutzer lesen - - `users.write` - Benutzer erstellen/bearbeiten - - `sessions.write` - Sessions erstellen - - Optional: Weitere Scopes je nach Bedarf - - **Expiration**: Optional (leer lassen fuer unbegrenzt) -6. **"Create"** klicken -7. **API Key kopieren** - WICHTIG: Der Key wird nur einmal angezeigt! - -## API Key in Extension konfigurieren - -1. Oeffne `Extension/config.js` -2. Fuege den API Key hinzu: - -```javascript -var APPWRITE_CONFIG = { - endpoint: 'https://cloud.appwrite.io/v1', - projectId: '696b82bb0036d2e547ad', - apiKey: 'DEIN_API_KEY_HIER' // Hier den kopierten Key einfuegen -}; -``` - -3. Extension neu laden in `chrome://extensions` - -## Sicherheit - -- **NIEMALS** den API Key in Git committen -- Der API Key sollte nur in der Extension verwendet werden -- Bei Verlust: Alten Key loeschen und neuen erstellen -- Verwende unterschiedliche Keys fuer Development und Production - -## Alternative: Environment-basierte Konfiguration - -Fuer Production kannst du den API Key auch ueber Chrome Storage setzen: - -1. In der Extension: `chrome.storage.local.set({ apiKey: 'DEIN_KEY' })` -2. Im Service Worker: Key aus Storage laden - -## Troubleshooting - -- **"Invalid API Key"**: Pruefe, ob der Key korrekt kopiert wurde (keine Leerzeichen) -- **"Insufficient permissions"**: Pruefe die Scopes des API Keys -- **"Key expired"**: Erstelle einen neuen API Key diff --git a/setup/API_SERVER_SETUP.md b/setup/API_SERVER_SETUP.md deleted file mode 100644 index 5819840..0000000 --- a/setup/API_SERVER_SETUP.md +++ /dev/null @@ -1,58 +0,0 @@ -# API Server Setup - -## Problem - -Chrome Extensions haben unterschiedliche IDs bei jeder Installation. Appwrite erfordert Platform-Registrierung, was nicht praktikabel ist. - -## Lösung - -Ein Express API-Server fungiert als Proxy zwischen Extension und Appwrite. Der Server verwendet den API Key (server-seitig, keine Platform-Registrierung nötig) und erstellt Sessions fuer die Extension. - -## Installation - -1. Dependencies installieren: -```bash -cd Server -npm install -``` - -2. API Server starten: -```bash -npm run dev:api -``` - -Der Server laeuft auf `http://localhost:3001` - -## Beide Server gleichzeitig starten - -```bash -npm run dev:all -``` - -Startet sowohl Vite (Port 5173) als auch API Server (Port 3001). - -## Umgebungsvariablen (optional) - -Erstelle eine `.env` Datei im `Server/` Ordner: - -``` -APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1 -APPWRITE_PROJECT_ID=696b82bb0036d2e547ad -APPWRITE_API_KEY=dein_api_key_hier -``` - -Falls nicht gesetzt, werden die Default-Werte aus `api-server.js` verwendet. - -## API Endpoints - -- `POST /api/extension/login` - Login mit Email/Password -- `GET /api/extension/auth` - Prueft Auth-Status -- `POST /api/extension/logout` - Logout -- `GET /api/health` - Health Check - -## Vorteile - -- Keine Platform-Registrierung in Appwrite noetig -- Funktioniert fuer alle Extension-Installationen -- API Key bleibt sicher auf dem Server -- Einfache Skalierung diff --git a/setup/USERS_COLLECTION_SETUP.md b/setup/USERS_COLLECTION_SETUP.md new file mode 100644 index 0000000..0f851ab --- /dev/null +++ b/setup/USERS_COLLECTION_SETUP.md @@ -0,0 +1,174 @@ +# Users Collection Setup & Permissions + +Diese Anleitung erklärt, wie du die `users` Collection in Appwrite einrichtest und die richtigen Permissions setzt. + +## Problem: 401 Unauthorized + +Wenn du beim Erstellen eines User-Dokuments einen **401 Unauthorized** Fehler bekommst, bedeutet das, dass die Permissions der Collection nicht richtig gesetzt sind. + +## Lösung: Collection erstellen und Permissions setzen + +### Schritt 1: Collection-ID ermitteln oder erstellen + +#### Option A: Collection bereits vorhanden + +Prüfe, ob die Collection bereits existiert: + +```bash +cd Server +appwrite login +appwrite databases list-collections --database-id eship-db +``` + +Suche nach einer Collection mit dem Namen "users" oder einer ID, die du verwenden möchtest. + +#### Option B: Collection erstellen + +Falls die Collection nicht existiert, erstelle sie: + +```bash +appwrite databases create-collection \ + --database-id eship-db \ + --collection-id users \ + --name "Users" +``` + +**Wichtig**: Notiere dir die `$id` der erstellten Collection. Falls die Collection-ID nicht "users" ist, musst du sie in der `.env` Datei setzen: + +``` +VITE_APPWRITE_USERS_COLLECTION_ID= +``` + +### Schritt 2: Attribute hinzufügen + +Die Collection braucht ein `user_name` Feld (String): + +```bash +appwrite databases create-string-attribute \ + --database-id eship-db \ + --collection-id users \ + --key user_name \ + --size 255 \ + --required true +``` + +**Wichtig**: Warte, bis das Attribute erstellt wurde (Status: "available"). Das kann einige Sekunden dauern. + +### Schritt 3: Permissions setzen + +Das ist der wichtigste Schritt! Die Collection muss erlauben, dass: +- Authentifizierte User Dokumente lesen können +- Authentifizierte User Dokumente erstellen können (für ihr eigenes Dokument) + +#### Über die Appwrite-Konsole (empfohlen) + +1. Öffne die Appwrite-Konsole: `https://appwrite.webklar.com` +2. Gehe zu: **Databases** → **eship-db** → **users** Collection +3. Klicke auf **Settings** → **Permissions** +4. Füge folgende Permissions hinzu: + +**Create Permission:** +- Role: `users` +- Erlaube: **create** + +**Read Permission:** +- Role: `users` +- Erlaube: **read** + +**Update Permission (optional, falls du Updates brauchst):** +- Role: `users` +- Erlaube: **update** + +**Delete Permission (optional):** +- Role: `users` +- Erlaube: **delete** + +#### Über die CLI + +```bash +# Create Permission +appwrite databases create-collection-create-rule \ + --database-id eship-db \ + --collection-id users \ + --role users + +# Read Permission +appwrite databases create-collection-read-rule \ + --database-id eship-db \ + --collection-id users \ + --role users + +# Optional: Update Permission +appwrite databases create-collection-update-rule \ + --database-id eship-db \ + --collection-id users \ + --role users + +# Optional: Delete Permission +appwrite databases create-collection-delete-rule \ + --database-id eship-db \ + --collection-id users \ + --role users +``` + +**Hinweis**: Die CLI-Befehle können je nach Appwrite-Version variieren. Wenn sie nicht funktionieren, verwende die Web-Konsole. + +### Schritt 4: Document-ID-Permissions + +Da wir die Auth-User-ID als Document-ID verwenden, muss Appwrite erlauben, dass User ihre eigene Document-ID verwenden können. + +In der Appwrite-Konsole: +1. Gehe zu: **Databases** → **eship-db** → **users** → **Settings** +2. Stelle sicher, dass **"Allow users to specify their own document IDs"** aktiviert ist + - Oder setze: **"Document ID Generation"** auf **"User provided"** + +### Schritt 5: Überprüfung + +Nach dem Setup sollte: +- ✅ Ein eingeloggter User Dokumente lesen können +- ✅ Ein eingeloggter User sein eigenes Dokument erstellen können (mit seiner Auth-User-ID als Document-ID) + +## Häufige Probleme + +### Problem: "Collection not found" + +**Lösung**: Prüfe, ob die Collection-ID korrekt ist: +```bash +appwrite databases list-collections --database-id eship-db +``` +Stelle sicher, dass `VITE_APPWRITE_USERS_COLLECTION_ID` in der `.env` die richtige ID enthält. + +### Problem: "Attribute not found" + +**Lösung**: Prüfe, ob das `user_name` Attribute existiert: +```bash +appwrite databases list-attributes \ + --database-id eship-db \ + --collection-id users +``` + +### Problem: "Permission denied" + +**Lösung**: Stelle sicher, dass die Permissions für die Rolle `users` gesetzt sind. In der Appwrite-Konsole: +- Gehe zu **Settings** → **Permissions** +- Prüfe, ob `create` und `read` für `users` aktiviert sind + +## Alternative: Restriktivere Permissions (sicherer) + +Falls du sicherer sein möchtest, dass User nur ihr eigenes Dokument lesen/erstellen können: + +1. In der Appwrite-Konsole: Gehe zu **Settings** → **Permissions** +2. Verwende **Custom Permissions** mit Filtern: + - Read: `$userId = request.auth.userId` + - Create: `$userId = request.auth.userId` + - Update: `$userId = request.auth.userId` + +Dies stellt sicher, dass User nur Zugriff auf ihr eigenes Dokument haben. + +## Nächste Schritte + +Nach dem Setup: +1. Lade die Web-App neu +2. Logge dich ein +3. Du solltest den Welcome-Screen sehen +4. Beim Klick auf "Jetzt starten" sollte das User-Dokument erstellt werden (kein 401-Fehler mehr)