cdp-edge 1.2.2 β†’ 1.4.0

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.
Files changed (141) hide show
  1. package/README.md +153 -306
  2. package/bin/cdp-edge.js +71 -61
  3. package/contracts/agent-versions.json +682 -0
  4. package/contracts/api-versions.json +372 -368
  5. package/contracts/types.ts +81 -0
  6. package/dist/commands/analyze.js +52 -52
  7. package/dist/commands/infra.js +54 -54
  8. package/dist/commands/install.js +26 -3
  9. package/dist/commands/server.js +174 -174
  10. package/dist/commands/setup.js +332 -100
  11. package/dist/commands/validate.js +248 -84
  12. package/dist/index.js +12 -12
  13. package/dist/sdk/cdpTrack.js +2095 -0
  14. package/dist/sdk/cdpTrack.min.js +64 -0
  15. package/dist/sdk/install-snippet.html +10 -0
  16. package/docs/whatsapp-ctwa.md +5 -4
  17. package/extracted-skill/tracking-events-generator/INTEGRACAO-COMPLETA.md +89 -0
  18. package/extracted-skill/tracking-events-generator/MELHORIAS-IMPLEMENTADAS.md +101 -0
  19. package/extracted-skill/tracking-events-generator/advanced-matching.js +364 -364
  20. package/extracted-skill/tracking-events-generator/agents/ab-ltv-agent.md +196 -0
  21. package/extracted-skill/tracking-events-generator/agents/ab-testing-agent.md +1 -1
  22. package/extracted-skill/tracking-events-generator/agents/attribution-agent.md +41 -41
  23. package/extracted-skill/tracking-events-generator/agents/bidding-agent.md +347 -0
  24. package/extracted-skill/tracking-events-generator/agents/bing-agent.md +40 -50
  25. package/extracted-skill/tracking-events-generator/agents/browser-tracking.md +174 -74
  26. package/extracted-skill/tracking-events-generator/agents/code-guardian-agent.md +1 -1
  27. package/extracted-skill/tracking-events-generator/agents/compliance-agent.md +25 -5
  28. package/extracted-skill/tracking-events-generator/agents/dashboard-agent.md +10 -10
  29. package/extracted-skill/tracking-events-generator/agents/database-agent.md +43 -42
  30. package/extracted-skill/tracking-events-generator/agents/debug-agent.md +22 -22
  31. package/extracted-skill/tracking-events-generator/agents/devops-agent.md +232 -0
  32. package/extracted-skill/tracking-events-generator/agents/domain-setup-agent.md +23 -9
  33. package/extracted-skill/tracking-events-generator/agents/email-agent.md +28 -1
  34. package/extracted-skill/tracking-events-generator/agents/evo-crm-agent.md +253 -0
  35. package/extracted-skill/tracking-events-generator/agents/fingerprint-agent.md +206 -1
  36. package/extracted-skill/tracking-events-generator/agents/fraud-detection-agent.md +143 -0
  37. package/extracted-skill/tracking-events-generator/agents/google-agent.md +128 -2
  38. package/extracted-skill/tracking-events-generator/agents/intelligence-agent.md +191 -31
  39. package/extracted-skill/tracking-events-generator/agents/lead-scoring-agent.md +282 -0
  40. package/extracted-skill/tracking-events-generator/agents/linkedin-agent.md +145 -34
  41. package/extracted-skill/tracking-events-generator/agents/localization-agent.md +1 -1
  42. package/extracted-skill/tracking-events-generator/agents/ltv-predictor-agent.md +24 -5
  43. package/extracted-skill/tracking-events-generator/agents/master-feedback-loop.md +81 -21
  44. package/extracted-skill/tracking-events-generator/agents/master-orchestrator.md +588 -93
  45. package/extracted-skill/tracking-events-generator/agents/match-quality-agent.md +304 -0
  46. package/extracted-skill/tracking-events-generator/agents/memory-agent.md +190 -15
  47. package/extracted-skill/tracking-events-generator/agents/meta-agent.md +10 -2
  48. package/extracted-skill/tracking-events-generator/agents/ml-clustering-agent.md +769 -0
  49. package/extracted-skill/tracking-events-generator/agents/page-analyzer.md +21 -4
  50. package/extracted-skill/tracking-events-generator/agents/performance-agent.md +41 -31
  51. package/extracted-skill/tracking-events-generator/agents/performance-optimization-agent.md +18 -8
  52. package/extracted-skill/tracking-events-generator/agents/pinterest-agent.md +14 -6
  53. package/extracted-skill/tracking-events-generator/agents/premium-tracking-intelligence-agent.md +7 -7
  54. package/extracted-skill/tracking-events-generator/agents/r2-setup-agent.md +16 -8
  55. package/extracted-skill/tracking-events-generator/agents/reddit-agent.md +15 -7
  56. package/extracted-skill/tracking-events-generator/agents/security-enterprise-agent.md +157 -48
  57. package/extracted-skill/tracking-events-generator/agents/server-tracking.md +35 -35
  58. package/extracted-skill/tracking-events-generator/agents/spotify-agent.md +15 -7
  59. package/extracted-skill/tracking-events-generator/agents/tiktok-agent.md +73 -2
  60. package/extracted-skill/tracking-events-generator/agents/tracking-plan-agent.md +104 -9
  61. package/extracted-skill/tracking-events-generator/agents/utm-agent.md +322 -0
  62. package/extracted-skill/tracking-events-generator/agents/validator-agent.md +13 -9
  63. package/extracted-skill/tracking-events-generator/agents/webhook-agent.md +112 -4
  64. package/extracted-skill/tracking-events-generator/agents/whatsapp-agent.md +58 -5
  65. package/extracted-skill/tracking-events-generator/agents/whatsapp-ctwa-setup-agent.md +26 -18
  66. package/extracted-skill/tracking-events-generator/agents/youtube-agent.md +152 -37
  67. package/extracted-skill/tracking-events-generator/anti-blocking.js +285 -285
  68. package/extracted-skill/tracking-events-generator/cdpTrack.js +642 -641
  69. package/extracted-skill/tracking-events-generator/contracts/api-versions.json +14 -10
  70. package/extracted-skill/tracking-events-generator/engagement-scoring.js +226 -226
  71. package/extracted-skill/tracking-events-generator/evals/evals.json +235 -235
  72. package/extracted-skill/tracking-events-generator/integration-test.js +497 -497
  73. package/extracted-skill/tracking-events-generator/knowledge-base.md +172 -0
  74. package/extracted-skill/tracking-events-generator/micro-events.js +992 -992
  75. package/extracted-skill/tracking-events-generator/models/lancamento-imobiliario.md +344 -0
  76. package/extracted-skill/tracking-events-generator/models/pinterest/conversions-api-template.js +144 -144
  77. package/extracted-skill/tracking-events-generator/models/pinterest/event-mappings.json +48 -48
  78. package/extracted-skill/tracking-events-generator/models/pinterest/tag-template.js +28 -28
  79. package/extracted-skill/tracking-events-generator/models/quiz-funnel.md +83 -19
  80. package/extracted-skill/tracking-events-generator/models/reddit/conversions-api-template.js +205 -205
  81. package/extracted-skill/tracking-events-generator/models/reddit/event-mappings.json +56 -56
  82. package/extracted-skill/tracking-events-generator/models/reddit/pixel-template.js +19 -19
  83. package/extracted-skill/tracking-events-generator/models/scenarios/behavior-engine.js +425 -425
  84. package/extracted-skill/tracking-events-generator/route-intent-capture.js +222 -0
  85. package/extracted-skill/tracking-events-generator/tracking.config.js +3 -3
  86. package/package.json +89 -75
  87. package/scripts/build-sdk.js +106 -0
  88. package/server-edge-tracker/.client.env.example +14 -0
  89. package/server-edge-tracker/INSTALAR.md +222 -23
  90. package/server-edge-tracker/SEGMENTATION-DOCS.md +513 -0
  91. package/server-edge-tracker/config/utm-mapping.json +64 -0
  92. package/server-edge-tracker/deploy-client.cjs +76 -0
  93. package/server-edge-tracker/index.ts +1230 -0
  94. package/server-edge-tracker/migrate-v7.sql +64 -0
  95. package/server-edge-tracker/modules/db.ts +710 -0
  96. package/server-edge-tracker/modules/dispatch/crm.ts +382 -0
  97. package/server-edge-tracker/modules/dispatch/ga4.ts +72 -0
  98. package/server-edge-tracker/modules/dispatch/meta.ts +143 -0
  99. package/server-edge-tracker/modules/dispatch/platforms.ts +255 -0
  100. package/server-edge-tracker/modules/dispatch/tiktok.ts +107 -0
  101. package/server-edge-tracker/modules/dispatch/whatsapp.ts +296 -0
  102. package/server-edge-tracker/modules/intelligence.ts +589 -0
  103. package/server-edge-tracker/modules/ml/bidding.ts +247 -0
  104. package/server-edge-tracker/modules/ml/fraud.ts +302 -0
  105. package/server-edge-tracker/modules/ml/logistic.ts +226 -0
  106. package/server-edge-tracker/modules/ml/ltv.ts +531 -0
  107. package/server-edge-tracker/modules/ml/matchquality.ts +232 -0
  108. package/server-edge-tracker/modules/ml/quiz.ts +343 -0
  109. package/server-edge-tracker/modules/ml/roas.ts +255 -0
  110. package/server-edge-tracker/modules/ml/segmentation.ts +407 -0
  111. package/server-edge-tracker/modules/nurture.ts +257 -0
  112. package/server-edge-tracker/modules/utils.ts +311 -0
  113. package/server-edge-tracker/modules/utm/utm-enricher.ts +231 -0
  114. package/server-edge-tracker/schema-ab-ltv.sql +97 -0
  115. package/server-edge-tracker/schema-bidding.sql +86 -0
  116. package/server-edge-tracker/schema-fraud.sql +90 -0
  117. package/server-edge-tracker/schema-indexes.sql +67 -0
  118. package/server-edge-tracker/schema-ltv-feedback.sql +11 -0
  119. package/server-edge-tracker/schema-quiz.sql +52 -0
  120. package/server-edge-tracker/schema-sales-engine.sql +113 -0
  121. package/server-edge-tracker/schema-segmentation.sql +219 -0
  122. package/server-edge-tracker/schema-utm.sql +82 -0
  123. package/server-edge-tracker/schema.sql +281 -265
  124. package/server-edge-tracker/types.ts +275 -0
  125. package/server-edge-tracker/wrangler.toml +140 -85
  126. package/templates/lancamento-imobiliario.md +344 -0
  127. package/templates/multi-step-checkout.md +3 -4
  128. package/templates/pinterest/conversions-api-template.js +144 -144
  129. package/templates/pinterest/event-mappings.json +48 -48
  130. package/templates/pinterest/tag-template.js +28 -28
  131. package/templates/quiz-funnel.md +83 -19
  132. package/templates/reddit/conversions-api-template.js +205 -205
  133. package/templates/reddit/event-mappings.json +56 -56
  134. package/templates/reddit/pixel-template.js +12 -39
  135. package/templates/scenarios/behavior-engine.js +45 -22
  136. package/docs/PixelBuilder-Documentacao-Completa (2).docx +0 -0
  137. package/docs/installation.md +0 -155
  138. package/docs/quick-start.md +0 -185
  139. package/extracted-skill/tracking-events-generator/agents/crm-integration-agent.md +0 -1419
  140. package/extracted-skill/tracking-events-generator/agents/intelligence-scheduling.md +0 -643
  141. package/server-edge-tracker/worker.js +0 -2574
@@ -0,0 +1,81 @@
1
+ // CDP Edge Premium - API Contracts & Typings
2
+
3
+ export interface QuantumEventPayload {
4
+ eventName: string;
5
+ eventId: string;
6
+ userId: string;
7
+ email?: string | null;
8
+ phone?: string | null;
9
+ firstName?: string | null;
10
+ lastName?: string | null;
11
+ city?: string | null;
12
+ state?: string | null;
13
+ zip?: string | null;
14
+ country?: string | null;
15
+
16
+ // Identifiers
17
+ fbp?: string | null;
18
+ fbc?: string | null;
19
+ ttp?: string | null;
20
+ gaClientId?: string | null;
21
+
22
+ // Parameters
23
+ value?: number | null;
24
+ currency?: string;
25
+ contentIds?: string[];
26
+ contentName?: string;
27
+ contentType?: string;
28
+ pageUrl?: string;
29
+ orderId?: string;
30
+
31
+ // Quantum Tracking Details
32
+ intentScoreNum?: number | null;
33
+ metaSignal?: number;
34
+ distanceBucket?: string;
35
+ funnelLevel?: string;
36
+ botScore?: number;
37
+
38
+ // Any extra params
39
+ [key: string]: any;
40
+ }
41
+
42
+ export interface AgencyContext {
43
+ // Required Env mappings for specialists
44
+ META_ACCESS_TOKEN?: string;
45
+ META_PIXEL_ID?: string;
46
+ GA4_API_SECRET?: string;
47
+ GA4_MEASUREMENT_ID?: string;
48
+ TIKTOK_ACCESS_TOKEN?: string;
49
+ TIKTOK_PIXEL_ID?: string;
50
+ PINTEREST_ACCESS_TOKEN?: string;
51
+ PINTEREST_AD_ACCOUNT_ID?: string;
52
+ REDDIT_ACCESS_TOKEN?: string;
53
+ REDDIT_AD_ACCOUNT_ID?: string;
54
+ LINKEDIN_ACCESS_TOKEN?: string;
55
+ LINKEDIN_AD_ACCOUNT_ID?: string;
56
+ SPOTIFY_ACCESS_TOKEN?: string;
57
+ SPOTIFY_AD_ACCOUNT_ID?: string;
58
+
59
+ // Databases and Stores
60
+ DB?: any; // D1 Database
61
+ GEO_CACHE?: any; // KV Namespace
62
+ RATE_LIMITER?: any;
63
+ SITE_DOMAIN?: string;
64
+
65
+ [key: string]: any;
66
+ }
67
+
68
+ export interface ApiVersionsConfig {
69
+ metadata: {
70
+ version: string;
71
+ };
72
+ meta: any;
73
+ google: any;
74
+ tiktok: any;
75
+ pinterest: any;
76
+ reddit: any;
77
+ linkedin: any;
78
+ bing: any;
79
+ youtube: any;
80
+ spotify: any;
81
+ }
@@ -1,52 +1,52 @@
1
- /**
2
- * Analyze Command - AnΓ‘lise de pΓ‘ginas
3
- */
4
-
5
- import inquirer from 'inquirer';
6
- import chalk from 'chalk';
7
- import ora from 'ora';
8
- import { promises as fs } from 'fs';
9
-
10
- export async function runAnalyze(dir) {
11
- console.log(chalk.cyan.bold('\n CDP Edge - Page Analyzer\n'));
12
-
13
- const spinner = ora('Analisando arquivos...').start();
14
-
15
- try {
16
- // Busca arquivos HTML/JS no diretΓ³rio
17
- const files = await findProjectFiles(dir);
18
-
19
- spinner.succeed(`Encontrados ${files.length} arquivos`);
20
-
21
- // AnΓ‘lise dos eventos detectados
22
- const events = await analyzeEvents(files);
23
-
24
- console.log('\n' + chalk.yellow('Eventos detectados:'));
25
- console.log(formatEventAnalysis(events));
26
-
27
- } catch (error) {
28
- spinner.fail('Erro na anΓ‘lise');
29
- console.error(error);
30
- }
31
- }
32
-
33
- async function findProjectFiles(dir) {
34
- // Em produΓ§Γ£o, faria glob real dos arquivos
35
- return ['index.html', 'checkout.html', 'thankyou.html'];
36
- }
37
-
38
- async function analyzeEvents(files) {
39
- // Em produΓ§Γ£o, analisaria cada arquivo com o Page Analyzer Agent
40
- return {
41
- leads: 2,
42
- purchases: 1,
43
- views: 3,
44
- custom: 0
45
- };
46
- }
47
-
48
- function formatEventAnalysis(events) {
49
- return Object.entries(events)
50
- .map(([type, count]) => ` ${chalk.cyan(type)}: ${count}`)
51
- .join('\n');
52
- }
1
+ /**
2
+ * Analyze Command - AnΓ‘lise de pΓ‘ginas
3
+ */
4
+
5
+ import inquirer from 'inquirer';
6
+ import chalk from 'chalk';
7
+ import ora from 'ora';
8
+ import { promises as fs } from 'fs';
9
+
10
+ export async function runAnalyze(dir) {
11
+ console.log(chalk.cyan.bold('\n CDP Edge - Page Analyzer\n'));
12
+
13
+ const spinner = ora('Analisando arquivos...').start();
14
+
15
+ try {
16
+ // Busca arquivos HTML/JS no diretΓ³rio
17
+ const files = await findProjectFiles(dir);
18
+
19
+ spinner.succeed(`Encontrados ${files.length} arquivos`);
20
+
21
+ // AnΓ‘lise dos eventos detectados
22
+ const events = await analyzeEvents(files);
23
+
24
+ console.log('\n' + chalk.yellow('Eventos detectados:'));
25
+ console.log(formatEventAnalysis(events));
26
+
27
+ } catch (error) {
28
+ spinner.fail('Erro na anΓ‘lise');
29
+ console.error(error);
30
+ }
31
+ }
32
+
33
+ async function findProjectFiles(dir) {
34
+ // Em produΓ§Γ£o, faria glob real dos arquivos
35
+ return ['index.html', 'checkout.html', 'thankyou.html'];
36
+ }
37
+
38
+ async function analyzeEvents(files) {
39
+ // Em produΓ§Γ£o, analisaria cada arquivo com o Page Analyzer Agent
40
+ return {
41
+ leads: 2,
42
+ purchases: 1,
43
+ views: 3,
44
+ custom: 0
45
+ };
46
+ }
47
+
48
+ function formatEventAnalysis(events) {
49
+ return Object.entries(events)
50
+ .map(([type, count]) => ` ${chalk.cyan(type)}: ${count}`)
51
+ .join('\n');
52
+ }
@@ -1,54 +1,54 @@
1
- /**
2
- * Infra Command - Guia de setup Cloudflare
3
- */
4
-
5
- import chalk from 'chalk';
6
-
7
- export async function runInfra() {
8
- console.log(chalk.cyan.bold('\n CDP Edge - Guia de Infraestrutura Cloudflare\n'));
9
-
10
- const guide = `
11
-
12
- ${chalk.yellow.bold('πŸš€ Setup do Zero ao Deploy')}
13
-
14
- ${chalk.cyan.bold('PASSO 1: Criar Conta Cloudflare')}
15
- 1. Acesse https://dash.cloudflare.com/sign-up
16
- 2. Crie uma conta gratuita
17
- 3. Adicione seu domΓ­nio (opcional para testes)
18
-
19
- ${chalk.cyan.bold('PASSO 2: Instalar Wrangler CLI')}
20
- npm install -g wrangler
21
- wrangler login
22
-
23
- ${chalk.cyan.bold('PASSO 3: Criar D1 Database')}
24
- wrangler d1 create cdp-edge-db
25
- # Copie o database_id gerado
26
-
27
- ${chalk.cyan.bold('PASSO 4: Criar Worker')}
28
- wrangler init cdp-edge-worker
29
- # Responda Γ s perguntas do wizard
30
-
31
- ${chalk.cyan.bold('PASSO 5: Configurar Secrets')}
32
- wrangler secret put META_ACCESS_TOKEN
33
- wrangler secret put TIKTOK_ACCESS_TOKEN
34
- wrangler secret put GA4_MEASUREMENT_ID
35
-
36
- ${chalk.cyan.bold('PASSO 6: Aplicar Schema D1')}
37
- wrangler d1 execute cdp-edge-db --file=schema.sql
38
-
39
- ${chalk.cyan.bold('PASSO 7: Deploy')}
40
- wrangler deploy
41
-
42
- ${chalk.cyan.bold('PASSO 8: Configurar DomΓ­nio')}
43
- # No dashboard Cloudflare:
44
- # 1. Workers & Pages β†’ Routes β†’ Add Route
45
- # 2. Exemplo: seu-dominio.com/api/tracking/*
46
- # 3. Aponte para o worker criado
47
-
48
- ${chalk.green.bold('βœ… Pronto! Seu tracking Quantum Tier estΓ‘ ativo.')}
49
-
50
- ${chalk.gray('Para mais detalhes, consulte docs/guia-cloudflare-iniciante.md')}
51
- `;
52
-
53
- console.log(guide);
54
- }
1
+ /**
2
+ * Infra Command - Guia de setup Cloudflare
3
+ */
4
+
5
+ import chalk from 'chalk';
6
+
7
+ export async function runInfra() {
8
+ console.log(chalk.cyan.bold('\n CDP Edge - Guia de Infraestrutura Cloudflare\n'));
9
+
10
+ const guide = `
11
+
12
+ ${chalk.yellow.bold('πŸš€ Setup do Zero ao Deploy')}
13
+
14
+ ${chalk.cyan.bold('PASSO 1: Criar Conta Cloudflare')}
15
+ 1. Acesse https://dash.cloudflare.com/sign-up
16
+ 2. Crie uma conta gratuita
17
+ 3. Adicione seu domΓ­nio (opcional para testes)
18
+
19
+ ${chalk.cyan.bold('PASSO 2: Instalar Wrangler CLI')}
20
+ npm install -g wrangler
21
+ wrangler login
22
+
23
+ ${chalk.cyan.bold('PASSO 3: Criar D1 Database')}
24
+ wrangler d1 create cdp-edge-db
25
+ # Copie o database_id gerado
26
+
27
+ ${chalk.cyan.bold('PASSO 4: Criar Worker')}
28
+ wrangler init cdp-edge-worker
29
+ # Responda Γ s perguntas do wizard
30
+
31
+ ${chalk.cyan.bold('PASSO 5: Configurar Secrets')}
32
+ wrangler secret put META_ACCESS_TOKEN
33
+ wrangler secret put TIKTOK_ACCESS_TOKEN
34
+ wrangler secret put GA4_MEASUREMENT_ID
35
+
36
+ ${chalk.cyan.bold('PASSO 6: Aplicar Schema D1')}
37
+ wrangler d1 execute cdp-edge-db --file=schema.sql
38
+
39
+ ${chalk.cyan.bold('PASSO 7: Deploy')}
40
+ wrangler deploy
41
+
42
+ ${chalk.cyan.bold('PASSO 8: Configurar DomΓ­nio')}
43
+ # No dashboard Cloudflare:
44
+ # 1. Workers & Pages β†’ Routes β†’ Add Route
45
+ # 2. Exemplo: seu-dominio.com/api/tracking/*
46
+ # 3. Aponte para o worker criado
47
+
48
+ ${chalk.green.bold('βœ… Pronto! Seu tracking Quantum Tier estΓ‘ ativo.')}
49
+
50
+ ${chalk.gray('Para mais detalhes, consulte docs/guia-cloudflare-iniciante.md')}
51
+ `;
52
+
53
+ console.log(guide);
54
+ }
@@ -18,16 +18,39 @@ import chalk from 'chalk';
18
18
 
19
19
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
20
20
 
21
+ // Ler versΓ£o do package.json
22
+ const packageJsonPath = path.join(__dirname, '..', '..', 'package.json');
23
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
24
+ const CDP_VERSION = packageJson.version;
25
+
21
26
  // Raiz do pacote CDP Edge (2 nΓ­veis acima de dist/commands/)
22
27
  const CDP_EDGE_ROOT = path.resolve(__dirname, '..', '..');
23
28
 
29
+ function printBanner() {
30
+ console.log('');
31
+ console.log(chalk.white.bold(' CDP Edge Installation'));
32
+ console.log('');
33
+ console.log(chalk.cyan(' β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—'));
34
+ console.log(chalk.cyan('β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•”β•β•β•β•β•'));
35
+ console.log(chalk.cyan('β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— '));
36
+ console.log(chalk.cyan('β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•”β•β•β• β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β• '));
37
+ console.log(chalk.cyan('β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—'));
38
+ console.log(chalk.cyan(' β•šβ•β•β•β•β•β•β•šβ•β•β•β•β•β• β•šβ•β• β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•šβ•β•β•β•β•β•β•'));
39
+ console.log('');
40
+ console.log(chalk.gray(` Customer Data Platform on the Edge Β· Global Edge Tracking Β· v${CDP_VERSION}`));
41
+ console.log('');
42
+ console.log(chalk.gray('═'.repeat(68)));
43
+ console.log('');
44
+ }
45
+
24
46
  export async function runInstall(targetDir = '.', options = {}) {
25
47
  const projectName = options.name || path.basename(path.resolve(targetDir));
26
48
  const target = path.resolve(targetDir);
27
49
 
28
- console.log(chalk.cyan.bold('\n CDP Edge β€” Install\n'));
29
- console.log(chalk.gray(`Projeto: ${chalk.white(projectName)}`));
30
- console.log(chalk.gray(`Destino: ${chalk.white(target)}\n`));
50
+ printBanner();
51
+
52
+ console.log(chalk.gray(` Projeto: ${chalk.white(projectName)}`));
53
+ console.log(chalk.gray(` Destino: ${chalk.white(target)}\n`));
31
54
 
32
55
  // 1. Garantir que o diretΓ³rio alvo existe
33
56
  if (!fs.existsSync(target)) {