seo-testing-tool 1.0.1 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,112 +1,114 @@
1
- # SEO Testing Tool v1.0.0
1
+ # SEO Testing Tool v1.1.0
2
2
 
3
- Strumento CLI per esperimenti SEO con analisi statistica (Welch's t-test), integrazione Google Search Console. Database SQLite locale (zero configurazione).
3
+ CLI tool for SEO experiments with statistical analysis (Welch's t-test) and Google Search Console integration. Local SQLite database (zero configuration).
4
4
 
5
- ## Visione
5
+ ## Vision
6
6
 
7
- Rispondere in modo affidabile alla domanda:
8
- **"Questa modifica SEO ha probabilmente migliorato o peggiorato le performance su Google?"**
7
+ Reliably answer the question:
8
+ **"Did this SEO change likely improve or hurt performance on Google?"**
9
9
 
10
- Il tool non promette certezze, ma supporta decisioni informate attraverso analisi statistica rigorosa.
10
+ The tool does not promise certainty, but supports informed decisions through rigorous statistical analysis.
11
11
 
12
- ## Installazione
12
+ ## Installation
13
13
 
14
14
  ```bash
15
15
  npm install -g seo-testing-tool
16
16
  ```
17
17
 
18
- Richiede Node.js >= 18. Su alcune piattaforme `better-sqlite3` potrebbe richiedere build tools (python, make).
18
+ Requires Node.js >= 18. On some platforms `better-sqlite3` may require build tools (python, make).
19
19
 
20
- > Il database SQLite viene creato automaticamente in `~/.seo-tool/data.db` al primo avvio. Non serve configurare nulla.
20
+ > The SQLite database is automatically created at `~/.seo-tool/data.db` on first run. No configuration needed.
21
21
 
22
- ## Quick Start
22
+ ## Getting Started
23
23
 
24
24
  ```bash
25
- # 1. Collega il tuo account Google Search Console
25
+ # 1. Configure Google OAuth2 credentials (interactive wizard)
26
+ seo-tool setup
27
+
28
+ # 2. Connect your Google Search Console account
26
29
  seo-tool login
27
30
 
28
- # 2. Crea un nuovo test SEO (prompt interattivi)
31
+ # 3. Create a new SEO test (interactive prompts)
29
32
  seo-tool add
30
33
 
31
- # 3. Recupera dati da GSC e analizza
34
+ # 4. Fetch data from GSC and analyze
32
35
  seo-tool run
36
+ ```
37
+
38
+ ## Quick Start (Demo)
33
39
 
34
- # 4. Visualizza risultati con grafico ASCII
35
- seo-tool status <id>
40
+ Want to try the tool without configuring Google Search Console?
41
+
42
+ ```bash
43
+ seo-tool demo
36
44
  ```
37
45
 
38
- ## Comandi CLI
46
+ Generates two experiments with **70 days of simulated metrics** (realistic statistical noise via Box-Muller):
39
47
 
40
- | Comando | Descrizione |
48
+ - **Positive Experiment** +46% click increase in the post period (p-value < 0.01)
49
+ - **Neutral Experiment** — no significant difference between pre and post
50
+
51
+ Then explore the results:
52
+
53
+ ```bash
54
+ seo-tool list
55
+ seo-tool status <ID>
56
+ seo-tool export <ID>
57
+ ```
58
+
59
+ > The ID is shown at the end of `seo-tool demo`. You can use just the first 8 characters.
60
+
61
+ ## CLI Commands
62
+
63
+ | Command | Description |
41
64
  |---------|-------------|
42
- | `seo-tool login` | Collega account Google (OAuth2 per Search Console) |
43
- | `seo-tool add` | Crea un nuovo test SEO (prompt interattivi) |
44
- | `seo-tool list` | Mostra tabella con tutti i test |
45
- | `seo-tool status <id>` | Dettaglio test con analisi statistica e grafico ASCII |
46
- | `seo-tool run` | Sincronizza tutti i test attivi (fetch GSC + analisi) |
47
- | `seo-tool export <id>` | Esporta metriche in Excel o CSV |
48
- | `seo-tool delete <id>` | Elimina un test (con conferma interattiva) |
65
+ | `seo-tool setup` | Interactive wizard to configure Google OAuth2 credentials |
66
+ | `seo-tool demo` | Generate demo data (2 experiments, 70 simulated days — no Google account needed) |
67
+ | `seo-tool login` | Connect Google account (OAuth2 for Search Console) |
68
+ | `seo-tool add` | Create a new SEO test (interactive prompts) |
69
+ | `seo-tool list` | Show table of all tests |
70
+ | `seo-tool status <id>` | Test detail with statistical analysis and ASCII chart |
71
+ | `seo-tool run` | Sync all active tests (fetch GSC + analyze) |
72
+ | `seo-tool export <id>` | Export metrics to Excel or CSV |
73
+ | `seo-tool delete <id>` | Delete a test (with interactive confirmation) |
49
74
 
50
- Tutti i comandi che accettano `<id>` supportano **ID parziali** (es. `seo-tool status abcd`).
75
+ All commands that accept `<id>` support **partial IDs** (e.g. `seo-tool status abcd`).
51
76
 
52
- ### Esempi
77
+ ### Examples
53
78
 
54
79
  ```bash
55
- # Collega Google Search Console
80
+ # Configure credentials
81
+ seo-tool setup
82
+
83
+ # Connect Google Search Console
56
84
  seo-tool login
57
85
 
58
- # Crea un nuovo test
86
+ # Create a new test
59
87
  seo-tool add
60
88
 
61
- # Elenca tutti i test
89
+ # List all tests
62
90
  seo-tool list
63
91
 
64
- # Visualizza dettaglio con grafico ASCII
92
+ # View detail with ASCII chart
65
93
  seo-tool status abcd1234
66
94
 
67
- # Sincronizza dati da GSC
95
+ # Sync data from GSC
68
96
  seo-tool run
69
97
 
70
- # Esporta in Excel
98
+ # Export to Excel
71
99
  seo-tool export abcd1234 --format xlsx
72
100
 
73
- # Esporta in CSV
101
+ # Export to CSV
74
102
  seo-tool export abcd1234 --format csv
75
103
 
76
- # Esporta (prompt interattivo per scegliere formato)
104
+ # Export (interactive prompt to choose format)
77
105
  seo-tool export abcd1234
78
106
 
79
- # Elimina un test (chiede conferma)
107
+ # Delete a test (asks for confirmation)
80
108
  seo-tool delete abcd1234
81
109
  ```
82
110
 
83
- ## Demo Mode (da sorgente)
84
-
85
- Vuoi provare il tool senza configurare Google Search Console? La modalita' demo genera due esperimenti con **70 giorni di metriche simulate** (rumore statistico realistico via Box-Muller):
86
-
87
- - **Esperimento Positivo** — incremento click del +46% nel periodo post (p-value < 0.01)
88
- - **Esperimento Neutro** — nessuna differenza significativa tra pre e post
89
-
90
- > Richiede il clone del repository (non disponibile via `npm install -g`).
91
-
92
- ```bash
93
- git clone https://github.com/svilupp0/SEO-Testing-Tool.git
94
- cd SEO-Testing-Tool
95
- npm install
96
- npm run demo
97
- ```
98
-
99
- Una volta completato, esplora i risultati:
100
-
101
- ```bash
102
- seo-tool list
103
- seo-tool status <ID>
104
- seo-tool export <ID>
105
- ```
106
-
107
- > L'ID viene mostrato al termine di `npm run demo`. Puoi usare anche solo i primi 8 caratteri.
108
-
109
- ## Sviluppo (da sorgente)
111
+ ## Development (from source)
110
112
 
111
113
  ```bash
112
114
  git clone https://github.com/svilupp0/SEO-Testing-Tool.git
@@ -115,36 +117,36 @@ npm install
115
117
  cp .env.example .env
116
118
  ```
117
119
 
118
- ### Variabili d'ambiente (.env)
120
+ ### Environment Variables (.env)
119
121
 
120
122
  ```env
121
123
  GOOGLE_CLIENT_ID=xxx.apps.googleusercontent.com
122
124
  GOOGLE_CLIENT_SECRET=xxx
123
125
  GOOGLE_REDIRECT_URI=http://localhost:3000/auth/callback
124
126
 
125
- # Opzionale: default ~/.seo-tool/data.db
126
- # DATABASE_URL=file:/percorso/personalizzato/data.db
127
+ # Optional: default ~/.seo-tool/data.db
128
+ # DATABASE_URL=file:/custom/path/data.db
127
129
  ```
128
130
 
129
- ### Comandi sviluppo
131
+ ### Development Commands
130
132
 
131
133
  ```bash
132
- # Esegui comandi senza build
133
- npx tsx src/cli.ts <comando>
134
+ # Run commands without build
135
+ npx tsx src/cli.ts <command>
134
136
 
135
- # Lancia test
137
+ # Run tests
136
138
  npm test
137
139
 
138
- # Test con UI
140
+ # Tests with UI
139
141
  npm run test:ui
140
142
 
141
- # Test con coverage
143
+ # Tests with coverage
142
144
  npm run test:coverage
143
145
 
144
- # Setup database manuale (normalmente auto-migra)
146
+ # Manual database setup (normally auto-migrates)
145
147
  npm run db:push
146
148
 
147
- # Verifica connessione DB
149
+ # Verify DB connection
148
150
  npm run smoke-test
149
151
 
150
152
  # Lint
@@ -154,25 +156,25 @@ npm run lint
154
156
  npm run format
155
157
  ```
156
158
 
157
- ## Deploy su Railway (opzionale)
159
+ ## Deploy on Railway (optional)
158
160
 
159
- Il progetto include configurazione per Railway con cron job notturno e database SQLite embedded.
161
+ The project includes configuration for Railway with a nightly cron job and embedded SQLite database.
160
162
 
161
- ### Setup Railway
163
+ ### Railway Setup
162
164
 
163
- 1. Crea un nuovo progetto su [Railway](https://railway.app)
164
- 2. Collega il repository Git
165
- 3. Railway rilevera' automaticamente `railway.json` e `Dockerfile`
166
- 4. Configura le variabili d'ambiente nel pannello Railway (credenziali Google, ecc.)
165
+ 1. Create a new project on [Railway](https://railway.app)
166
+ 2. Connect the Git repository
167
+ 3. Railway will automatically detect `railway.json` and `Dockerfile`
168
+ 4. Configure environment variables in the Railway panel (Google credentials, etc.)
167
169
 
168
170
  ### Cron Job
169
171
 
170
- Il cron job (`railway.json`) esegue `npm run cli:run` ogni notte alle **03:00 UTC**:
171
- - Recupera nuovi dati da Google Search Console
172
- - Esegue analisi statistica (Welch's t-test)
173
- - Invia notifiche se i risultati sono statisticamente significativi
172
+ The cron job (`railway.json`) runs `npm run cli:run` every night at **03:00 UTC**:
173
+ - Fetches new data from Google Search Console
174
+ - Runs statistical analysis (Welch's t-test)
175
+ - Sends notifications if results are statistically significant
174
176
 
175
- ### Build manuale Docker
177
+ ### Manual Docker Build
176
178
 
177
179
  ```bash
178
180
  npm run build
@@ -180,53 +182,53 @@ docker build -t seo-testing-tool .
180
182
  docker run --env-file .env seo-testing-tool
181
183
  ```
182
184
 
183
- ## Architettura
185
+ ## Architecture
184
186
 
185
187
  ```
186
188
  src/
187
- cli.ts Entry point CLI (commander)
188
- cli/commands.ts Comandi: login, add, list, status, run, export, delete
189
- cli/formatters.ts Colori, tabelle, grafici ASCII
190
- demo.ts Script per generazione dati demo
191
- index.ts Entry point cron job
189
+ cli.ts CLI entry point (commander)
190
+ cli/commands.ts Commands: setup, demo, login, add, list, status, run, export, delete
191
+ cli/formatters.ts Colors, tables, ASCII charts
192
+ demo.ts Demo data generator
193
+ index.ts Cron job entry point
192
194
  stats/
193
195
  StatisticalEngine.ts Welch's t-test, outlier detection
194
- TDistribution.ts Distribuzione t (calcolo p-value)
196
+ TDistribution.ts t-distribution (p-value calculation)
195
197
  config/
196
- AnalysisConfig.ts Soglie configurabili
197
- env.ts Config OAuth2
198
+ AnalysisConfig.ts Configurable thresholds
199
+ env.ts OAuth2 config
198
200
  database/
199
- db.ts Connessione Drizzle + SQLite
200
- schema.ts Schema database (Drizzle ORM)
201
- DatabaseService.ts CRUD, transazioni, aggregati, paginazione
201
+ db.ts Drizzle + SQLite connection
202
+ schema.ts Database schema (Drizzle ORM)
203
+ DatabaseService.ts CRUD, transactions, aggregates, pagination
202
204
  TimeSeriesService.ts Gap detection, recovery
203
205
  orchestrator/
204
- SEOExperimentOrchestrator.ts GSC -> Analisi -> Risultati
206
+ SEOExperimentOrchestrator.ts GSC -> Analysis -> Results
205
207
  services/
206
- ExportService.ts Export Excel/CSV
207
- drizzle/ Migrazioni e meta-dati SQL
208
- railway.json Config deploy Railway (cron 03:00 UTC)
209
- Dockerfile Build container Node.js 18+
208
+ ExportService.ts Excel/CSV export
209
+ drizzle/ SQL migrations and metadata
210
+ railway.json Railway deploy config (cron 03:00 UTC)
211
+ Dockerfile Node.js 18+ container build
210
212
  ```
211
213
 
212
- ## Limiti dichiarati (by design)
214
+ ## Declared Limits (by design)
213
215
 
214
- - Non funziona su siti piccoli (traffico insufficiente per significativita' statistica)
215
- - Non e' realtime (richiede tempo per raccogliere dati)
216
- - Non garantisce risultati (fornisce probabilita', non certezze)
216
+ - Does not work on small sites (insufficient traffic for statistical significance)
217
+ - Not realtime (requires time to collect data)
218
+ - Does not guarantee results (provides probabilities, not certainties)
217
219
 
218
- Questi limiti aumentano la fiducia nel tool.
220
+ These limits increase trust in the tool.
219
221
 
220
- ## Documentazione
222
+ ## Documentation
221
223
 
222
- - **[PROGRESS.md](./PROGRESS.md)** — Progresso implementazione
223
- - **[blueprint.md](./blueprint.md)** — Specifica tecnica completa
224
+ - **[PROGRESS.md](./PROGRESS.md)** — Implementation progress
225
+ - **[blueprint.md](./blueprint.md)** — Full technical specification
224
226
 
225
- ## Licenza
227
+ ## License
226
228
 
227
229
  MIT
228
230
 
229
231
  ---
230
232
 
231
- **Versione:** 1.0.0 Stable
232
- **Last Updated:** 2026-02-17
233
+ **Version:** 1.1.0
234
+ **Last Updated:** 2026-03-01
@@ -29,6 +29,14 @@ export declare function runCommand(): Promise<void>;
29
29
  export declare function exportCommand(id: string, options?: {
30
30
  format?: string;
31
31
  }): Promise<void>;
32
+ /**
33
+ * setup — Wizard interattivo per configurare le credenziali Google OAuth2
34
+ */
35
+ export declare function setupCommand(): Promise<void>;
36
+ /**
37
+ * demo — Popola il database con 2 esperimenti di esempio (senza account Google)
38
+ */
39
+ export declare function demoCommand(): Promise<void>;
32
40
  /**
33
41
  * delete <id> — Elimina un test (con conferma interattiva) e registra nell'Audit Log
34
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsEH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA4FlD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA8DhD;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBjD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D7D;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAoEhD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6E5F;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD7D"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsEH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA4FlD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA8DhD;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBjD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D7D;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAoEhD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6E5F;AA4BD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAiFlD;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAGjD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD7D"}
@@ -4,7 +4,7 @@
4
4
  * Implementazione dei 7 comandi: login, add, list, status, run, export, delete
5
5
  */
6
6
  import { createInterface } from 'readline/promises';
7
- import { writeFile } from 'fs/promises';
7
+ import { writeFile, readFile } from 'fs/promises';
8
8
  import path from 'path';
9
9
  import chalk from 'chalk';
10
10
  import inquirer from 'inquirer';
@@ -420,6 +420,111 @@ export async function exportCommand(id, options) {
420
420
  console.error(colors.error(` Errore: ${error instanceof Error ? error.message : error}`));
421
421
  }
422
422
  }
423
+ /**
424
+ * Aggiorna le righe di un file .env sostituendo le variabili già presenti
425
+ * e aggiungendo in coda quelle mancanti. Le variabili non-Google vengono preservate.
426
+ */
427
+ function updateEnvVars(existingContent, vars) {
428
+ const lines = existingContent ? existingContent.split('\n') : [];
429
+ const remaining = { ...vars };
430
+ const updated = lines.map(line => {
431
+ const match = /^([A-Z_]+)=/.exec(line);
432
+ if (match && match[1] in remaining) {
433
+ const key = match[1];
434
+ const value = remaining[key];
435
+ delete remaining[key];
436
+ return `${key}=${value}`;
437
+ }
438
+ return line;
439
+ });
440
+ for (const [key, value] of Object.entries(remaining)) {
441
+ updated.push(`${key}=${value}`);
442
+ }
443
+ return updated.join('\n');
444
+ }
445
+ /**
446
+ * setup — Wizard interattivo per configurare le credenziali Google OAuth2
447
+ */
448
+ export async function setupCommand() {
449
+ console.log('');
450
+ console.log(colors.header(' Configurazione Credenziali Google OAuth2'));
451
+ console.log(colors.muted(' ' + '\u2500'.repeat(40)));
452
+ console.log('');
453
+ const hasClientId = !!process.env['GOOGLE_CLIENT_ID'];
454
+ const hasClientSecret = !!process.env['GOOGLE_CLIENT_SECRET'];
455
+ if (hasClientId && hasClientSecret) {
456
+ console.log(colors.success(' \u2713 Credenziali già configurate:'));
457
+ console.log(colors.muted(` GOOGLE_CLIENT_ID: ${process.env['GOOGLE_CLIENT_ID'].substring(0, 8)}...`));
458
+ console.log(colors.muted(' GOOGLE_CLIENT_SECRET: ***'));
459
+ console.log('');
460
+ const { overwrite } = await inquirer.prompt([{
461
+ type: 'confirm',
462
+ name: 'overwrite',
463
+ message: 'Vuoi sovrascriverle con nuove credenziali?',
464
+ default: false,
465
+ }]);
466
+ if (!overwrite) {
467
+ console.log(colors.muted(' Operazione annullata. Esegui "seo-tool login" per procedere.'));
468
+ console.log('');
469
+ return;
470
+ }
471
+ }
472
+ console.log(colors.info(' Per ottenere le credenziali OAuth2 Google:'));
473
+ console.log('');
474
+ console.log(colors.muted(' 1. Vai su Google Cloud Console:'));
475
+ console.log(' https://console.cloud.google.com/apis/credentials');
476
+ console.log(colors.muted(' 2. Crea un progetto (o selezionane uno esistente)'));
477
+ console.log(colors.muted(' 3. Crea credenziali \u2192 OAuth 2.0 Client ID \u2192 Applicazione desktop'));
478
+ console.log(colors.muted(' 4. Copia Client ID e Client Secret'));
479
+ console.log('');
480
+ const { clientId, clientSecret, redirectUri } = await inquirer.prompt([
481
+ {
482
+ type: 'input',
483
+ name: 'clientId',
484
+ message: 'GOOGLE_CLIENT_ID:',
485
+ validate: (input) => input.trim().length > 0 || 'Il Client ID è obbligatorio.',
486
+ },
487
+ {
488
+ type: 'password',
489
+ name: 'clientSecret',
490
+ message: 'GOOGLE_CLIENT_SECRET:',
491
+ validate: (input) => input.trim().length > 0 || 'Il Client Secret è obbligatorio.',
492
+ },
493
+ {
494
+ type: 'input',
495
+ name: 'redirectUri',
496
+ message: 'GOOGLE_REDIRECT_URI:',
497
+ default: 'http://localhost:3000/auth/callback',
498
+ },
499
+ ]);
500
+ const envPath = path.join(process.cwd(), '.env');
501
+ let existingContent = '';
502
+ try {
503
+ existingContent = await readFile(envPath, 'utf-8');
504
+ }
505
+ catch {
506
+ // File .env non esiste — partiamo da zero
507
+ }
508
+ const newContent = updateEnvVars(existingContent, {
509
+ GOOGLE_CLIENT_ID: clientId.trim(),
510
+ GOOGLE_CLIENT_SECRET: clientSecret.trim(),
511
+ GOOGLE_REDIRECT_URI: redirectUri.trim() || 'http://localhost:3000/auth/callback',
512
+ });
513
+ await writeFile(envPath, newContent, 'utf-8');
514
+ console.log('');
515
+ console.log(colors.success(' \u2713 File .env aggiornato con le credenziali Google.'));
516
+ console.log('');
517
+ console.log(colors.info(' Prossimo step:'));
518
+ console.log(` ${colors.muted('$')} seo-tool login`);
519
+ console.log('');
520
+ }
521
+ /**
522
+ * demo — Popola il database con 2 esperimenti di esempio (senza account Google)
523
+ */
524
+ export async function demoCommand() {
525
+ const { demo } = await import('../demo.js');
526
+ demo();
527
+ }
423
528
  /**
424
529
  * delete <id> — Elimina un test (con conferma interattiva) e registra nell'Audit Log
425
530
  */
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -18,7 +18,7 @@ import { Command } from 'commander';
18
18
  import { migrateDB } from './database/db.js';
19
19
  const require = createRequire(import.meta.url);
20
20
  const { version } = require('../package.json');
21
- import { loginCommand, addCommand, listCommand, statusCommand, runCommand, exportCommand, deleteCommand, } from './cli/commands.js';
21
+ import { loginCommand, addCommand, listCommand, statusCommand, runCommand, exportCommand, deleteCommand, demoCommand, setupCommand, } from './cli/commands.js';
22
22
  // Auto-setup: crea DB e tabelle al primo avvio
23
23
  migrateDB();
24
24
  const program = new Command();
@@ -58,5 +58,13 @@ program
58
58
  .argument('<id>', 'ID del test (anche parziale)')
59
59
  .description('Elimina un test e le metriche collegate')
60
60
  .action(deleteCommand);
61
+ program
62
+ .command('demo')
63
+ .description('Popola il database con 2 esperimenti di esempio (70 giorni, senza account Google)')
64
+ .action(demoCommand);
65
+ program
66
+ .command('setup')
67
+ .description('Configura le credenziali Google OAuth2 in modo interattivo')
68
+ .action(setupCommand);
61
69
  program.parse();
62
70
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,MAAM,EAAE,CAAC;AAET,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AACtE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,+CAA+C;AAC/C,SAAS,EAAE,CAAC;AAEZ,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,2DAA2D,CAAC;KACxE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;KAChD,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;KAChD,MAAM,CAAC,gBAAgB,EAAE,oDAAoD,CAAC;KAC9E,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;KAChD,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,MAAM,EAAE,CAAC;AAET,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AACtE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,+CAA+C;AAC/C,SAAS,EAAE,CAAC;AAEZ,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,2DAA2D,CAAC;KACxE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;KAChD,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;KAChD,MAAM,CAAC,gBAAgB,EAAE,oDAAoD,CAAC;KAC9E,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;KAChD,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mFAAmF,CAAC;KAChG,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/dist/demo.d.ts CHANGED
@@ -9,5 +9,5 @@
9
9
  *
10
10
  * Uso: npx tsx src/demo.ts oppure npm run demo
11
11
  */
12
- export {};
12
+ export declare function demo(): void;
13
13
  //# sourceMappingURL=demo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
1
+ {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAoEH,wBAAgB,IAAI,IAAI,IAAI,CAuG3B"}
package/dist/demo.js CHANGED
@@ -9,6 +9,7 @@
9
9
  *
10
10
  * Uso: npx tsx src/demo.ts oppure npm run demo
11
11
  */
12
+ import { fileURLToPath } from 'url';
12
13
  import { config } from 'dotenv';
13
14
  config();
14
15
  import { eq } from 'drizzle-orm';
@@ -56,7 +57,7 @@ function generateMetrics(rng, testId, startOffset, days, clickMean, clickStdDev,
56
57
  return rows;
57
58
  }
58
59
  // ── Main ─────────────────────────────────────────────────────────────────────
59
- function demo() {
60
+ export function demo() {
60
61
  console.log('');
61
62
  console.log('╔══════════════════════════════════════════╗');
62
63
  console.log('║ SEO Testing Tool — Modalità Demo ║');
@@ -128,10 +129,10 @@ function demo() {
128
129
  console.log('════════════════════════════════════════════');
129
130
  console.log(' Demo completata! Prova questi comandi:');
130
131
  console.log('');
131
- console.log(` npx tsx src/cli.ts list`);
132
- console.log(` npx tsx src/cli.ts status ${testPositive.id.slice(0, 8)}`);
133
- console.log(` npx tsx src/cli.ts status ${testNeutral.id.slice(0, 8)}`);
134
- console.log(` npx tsx src/cli.ts export ${testPositive.id.slice(0, 8)}`);
132
+ console.log(` seo-tool list`);
133
+ console.log(` seo-tool status ${testPositive.id.slice(0, 8)}`);
134
+ console.log(` seo-tool status ${testNeutral.id.slice(0, 8)}`);
135
+ console.log(` seo-tool export ${testPositive.id.slice(0, 8)}`);
135
136
  console.log('════════════════════════════════════════════');
136
137
  console.log('');
137
138
  closeDb();
@@ -145,5 +146,7 @@ function demo() {
145
146
  process.exit(1);
146
147
  }
147
148
  }
148
- demo();
149
+ if (fileURLToPath(import.meta.url) === process.argv[1]) {
150
+ demo();
151
+ }
149
152
  //# sourceMappingURL=demo.js.map
package/dist/demo.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,9 @@ export declare class ReportExportService {
44
44
  exportToCSV(input: ExportInput): Promise<ExportResult>;
45
45
  private buildRiepilogoSheet;
46
46
  private buildDatiSheet;
47
+ private computePeriodStats;
48
+ private getInterpretation;
49
+ private applyColorCoding;
47
50
  private addSectionHeader;
48
51
  private addLabelValueRow;
49
52
  buildFileName(testName: string, ext: 'xlsx' | 'csv'): string;
@@ -1 +1 @@
1
- {"version":3,"file":"ExportService.d.ts","sourceRoot":"","sources":["../../src/services/ExportService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAmBD,qBAAa,mBAAmB;IAC9B;;;;OAIG;IACG,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAqB9D;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA0B5D,OAAO,CAAC,mBAAmB;IAqG3B,OAAO,CAAC,cAAc;IAyDtB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,gBAAgB;IAkBxB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM;IAM5D,OAAO,CAAC,UAAU;CAWnB"}
1
+ {"version":3,"file":"ExportService.d.ts","sourceRoot":"","sources":["../../src/services/ExportService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA0CD,qBAAa,mBAAmB;IAC9B;;;;OAIG;IACG,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAqB9D;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA6B5D,OAAO,CAAC,mBAAmB;IAuM3B,OAAO,CAAC,cAAc;IA4GtB,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,gBAAgB;IAkBxB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM;IAM5D,OAAO,CAAC,UAAU;CAWnB"}
@@ -15,6 +15,10 @@ const COLORS = {
15
15
  greenFont: '1E8449',
16
16
  redBg: 'FDEDEC',
17
17
  redFont: 'C0392B',
18
+ warningBg: 'FEF9E7',
19
+ warningFont: 'B7950B',
20
+ splitBg: 'FFF9E0',
21
+ totalsBg: 'EAECEE',
18
22
  zebraBg: 'F8F9F9',
19
23
  borderColor: 'D5D8DC',
20
24
  };
@@ -31,7 +35,7 @@ export class ReportExportService {
31
35
  workbook.creator = 'SEO Testing Tool';
32
36
  workbook.created = new Date();
33
37
  this.buildRiepilogoSheet(workbook, test, metrics);
34
- this.buildDatiSheet(workbook, metrics);
38
+ this.buildDatiSheet(workbook, metrics, test.splitDate);
35
39
  const arrayBuffer = await workbook.xlsx.writeBuffer();
36
40
  const buffer = Buffer.from(arrayBuffer);
37
41
  return {
@@ -47,12 +51,15 @@ export class ReportExportService {
47
51
  async exportToCSV(input) {
48
52
  const { test, metrics } = input;
49
53
  const lines = [];
54
+ const splitDateStr = test.splitDate.includes('T') ? test.splitDate.split('T')[0] : test.splitDate;
50
55
  // Header
51
- lines.push('Data,Clicks,Impressions,Gap Filled');
56
+ lines.push('Data,Clicks,Impressions,CTR (%),Periodo,Gap Filled');
52
57
  // Righe
53
58
  for (const m of metrics) {
54
59
  const date = m.date.includes('T') ? m.date.split('T')[0] : m.date;
55
- lines.push(`${date},${m.clicks},${m.impressions},${m.gapFilled ? 'sì' : 'no'}`);
60
+ const ctr = m.impressions > 0 ? (m.clicks / m.impressions * 100).toFixed(2) : '';
61
+ const periodo = date >= splitDateStr ? 'After' : 'Before';
62
+ lines.push(`${date},${m.clicks},${m.impressions},${ctr},${periodo},${m.gapFilled ? 'sì' : 'no'}`);
56
63
  }
57
64
  const csv = lines.join('\n') + '\n';
58
65
  const buffer = Buffer.from(csv, 'utf-8');
@@ -69,7 +76,7 @@ export class ReportExportService {
69
76
  properties: { defaultColWidth: 30 },
70
77
  });
71
78
  // Larghezze colonne
72
- ws.getColumn(1).width = 24;
79
+ ws.getColumn(1).width = 28;
73
80
  ws.getColumn(2).width = 50;
74
81
  let row = 1;
75
82
  // ── Titolo ──────────────────────────────────────────────────────────────
@@ -96,6 +103,55 @@ export class ReportExportService {
96
103
  row = this.addLabelValueRow(ws, row, label, value);
97
104
  }
98
105
  row += 1;
106
+ // ── Sezione: Panoramica Periodi ───────────────────────────────────────
107
+ const stats = this.computePeriodStats(metrics, test.splitDate);
108
+ if (metrics.length > 0) {
109
+ row = this.addSectionHeader(ws, row, 'Panoramica Periodi');
110
+ const periodRows = [
111
+ ['Periodo Before', stats.beforeDays > 0
112
+ ? `${stats.beforeDays} giorni (dal ${this.formatDate(stats.beforeFirstDate)} al ${this.formatDate(stats.beforeLastDate)})`
113
+ : 'Nessun dato'],
114
+ ['Periodo After', stats.afterDays > 0
115
+ ? `${stats.afterDays} giorni (dal ${this.formatDate(stats.afterFirstDate)} al ${this.formatDate(stats.afterLastDate)})`
116
+ : 'Nessun dato'],
117
+ ['Media clicks/giorno (Before)', stats.beforeDays > 0 ? stats.meanClicksBefore.toFixed(1) : '—'],
118
+ ['Media clicks/giorno (After)', stats.afterDays > 0 ? stats.meanClicksAfter.toFixed(1) : '—'],
119
+ ];
120
+ for (const [label, value] of periodRows) {
121
+ row = this.addLabelValueRow(ws, row, label, value);
122
+ }
123
+ // Variazione assoluta clicks (color-coded)
124
+ if (stats.beforeDays > 0 && stats.afterDays > 0) {
125
+ const variationStr = `${stats.clicksVariation >= 0 ? '+' : ''}${stats.clicksVariation.toFixed(1)} clicks/giorno`;
126
+ const variationRowNum = row;
127
+ row = this.addLabelValueRow(ws, row, 'Variazione assoluta', variationStr);
128
+ this.applyColorCoding(ws, variationRowNum, stats.clicksVariation);
129
+ }
130
+ // Impressions
131
+ const impressionRows = [
132
+ ['Media impressions/giorno (Before)', stats.beforeDays > 0 ? stats.meanImpressionsBefore.toFixed(0) : '—'],
133
+ ['Media impressions/giorno (After)', stats.afterDays > 0 ? stats.meanImpressionsAfter.toFixed(0) : '—'],
134
+ ];
135
+ for (const [label, value] of impressionRows) {
136
+ row = this.addLabelValueRow(ws, row, label, value);
137
+ }
138
+ // CTR
139
+ const ctrRows = [
140
+ ['CTR medio Before', stats.beforeDays > 0 ? `${stats.ctrBefore.toFixed(2)}%` : '—'],
141
+ ['CTR medio After', stats.afterDays > 0 ? `${stats.ctrAfter.toFixed(2)}%` : '—'],
142
+ ];
143
+ for (const [label, value] of ctrRows) {
144
+ row = this.addLabelValueRow(ws, row, label, value);
145
+ }
146
+ // Variazione CTR (color-coded)
147
+ if (stats.beforeDays > 0 && stats.afterDays > 0) {
148
+ const ctrVarStr = `${stats.ctrVariationPp >= 0 ? '+' : ''}${stats.ctrVariationPp.toFixed(2)} pp`;
149
+ const ctrVarRowNum = row;
150
+ row = this.addLabelValueRow(ws, row, 'Variazione CTR', ctrVarStr);
151
+ this.applyColorCoding(ws, ctrVarRowNum, stats.ctrVariationPp);
152
+ }
153
+ row += 1;
154
+ }
99
155
  // ── Sezione: Risultati Analisi ──────────────────────────────────────────
100
156
  row = this.addSectionHeader(ws, row, 'Risultati Analisi');
101
157
  // P-Value
@@ -136,6 +192,39 @@ export class ReportExportService {
136
192
  improvCell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: COLORS.redBg } };
137
193
  }
138
194
  }
195
+ // Soglia utilizzata
196
+ row = this.addLabelValueRow(ws, row, 'Soglia utilizzata', 'α = 0.05');
197
+ // Interpretazione
198
+ const interpretation = this.getInterpretation(test.lastPValue, test.lastImprovement);
199
+ row = this.addLabelValueRow(ws, row, 'Interpretazione', interpretation);
200
+ row += 1;
201
+ // ── Sezione: Qualità Dati ───────────────────────────────────────────────
202
+ row = this.addSectionHeader(ws, row, 'Qualità Dati');
203
+ row = this.addLabelValueRow(ws, row, 'Giorni totali', `${metrics.length}`);
204
+ const gapStr = metrics.length > 0
205
+ ? `${stats.gapFilledCount} (${stats.gapFilledPercent.toFixed(1)}%)`
206
+ : '0';
207
+ row = this.addLabelValueRow(ws, row, 'Giorni gap-filled', gapStr);
208
+ // Qualità con color-coding
209
+ const qualityRowNum = row;
210
+ const isHighGap = metrics.length > 0 && stats.gapFilledPercent >= 15;
211
+ const qualityStr = metrics.length === 0
212
+ ? '—'
213
+ : isHighGap
214
+ ? 'Attenzione: >15% dati interpolati'
215
+ : 'Buona';
216
+ row = this.addLabelValueRow(ws, row, 'Qualità dati', qualityStr);
217
+ if (metrics.length > 0) {
218
+ const qualityCell = ws.getCell(qualityRowNum, 2);
219
+ if (isHighGap) {
220
+ qualityCell.font = { bold: true, color: { argb: COLORS.warningFont } };
221
+ qualityCell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: COLORS.warningBg } };
222
+ }
223
+ else {
224
+ qualityCell.font = { bold: true, color: { argb: COLORS.greenFont } };
225
+ qualityCell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: COLORS.greenBg } };
226
+ }
227
+ }
139
228
  row += 1;
140
229
  // ── Footer ──────────────────────────────────────────────────────────────
141
230
  const footerCell = ws.getCell(row, 1);
@@ -144,15 +233,18 @@ export class ReportExportService {
144
233
  ws.mergeCells(row, 1, row, 2);
145
234
  }
146
235
  // ── Foglio 2: Dati Giornalieri ──────────────────────────────────────────
147
- buildDatiSheet(workbook, metrics) {
236
+ buildDatiSheet(workbook, metrics, splitDate) {
148
237
  const ws = workbook.addWorksheet('Dati Giornalieri', {
149
238
  views: [{ state: 'frozen', ySplit: 1 }],
150
239
  });
240
+ const splitDateStr = splitDate.includes('T') ? splitDate.split('T')[0] : splitDate;
151
241
  // Colonne
152
242
  ws.columns = [
153
243
  { header: 'Data', key: 'date', width: 14 },
154
244
  { header: 'Clicks', key: 'clicks', width: 12 },
155
245
  { header: 'Impressions', key: 'impressions', width: 14 },
246
+ { header: 'CTR (%)', key: 'ctr', width: 10 },
247
+ { header: 'Periodo', key: 'periodo', width: 10 },
156
248
  { header: 'Gap Filled', key: 'gapFilled', width: 12 },
157
249
  ];
158
250
  // Stile header
@@ -166,32 +258,136 @@ export class ReportExportService {
166
258
  };
167
259
  });
168
260
  // Righe dati
261
+ let splitHighlighted = false;
169
262
  for (let i = 0; i < metrics.length; i++) {
170
263
  const m = metrics[i];
171
264
  const date = m.date.includes('T') ? m.date.split('T')[0] : m.date;
265
+ const isAfter = date >= splitDateStr;
266
+ const ctr = m.impressions > 0 ? (m.clicks / m.impressions * 100).toFixed(2) : '—';
172
267
  const dataRow = ws.addRow({
173
268
  date,
174
269
  clicks: m.clicks,
175
270
  impressions: m.impressions,
271
+ ctr,
272
+ periodo: isAfter ? 'After' : 'Before',
176
273
  gapFilled: m.gapFilled ? 'Sì' : 'No',
177
274
  });
178
- // Zebra striping
179
- if (i % 2 === 1) {
275
+ // Evidenzia prima riga After (split date)
276
+ if (isAfter && !splitHighlighted) {
277
+ splitHighlighted = true;
278
+ dataRow.eachCell((cell) => {
279
+ cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: COLORS.splitBg } };
280
+ cell.border = {
281
+ top: { style: 'medium', color: { argb: COLORS.warningFont } },
282
+ };
283
+ });
284
+ }
285
+ else if (i % 2 === 1) {
286
+ // Zebra striping (skip for split row)
180
287
  dataRow.eachCell((cell) => {
181
288
  cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: COLORS.zebraBg } };
182
289
  });
183
290
  }
184
- // Allineamento numerico
291
+ // Allineamento
185
292
  dataRow.getCell('clicks').alignment = { horizontal: 'right' };
186
293
  dataRow.getCell('impressions').alignment = { horizontal: 'right' };
294
+ dataRow.getCell('ctr').alignment = { horizontal: 'right' };
295
+ dataRow.getCell('periodo').alignment = { horizontal: 'center' };
187
296
  dataRow.getCell('gapFilled').alignment = { horizontal: 'center' };
188
297
  }
298
+ // Riga totali/medie
299
+ if (metrics.length > 0) {
300
+ const totalClicks = metrics.reduce((s, m) => s + m.clicks, 0);
301
+ const totalImpressions = metrics.reduce((s, m) => s + m.impressions, 0);
302
+ const avgCtr = totalImpressions > 0 ? (totalClicks / totalImpressions * 100).toFixed(2) : '—';
303
+ const gapCount = metrics.filter(m => m.gapFilled).length;
304
+ const totalsRow = ws.addRow({
305
+ date: 'TOTALE',
306
+ clicks: totalClicks,
307
+ impressions: totalImpressions,
308
+ ctr: avgCtr,
309
+ periodo: '—',
310
+ gapFilled: `${gapCount}/${metrics.length}`,
311
+ });
312
+ totalsRow.eachCell((cell) => {
313
+ cell.font = { bold: true };
314
+ cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: COLORS.totalsBg } };
315
+ cell.border = {
316
+ top: { style: 'double', color: { argb: COLORS.borderColor } },
317
+ };
318
+ });
319
+ totalsRow.getCell('clicks').alignment = { horizontal: 'right' };
320
+ totalsRow.getCell('impressions').alignment = { horizontal: 'right' };
321
+ totalsRow.getCell('ctr').alignment = { horizontal: 'right' };
322
+ totalsRow.getCell('periodo').alignment = { horizontal: 'center' };
323
+ totalsRow.getCell('gapFilled').alignment = { horizontal: 'center' };
324
+ }
189
325
  // Auto-filtro
190
326
  if (metrics.length > 0) {
191
- ws.autoFilter = { from: 'A1', to: 'D1' };
327
+ ws.autoFilter = { from: 'A1', to: 'F1' };
192
328
  }
193
329
  }
194
330
  // ── Helpers ─────────────────────────────────────────────────────────────
331
+ computePeriodStats(metrics, splitDate) {
332
+ const splitDateStr = splitDate.includes('T') ? splitDate.split('T')[0] : splitDate;
333
+ const normalize = (d) => d.includes('T') ? d.split('T')[0] : d;
334
+ const before = metrics.filter(m => normalize(m.date) < splitDateStr);
335
+ const after = metrics.filter(m => normalize(m.date) >= splitDateStr);
336
+ const mean = (arr) => arr.length > 0 ? arr.reduce((s, v) => s + v, 0) / arr.length : 0;
337
+ const meanClicksBefore = mean(before.map(m => m.clicks));
338
+ const meanClicksAfter = mean(after.map(m => m.clicks));
339
+ const meanImprBefore = mean(before.map(m => m.impressions));
340
+ const meanImprAfter = mean(after.map(m => m.impressions));
341
+ const totalClicksBefore = before.reduce((s, m) => s + m.clicks, 0);
342
+ const totalImprBefore = before.reduce((s, m) => s + m.impressions, 0);
343
+ const totalClicksAfter = after.reduce((s, m) => s + m.clicks, 0);
344
+ const totalImprAfter = after.reduce((s, m) => s + m.impressions, 0);
345
+ const ctrBefore = totalImprBefore > 0 ? (totalClicksBefore / totalImprBefore * 100) : 0;
346
+ const ctrAfter = totalImprAfter > 0 ? (totalClicksAfter / totalImprAfter * 100) : 0;
347
+ const gapFilledCount = metrics.filter(m => m.gapFilled).length;
348
+ const sortedBefore = before.map(m => normalize(m.date)).sort();
349
+ const sortedAfter = after.map(m => normalize(m.date)).sort();
350
+ return {
351
+ beforeDays: before.length,
352
+ afterDays: after.length,
353
+ beforeFirstDate: sortedBefore[0] ?? '',
354
+ beforeLastDate: sortedBefore[sortedBefore.length - 1] ?? '',
355
+ afterFirstDate: sortedAfter[0] ?? '',
356
+ afterLastDate: sortedAfter[sortedAfter.length - 1] ?? '',
357
+ meanClicksBefore,
358
+ meanClicksAfter,
359
+ meanImpressionsBefore: meanImprBefore,
360
+ meanImpressionsAfter: meanImprAfter,
361
+ ctrBefore,
362
+ ctrAfter,
363
+ clicksVariation: meanClicksAfter - meanClicksBefore,
364
+ ctrVariationPp: ctrAfter - ctrBefore,
365
+ gapFilledCount,
366
+ gapFilledPercent: metrics.length > 0 ? (gapFilledCount / metrics.length * 100) : 0,
367
+ };
368
+ }
369
+ getInterpretation(pValue, improvement) {
370
+ if (pValue === null)
371
+ return 'Analisi non ancora disponibile';
372
+ if (pValue < 0.05 && improvement !== null && improvement > 0) {
373
+ return 'Variazione positiva statisticamente significativa';
374
+ }
375
+ if (pValue < 0.05 && improvement !== null && improvement < 0) {
376
+ return 'Variazione negativa statisticamente significativa — valutare rollback';
377
+ }
378
+ return 'Risultato non conclusivo — considerare estensione del test';
379
+ }
380
+ applyColorCoding(ws, rowNum, value) {
381
+ const cell = ws.getCell(rowNum, 2);
382
+ if (value >= 0) {
383
+ cell.font = { bold: true, color: { argb: COLORS.greenFont } };
384
+ cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: COLORS.greenBg } };
385
+ }
386
+ else {
387
+ cell.font = { bold: true, color: { argb: COLORS.redFont } };
388
+ cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: COLORS.redBg } };
389
+ }
390
+ }
195
391
  addSectionHeader(ws, row, title) {
196
392
  const cell = ws.getCell(row, 1);
197
393
  cell.value = title;
@@ -1 +1 @@
1
- {"version":3,"file":"ExportService.js","sourceRoot":"","sources":["../../src/services/ExportService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExportService.js","sourceRoot":"","sources":["../../src/services/ExportService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAmC9B,iFAAiF;AAEjF,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,QAAQ;IACnB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;CACb,CAAC;AAqBX,iFAAiF;AAEjF,MAAM,OAAO,mBAAmB;IAC9B;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,KAAkB;QACpC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,QAAQ,CAAC,OAAO,GAAG,kBAAkB,CAAC;QACtC,QAAQ,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAE9B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExC,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;YAC/C,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,OAAO,CAAC,MAAM;SACzB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAkB;QAClC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAChC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAElG,SAAS;QACT,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAEjE,QAAQ;QACR,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,OAAO,GAAG,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,IAAI,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEzC,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAC9C,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,OAAO,CAAC,MAAM;SACzB,CAAC;IACJ,CAAC;IAED,6EAA6E;IAErE,mBAAmB,CACzB,QAA0B,EAC1B,IAAoB,EACpB,OAAoB;QAEpB,MAAM,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE;YAC5C,UAAU,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE;SACpC,CAAC,CAAC;QAEH,oBAAoB;QACpB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAE3B,IAAI,GAAG,GAAG,CAAC,CAAC;QAEZ,2EAA2E;QAC3E,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,GAAG,2BAA2B,CAAC;QAC9C,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3E,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9B,GAAG,IAAI,CAAC,CAAC;QAET,2EAA2E;QAC3E,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAE1D,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAuB;YACnC,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC;YACxB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACf,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC;YAC/B,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YAC/C,CAAC,aAAa,EAAE,kBAAkB,CAAC;YACnC,CAAC,YAAY,EAAE,kBAAkB,CAAC;YAClC,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACpC,CAAC,mBAAmB,EAAE,GAAG,OAAO,CAAC,MAAM,SAAS,CAAC;SAClD,CAAC;QAEF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YACtC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QAED,GAAG,IAAI,CAAC,CAAC;QAET,yEAAyE;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;YAE3D,MAAM,UAAU,GAAuB;gBACrC,CAAC,gBAAgB,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC;wBACrC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG;wBAC1H,CAAC,CAAC,aAAa,CAAC;gBAClB,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC;wBACnC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;wBACvH,CAAC,CAAC,aAAa,CAAC;gBAClB,CAAC,8BAA8B,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChG,CAAC,6BAA6B,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;aAC9F,CAAC;YAEF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;gBACxC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;YAED,2CAA2C;YAC3C,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,YAAY,GAAG,GAAG,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBACjH,MAAM,eAAe,GAAG,GAAG,CAAC;gBAC5B,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC;gBAC1E,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;YACpE,CAAC;YAED,cAAc;YACd,MAAM,cAAc,GAAuB;gBACzC,CAAC,mCAAmC,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC1G,CAAC,kCAAkC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;aACxG,CAAC;YACF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC5C,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;YAED,MAAM;YACN,MAAM,OAAO,GAAuB;gBAClC,CAAC,kBAAkB,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACnF,CAAC,iBAAiB,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;aACjF,CAAC;YACF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACrC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;YAED,+BAA+B;YAC/B,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjG,MAAM,YAAY,GAAG,GAAG,CAAC;gBACzB,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBAClE,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;YAChE,CAAC;YAED,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;QAED,2EAA2E;QAC3E,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAE1D,UAAU;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI;YACxC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,iBAAiB,CAAC;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC/D,KAAK,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,CAAC;QACH,CAAC;QACD,GAAG,GAAG,IAAI,CAAC;QAEX,kBAAkB;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI;YACrC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAClE,CAAC,CAAC,GAAG,CAAC;QACR,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAEhE,kBAAkB;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,KAAK,IAAI;YAC7C,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;YAC9E,CAAC,CAAC,iBAAiB,CAAC;QAEtB,MAAM,YAAY,GAAG,GAAG,CAAC;QACzB,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;gBACpE,UAAU,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7F,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClE,UAAU,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YAC3F,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAEtE,kBAAkB;QAClB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACrF,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAExE,GAAG,IAAI,CAAC,CAAC;QAET,2EAA2E;QAC3E,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;QAErD,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAE3E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAC/B,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACnE,CAAC,CAAC,GAAG,CAAC;QACR,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAElE,2BAA2B;QAC3B,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACrE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC;YACrC,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,SAAS;gBACT,CAAC,CAAC,mCAAmC;gBACrC,CAAC,CAAC,OAAO,CAAC;QACd,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QAEjE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,SAAS,EAAE,CAAC;gBACd,WAAW,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvE,WAAW,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YAChG,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;gBACrE,WAAW,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9F,CAAC;QACH,CAAC;QAED,GAAG,IAAI,CAAC,CAAC;QAET,2EAA2E;QAC3E,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACtC,UAAU,CAAC,KAAK,GAAG,sBAAsB,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,4BAA4B,CAAC;QAC5G,UAAU,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;QACvE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,2EAA2E;IAEnE,cAAc,CAAC,QAA0B,EAAE,OAAoB,EAAE,SAAiB;QACxF,MAAM,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE;YACnD,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnF,UAAU;QACV,EAAE,CAAC,OAAO,GAAG;YACX,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YAC1C,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9C,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE;YACxD,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;YAC5C,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;YAChD,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;SACtD,CAAC;QAEF,eAAe;QACf,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtF,IAAI,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,GAAG;gBACZ,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE;aAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,aAAa;QACb,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,MAAM,OAAO,GAAG,IAAI,IAAI,YAAY,CAAC;YACrC,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAElF,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;gBACxB,IAAI;gBACJ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,GAAG;gBACH,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;gBACrC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;aACrC,CAAC,CAAC;YAEH,0CAA0C;YAC1C,IAAI,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACjC,gBAAgB,GAAG,IAAI,CAAC;gBACxB,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxB,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;oBACrF,IAAI,CAAC,MAAM,GAAG;wBACZ,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE;qBAC9D,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,sCAAsC;gBACtC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxB,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvF,CAAC,CAAC,CAAC;YACL,CAAC;YAED,eAAe;YACf,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YAC9D,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YACnE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YAC3D,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YAChE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QACpE,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC9F,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;YAEzD,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC;gBAC1B,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,gBAAgB;gBAC7B,GAAG,EAAE,MAAM;gBACX,OAAO,EAAE,GAAG;gBACZ,SAAS,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE;aAC3C,CAAC,CAAC;YAEH,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1B,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACtF,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE;iBAC9D,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YAChE,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YACrE,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YAC7D,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YAClE,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QACtE,CAAC;QAED,cAAc;QACd,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,EAAE,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,2EAA2E;IAEnE,kBAAkB,CAAC,OAAoB,EAAE,SAAiB;QAChE,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC;QAErE,MAAM,IAAI,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjG,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAE1D,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,SAAS,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAE/D,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7D,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE;YACtC,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;YAC3D,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;YACpC,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;YACxD,gBAAgB;YAChB,eAAe;YACf,qBAAqB,EAAE,cAAc;YACrC,oBAAoB,EAAE,aAAa;YACnC,SAAS;YACT,QAAQ;YACR,eAAe,EAAE,eAAe,GAAG,gBAAgB;YACnD,cAAc,EAAE,QAAQ,GAAG,SAAS;YACpC,cAAc;YACd,gBAAgB,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACnF,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,MAAqB,EAAE,WAA0B;QACzE,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,gCAAgC,CAAC;QAC7D,IAAI,MAAM,GAAG,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YAC7D,OAAO,mDAAmD,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,GAAG,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YAC7D,OAAO,uEAAuE,CAAC;QACjF,CAAC;QACD,OAAO,4DAA4D,CAAC;IACtE,CAAC;IAEO,gBAAgB,CAAC,EAAqB,EAAE,MAAc,EAAE,KAAa;QAC3E,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YAC9D,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,EAAqB,EAAE,GAAW,EAAE,KAAa;QACxE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtF,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACvF,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,EAAqB,EAAE,GAAW,EAAE,KAAa,EAAE,KAAa;QACvF,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC3D,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1F,SAAS,CAAC,MAAM,GAAG;YACjB,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE;SAC/D,CAAC;QAEF,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,SAAS,CAAC,MAAM,GAAG;YACjB,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE;SAC/D,CAAC;QAEF,OAAO,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,QAAgB,EAAE,GAAmB;QACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,UAAU,QAAQ,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;IAC7C,CAAC;IAEO,UAAU,CAAC,OAAe;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACnD,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "seo-testing-tool",
3
- "version": "1.0.1",
3
+ "version": "1.1.1",
4
4
  "description": "SEO Testing Tool - Statistical analysis for SEO experiments",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",