ponch-mcp-server 1.0.21 → 1.0.23

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 (36) hide show
  1. package/dist/schemas/index.d.ts +968 -118
  2. package/dist/schemas/index.d.ts.map +1 -1
  3. package/dist/schemas/index.js +31 -21
  4. package/dist/schemas/index.js.map +1 -1
  5. package/dist/schemas/marketing/brandBrief.d.ts +916 -0
  6. package/dist/schemas/marketing/brandBrief.d.ts.map +1 -0
  7. package/dist/schemas/marketing/brandBrief.js +206 -0
  8. package/dist/schemas/marketing/brandBrief.js.map +1 -0
  9. package/dist/schemas/marketing/brandConfig.d.ts +1886 -0
  10. package/dist/schemas/marketing/brandConfig.d.ts.map +1 -0
  11. package/dist/schemas/marketing/brandConfig.js +114 -0
  12. package/dist/schemas/marketing/brandConfig.js.map +1 -0
  13. package/dist/schemas/marketing/calendario.d.ts +1093 -0
  14. package/dist/schemas/marketing/calendario.d.ts.map +1 -0
  15. package/dist/schemas/marketing/calendario.js +60 -0
  16. package/dist/schemas/marketing/calendario.js.map +1 -0
  17. package/dist/schemas/marketing/collectionSuggestions.d.ts +274 -0
  18. package/dist/schemas/marketing/collectionSuggestions.d.ts.map +1 -0
  19. package/dist/schemas/marketing/collectionSuggestions.js +125 -0
  20. package/dist/schemas/marketing/collectionSuggestions.js.map +1 -0
  21. package/dist/schemas/marketing/contenido.d.ts +203 -0
  22. package/dist/schemas/marketing/contenido.d.ts.map +1 -0
  23. package/dist/schemas/marketing/contenido.js +84 -0
  24. package/dist/schemas/marketing/contenido.js.map +1 -0
  25. package/dist/schemas/marketing/foto.d.ts +242 -0
  26. package/dist/schemas/marketing/foto.d.ts.map +1 -0
  27. package/dist/schemas/marketing/foto.js +40 -0
  28. package/dist/schemas/marketing/foto.js.map +1 -0
  29. package/dist/schemas/marketing/plan.d.ts +574 -0
  30. package/dist/schemas/marketing/plan.d.ts.map +1 -1
  31. package/dist/schemas/marketing/plan.js +137 -0
  32. package/dist/schemas/marketing/plan.js.map +1 -1
  33. package/dist/tools/marketing.d.ts.map +1 -1
  34. package/dist/tools/marketing.js +46 -18
  35. package/dist/tools/marketing.js.map +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandConfig.d.ts","sourceRoot":"","sources":["../../../src/schemas/marketing/brandConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;gCAKb,CAAC;AAMjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;gCAIb,CAAC;AAMjB,eAAO,MAAM,aAAa;;;;;;;;;;;;gCAIV,CAAC;AAMjB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAcZ,CAAC;AAMjB,eAAO,MAAM,cAAc;;;;;;;;;gCAGX,CAAC;AAMjB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAiBd,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM5D,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;gCAK5B,CAAC;AAEjB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAKf,CAAC;AAEjB,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAM9D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAMT,CAAC;AAEjB,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * mcp-server/src/schemas/marketing/brandConfig.ts
3
+ *
4
+ * Schemas Zod para marketing_config y brandConfig.
5
+ *
6
+ * Estos son los schemas top-level del modulo. brandConfig vive dentro
7
+ * del map brands del Config root.
8
+ *
9
+ * Sub-deuda 2.5 (sesion 176B).
10
+ *
11
+ * Nota: NO valida sub-campos como brandBrief o plan — esos tienen sus
12
+ * propios schemas dedicados (plan.ts, brandBrief.ts) que se aplican
13
+ * cuando los respectivos write tools son llamados. Aqui solo validamos
14
+ * el shape top del brandConfig.
15
+ */
16
+ import { z } from 'zod';
17
+ // ═══════════════════════════════════════════════════════════
18
+ // CONEXIONES (sub-objeto)
19
+ // ═══════════════════════════════════════════════════════════
20
+ const EstadoConexionSchema = z.enum(['active', 'expired', 'error']).nullable();
21
+ export const ConexionesSchema = z.object({
22
+ gbp: EstadoConexionSchema.optional(),
23
+ shopify: EstadoConexionSchema.optional(),
24
+ instagram: EstadoConexionSchema.optional(),
25
+ canva: EstadoConexionSchema.optional(),
26
+ }).passthrough();
27
+ // ═══════════════════════════════════════════════════════════
28
+ // FRECUENCIA
29
+ // ═══════════════════════════════════════════════════════════
30
+ export const FrecuenciaSchema = z.object({
31
+ gbp: z.number().int().nonnegative().optional(),
32
+ blog: z.number().int().nonnegative().optional(),
33
+ instagram: z.number().int().nonnegative().optional(),
34
+ }).passthrough();
35
+ // ═══════════════════════════════════════════════════════════
36
+ // IDIOMAS
37
+ // ═══════════════════════════════════════════════════════════
38
+ export const IdiomasSchema = z.object({
39
+ primario: z.string().optional(),
40
+ secundarios: z.array(z.string()).optional(),
41
+ distribucion: z.record(z.number()).optional(),
42
+ }).passthrough();
43
+ // ═══════════════════════════════════════════════════════════
44
+ // GBP PERFIL (sub-objeto del array gbpPerfiles)
45
+ // ═══════════════════════════════════════════════════════════
46
+ export const GbpPerfilSchema = z.object({
47
+ ubicacionId: z.string().optional(),
48
+ googleLocationId: z.string().optional(),
49
+ nombre: z.string().optional(),
50
+ direccion: z.string().optional(),
51
+ telefono: z.string().optional(),
52
+ categorias: z.array(z.string()).optional(),
53
+ horarios: z.unknown().optional(),
54
+ reviews: z.object({
55
+ total: z.number().optional(),
56
+ promedio: z.number().optional(),
57
+ }).passthrough().optional(),
58
+ fotosCount: z.number().optional(),
59
+ ultimaSync: z.unknown().optional(),
60
+ }).passthrough();
61
+ // ═══════════════════════════════════════════════════════════
62
+ // IG CUENTA
63
+ // ═══════════════════════════════════════════════════════════
64
+ export const IgCuentaSchema = z.object({
65
+ username: z.string().optional(),
66
+ igBusinessId: z.string().optional(),
67
+ }).passthrough();
68
+ // ═══════════════════════════════════════════════════════════
69
+ // BRAND CONFIG (raiz del objeto dentro de brands.{brandId})
70
+ // ═══════════════════════════════════════════════════════════
71
+ export const BrandConfigSchema = z.object({
72
+ nombre: z.string().min(1, 'nombre es obligatorio'),
73
+ dominio: z.string().nullable().optional(),
74
+ semrushDatabase: z.string().nullable().optional(),
75
+ // sub-objetos: validados por schemas dedicados cuando aplica
76
+ seoSnapshot: z.record(z.unknown()).nullable().optional(),
77
+ plan: z.record(z.unknown()).nullable().optional(),
78
+ brandBrief: z.record(z.unknown()).nullable().optional(),
79
+ collectionSuggestions: z.record(z.unknown()).optional(),
80
+ // estructura propia
81
+ gbpPerfiles: z.array(GbpPerfilSchema).optional(),
82
+ frecuencia: FrecuenciaSchema.nullable().optional(),
83
+ idiomas: IdiomasSchema.nullable().optional(),
84
+ igCuenta: IgCuentaSchema.nullable().optional(),
85
+ canvaTeamId: z.string().nullable().optional(),
86
+ shopifyDomain: z.string().nullable().optional(),
87
+ conexiones: ConexionesSchema.nullable().optional(),
88
+ }).passthrough();
89
+ // ═══════════════════════════════════════════════════════════
90
+ // SEMRUSH USAGE (root del config, no por brand)
91
+ // ═══════════════════════════════════════════════════════════
92
+ export const SemrushUsageHistorialItemSchema = z.object({
93
+ brandId: z.string(),
94
+ fecha: z.string(),
95
+ unidades: z.number(),
96
+ trigger: z.enum(['onboarding', 'manual', 'scheduled']).optional(),
97
+ }).passthrough();
98
+ export const SemrushUsageSchema = z.object({
99
+ mesActual: z.string().nullable().optional(),
100
+ unidadesUsadas: z.number().int().nonnegative(),
101
+ limite: z.number().int().positive(),
102
+ historial: z.array(SemrushUsageHistorialItemSchema).optional(),
103
+ }).passthrough();
104
+ // ═══════════════════════════════════════════════════════════
105
+ // CONFIG (marketing_config — el doc raiz)
106
+ // ═══════════════════════════════════════════════════════════
107
+ export const ConfigSchema = z.object({
108
+ id: z.string().min(1, 'id es obligatorio'),
109
+ tenantId: z.string().min(1, 'tenantId es obligatorio'),
110
+ brands: z.record(BrandConfigSchema).optional(),
111
+ semrushUsage: SemrushUsageSchema.nullable().optional(),
112
+ updatedAt: z.unknown().nullable().optional(),
113
+ }).passthrough();
114
+ //# sourceMappingURL=brandConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandConfig.js","sourceRoot":"","sources":["../../../src/schemas/marketing/brandConfig.ts"],"names":[],"mappings":"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"}