From 636ca1341c44dd86c9e7dde911d34071ec229ccf Mon Sep 17 00:00:00 2001 From: Kenso Grimm Date: Wed, 21 Jan 2026 23:01:09 +0100 Subject: [PATCH] Enhance eBay extension logging and account management features - Added detailed logging for various actions in the background script and content script to improve debugging capabilities. - Updated the account management flow to include the last updated timestamp and sales data. - Refined the parsing logic to ensure accurate extraction of seller statistics from eBay profiles. - Improved error handling in the parsing process to provide more informative responses in case of failures. --- .cursor/debug.log | 338 +++++++++++--- Extension/background.js | 549 ++++++++++++++++++++--- Extension/ebay-content-script.js | 50 +++ Server/src/pages/AccountsPage.jsx | 31 +- Server/src/services/ebayParserService.js | 17 +- setup/appwrite_schema_upright_v1.ps1 | 258 +++++++++++ 6 files changed, 1114 insertions(+), 129 deletions(-) create mode 100644 setup/appwrite_schema_upright_v1.ps1 diff --git a/.cursor/debug.log b/.cursor/debug.log index 06e7a90..be9f56d 100644 --- a/.cursor/debug.log +++ b/.cursor/debug.log @@ -1,60 +1,278 @@ -{"location":"productsService.js:116","message":"scanProductsForAccount: market derived","data":{"accountId":"696ccb2400395714987c","market":"DE","account_platform_market":"DE","account_url":"https://www.ebay.de/sch/i.html?item=397047173300&rt=nc&_trksid=p4429486.m3561.l161211&_ssn=miceusi"},"timestamp":1768741151411,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} -{"location":"productsService.js:127","message":"scanProductsForAccount: currency derived","data":{"market":"DE","currency":"EUR","productsCollectionId":"products","databaseId":"eship-db","platformWillBeSetTo":"eBay"},"timestamp":1768741151411,"sessionId":"debug-session","runId":"post-fix","hypothesisId":"E"} -{"location":"productsService.js:190","message":"scanProductsForAccount: payload before createDocument","data":{"platformProductId":"stub_1243_1","product_platform":"ebay","product_platform_type":"string","product_platform_length":4,"product_platform_JSON":"\"ebay\"","fullPayload":"{\"product_account_id\":\"696ccb2400395714987c\",\"product_platform\":\"ebay\",\"product_platform_market\":\"DE\",\"product_currency\":\"EUR\",\"product_platform_product_id\":\"stub_1243_1\",\"product_title\":\"Scanned Item 1\",\"product_price\":58.5,\"product_url\":\"https://www.ebay.de/itm/fake-696ccb24-1\"}","payloadKeys":["product_account_id","product_platform","product_platform_market","product_currency","product_platform_product_id","product_title","product_price","product_url"]},"timestamp":1768741151507,"sessionId":"debug-session","runId":"run2","hypothesisId":"D"} -{"location":"productsService.js:185","message":"scanProductsForAccount: createDocument success","data":{"platformProductId":"stub_1243_1","created":0},"timestamp":1768741151644,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"productsService.js:190","message":"scanProductsForAccount: payload before createDocument","data":{"platformProductId":"stub_1243_2","product_platform":"ebay","product_platform_type":"string","product_platform_length":4,"product_platform_JSON":"\"ebay\"","fullPayload":"{\"product_account_id\":\"696ccb2400395714987c\",\"product_platform\":\"ebay\",\"product_platform_market\":\"DE\",\"product_currency\":\"EUR\",\"product_platform_product_id\":\"stub_1243_2\",\"product_title\":\"Scanned Item 2\",\"product_price\":64,\"product_url\":\"https://www.ebay.de/itm/fake-696ccb24-2\"}","payloadKeys":["product_account_id","product_platform","product_platform_market","product_currency","product_platform_product_id","product_title","product_price","product_url"]},"timestamp":1768741151644,"sessionId":"debug-session","runId":"run2","hypothesisId":"D"} -{"location":"productsService.js:185","message":"scanProductsForAccount: createDocument success","data":{"platformProductId":"stub_1243_2","created":1},"timestamp":1768741151700,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"productsService.js:190","message":"scanProductsForAccount: payload before createDocument","data":{"platformProductId":"stub_1243_3","product_platform":"ebay","product_platform_type":"string","product_platform_length":4,"product_platform_JSON":"\"ebay\"","fullPayload":"{\"product_account_id\":\"696ccb2400395714987c\",\"product_platform\":\"ebay\",\"product_platform_market\":\"DE\",\"product_currency\":\"EUR\",\"product_platform_product_id\":\"stub_1243_3\",\"product_title\":\"Scanned Item 3\",\"product_price\":69.5,\"product_url\":\"https://www.ebay.de/itm/fake-696ccb24-3\"}","payloadKeys":["product_account_id","product_platform","product_platform_market","product_currency","product_platform_product_id","product_title","product_price","product_url"]},"timestamp":1768741151701,"sessionId":"debug-session","runId":"run2","hypothesisId":"D"} -{"location":"productsService.js:185","message":"scanProductsForAccount: createDocument success","data":{"platformProductId":"stub_1243_3","created":2},"timestamp":1768741151751,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"productsService.js:190","message":"scanProductsForAccount: payload before createDocument","data":{"platformProductId":"stub_1243_4","product_platform":"ebay","product_platform_type":"string","product_platform_length":4,"product_platform_JSON":"\"ebay\"","fullPayload":"{\"product_account_id\":\"696ccb2400395714987c\",\"product_platform\":\"ebay\",\"product_platform_market\":\"DE\",\"product_currency\":\"EUR\",\"product_platform_product_id\":\"stub_1243_4\",\"product_title\":\"Scanned Item 4\",\"product_price\":75,\"product_url\":\"https://www.ebay.de/itm/fake-696ccb24-4\"}","payloadKeys":["product_account_id","product_platform","product_platform_market","product_currency","product_platform_product_id","product_title","product_price","product_url"]},"timestamp":1768741151752,"sessionId":"debug-session","runId":"run2","hypothesisId":"D"} -{"location":"productsService.js:185","message":"scanProductsForAccount: createDocument success","data":{"platformProductId":"stub_1243_4","created":3},"timestamp":1768741151800,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"productsService.js:190","message":"scanProductsForAccount: payload before createDocument","data":{"platformProductId":"stub_1243_5","product_platform":"ebay","product_platform_type":"string","product_platform_length":4,"product_platform_JSON":"\"ebay\"","fullPayload":"{\"product_account_id\":\"696ccb2400395714987c\",\"product_platform\":\"ebay\",\"product_platform_market\":\"DE\",\"product_currency\":\"EUR\",\"product_platform_product_id\":\"stub_1243_5\",\"product_title\":\"Scanned Item 5\",\"product_price\":80.5,\"product_url\":\"https://www.ebay.de/itm/fake-696ccb24-5\"}","payloadKeys":["product_account_id","product_platform","product_platform_market","product_currency","product_platform_product_id","product_title","product_price","product_url"]},"timestamp":1768741151800,"sessionId":"debug-session","runId":"run2","hypothesisId":"D"} -{"location":"productsService.js:185","message":"scanProductsForAccount: createDocument success","data":{"platformProductId":"stub_1243_5","created":4},"timestamp":1768741151844,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/goldbloom25?_trksid=p4429486.m3561.l161211"},"timestamp":1768741538650,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768741538651,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:158","message":"parseViaExtension: chrome.runtime.sendMessage error","data":{"error":"Could not establish connection. Receiving end does not exist.","extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768741538659,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:299","message":"parseEbayAccount: extension error, using stub","data":{"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1768741538659,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:304","message":"parseEbayAccount: stub result","data":{"itemsSold":null},"timestamp":1768741538660,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"AccountsPage.jsx:193","message":"handleFormSubmit: parsedData before save","data":{"hasStats":true,"itemsSold":null,"accountSellsValue":null},"timestamp":1768741540654,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"accountsService.js:72","message":"createManagedAccount: payload before Appwrite","data":{"account_sells":null,"accountData_account_sells":null},"timestamp":1768741540655,"sessionId":"debug-session","runId":"run1","hypothesisId":"E"} -{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/goldbloom25?_trksid=p4429486.m3561.l161211"},"timestamp":1768741552261,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768741552262,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:158","message":"parseViaExtension: chrome.runtime.sendMessage error","data":{"error":"Could not establish connection. Receiving end does not exist.","extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768741552269,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:299","message":"parseEbayAccount: extension error, using stub","data":{"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1768741552269,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:304","message":"parseEbayAccount: stub result","data":{"itemsSold":null},"timestamp":1768741552270,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_platform_account_id":"ebay_0000uuvjdi","account_shop_name":"eBay Seller vjdi","account_sells":null}},"timestamp":1768741552270,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"696cdaa40028f011f5d0","payload":{"account_platform_market":"DE","account_platform_account_id":"ebay_0000uuvjdi","account_shop_name":"eBay Seller vjdi"},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name"]},"timestamp":1768741552270,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"696cdaa40028f011f5d0"},"timestamp":1768741552346,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/ihaveitmusic?_trksid=p4429486.m3561.l161211"},"timestamp":1768741553567,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768741553568,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:158","message":"parseViaExtension: chrome.runtime.sendMessage error","data":{"error":"Could not establish connection. Receiving end does not exist.","extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768741553574,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:299","message":"parseEbayAccount: extension error, using stub","data":{"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1768741553574,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:304","message":"parseEbayAccount: stub result","data":{"itemsSold":null},"timestamp":1768741553574,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_platform_account_id":"ebay_0000h1nxit","account_shop_name":"eBay Seller nxit","account_sells":null}},"timestamp":1768741553575,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"696cbd07000703cf5437","payload":{"account_platform_market":"DE","account_platform_account_id":"ebay_0000h1nxit","account_shop_name":"eBay Seller nxit"},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name"]},"timestamp":1768741553575,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"696cbd07000703cf5437"},"timestamp":1768741553651,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/goldbloom25?_trksid=p4429486.m3561.l161211"},"timestamp":1768741571041,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768741571042,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:160","message":"parseViaExtension: response data from extension","data":{"hasStats":true,"itemsSold":1588,"stats":{"positiveRate":7,"feedbackCount":0,"itemsForSale":588,"itemsSold":1588}},"timestamp":1768741573909,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_platform_account_id":"goldbloom25","account_shop_name":"goldbloom25","account_sells":1588}},"timestamp":1768741573909,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"696cdaa40028f011f5d0","payload":{"account_platform_market":"DE","account_platform_account_id":"goldbloom25","account_shop_name":"goldbloom25","account_sells":1588},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name","account_sells"]},"timestamp":1768741573909,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"696cdaa40028f011f5d0"},"timestamp":1768741574001,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/sch/i.html?item=397047173300&rt=nc&_trksid=p4429486.m3561.l161211&_ssn=miceusi"},"timestamp":1768741581711,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768741581712,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:299","message":"parseEbayAccount: extension error, using stub","data":{"error":"timeout"},"timestamp":1768741596751,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_platform_account_id":"ebay_00002jm9ly","account_shop_name":"eBay Seller m9ly","account_sells":null}},"timestamp":1768741596752,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"696ccb2400395714987c","payload":{"account_platform_market":"DE","account_platform_account_id":"ebay_00002jm9ly","account_shop_name":"eBay Seller m9ly"},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name"]},"timestamp":1768741596752,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"ebayParserService.js:304","message":"parseEbayAccount: stub result","data":{"itemsSold":null},"timestamp":1768741596752,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"696ccb2400395714987c"},"timestamp":1768741596841,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/ihaveitmusic?_trksid=p4429486.m3561.l161211"},"timestamp":1768741610165,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768741610165,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:160","message":"parseViaExtension: response data from extension","data":{"hasStats":true,"itemsSold":280535,"stats":{"positiveRate":5,"feedbackCount":0,"itemsForSale":535,"itemsSold":280535}},"timestamp":1768741616427,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"696cbd07000703cf5437","payload":{"account_platform_market":"DE","account_platform_account_id":"ihaveitmusic","account_shop_name":"iHaveit","account_sells":280535},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name","account_sells"]},"timestamp":1768741616428,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_platform_account_id":"ihaveitmusic","account_shop_name":"iHaveit","account_sells":280535}},"timestamp":1768741616427,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"696cbd07000703cf5437"},"timestamp":1768741616513,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} -{"location":"ebayParserService.js:150","message":"getExtensionId: not found after retries","data":{"hasWindow":true},"timestamp":1768742766564,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:150","message":"getExtensionId: not found after retries","data":{"hasWindow":true},"timestamp":1768742773836,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768742796643,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768742817118,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768742900325,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} -{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1768742905657,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032347685,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1769032347686,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:165","message":"parseViaExtension: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","hasChrome":true,"hasRuntime":true},"timestamp":1769032347686,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:175","message":"parseViaExtension: got extension ID","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032347694,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:178","message":"parseViaExtension: sending message","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032347694,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:73","message":"handleParseRequest: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032347696,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:89","message":"handleParseRequest: tab created","data":{"tabId":1015118967,"url":""},"timestamp":1769032347707,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348580,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348582,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348621,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348967,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348970,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348974,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348975,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348978,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348979,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348980,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032348980,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118967,"status":"complete","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032349179,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:108","message":"checkTabLoaded: tab complete","data":{"tabId":1015118967,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032349180,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:187","message":"sendParseMessageWithRetry: entry","data":{"tabId":1015118967,"attempt":0},"timestamp":1769032351183,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:147","message":"ensureContentScriptInjected: tab info","data":{"tabId":1015118967,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032351184,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:143","message":"ensureContentScriptInjected: entry","data":{"tabId":1015118967},"timestamp":1769032351183,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:153","message":"ensureContentScriptInjected: sending PING","data":{"tabId":1015118967},"timestamp":1769032351184,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:158","message":"ensureContentScriptInjected: PING failed","data":{"tabId":1015118967,"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1769032351184,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:162","message":"ensureContentScriptInjected: attempting injection","data":{"tabId":1015118967},"timestamp":1769032351185,"sessionId":"debug-session","runId":"run1","hypothesisId":"E"} +{"location":"background.js:165","message":"ensureContentScriptInjected: tab info before injection","data":{"tabId":1015118967,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032351186,"sessionId":"debug-session","runId":"run1","hypothesisId":"F"} +{"location":"background.js:172","message":"ensureContentScriptInjected: listener injection success","data":{"tabId":1015118967,"frameId":0},"timestamp":1769032351187,"sessionId":"debug-session","runId":"run1","hypothesisId":"H"} +{"location":"background.js:207","message":"ensureContentScriptInjected: test injection success","data":{"tabId":1015118967},"timestamp":1769032351188,"sessionId":"debug-session","runId":"run1","hypothesisId":"G"} +{"location":"background.js:169","message":"ensureContentScriptInjected: ping after injection","data":{"tabId":1015118967,"pingAttempt":0},"timestamp":1769032351494,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:176","message":"ensureContentScriptInjected: ping success after injection","data":{"tabId":1015118967,"pingAttempt":0},"timestamp":1769032351495,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:195","message":"sendParseMessageWithRetry: injection result","data":{"tabId":1015118967,"injected":true},"timestamp":1769032351495,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:204","message":"sendParseMessageWithRetry: sending PARSE_EBAY","data":{"tabId":1015118967,"attempt":0},"timestamp":1769032351496,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:206","message":"sendParseMessageWithRetry: response received","data":{"tabId":1015118967,"hasResponse":true,"ok":true},"timestamp":1769032351497,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"ebayParserService.js:196","message":"parseViaExtension: response success","data":{"hasStats":true,"itemsSold":348728,"stats":{"itemsSold":348728}},"timestamp":1769032351513,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728}},"timestamp":1769032351513,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"69714472002ab5f0dd0e","payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name","account_sells"]},"timestamp":1769032351513,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"69714472002ab5f0dd0e"},"timestamp":1769032351603,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032358262,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1769032358264,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:165","message":"parseViaExtension: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","hasChrome":true,"hasRuntime":true},"timestamp":1769032358263,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:175","message":"parseViaExtension: got extension ID","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032358275,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:178","message":"parseViaExtension: sending message","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032358276,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:73","message":"handleParseRequest: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032358277,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:89","message":"handleParseRequest: tab created","data":{"tabId":1015118969,"url":""},"timestamp":1769032358289,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118969,"status":"loading","url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=a41c5b80-ed2d-4186-a1f1-e146e4aee0f1&iim=aMTQ1LjR&iia=HOIyNC43wL&iiz=YnjMy4yMjU*Doi"},"timestamp":1769032358785,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118969,"url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=a41c5b80-ed2d-4186-a1f1-e146e4aee0f1&iim=aMTQ1LjR&iia=HOIyNC43wL&iiz=YnjMy4yMjU*Doi"},"timestamp":1769032358836,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118969,"status":"complete","url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=a41c5b80-ed2d-4186-a1f1-e146e4aee0f1&iim=aMTQ1LjR&iia=HOIyNC43wL&iiz=YnjMy4yMjU*Doi"},"timestamp":1769032358892,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:108","message":"checkTabLoaded: tab complete","data":{"tabId":1015118969,"url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=a41c5b80-ed2d-4186-a1f1-e146e4aee0f1&iim=aMTQ1LjR&iia=HOIyNC43wL&iiz=YnjMy4yMjU*Doi","isEbayUrl":true},"timestamp":1769032358892,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:187","message":"sendParseMessageWithRetry: entry","data":{"tabId":1015118969,"attempt":0},"timestamp":1769032360901,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:143","message":"ensureContentScriptInjected: entry","data":{"tabId":1015118969},"timestamp":1769032360901,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:147","message":"ensureContentScriptInjected: tab info","data":{"tabId":1015118969,"url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=a41c5b80-ed2d-4186-a1f1-e146e4aee0f1&iim=aMTQ1LjR&iia=HOIyNC43wL&iiz=YnjMy4yMjU*Doi","isEbayUrl":true},"timestamp":1769032360902,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:153","message":"ensureContentScriptInjected: sending PING","data":{"tabId":1015118969},"timestamp":1769032360902,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:158","message":"ensureContentScriptInjected: PING failed","data":{"tabId":1015118969,"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1769032361126,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:162","message":"ensureContentScriptInjected: attempting injection","data":{"tabId":1015118969},"timestamp":1769032361127,"sessionId":"debug-session","runId":"run1","hypothesisId":"E"} +{"location":"background.js:165","message":"ensureContentScriptInjected: tab info before injection","data":{"tabId":1015118969,"url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=a41c5b80-ed2d-4186-a1f1-e146e4aee0f1&iim=aMTQ1LjR&iia=HOIyNC43wL&iiz=YnjMy4yMjU*Doi"},"timestamp":1769032361128,"sessionId":"debug-session","runId":"run1","hypothesisId":"F"} +{"location":"background.js:172","message":"ensureContentScriptInjected: listener injection success","data":{"tabId":1015118969,"frameId":0},"timestamp":1769032361130,"sessionId":"debug-session","runId":"run1","hypothesisId":"H"} +{"location":"background.js:207","message":"ensureContentScriptInjected: test injection success","data":{"tabId":1015118969},"timestamp":1769032361132,"sessionId":"debug-session","runId":"run1","hypothesisId":"G"} +{"location":"background.js:169","message":"ensureContentScriptInjected: ping after injection","data":{"tabId":1015118969,"pingAttempt":0},"timestamp":1769032361443,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:176","message":"ensureContentScriptInjected: ping success after injection","data":{"tabId":1015118969,"pingAttempt":0},"timestamp":1769032361444,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:195","message":"sendParseMessageWithRetry: injection result","data":{"tabId":1015118969,"injected":true},"timestamp":1769032361444,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:204","message":"sendParseMessageWithRetry: sending PARSE_EBAY","data":{"tabId":1015118969,"attempt":0},"timestamp":1769032361445,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:206","message":"sendParseMessageWithRetry: response received","data":{"tabId":1015118969,"hasResponse":true,"ok":true},"timestamp":1769032361446,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"ebayParserService.js:196","message":"parseViaExtension: response success","data":{"hasStats":true,"itemsSold":null,"stats":{"itemsSold":null}},"timestamp":1769032361460,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_shop_name":"Bitte bestätigen Sie zum Fortfahren Ihre Identität","account_sells":null}},"timestamp":1769032361460,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"69714472002ab5f0dd0e","payload":{"account_platform_market":"DE","account_shop_name":"Bitte bestätigen Sie zum Fortfahren Ihre Identität"},"payloadKeys":["account_platform_market","account_shop_name"]},"timestamp":1769032361460,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"69714472002ab5f0dd0e"},"timestamp":1769032361564,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032441216,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1769032441217,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:165","message":"parseViaExtension: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","hasChrome":true,"hasRuntime":true},"timestamp":1769032441216,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:175","message":"parseViaExtension: got extension ID","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032441224,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:178","message":"parseViaExtension: sending message","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032441225,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:73","message":"handleParseRequest: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032441226,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:89","message":"handleParseRequest: tab created","data":{"tabId":1015118971,"url":""},"timestamp":1769032441238,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118971,"status":"loading","url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=1bd50360-556b-409a-951f-01bca5aaf679&iim=GMTQ1Ljm&iia=hsIyNC43kV&iiz=zlQMy4yMjU*eRR"},"timestamp":1769032441726,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118971,"url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=1bd50360-556b-409a-951f-01bca5aaf679&iim=GMTQ1Ljm&iia=hsIyNC43kV&iiz=zlQMy4yMjU*eRR"},"timestamp":1769032441732,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118971,"status":"complete","url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=1bd50360-556b-409a-951f-01bca5aaf679&iim=GMTQ1Ljm&iia=hsIyNC43kV&iiz=zlQMy4yMjU*eRR"},"timestamp":1769032441786,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:108","message":"checkTabLoaded: tab complete","data":{"tabId":1015118971,"url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=1bd50360-556b-409a-951f-01bca5aaf679&iim=GMTQ1Ljm&iia=hsIyNC43kV&iiz=zlQMy4yMjU*eRR","isEbayUrl":true},"timestamp":1769032441786,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:187","message":"sendParseMessageWithRetry: entry","data":{"tabId":1015118971,"attempt":0},"timestamp":1769032443790,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:143","message":"ensureContentScriptInjected: entry","data":{"tabId":1015118971},"timestamp":1769032443791,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:147","message":"ensureContentScriptInjected: tab info","data":{"tabId":1015118971,"url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=1bd50360-556b-409a-951f-01bca5aaf679&iim=GMTQ1Ljm&iia=hsIyNC43kV&iiz=zlQMy4yMjU*eRR","isEbayUrl":true},"timestamp":1769032443792,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:153","message":"ensureContentScriptInjected: sending PING","data":{"tabId":1015118971},"timestamp":1769032443792,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:158","message":"ensureContentScriptInjected: PING failed","data":{"tabId":1015118971,"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1769032443793,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:162","message":"ensureContentScriptInjected: attempting injection","data":{"tabId":1015118971},"timestamp":1769032443793,"sessionId":"debug-session","runId":"run1","hypothesisId":"E"} +{"location":"background.js:165","message":"ensureContentScriptInjected: tab info before injection","data":{"tabId":1015118971,"url":"https://www.ebay.de/splashui/captcha?ap=1&appName=orch&ru=https%3A%2F%2Fwww.ebay.de%2Fstr%2Fsbdirect24%3F_trksid%3Dp4429486.m3561.l161211&iid=1bd50360-556b-409a-951f-01bca5aaf679&iim=GMTQ1Ljm&iia=hsIyNC43kV&iiz=zlQMy4yMjU*eRR"},"timestamp":1769032443794,"sessionId":"debug-session","runId":"run1","hypothesisId":"F"} +{"location":"background.js:172","message":"ensureContentScriptInjected: listener injection success","data":{"tabId":1015118971,"frameId":0},"timestamp":1769032443795,"sessionId":"debug-session","runId":"run1","hypothesisId":"H"} +{"location":"background.js:207","message":"ensureContentScriptInjected: test injection success","data":{"tabId":1015118971},"timestamp":1769032443797,"sessionId":"debug-session","runId":"run1","hypothesisId":"G"} +{"location":"background.js:169","message":"ensureContentScriptInjected: ping after injection","data":{"tabId":1015118971,"pingAttempt":0},"timestamp":1769032444100,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:176","message":"ensureContentScriptInjected: ping success after injection","data":{"tabId":1015118971,"pingAttempt":0},"timestamp":1769032444101,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:195","message":"sendParseMessageWithRetry: injection result","data":{"tabId":1015118971,"injected":true},"timestamp":1769032444102,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:204","message":"sendParseMessageWithRetry: sending PARSE_EBAY","data":{"tabId":1015118971,"attempt":0},"timestamp":1769032444102,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:206","message":"sendParseMessageWithRetry: response received","data":{"tabId":1015118971,"hasResponse":true,"ok":true},"timestamp":1769032444103,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"ebayParserService.js:196","message":"parseViaExtension: response success","data":{"hasStats":true,"itemsSold":null,"stats":{"itemsSold":null}},"timestamp":1769032444116,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_shop_name":"Bitte bestätigen Sie zum Fortfahren Ihre Identität","account_sells":null}},"timestamp":1769032444116,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"69714472002ab5f0dd0e","payload":{"account_platform_market":"DE","account_shop_name":"Bitte bestätigen Sie zum Fortfahren Ihre Identität"},"payloadKeys":["account_platform_market","account_shop_name"]},"timestamp":1769032444117,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"69714472002ab5f0dd0e"},"timestamp":1769032444203,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032465359,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1769032465359,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:165","message":"parseViaExtension: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","hasChrome":true,"hasRuntime":true},"timestamp":1769032465359,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:175","message":"parseViaExtension: got extension ID","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032465366,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:178","message":"parseViaExtension: sending message","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032465366,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:73","message":"handleParseRequest: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032465367,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:89","message":"handleParseRequest: tab created","data":{"tabId":1015118975,"url":""},"timestamp":1769032465376,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466284,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466287,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466315,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466656,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466659,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466663,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466663,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466664,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466665,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466667,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466667,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118975,"status":"complete","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032466804,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:108","message":"checkTabLoaded: tab complete","data":{"tabId":1015118975,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032466804,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:187","message":"sendParseMessageWithRetry: entry","data":{"tabId":1015118975,"attempt":0},"timestamp":1769032468807,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:143","message":"ensureContentScriptInjected: entry","data":{"tabId":1015118975},"timestamp":1769032468808,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:147","message":"ensureContentScriptInjected: tab info","data":{"tabId":1015118975,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032468808,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:153","message":"ensureContentScriptInjected: sending PING","data":{"tabId":1015118975},"timestamp":1769032468808,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:158","message":"ensureContentScriptInjected: PING failed","data":{"tabId":1015118975,"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1769032468809,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:162","message":"ensureContentScriptInjected: attempting injection","data":{"tabId":1015118975},"timestamp":1769032468809,"sessionId":"debug-session","runId":"run1","hypothesisId":"E"} +{"location":"background.js:165","message":"ensureContentScriptInjected: tab info before injection","data":{"tabId":1015118975,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032468809,"sessionId":"debug-session","runId":"run1","hypothesisId":"F"} +{"location":"background.js:172","message":"ensureContentScriptInjected: listener injection success","data":{"tabId":1015118975,"frameId":0},"timestamp":1769032468811,"sessionId":"debug-session","runId":"run1","hypothesisId":"H"} +{"location":"background.js:207","message":"ensureContentScriptInjected: test injection success","data":{"tabId":1015118975},"timestamp":1769032468812,"sessionId":"debug-session","runId":"run1","hypothesisId":"G"} +{"location":"background.js:169","message":"ensureContentScriptInjected: ping after injection","data":{"tabId":1015118975,"pingAttempt":0},"timestamp":1769032469121,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:176","message":"ensureContentScriptInjected: ping success after injection","data":{"tabId":1015118975,"pingAttempt":0},"timestamp":1769032469122,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:195","message":"sendParseMessageWithRetry: injection result","data":{"tabId":1015118975,"injected":true},"timestamp":1769032469123,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:204","message":"sendParseMessageWithRetry: sending PARSE_EBAY","data":{"tabId":1015118975,"attempt":0},"timestamp":1769032469123,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:206","message":"sendParseMessageWithRetry: response received","data":{"tabId":1015118975,"hasResponse":true,"ok":true},"timestamp":1769032469124,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"ebayParserService.js:196","message":"parseViaExtension: response success","data":{"hasStats":true,"itemsSold":348728,"stats":{"itemsSold":348728}},"timestamp":1769032469138,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728}},"timestamp":1769032469138,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"69714472002ab5f0dd0e","payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name","account_sells"]},"timestamp":1769032469139,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"69714472002ab5f0dd0e"},"timestamp":1769032469243,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032683600,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1769032683601,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:165","message":"parseViaExtension: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","hasChrome":true,"hasRuntime":true},"timestamp":1769032683601,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:175","message":"parseViaExtension: got extension ID","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032683609,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:178","message":"parseViaExtension: sending message","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032683609,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:73","message":"handleParseRequest: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032683610,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:89","message":"handleParseRequest: tab created","data":{"tabId":1015118977,"url":""},"timestamp":1769032683621,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032684632,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032684634,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032684639,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032685105,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032685108,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032685112,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032685113,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032685114,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032685115,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032685116,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032685117,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118977,"status":"complete","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032685262,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:108","message":"checkTabLoaded: tab complete","data":{"tabId":1015118977,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032685263,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:187","message":"sendParseMessageWithRetry: entry","data":{"tabId":1015118977,"attempt":0},"timestamp":1769032687278,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:143","message":"ensureContentScriptInjected: entry","data":{"tabId":1015118977},"timestamp":1769032687278,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:147","message":"ensureContentScriptInjected: tab info","data":{"tabId":1015118977,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032687279,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:153","message":"ensureContentScriptInjected: sending PING","data":{"tabId":1015118977},"timestamp":1769032687279,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:158","message":"ensureContentScriptInjected: PING failed","data":{"tabId":1015118977,"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1769032687280,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:162","message":"ensureContentScriptInjected: attempting injection","data":{"tabId":1015118977},"timestamp":1769032687281,"sessionId":"debug-session","runId":"run1","hypothesisId":"E"} +{"location":"background.js:165","message":"ensureContentScriptInjected: tab info before injection","data":{"tabId":1015118977,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032687281,"sessionId":"debug-session","runId":"run1","hypothesisId":"F"} +{"location":"background.js:172","message":"ensureContentScriptInjected: listener injection success","data":{"tabId":1015118977,"frameId":0},"timestamp":1769032687283,"sessionId":"debug-session","runId":"run1","hypothesisId":"H"} +{"location":"background.js:207","message":"ensureContentScriptInjected: test injection success","data":{"tabId":1015118977},"timestamp":1769032687284,"sessionId":"debug-session","runId":"run1","hypothesisId":"G"} +{"location":"background.js:169","message":"ensureContentScriptInjected: ping after injection","data":{"tabId":1015118977,"pingAttempt":0},"timestamp":1769032687590,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:176","message":"ensureContentScriptInjected: ping success after injection","data":{"tabId":1015118977,"pingAttempt":0},"timestamp":1769032687591,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:195","message":"sendParseMessageWithRetry: injection result","data":{"tabId":1015118977,"injected":true},"timestamp":1769032687591,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:204","message":"sendParseMessageWithRetry: sending PARSE_EBAY","data":{"tabId":1015118977,"attempt":0},"timestamp":1769032687591,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:206","message":"sendParseMessageWithRetry: response received","data":{"tabId":1015118977,"hasResponse":true,"ok":true},"timestamp":1769032687593,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"ebayParserService.js:196","message":"parseViaExtension: response success","data":{"hasStats":true,"itemsSold":348728,"stats":{"itemsSold":348728}},"timestamp":1769032687608,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"69714472002ab5f0dd0e","payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name","account_sells"]},"timestamp":1769032687608,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"69714472002ab5f0dd0e"},"timestamp":1769032687693,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032795025,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1769032795025,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:73","message":"handleParseRequest: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032795080,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:89","message":"handleParseRequest: tab created","data":{"tabId":1015118979,"url":""},"timestamp":1769032795089,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796012,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796014,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796026,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796358,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796361,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796365,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796365,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796366,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796367,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796368,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796368,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118979,"status":"complete","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032796823,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:108","message":"checkTabLoaded: tab complete","data":{"tabId":1015118979,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032796823,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:187","message":"sendParseMessageWithRetry: entry","data":{"tabId":1015118979,"attempt":0},"timestamp":1769032798837,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:143","message":"ensureContentScriptInjected: entry","data":{"tabId":1015118979},"timestamp":1769032798837,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:147","message":"ensureContentScriptInjected: tab info","data":{"tabId":1015118979,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032798838,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:153","message":"ensureContentScriptInjected: sending PING","data":{"tabId":1015118979},"timestamp":1769032798838,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:158","message":"ensureContentScriptInjected: PING failed","data":{"tabId":1015118979,"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1769032798839,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:162","message":"ensureContentScriptInjected: attempting injection","data":{"tabId":1015118979},"timestamp":1769032798839,"sessionId":"debug-session","runId":"run1","hypothesisId":"E"} +{"location":"background.js:165","message":"ensureContentScriptInjected: tab info before injection","data":{"tabId":1015118979,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032798840,"sessionId":"debug-session","runId":"run1","hypothesisId":"F"} +{"location":"background.js:172","message":"ensureContentScriptInjected: listener injection success","data":{"tabId":1015118979,"frameId":0},"timestamp":1769032798841,"sessionId":"debug-session","runId":"run1","hypothesisId":"H"} +{"location":"background.js:207","message":"ensureContentScriptInjected: test injection success","data":{"tabId":1015118979},"timestamp":1769032798842,"sessionId":"debug-session","runId":"run1","hypothesisId":"G"} +{"location":"background.js:169","message":"ensureContentScriptInjected: ping after injection","data":{"tabId":1015118979,"pingAttempt":0},"timestamp":1769032799147,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:176","message":"ensureContentScriptInjected: ping success after injection","data":{"tabId":1015118979,"pingAttempt":0},"timestamp":1769032799149,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:195","message":"sendParseMessageWithRetry: injection result","data":{"tabId":1015118979,"injected":true},"timestamp":1769032799149,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:204","message":"sendParseMessageWithRetry: sending PARSE_EBAY","data":{"tabId":1015118979,"attempt":0},"timestamp":1769032799149,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:206","message":"sendParseMessageWithRetry: response received","data":{"tabId":1015118979,"hasResponse":true,"ok":true},"timestamp":1769032799151,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"ebayParserService.js:160","message":"parseViaExtension: response data from extension","data":{"hasStats":true,"itemsSold":348728,"stats":{"itemsSold":348728}},"timestamp":1769032799167,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"69714472002ab5f0dd0e","payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name","account_sells"]},"timestamp":1769032799168,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728}},"timestamp":1769032799167,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"69714472002ab5f0dd0e"},"timestamp":1769032799416,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:73","message":"handleParseRequest: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032812193,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032812190,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1769032812190,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:89","message":"handleParseRequest: tab created","data":{"tabId":1015118983,"url":""},"timestamp":1769032812203,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813057,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813059,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813069,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813381,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813384,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813387,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813388,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813389,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813390,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813391,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813392,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118983,"status":"complete","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032813527,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:108","message":"checkTabLoaded: tab complete","data":{"tabId":1015118983,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032813527,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:187","message":"sendParseMessageWithRetry: entry","data":{"tabId":1015118983,"attempt":0},"timestamp":1769032815528,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:143","message":"ensureContentScriptInjected: entry","data":{"tabId":1015118983},"timestamp":1769032815529,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:147","message":"ensureContentScriptInjected: tab info","data":{"tabId":1015118983,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032815529,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:153","message":"ensureContentScriptInjected: sending PING","data":{"tabId":1015118983},"timestamp":1769032815529,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:158","message":"ensureContentScriptInjected: PING failed","data":{"tabId":1015118983,"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1769032815530,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:162","message":"ensureContentScriptInjected: attempting injection","data":{"tabId":1015118983},"timestamp":1769032815531,"sessionId":"debug-session","runId":"run1","hypothesisId":"E"} +{"location":"background.js:165","message":"ensureContentScriptInjected: tab info before injection","data":{"tabId":1015118983,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032815531,"sessionId":"debug-session","runId":"run1","hypothesisId":"F"} +{"location":"background.js:172","message":"ensureContentScriptInjected: listener injection success","data":{"tabId":1015118983,"frameId":0},"timestamp":1769032815533,"sessionId":"debug-session","runId":"run1","hypothesisId":"H"} +{"location":"background.js:207","message":"ensureContentScriptInjected: test injection success","data":{"tabId":1015118983},"timestamp":1769032815535,"sessionId":"debug-session","runId":"run1","hypothesisId":"G"} +{"location":"background.js:169","message":"ensureContentScriptInjected: ping after injection","data":{"tabId":1015118983,"pingAttempt":0},"timestamp":1769032815838,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:176","message":"ensureContentScriptInjected: ping success after injection","data":{"tabId":1015118983,"pingAttempt":0},"timestamp":1769032815839,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:195","message":"sendParseMessageWithRetry: injection result","data":{"tabId":1015118983,"injected":true},"timestamp":1769032815839,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:204","message":"sendParseMessageWithRetry: sending PARSE_EBAY","data":{"tabId":1015118983,"attempt":0},"timestamp":1769032815839,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:206","message":"sendParseMessageWithRetry: response received","data":{"tabId":1015118983,"hasResponse":true,"ok":true},"timestamp":1769032815841,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"ebayParserService.js:160","message":"parseViaExtension: response data from extension","data":{"hasStats":true,"itemsSold":348728,"stats":{"itemsSold":348728}},"timestamp":1769032815854,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"69714472002ab5f0dd0e","payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name","account_sells"]},"timestamp":1769032815855,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"AccountsPage.jsx:93","message":"handleRefreshAccount: update payload","data":{"payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728}},"timestamp":1769032815854,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"69714472002ab5f0dd0e"},"timestamp":1769032815938,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"ebayParserService.js:292","message":"parseEbayAccount: route decision","data":{"extAvailable":true,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032819428,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:135","message":"getExtensionId: found via cache","data":{"cachedExtensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc"},"timestamp":1769032819429,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:165","message":"parseViaExtension: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","hasChrome":true,"hasRuntime":true},"timestamp":1769032819429,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:175","message":"parseViaExtension: got extension ID","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032819437,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"ebayParserService.js:178","message":"parseViaExtension: sending message","data":{"extensionId":"ikldokdleojiinjklkhkkhfhpfafeaoc","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032819437,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:73","message":"handleParseRequest: entry","data":{"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032819438,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:89","message":"handleParseRequest: tab created","data":{"tabId":1015118985,"url":""},"timestamp":1769032819449,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820280,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820282,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820287,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820626,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820629,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820633,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820634,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820635,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820636,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820637,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"loading","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820638,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:104","message":"checkTabLoaded: tab update","data":{"tabId":1015118985,"status":"complete","url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032820785,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:108","message":"checkTabLoaded: tab complete","data":{"tabId":1015118985,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032820786,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:187","message":"sendParseMessageWithRetry: entry","data":{"tabId":1015118985,"attempt":0},"timestamp":1769032822797,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"background.js:143","message":"ensureContentScriptInjected: entry","data":{"tabId":1015118985},"timestamp":1769032822798,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:147","message":"ensureContentScriptInjected: tab info","data":{"tabId":1015118985,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211","isEbayUrl":true},"timestamp":1769032822798,"sessionId":"debug-session","runId":"run1","hypothesisId":"C"} +{"location":"background.js:153","message":"ensureContentScriptInjected: sending PING","data":{"tabId":1015118985},"timestamp":1769032822798,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:158","message":"ensureContentScriptInjected: PING failed","data":{"tabId":1015118985,"error":"Could not establish connection. Receiving end does not exist."},"timestamp":1769032822799,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:162","message":"ensureContentScriptInjected: attempting injection","data":{"tabId":1015118985},"timestamp":1769032822799,"sessionId":"debug-session","runId":"run1","hypothesisId":"E"} +{"location":"background.js:165","message":"ensureContentScriptInjected: tab info before injection","data":{"tabId":1015118985,"url":"https://www.ebay.de/str/sbdirect24?_trksid=p4429486.m3561.l161211"},"timestamp":1769032822800,"sessionId":"debug-session","runId":"run1","hypothesisId":"F"} +{"location":"background.js:172","message":"ensureContentScriptInjected: listener injection success","data":{"tabId":1015118985,"frameId":0},"timestamp":1769032822801,"sessionId":"debug-session","runId":"run1","hypothesisId":"H"} +{"location":"background.js:207","message":"ensureContentScriptInjected: test injection success","data":{"tabId":1015118985},"timestamp":1769032822802,"sessionId":"debug-session","runId":"run1","hypothesisId":"G"} +{"location":"background.js:169","message":"ensureContentScriptInjected: ping after injection","data":{"tabId":1015118985,"pingAttempt":0},"timestamp":1769032823107,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:176","message":"ensureContentScriptInjected: ping success after injection","data":{"tabId":1015118985,"pingAttempt":0},"timestamp":1769032823108,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:195","message":"sendParseMessageWithRetry: injection result","data":{"tabId":1015118985,"injected":true},"timestamp":1769032823109,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"background.js:204","message":"sendParseMessageWithRetry: sending PARSE_EBAY","data":{"tabId":1015118985,"attempt":0},"timestamp":1769032823109,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"background.js:206","message":"sendParseMessageWithRetry: response received","data":{"tabId":1015118985,"hasResponse":true,"ok":true},"timestamp":1769032823111,"sessionId":"debug-session","runId":"run1","hypothesisId":"B"} +{"location":"ebayParserService.js:196","message":"parseViaExtension: response success","data":{"hasStats":true,"itemsSold":348728,"stats":{"itemsSold":348728}},"timestamp":1769032823124,"sessionId":"debug-session","runId":"run1","hypothesisId":"D"} +{"location":"accountsService.js:133","message":"updateManagedAccount: before updateDocument","data":{"accountId":"69714472002ab5f0dd0e","payload":{"account_platform_market":"DE","account_platform_account_id":"sbdirect24","account_shop_name":"sbdirect24","account_sells":348728,"account_updated_at":"2026-01-21T22:00:23.125Z"},"payloadKeys":["account_platform_market","account_platform_account_id","account_shop_name","account_sells","account_updated_at"]},"timestamp":1769032823125,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} +{"location":"accountsService.js:147","message":"updateManagedAccount: success","data":{"accountId":"69714472002ab5f0dd0e"},"timestamp":1769032823218,"sessionId":"debug-session","runId":"run1","hypothesisId":"A"} diff --git a/Extension/background.js b/Extension/background.js index 133a6e9..b194cfe 100644 --- a/Extension/background.js +++ b/Extension/background.js @@ -72,12 +72,18 @@ chrome.runtime.onMessageExternal.addListener((msg, sender, sendResponse) => { */ async function handleParseRequest(url, sendResponse) { try { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:73',message:'handleParseRequest: entry',data:{url},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{}); + // #endregion + // Validate URL if (!url || typeof url !== 'string' || !url.toLowerCase().includes('ebay.')) { sendResponse({ ok: false, error: "Invalid eBay URL" }); return; } + console.log("[BACKGROUND] Creating tab for parse request:", url); + // Create hidden tab const tab = await chrome.tabs.create({ url: url, @@ -85,6 +91,11 @@ async function handleParseRequest(url, sendResponse) { }); const tabId = tab.id; + console.log("[BACKGROUND] Tab created:", tabId); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:89',message:'handleParseRequest: tab created',data:{tabId,url:tab.url},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{}); + // #endregion // Set up timeout const timeoutId = setTimeout(() => { @@ -101,26 +112,24 @@ async function handleParseRequest(url, sendResponse) { const checkTabLoaded = (updatedTabId, changeInfo, updatedTab) => { if (updatedTabId !== tabId) return; + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:104',message:'checkTabLoaded: tab update',data:{tabId:updatedTabId,status:changeInfo.status,url:updatedTab.url},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'C'})}).catch(()=>{}); + // #endregion + // Tab is fully loaded if (changeInfo.status === 'complete' && updatedTab.url) { chrome.tabs.onUpdated.removeListener(checkTabLoaded); + console.log("[BACKGROUND] Tab loaded, sending parse message:", updatedTab.url); - // Small delay to ensure DOM is ready + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:108',message:'checkTabLoaded: tab complete',data:{tabId,url:updatedTab.url,isEbayUrl:isEbayUrl(updatedTab.url)},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'C'})}).catch(()=>{}); + // #endregion + + // Wait longer for content script to auto-load (if it does) + // Content scripts from manifest.json might need more time in hidden tabs 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 + sendParseMessageWithRetry(tabId, 0); + }, 2000); // 2 seconds delay - give content script time to auto-load } }; @@ -132,6 +141,386 @@ async function handleParseRequest(url, sendResponse) { } } +/** + * Checks if a URL is an eBay URL + * @param {string} url - URL to check + * @returns {boolean} - true if URL is an eBay URL + */ +function isEbayUrl(url) { + if (!url) return false; + const urlLower = url.toLowerCase(); + return urlLower.includes('ebay.'); +} + +/** + * Injects the eBay content script manually if it's not already loaded + * @param {number} tabId - Tab ID + * @returns {Promise} - true if injection successful or already loaded + */ +async function ensureContentScriptInjected(tabId) { + try { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:143',message:'ensureContentScriptInjected: entry',data:{tabId},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{}); + // #endregion + + // First, check if tab URL is an eBay URL + const tab = await chrome.tabs.get(tabId); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:147',message:'ensureContentScriptInjected: tab info',data:{tabId,url:tab.url,isEbayUrl:isEbayUrl(tab.url)},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'C'})}).catch(()=>{}); + // #endregion + + if (!isEbayUrl(tab.url)) { + console.log("[BACKGROUND] Tab is not an eBay URL:", tab.url); + return false; + } + + // Check if content script is already loaded by sending a ping + try { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:153',message:'ensureContentScriptInjected: sending PING',data:{tabId},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + + await chrome.tabs.sendMessage(tabId, { action: "PING" }); + console.log("[BACKGROUND] Content script already loaded"); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:156',message:'ensureContentScriptInjected: PING success',data:{tabId},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + + return true; + } catch (pingError) { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:158',message:'ensureContentScriptInjected: PING failed',data:{tabId,error:pingError.message,runtimeError:chrome.runtime.lastError?.message},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{}); + // #endregion + + // Content script not loaded, try to inject it manually + console.log("[BACKGROUND] Content script not found, injecting manually..."); + + try { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:162',message:'ensureContentScriptInjected: attempting injection',data:{tabId},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'E'})}).catch(()=>{}); + // #endregion + + // Get tab info to check frames + const tabInfo = await chrome.tabs.get(tabId); + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:165',message:'ensureContentScriptInjected: tab info before injection',data:{tabId,url:tabInfo.url},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'F'})}).catch(()=>{}); + // #endregion + + // Inject the message listener directly as a function (not as a file) + // This ensures it runs in the correct context with access to chrome.runtime + try { + await chrome.scripting.executeScript({ + target: { tabId: tabId, frameIds: [0] }, + func: () => { + // Register message listener directly + if (typeof chrome !== 'undefined' && chrome.runtime && chrome.runtime.onMessage) { + chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { + if (message.action === "PING") { + sendResponse({ ok: true, ready: true }); + return true; + } + + if (message.action === "PARSE_EBAY") { + // Simple parsing - extract from URL and DOM + try { + const url = window.location.href; + const hostname = window.location.hostname.toLowerCase(); + + // Extract market + let market = "US"; + if (hostname.includes('.de')) market = 'DE'; + else if (hostname.includes('.uk')) market = 'UK'; + else if (hostname.includes('.fr')) market = 'FR'; + else if (hostname.includes('.it')) market = 'IT'; + else if (hostname.includes('.es')) market = 'ES'; + + // Extract seller ID from URL + let sellerId = ""; + const usrMatch = url.match(/\/usr\/([^\/\?]+)/i); + if (usrMatch && usrMatch[1]) { + sellerId = usrMatch[1].trim(); + } else { + const strMatch = url.match(/\/str\/([^\/\?]+)/i); + if (strMatch && strMatch[1]) { + sellerId = strMatch[1].trim(); + } + } + + // Extract shop name + let shopName = ""; + try { + const h1 = document.querySelector('h1'); + if (h1) { + shopName = h1.textContent?.trim() || ""; + } + } catch (e) {} + + // Extract items sold + let itemsSold = null; + try { + const container = document.querySelector(".str-seller-card__store-stats-content"); + if (container) { + const divs = container.querySelectorAll("div"); + for (const div of divs) { + const divText = div.textContent || ""; + if (divText.includes("Artikel verkauft")) { + const span = div.querySelector('span[class*="BOLD"]') || div.querySelector("span.BOLD"); + if (span) { + let valueText = span.textContent?.trim() || ""; + valueText = valueText.replace(/\s/g, "").replace(/[.,]/g, "").replace(/\D/g, ""); + if (valueText.length > 0) { + const parsedValue = parseInt(valueText, 10); + if (!isNaN(parsedValue) && parsedValue >= 0) { + itemsSold = parsedValue; + } + } + } + } + } + } + } catch (e) {} + + sendResponse({ + ok: true, + data: { + sellerId: sellerId || "", + shopName: shopName || "", + market: market, + status: (sellerId || shopName) ? "active" : "unknown", + stats: { + itemsSold: itemsSold + } + } + }); + } catch (error) { + sendResponse({ + ok: true, + data: { + sellerId: "", + shopName: "", + market: "US", + status: "unknown", + stats: {} + } + }); + } + return true; + } + + return false; + }); + + console.log("[EBAY-CONTENT] Message listener registered"); + } + } + }); + console.log("[BACKGROUND] Content script message listener injected successfully"); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:172',message:'ensureContentScriptInjected: listener injection success',data:{tabId,frameId:0},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'H'})}).catch(()=>{}); + // #endregion + } catch (injectError) { + console.error("[BACKGROUND] Failed to inject message listener:", injectError); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:178',message:'ensureContentScriptInjected: listener injection failed',data:{tabId,error:injectError.message},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'H'})}).catch(()=>{}); + // #endregion + + throw injectError; + } + + // Also try injecting a simple test script to verify injection works + try { + await chrome.scripting.executeScript({ + target: { tabId: tabId, frameIds: [0] }, + func: () => { + console.log("[TEST-INJECTION] Test script executed in main frame"); + // Try to send a log via fetch + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{ + method:'POST', + headers:{'Content-Type':'application/json'}, + body:JSON.stringify({ + location:'background.js:test-injection', + message:'test injection: script executed', + data:{url:window.location.href,hasChrome:typeof chrome!=='undefined',hasRuntime:typeof chrome!=='undefined'&&!!chrome.runtime}, + timestamp:Date.now(), + sessionId:'debug-session', + runId:'run1', + hypothesisId:'G' + }) + }).catch(()=>{}); + } + }); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:207',message:'ensureContentScriptInjected: test injection success',data:{tabId},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'G'})}).catch(()=>{}); + // #endregion + } catch (testError) { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:210',message:'ensureContentScriptInjected: test injection failed',data:{tabId,error:testError.message},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'G'})}).catch(()=>{}); + // #endregion + } + + // Wait longer for the script to fully initialize and register message listeners + // Retry PING to verify the script is ready + // Also try sending to frameId 0 explicitly + for (let pingAttempt = 0; pingAttempt < 10; pingAttempt++) { + await new Promise(resolve => setTimeout(resolve, 300)); // 300ms between pings + + try { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:169',message:'ensureContentScriptInjected: ping after injection',data:{tabId,pingAttempt},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + + // Try sending to main frame explicitly + try { + await chrome.tabs.sendMessage(tabId, { action: "PING" }, { frameId: 0 }); + } catch (frameErr) { + // Fallback: try without frameId + await chrome.tabs.sendMessage(tabId, { action: "PING" }); + } + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:176',message:'ensureContentScriptInjected: ping success after injection',data:{tabId,pingAttempt},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + + console.log("[BACKGROUND] Content script ready after injection"); + return true; + } catch (pingErr) { + // Continue to next attempt + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:182',message:'ensureContentScriptInjected: ping failed after injection',data:{tabId,pingAttempt,error:pingErr.message},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + } + } + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:189',message:'ensureContentScriptInjected: ping timeout after injection',data:{tabId},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + + // Even if PING failed, return true - the script might still work + console.warn("[BACKGROUND] Content script injected but PING not responding"); + return true; + } catch (injectError) { + console.error("[BACKGROUND] Failed to inject content script:", injectError); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:172',message:'ensureContentScriptInjected: injection failed',data:{tabId,error:injectError.message,runtimeError:chrome.runtime.lastError?.message},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'E'})}).catch(()=>{}); + // #endregion + + return false; + } + } + } catch (error) { + console.error("[BACKGROUND] Error checking/injecting content script:", error); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:177',message:'ensureContentScriptInjected: error',data:{tabId,error:error.message},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{}); + // #endregion + + return false; + } +} + +/** + * Sends parse message to content script with retry mechanism + * @param {number} tabId - Tab ID + * @param {number} attempt - Current attempt number (0-based) + */ +async function sendParseMessageWithRetry(tabId, attempt) { + const maxAttempts = 3; + const retryDelay = 500; // 500ms between retries + + try { + console.log(`[BACKGROUND] Sending parse message (attempt ${attempt + 1}/${maxAttempts}) to tab:`, tabId); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:187',message:'sendParseMessageWithRetry: entry',data:{tabId,attempt},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{}); + // #endregion + + // On first attempt, ensure content script is injected + if (attempt === 0) { + const injected = await ensureContentScriptInjected(tabId); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:195',message:'sendParseMessageWithRetry: injection result',data:{tabId,injected},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{}); + // #endregion + + if (!injected) { + throw new Error("Could not inject content script"); + } + } + + // Check if content script is injected by trying to send a ping + // If this fails, the content script might not be loaded yet + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:204',message:'sendParseMessageWithRetry: sending PARSE_EBAY',data:{tabId,attempt},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + + // Try sending to main frame explicitly first + let response; + try { + response = await chrome.tabs.sendMessage(tabId, { action: "PARSE_EBAY" }, { frameId: 0 }); + } catch (frameErr) { + // Fallback: try without frameId + response = await chrome.tabs.sendMessage(tabId, { action: "PARSE_EBAY" }); + } + + console.log("[BACKGROUND] Parse response received:", response); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:206',message:'sendParseMessageWithRetry: response received',data:{tabId,hasResponse:!!response,ok:response?.ok},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + + if (response && response.ok && response.data) { + handleParseComplete(tabId, response.data); + } else { + cleanupParseRequest(tabId, null, { + ok: false, + error: response?.error || "Parsing failed" + }); + } + } catch (err) { + // Check if error is due to content script not being ready + const runtimeError = chrome.runtime.lastError?.message || ""; + const isContentScriptError = + err.message?.includes("Could not establish connection") || + err.message?.includes("Receiving end does not exist") || + err.message?.includes("Could not inject content script") || + runtimeError.includes("Receiving end does not exist") || + runtimeError.includes("Could not establish connection"); + + console.log(`[BACKGROUND] Error sending parse message (attempt ${attempt + 1}):`, { + error: err.message, + runtimeError: runtimeError, + isContentScriptError: isContentScriptError + }); + + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'background.js:217',message:'sendParseMessageWithRetry: error',data:{tabId,attempt,error:err.message,runtimeError,isContentScriptError},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + + if (isContentScriptError && attempt < maxAttempts) { + // Content script not ready yet, retry after delay + console.log(`[BACKGROUND] Content script not ready, retrying in ${retryDelay}ms...`); + setTimeout(() => { + sendParseMessageWithRetry(tabId, attempt + 1); + }, retryDelay); + } else { + // Max retries reached or different error + const errorMessage = isContentScriptError + ? "Content script konnte nicht geladen werden. Bitte Extension neu laden." + : (err.message || runtimeError || "Content script error"); + cleanupParseRequest(tabId, null, { + ok: false, + error: errorMessage + }); + } + } +} + /** * Handles parse complete response from content script */ @@ -215,43 +604,7 @@ async function handleScanProductsRequest(url, accountId, sendResponse) { // Small delay to ensure DOM is ready setTimeout(() => { - // Send parse message to content script - chrome.tabs.sendMessage(tabId, { action: "PARSE_PRODUCT_LIST" }) - .then(response => { - if (response && response.ok) { - // Prüfe ob items vorhanden und nicht leer - const items = response.items || response.data?.items || []; - const meta = response.meta || response.data?.meta || {}; - - // Log meta für Debugging - console.log("[SCAN meta]", meta); - - if (items.length === 0) { - // Leere items: behandele als Fehler mit meta - cleanupScanRequest(tabId, null, { - ok: false, - error: "empty_items", - meta: meta - }); - } else { - // Erfolg: sende items + meta - handleScanComplete(tabId, { items, meta }); - } - } else { - // Fehler: sende error + meta - const meta = response?.meta || {}; - console.log("[SCAN meta]", meta); - cleanupScanRequest(tabId, null, { - ok: false, - error: response?.error || "Parsing failed", - meta: meta - }); - } - }) - .catch(err => { - console.error("Error sending parse message:", err); - cleanupScanRequest(tabId, null, { ok: false, error: "Content script error" }); - }); + sendScanMessageWithRetry(tabId, 0); }, 1000); // 1 second delay for DOM ready } }; @@ -264,6 +617,98 @@ async function handleScanProductsRequest(url, accountId, sendResponse) { } } +/** + * Sends scan message to content script with retry mechanism + * @param {number} tabId - Tab ID + * @param {number} attempt - Current attempt number (0-based) + */ +async function sendScanMessageWithRetry(tabId, attempt) { + const maxAttempts = 3; + const retryDelay = 500; // 500ms between retries + + try { + console.log(`[BACKGROUND] Sending scan message (attempt ${attempt + 1}/${maxAttempts}) to tab:`, tabId); + + // On first attempt, ensure content script is injected + if (attempt === 0) { + const injected = await ensureContentScriptInjected(tabId); + if (!injected) { + throw new Error("Could not inject content script"); + } + } + + const response = await chrome.tabs.sendMessage(tabId, { action: "PARSE_PRODUCT_LIST" }); + + if (response && response.ok) { + // Prüfe ob items vorhanden und nicht leer + const items = response.items || response.data?.items || []; + const meta = response.meta || response.data?.meta || {}; + + // Log meta für Debugging + console.log("[SCAN meta]", meta); + + if (items.length === 0) { + // Leere items: behandele als Fehler mit meta + cleanupScanRequest(tabId, null, { + ok: false, + error: "empty_items", + meta: meta + }); + } else { + // Erfolg: sende items + meta + handleScanComplete(tabId, { items, meta }); + } + } else { + // Fehler: sende error + meta + const meta = response?.meta || {}; + console.log("[SCAN meta]", meta); + cleanupScanRequest(tabId, null, { + ok: false, + error: response?.error || "Parsing failed", + meta: meta + }); + } + } catch (err) { + // Check if error is due to content script not being ready + const runtimeError = chrome.runtime.lastError?.message || ""; + const isContentScriptError = + err.message?.includes("Could not establish connection") || + err.message?.includes("Receiving end does not exist") || + err.message?.includes("Could not inject content script") || + runtimeError.includes("Receiving end does not exist") || + runtimeError.includes("Could not establish connection"); + + console.log(`[BACKGROUND] Error sending scan message (attempt ${attempt + 1}):`, { + error: err.message, + runtimeError: runtimeError, + isContentScriptError: isContentScriptError + }); + + if (isContentScriptError && attempt < maxAttempts) { + // Content script not ready yet, retry after delay + console.log(`[BACKGROUND] Content script not ready, retrying in ${retryDelay}ms...`); + setTimeout(() => { + sendScanMessageWithRetry(tabId, attempt + 1); + }, retryDelay); + } else { + // Max retries reached or different error + const errorMessage = isContentScriptError + ? "Content script konnte nicht geladen werden. Bitte Extension neu laden." + : (err.message || runtimeError || "Content script error"); + cleanupScanRequest(tabId, null, { + ok: false, + error: errorMessage, + meta: { + pageType: "unknown", + finalUrl: "", + attempts: attempt + 1, + reason: "content_script_error" + } + }); + } + } +} + /** * Handles scan complete response from content script */ diff --git a/Extension/ebay-content-script.js b/Extension/ebay-content-script.js index f587656..0e41832 100644 --- a/Extension/ebay-content-script.js +++ b/Extension/ebay-content-script.js @@ -3,14 +3,64 @@ * Wird auf eBay-Seiten ausgeführt und extrahiert Verkäufer-/Shop-Daten aus dem DOM */ +// Log dass Content Script geladen wurde +console.log("[EBAY-CONTENT] Content script loaded on:", window.location.href); + +// #region agent log +fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebay-content-script.js:7',message:'ebay-content-script: loaded',data:{url:window.location.href,readyState:document.readyState},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{}); +// #endregion + // Message Listener für Parsing-Anfragen chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebay-content-script.js:10',message:'ebay-content-script: message received',data:{action:message.action},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + + // Ping-Handler für Content Script Verfügbarkeitsprüfung + if (message.action === "PING") { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebay-content-script.js:13',message:'ebay-content-script: PING handler',data:{},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + sendResponse({ ok: true, ready: true }); + return true; + } + if (message.action === "PARSE_EBAY") { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebay-content-script.js:17',message:'ebay-content-script: PARSE_EBAY handler',data:{readyState:document.readyState},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{}); + // #endregion + // Wrapper um sicherzustellen, dass immer eine Antwort gesendet wird try { + // Prüfe ob DOM bereit ist + if (document.readyState === 'loading') { + // DOM noch nicht bereit, warte kurz + document.addEventListener('DOMContentLoaded', () => { + try { + const parsedData = parseEbayPage(); + sendResponse({ ok: true, data: parsedData }); + } catch (error) { + console.error("[EBAY-CONTENT] Error parsing:", error); + sendResponse({ + ok: true, + data: { + sellerId: "", + shopName: "", + market: extractMarketFromHostname(), + status: "unknown", + stats: {} + } + }); + } + }, { once: true }); + return true; // async response + } + + // DOM ist bereit, parse sofort const parsedData = parseEbayPage(); sendResponse({ ok: true, data: parsedData }); } catch (error) { // Niemals unhandled throws - immer graceful response + console.error("[EBAY-CONTENT] Error in parse handler:", error); sendResponse({ ok: true, data: { diff --git a/Server/src/pages/AccountsPage.jsx b/Server/src/pages/AccountsPage.jsx index 7b07de6..6845a9c 100644 --- a/Server/src/pages/AccountsPage.jsx +++ b/Server/src/pages/AccountsPage.jsx @@ -102,15 +102,14 @@ export const AccountsPage = () => { // Shop-Name und account_sells können auch leer sein (optional) updatePayload.account_shop_name = parsedData.shopName || null; updatePayload.account_sells = parsedData.stats?.itemsSold ?? null; - - // #region agent log - fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'AccountsPage.jsx:93',message:'handleRefreshAccount: update payload',data:{payload:updatePayload},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{}); - // #endregion // account_status wird weggelassen (wie beim Erstellen) // Grund: Schema-Konflikt - Enum-Feld akzeptiert weder String noch Array im Update // TODO: Schema in Appwrite prüfen und korrigieren, dann account_status wieder hinzufügen + // Setze account_updated_at auf aktuelle Zeit + updatePayload.account_updated_at = new Date().toISOString(); + await updateManagedAccount(accountId, updatePayload); // Accounts-Liste neu laden (in-place Update) @@ -206,9 +205,6 @@ export const AccountsPage = () => { // Payload aus parsedData zusammenstellen const accountSellsValue = parsedData.stats?.itemsSold ?? null; - // #region agent log - fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'AccountsPage.jsx:193',message:'handleFormSubmit: parsedData before save',data:{hasStats:!!parsedData.stats,itemsSold:parsedData.stats?.itemsSold,accountSellsValue},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{}); - // #endregion const newAccount = await createManagedAccount(authUser.$id, { account_url: formData.account_url.trim(), account_platform_account_id: parsedData.sellerId, @@ -247,7 +243,7 @@ export const AccountsPage = () => { "Platform Account ID", "Market", "Account URL", - "Status", + "Sales", "Last Scan", ...(showAdvanced ? ["Owner User ID"] : []), "Action", @@ -310,12 +306,15 @@ export const AccountsPage = () => { ); } - if (col === "Status") { - return row.account_status || "-"; + if (col === "Sales") { + const sales = row.account_sells; + if (sales === null || sales === undefined) return "-"; + // Format number with thousand separators + return new Intl.NumberFormat("de-DE").format(sales); } if (col === "Last Scan") { - const lastScan = row.account_last_scan_at; + const lastScan = row.account_updated_at; if (!lastScan) return "-"; try { const date = new Date(lastScan); @@ -400,9 +399,9 @@ export const AccountsPage = () => {
- Status (Auto) + Sales (Auto) - : Wird automatisch auf "active" gesetzt. Du musst nichts eingeben. + : Anzahl der verkauften Artikel wird automatisch aus dem eBay-Profil gelesen.
@@ -602,16 +601,16 @@ export const AccountsPage = () => {

- Interner Status. Normalerweise "active". + Gesamtzahl der verkauften Artikel.

diff --git a/Server/src/services/ebayParserService.js b/Server/src/services/ebayParserService.js index 33e9bd1..c8d1752 100644 --- a/Server/src/services/ebayParserService.js +++ b/Server/src/services/ebayParserService.js @@ -163,6 +163,10 @@ async function getExtensionId() { * @throws {Error} - "Extension not available" oder andere Fehler */ async function parseViaExtension(url) { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebayParserService.js:165',message:'parseViaExtension: entry',data:{url,hasChrome:typeof chrome!=='undefined',hasRuntime:typeof chrome!=='undefined'&&!!chrome.runtime},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{}); + // #endregion + // Validierung if (!url || typeof url !== 'string') { throw new Error("Invalid URL"); @@ -174,6 +178,10 @@ async function parseViaExtension(url) { try { const extensionId = await getExtensionId(); + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebayParserService.js:175',message:'parseViaExtension: got extension ID',data:{extensionId,url},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{}); + // #endregion + // Versuche chrome.runtime.sendMessage (mit oder ohne Extension-ID) return new Promise((resolve, reject) => { const message = { @@ -181,6 +189,10 @@ async function parseViaExtension(url) { url: url }; + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebayParserService.js:178',message:'parseViaExtension: sending message',data:{extensionId,url},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{}); + // #endregion + // SendMessage-Callback const sendMessageCallback = (response) => { // Check for Chrome runtime errors @@ -203,10 +215,13 @@ async function parseViaExtension(url) { stats: response.data.stats || {} }; // #region agent log - fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebayParserService.js:160',message:'parseViaExtension: response data from extension',data:{hasStats:!!response.data.stats,itemsSold:response.data.stats?.itemsSold,stats:response.data.stats},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{}); + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebayParserService.js:196',message:'parseViaExtension: response success',data:{hasStats:!!response.data.stats,itemsSold:response.data.stats?.itemsSold,stats:response.data.stats},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{}); // #endregion resolve(data); } else { + // #region agent log + fetch('http://127.0.0.1:7242/ingest/246fe132-ecc5-435f-bd9c-fe5e8e26089d',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'ebayParserService.js:210',message:'parseViaExtension: response failed',data:{error:response?.error,hasResponse:!!response,ok:response?.ok},timestamp:Date.now(),sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{}); + // #endregion reject(new Error(response?.error || "Extension parsing failed")); } }; diff --git a/setup/appwrite_schema_upright_v1.ps1 b/setup/appwrite_schema_upright_v1.ps1 new file mode 100644 index 0000000..39cc34c --- /dev/null +++ b/setup/appwrite_schema_upright_v1.ps1 @@ -0,0 +1,258 @@ +# Appwrite schema bootstrap (PowerShell) fuer Appwrite Server 1.8.x +# Ziel: Alte Struktur behalten (kompatibel) + neue "upright v1" Felder integrieren. +# +# Tabellen: users, accounts, products, product_details +# +# Prereqs: +# appwrite login +# appwrite init project +# +# Run: +# pwsh .\appwrite_schema_upright_v1.ps1 -DatabaseId "YOUR_DATABASE_ID" + +param( + [Parameter(Mandatory = $true)] + [string]$DatabaseId, + + # Optional: setze auf $true, wenn du Fulltext-Indizes wirklich nutzen willst. + [bool]$EnableFulltextIndexes = $false +) + +Set-StrictMode -Version Latest +$ErrorActionPreference = "Stop" + +# ---------------- CONFIG ---------------- +$T_USERS = "users" +$T_ACCOUNTS = "accounts" +$T_PRODUCTS = "products" +$T_PRODUCT_DETAILS = "product_details" + +# Minimal offene Defaults (spaeter ggf. locken) +$PERMS_ANY_CRUD = @('create(any)','read(any)','update(any)','delete(any)') + +# ---------------- HELPERS ---------------- +function Try-Cmd { + param( + [Parameter(Mandatory = $true)] + [string[]]$Args + ) + + $cmd = "appwrite " + ($Args -join " ") + Write-Host ("+ " + $cmd) + + try { + & appwrite @Args | Out-Host + } catch { + Write-Host (" (ignored error) " + $_.Exception.Message) + } +} + +function Create-Table { + param( + [Parameter(Mandatory = $true)][string]$TableId, + [Parameter(Mandatory = $true)][string]$Name + ) + + # Note: Permissions für TablesDB werden anders verwaltet (optional) + # Hier erstellen wir die Tabelle ohne Permissions + $argsList = @( + "tables-db","create-table", + "--database-id",$DatabaseId, + "--table-id",$TableId, + "--name",$Name, + "--row-security","false" + ) + + Try-Cmd $argsList +} + +# ---------------- CREATE TABLES ---------------- +Create-Table -TableId $T_USERS -Name "users" +Create-Table -TableId $T_ACCOUNTS -Name "accounts" +Create-Table -TableId $T_PRODUCTS -Name "products" +Create-Table -TableId $T_PRODUCT_DETAILS -Name "product_details" + +# ---------------- USERS COLUMNS ---------------- +# Legacy kompatibel: user_note +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_USERS,"--key","user_note","--size","255","--required","false","--array","false") + +# Upright v1: created/updated timestamps (optional) +Try-Cmd @("tables-db","create-datetime-column","--database-id",$DatabaseId,"--table-id",$T_USERS,"--key","user_created_at","--required","false","--array","false") +Try-Cmd @("tables-db","create-datetime-column","--database-id",$DatabaseId,"--table-id",$T_USERS,"--key","user_updated_at","--required","false","--array","false") + +# Optional index: user_created_at (wenn du sorting/listing brauchst) +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_USERS,"--key","users_by_created_at","--type","key","--columns","user_created_at") + +# ---------------- ACCOUNTS COLUMNS ---------------- +# Upright v1: +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_owner_user_id","--size","64","--required","false","--array","false") + +# Legacy: account_managed (alte scripts) +Try-Cmd @("tables-db","create-boolean-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_managed","--required","false","--array","false") + +# Upright v1: account_team (true = managed/team, false = scanned) +Try-Cmd @("tables-db","create-boolean-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_team","--required","true","--array","false") + +Try-Cmd @("tables-db","create-enum-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_platform","--elements",'["amazon","ebay"]',"--required","true","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_platform_account_id","--size","255","--required","true","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_platform_market","--size","32","--required","true","--array","false") + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_shop_name","--size","255","--required","false","--array","false") +Try-Cmd @("tables-db","create-url-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_url","--required","false","--array","false") + +# Statistik: Anzahl verkaufter Items +Try-Cmd @("tables-db","create-integer-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_sells","--required","false","--array","false") + +Try-Cmd @("tables-db","create-enum-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_status","--elements",'["active","unknown","disabled"]',"--required","false","--array","false") + +Try-Cmd @("tables-db","create-datetime-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_created_at","--required","false","--array","false") +Try-Cmd @("tables-db","create-datetime-column","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","account_updated_at","--required","false","--array","false") + +# ---------------- ACCOUNTS INDEXES ---------------- +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","uniq_plat_mkt_accountid","--type","unique","--columns","account_platform","account_platform_market","account_platform_account_id") +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","accounts_by_owner_user","--type","key","--columns","account_owner_user_id") + +# Optional: account_team index +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_ACCOUNTS,"--key","accounts_by_team_flag","--type","key","--columns","account_team") + +# ---------------- PRODUCTS COLUMNS ---------------- +# Stable basis (legacy + upright v1) +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_account_id","--size","64","--required","true","--array","false") + +Try-Cmd @("tables-db","create-enum-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_platform","--elements",'["amazon","ebay"]',"--required","true","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_platform_market","--size","32","--required","true","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_platform_product_id","--size","255","--required","true","--array","false") + +Try-Cmd @("tables-db","create-url-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_url","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_title","--size","1024","--required","true","--array","false") + +# Legacy: product_category +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_category","--size","255","--required","false","--array","false") + +# Condition/status (upright v1 erweitert unknown) +Try-Cmd @("tables-db","create-enum-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_condition","--elements",'["new","used_like_new","used_good","used_ok","parts","unknown"]',"--required","false","--array","false") +Try-Cmd @("tables-db","create-enum-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_status","--elements",'["active","ended","unknown"]',"--required","false","--array","false") + +# Volatile (Sparscan) - neue Felder +Try-Cmd @("tables-db","create-float-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_price","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_currency","--size","8","--required","false","--array","false") + +Try-Cmd @("tables-db","create-integer-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_quantity_available","--required","false","--array","false") +Try-Cmd @("tables-db","create-integer-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_quantity_sold","--required","false","--array","false") +Try-Cmd @("tables-db","create-integer-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_watch_count","--required","false","--array","false") +Try-Cmd @("tables-db","create-integer-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_in_carts_count","--required","false","--array","false") +Try-Cmd @("tables-db","create-datetime-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_last_seen_at","--required","false","--array","false") + +# Legacy kompatibel: product_quantity (alt) +Try-Cmd @("tables-db","create-integer-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_quantity","--required","false","--array","false") + +# Scan-Steuerung +Try-Cmd @("tables-db","create-datetime-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_first_fullscan_at","--required","false","--array","false") +Try-Cmd @("tables-db","create-datetime-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_last_fullscan_at","--required","false","--array","false") +Try-Cmd @("tables-db","create-datetime-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_last_sparscan_at","--required","false","--array","false") +Try-Cmd @("tables-db","create-integer-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","product_details_version","--required","false","--array","false") + +# ---------------- PRODUCTS INDEXES ---------------- +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","products_by_account","--type","key","--columns","product_account_id") +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","uniq_acct_platformprod_id","--type","unique","--columns","product_account_id","product_platform_product_id") + +# Optional indices +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","products_by_platform_market","--type","key","--columns","product_platform","product_platform_market") +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","products_by_status","--type","key","--columns","product_status") + +if ($EnableFulltextIndexes) { + # Hinweis: Fulltext kann je nach Appwrite/CLI Build abweichen. Falls es bei dir anders heisst: + # appwrite tables-db create-index --help + Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_PRODUCTS,"--key","products_fulltext_title","--type","fulltext","--columns","product_title") +} + +# ---------------- PRODUCT_DETAILS COLUMNS ---------------- +# Upright v1 minimal (neu) +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_id","--size","64","--required","true","--array","false") + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_category_path","--size","2048","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_brand","--size","255","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_mpn","--size","64","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_gtin","--size","32","--required","false","--array","false") + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_description_text","--size","8192","--required","false","--array","false") + +# Array of image urls +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_image_urls","--size","2048","--required","false","--array","true") + +# JSON-as-string +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_item_specifics_json","--size","8192","--required","false","--array","false") + +Try-Cmd @("tables-db","create-boolean-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_has_variations","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_variations_json","--size","8192","--required","false","--array","false") +Try-Cmd @("tables-db","create-datetime-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","details_last_updated_at","--required","false","--array","false") + +# Legacy detail schema (alt) - behalten fuer Kompatibilitaet +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_product_id","--size","64","--required","false","--array","false") + +Try-Cmd @("tables-db","create-enum-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_platform","--elements",'["amazon","ebay"]',"--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_platform_market","--size","32","--required","false","--array","false") + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_gtin","--size","32","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_ean","--size","32","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_upc","--size","32","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_isbn","--size","32","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_mpn","--size","64","--required","false","--array","false") + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_amazon_asin","--size","32","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_ebay_epid","--size","64","--required","false","--array","false") + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_brand","--size","255","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_manufacturer","--size","255","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_model_name","--size","255","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_model_number","--size","255","--required","false","--array","false") + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_short_description","--size","2048","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_long_description","--size","8192","--required","false","--array","false") + +for ($i = 1; $i -le 8; $i++) { + Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key",("product_detail_bullet_" + $i),"--size","512","--required","false","--array","false") +} + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_search_terms","--size","1024","--required","false","--array","false") + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_color","--size","128","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_size","--size","128","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_material","--size","128","--required","false","--array","false") +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_pattern","--size","128","--required","false","--array","false") + +Try-Cmd @("tables-db","create-float-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_length","--required","false","--array","false") +Try-Cmd @("tables-db","create-float-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_width","--required","false","--array","false") +Try-Cmd @("tables-db","create-float-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_height","--required","false","--array","false") +Try-Cmd @("tables-db","create-enum-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_dimension_unit","--elements",'["mm","cm","m","in"]',"--required","false","--array","false") + +Try-Cmd @("tables-db","create-float-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_weight","--required","false","--array","false") +Try-Cmd @("tables-db","create-enum-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_weight_unit","--elements",'["g","kg","oz","lb"]',"--required","false","--array","false") + +Try-Cmd @("tables-db","create-string-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_country_of_origin","--size","64","--required","false","--array","false") +Try-Cmd @("tables-db","create-integer-column","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","product_detail_package_quantity","--required","false","--array","false") + +# ---------------- PRODUCT_DETAILS INDEXES ---------------- +# Upright v1 unique 1:1 +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","prod_details_uniq_product_id","--type","unique","--columns","product_id") + +# Legacy unique (optional, kann leer bleiben) +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","prod_details_legacy_prod_id","--type","unique","--columns","product_detail_product_id") + +# Legacy: by platform (wenn du es brauchst) +Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","prod_details_by_platform","--type","key","--columns","product_detail_platform") + +if ($EnableFulltextIndexes) { + Try-Cmd @("tables-db","create-index","--database-id",$DatabaseId,"--table-id",$T_PRODUCT_DETAILS,"--key","prod_details_ft_description","--type","fulltext","--columns","details_description_text") +} + +Write-Host "Done. Ensured 4 tables: users, accounts, products, product_details" +Write-Host "" +Write-Host "App logic reminder (upright v1):" +Write-Host "- If account_team == true => account_owner_user_id must be set" +Write-Host "- If account_team == false => account_owner_user_id must be null" +Write-Host "" +Write-Host "Scan rules reminder:" +Write-Host "- If account has 0 products => fullscan (products + product_details)" +Write-Host "- Else sparscan updates volatile fields in products (price/qty/watch/carts/status/last_seen)" +Write-Host "- Fullscan a product if product_details missing OR product_last_fullscan_at older than your threshold (e.g. 30 days)"