mirror of
https://github.com/caty21/forex-dashboard.git
synced 2026-07-27 12:27:45 +00:00
0657b50c07
Central bank governance (nouvel onglet Banques centrales) : - lib/centralBankGovernance.ts + app/api/central-bank-sources : scraping live du vote de la derniere reunion, dot plot Fed (SEP), et desormais les previsions macro (PIB + inflation) publiees par chaque BC elle-meme (Fed SEP, Eurosystem staff projections, BoJ Outlook Report PDF, SNB conditional forecast, BoC MPR, RBA SMP). GBP/NZD laisses honnetement vides quand aucune source chiffree fiable n'est accessible (RBNZ bloque par Cloudflare). - components/CentralBankSourcesTab.tsx : nouvel onglet avec cards par banque. Taux directeurs + Money Supply M3 : - data/rate_decisions.json corrige (JPY, EUR, NZD etc. etaient perimes d'1-2 decisions) et desormais auto-maintenu : .github/workflows/update-rate-decisions.yml (horaire) detecte les changements de taux via Trading Economics et fait glisser current -> prev sans perte de donnee. - data/money-supply-m3.json (nouveau) + .github/workflows/fetch-money-supply.yml (hebdo) : M3 par devise (proxy M2 pour l'USD, la Fed ne publiant plus M3 depuis 2006), affiche dans CurrencyCard. Calendrier economique elargi : - lib/calendar-countries.ts, lib/calendar-taxonomy.ts, lib/fxstreetCalendar.ts : couverture pays elargie + classification des evenements + source FXStreet. Fix InvestingLive : - lib/investinglive.ts : l'ancienne API WordPress (wp-json) renvoyait 404 depuis leur migration Nuxt.js -> reecrit vers api.investinglive.com/api/homepage/articles, + fix crash silencieux (Tldr pas toujours un tableau). Divers : - .vercel/ ajoute au .gitignore (ne doit jamais etre commite, cf. son propre README). - scripts/ (lancement PWA, push env Vercel), captures d'ecran, cache InvestingLive. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
const { chromium } = require('playwright');
|
|
(async () => {
|
|
const b = await chromium.launch();
|
|
const p = await b.newPage();
|
|
const errors = [];
|
|
const warnings = [];
|
|
p.on('console', msg => {
|
|
if (msg.type() === 'error') errors.push(msg.text());
|
|
if (msg.type() === 'warning') warnings.push(msg.text());
|
|
});
|
|
p.on('pageerror', err => errors.push('PAGE ERROR: ' + err.message));
|
|
await p.setViewportSize({width: 589, height: 900});
|
|
await p.goto('http://localhost:3099/');
|
|
await p.waitForTimeout(10000);
|
|
console.log('ERRORS:', JSON.stringify(errors, null, 2));
|
|
console.log('WARNINGS:', JSON.stringify(warnings.slice(0, 5), null, 2));
|
|
|
|
// Also check page height
|
|
const height = await p.evaluate(() => document.body.scrollHeight);
|
|
console.log('Page height:', height);
|
|
|
|
// Check if any element has overflow issues
|
|
const overflows = await p.evaluate(() => {
|
|
const issues = [];
|
|
document.querySelectorAll('*').forEach(el => {
|
|
if (el.scrollWidth > el.clientWidth + 5) {
|
|
issues.push(el.className.substring(0, 80));
|
|
}
|
|
});
|
|
return issues.slice(0, 10);
|
|
});
|
|
console.log('Overflow elements:', overflows);
|
|
|
|
await b.close();
|
|
})();
|