@clarvivo/mcp 0.2.0 → 0.3.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
@@ -21,6 +21,10 @@ The tracker observes `history.pushState`, `history.replaceState`, and `popstate`
21
21
  | `verify_installation` | Prove the deployed snippet works from a proof-of-life event count, without reading analytics. |
22
22
  | `list_projects` | List accessible projects and their public tracking API keys. |
23
23
  | `get_stats` | Return a small traffic and top-line revenue summary for 1–90 days, capped to the top five pages and referrers. |
24
+ | `get_traffic_sources` | Aggregate up to 90 days into channel shares, the top ten referrers, and the top ten UTM source rows. |
25
+ | `get_pages` | Return the top ten pages with visitors, entries, exits, bounce rate, and average time. |
26
+ | `get_audience` | Summarise devices, browsers, operating systems, countries, visitor segments, screens, and languages. |
27
+ | `export_data` | Write CSV/JSON locally, or create a self-contained printable HTML report for PDF; return metadata only. |
24
28
  | `connect_revenue` | Detect Stripe, Polar, Razorpay, Paddle, Lemon Squeezy, or Dodo; connect its webhook; and return the attribution edit. |
25
29
  | `verify_revenue` | Summarise webhook proof-of-life and attribution coverage without dumping payment data. |
26
30
  | `add_event` | Register an event and propose the `window.clarvivo.trackEvent(...)` edit and handler placement. |
@@ -30,6 +34,18 @@ The tracker observes `history.pushState`, `history.replaceState`, and `popstate`
30
34
 
31
35
  `setup_analytics` supports Next.js App Router, Next.js Pages Router, Vite (React/Vue/Svelte), Create React App, Astro, SvelteKit, Nuxt, Remix / React Router v7, Gatsby, Docusaurus, and static HTML.
32
36
 
37
+ ## Read your data
38
+
39
+ Ask for a quick overview with `get_stats`, then use `get_traffic_sources`, `get_pages`, or `get_audience` when you need a focused breakdown. These tools aggregate the full reporting window inside the MCP server, cap every returned list, and never place raw daily analytics rows into the model context. Their default window is 30 days and accepts 1–90 days.
40
+
41
+ Analytics reads require the `analytics:read` token scope. If the account is still awaiting its first payment or its access has lapsed, the tools stop at the same billing wall as the dashboard and link to the billing page.
42
+
43
+ ## Export
44
+
45
+ `export_data` writes the result to disk instead of returning file contents. CSV and JSON use Clarvivo's paid export routes; `pdf` creates a slim, self-contained `.html` report with headline metrics, channels, top pages, and sources. Open that file in a browser and use **Print → Save as PDF**, matching the dashboard workflow.
46
+
47
+ The default filename is `clarvivo-export-<project>-<date>.<ext>` in the current working directory. A custom `path` must remain inside that directory and cannot contain `..`. Existing files are protected unless `overwrite: true` is passed. Data export remains plan-gated and uses the existing `analytics:read` scope.
48
+
33
49
  ## Connect payments
34
50
 
35
51
  1. Ask the agent: **“Connect Clarvivo revenue for this project.”**
@@ -246,10 +262,10 @@ No submission happens automatically. Complete these after the package and public
246
262
  - [ ] **Official MCP Registry:** verify the `io.github.cracked-collective/clarvivo` namespace, publish the matching npm version first, then run `mcp-publisher login`, `mcp-publisher validate`, and `mcp-publisher publish` against the included `server.json`. The registry stores metadata, not the package. Follow the [official registry quickstart](https://modelcontextprotocol.io/registry/quickstart).
247
263
  - [ ] **Smithery:** authenticate with the Smithery CLI and publish a local MCP bundle (`.mcpb`) under the Clarvivo namespace, or publish a hosted URL if an HTTP transport is added later: `smithery mcp publish <bundle.mcpb> -n clarvivo/clarvivo`. Smithery’s current publisher accepts hosted URLs or MCP bundles; see [Smithery CLI publishing](https://www.npmjs.com/package/@smithery/cli).
248
264
  - [ ] **mcp.so:** use the [server submission form](https://mcp.so/submit?type=server). It currently requires a public repository URL and name; the paid path is optional and advertises immediate publishing.
249
- - [ ] **PulseMCP:** use the site’s **Submit** flow and provide the public repository, npm install command, eleven-tool inventory, auth variable, license, and maintainer contact. Re-check the form at submission time because PulseMCP does not publish a stable submission schema.
250
- - [ ] **Glama:** click **Add Server** in the [Glama registry](https://glama.ai/mcp/servers), submit the public GitHub repository, and add `glama.json` if organization ownership/metadata verification requests it. Confirm Glama can inspect all eleven tools.
265
+ - [ ] **PulseMCP:** use the site’s **Submit** flow and provide the public repository, npm install command, fifteen-tool inventory, auth variable, license, and maintainer contact. Re-check the form at submission time because PulseMCP does not publish a stable submission schema.
266
+ - [ ] **Glama:** click **Add Server** in the [Glama registry](https://glama.ai/mcp/servers), submit the public GitHub repository, and add `glama.json` if organization ownership/metadata verification requests it. Confirm Glama can inspect all fifteen tools.
251
267
  - [ ] **Cursor Marketplace:** package the MCP config as an Agent Plugin or Cursor Plugin with a valid `plugin.json` / `.cursor-plugin/plugin.json`, public Git repository, README, and optional committed logo; declare the token variable in the manifest schema, then submit the repository at [cursor.com/marketplace/publish](https://cursor.com/marketplace/publish). Use the [official submission checklist](https://cursor.com/docs/reference/plugins).
252
268
  - [ ] **awesome-mcp-servers:** first ensure the Glama listing exists, then fork [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers), add one alphabetized line in the appropriate category with repository link and concise description, and open a PR following its [contribution guide](https://github.com/punkpeye/awesome-mcp-servers/blob/main/CONTRIBUTING.md).
253
269
  - [ ] **Additional discovery:** submit the same canonical metadata to `mcpservers.org`, `MCP Central`, and `mcp-marketplace.io`; keep every listing pointed at the npm package and one canonical repository so versions and security notices do not drift.
254
270
 
255
- For every listing, use the same name, description, repository, license, token variable, Node requirement, eleven-tool inventory, and install snippets from this README.
271
+ For every listing, use the same name, description, repository, license, token variable, Node requirement, fifteen-tool inventory, and install snippets from this README.
@@ -0,0 +1,67 @@
1
+ import type { AnalyticsRow } from "./api.js";
2
+ export declare function aggregateTrafficSources(rows: AnalyticsRow[]): {
3
+ channels: {
4
+ sharePercent?: number | undefined;
5
+ visitors: number;
6
+ channel: string;
7
+ }[];
8
+ referrers: {
9
+ referrer: string;
10
+ visitors: number;
11
+ }[];
12
+ sources: {
13
+ revenue?: number | undefined;
14
+ conversions?: number | undefined;
15
+ source: string;
16
+ medium: string;
17
+ campaign: string;
18
+ visitors: number;
19
+ }[];
20
+ };
21
+ export declare function aggregatePages(rows: AnalyticsRow[]): {
22
+ avgTimeSeconds?: number | undefined;
23
+ bouncePercent?: number | undefined;
24
+ path: string;
25
+ title: string;
26
+ views: number;
27
+ uniqueVisitors: number;
28
+ entries: number;
29
+ exits: number;
30
+ }[];
31
+ export declare function aggregateAudience(rows: AnalyticsRow[]): {
32
+ devices: {
33
+ sharePercent?: number | undefined;
34
+ name: string;
35
+ visitors: number;
36
+ }[];
37
+ browsers: {
38
+ sharePercent?: number | undefined;
39
+ name: string;
40
+ visitors: number;
41
+ }[];
42
+ operatingSystems: {
43
+ sharePercent?: number | undefined;
44
+ name: string;
45
+ visitors: number;
46
+ }[];
47
+ countries: {
48
+ country: string;
49
+ visitors: number;
50
+ }[];
51
+ visitorSegments: {
52
+ sharePercent?: number | undefined;
53
+ name: string;
54
+ visitors: number;
55
+ }[];
56
+ screenResolutions: {
57
+ sharePercent?: number | undefined;
58
+ name: string;
59
+ visitors: number;
60
+ }[];
61
+ languages: {
62
+ sharePercent?: number | undefined;
63
+ name: string;
64
+ visitors: number;
65
+ }[];
66
+ };
67
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAwC7C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE;;;;;;;;;;;;;gBAIhD,MAAM;gBACN,MAAM;kBACJ,MAAM;kBACN,MAAM;;EAkDnB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE;;;UAEzC,MAAM;WACL,MAAM;WACN,MAAM;oBACG,MAAM;aACb,MAAM;WACR,MAAM;IA+BhB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCrD"}
@@ -0,0 +1,150 @@
1
+ function value(input) {
2
+ const parsed = typeof input === "number" ? input : Number(input ?? 0);
3
+ return Number.isFinite(parsed) ? parsed : 0;
4
+ }
5
+ function items(input) {
6
+ return Array.isArray(input)
7
+ ? input.filter((item) => Boolean(item) && typeof item === "object")
8
+ : [];
9
+ }
10
+ function mergeObject(rows, key) {
11
+ const result = new Map();
12
+ for (const row of rows) {
13
+ const input = row[key];
14
+ if (!input || typeof input !== "object" || Array.isArray(input))
15
+ continue;
16
+ for (const [name, count] of Object.entries(input)) {
17
+ result.set(name, (result.get(name) ?? 0) + value(count));
18
+ }
19
+ }
20
+ return result;
21
+ }
22
+ function rankedShares(totals, limit = 10) {
23
+ const total = [...totals.values()].reduce((sum, count) => sum + count, 0);
24
+ return [...totals.entries()]
25
+ .filter(([, count]) => count > 0)
26
+ .map(([name, visitors]) => ({
27
+ name,
28
+ visitors,
29
+ ...(total > 0 ? { sharePercent: Math.round((visitors / total) * 100) } : {}),
30
+ }))
31
+ .sort((a, b) => b.visitors - a.visitors || a.name.localeCompare(b.name))
32
+ .slice(0, limit);
33
+ }
34
+ export function aggregateTrafficSources(rows) {
35
+ const channels = rankedShares(mergeObject(rows, "trafficChannels"));
36
+ const referrers = new Map();
37
+ const sources = new Map();
38
+ for (const row of rows) {
39
+ for (const item of items(row.topReferrers)) {
40
+ const name = [item.source, item.referrer].find((candidate) => typeof candidate === "string");
41
+ if (!name)
42
+ continue;
43
+ referrers.set(name, (referrers.get(name) ?? 0) + value(item.visitors ?? item.visits ?? item.count));
44
+ }
45
+ for (const item of items(row.sourceBreakdown)) {
46
+ const source = typeof item.source === "string" ? item.source : "(direct)";
47
+ const medium = typeof item.medium === "string" ? item.medium : "(none)";
48
+ const campaign = typeof item.campaign === "string" ? item.campaign : "(none)";
49
+ const key = JSON.stringify([source, medium, campaign]);
50
+ const aggregate = sources.get(key) ?? {
51
+ source, medium, campaign, visitors: 0, conversions: 0, revenue: 0,
52
+ hasConversions: false, hasRevenue: false,
53
+ };
54
+ aggregate.visitors += value(item.visitors);
55
+ if (item.conversions !== undefined && item.conversions !== null) {
56
+ aggregate.conversions += value(item.conversions);
57
+ aggregate.hasConversions = true;
58
+ }
59
+ if (item.revenue !== undefined && item.revenue !== null) {
60
+ aggregate.revenue += value(item.revenue);
61
+ aggregate.hasRevenue = true;
62
+ }
63
+ sources.set(key, aggregate);
64
+ }
65
+ }
66
+ return {
67
+ channels: channels.map(({ name: channel, ...rest }) => ({ channel, ...rest })),
68
+ referrers: [...referrers.entries()]
69
+ .map(([referrer, visitors]) => ({ referrer, visitors }))
70
+ .sort((a, b) => b.visitors - a.visitors || a.referrer.localeCompare(b.referrer))
71
+ .slice(0, 10),
72
+ sources: [...sources.values()]
73
+ .sort((a, b) => b.visitors - a.visitors || a.source.localeCompare(b.source))
74
+ .slice(0, 10)
75
+ .map(({ hasConversions, hasRevenue, conversions, revenue, ...source }) => ({
76
+ ...source,
77
+ ...(hasConversions ? { conversions } : {}),
78
+ ...(hasRevenue ? { revenue } : {}),
79
+ })),
80
+ };
81
+ }
82
+ export function aggregatePages(rows) {
83
+ const pages = new Map();
84
+ for (const row of rows) {
85
+ for (const item of items(row.pageDetails)) {
86
+ const pagePath = typeof item.path === "string" ? item.path : typeof item.page === "string" ? item.page : undefined;
87
+ if (!pagePath)
88
+ continue;
89
+ const page = pages.get(pagePath) ?? {
90
+ path: pagePath,
91
+ title: typeof item.title === "string" ? item.title : pagePath,
92
+ views: 0, uniqueVisitors: 0, entries: 0, exits: 0, bounceCount: 0, totalDuration: 0,
93
+ };
94
+ if (typeof item.title === "string" && item.title !== pagePath)
95
+ page.title = item.title;
96
+ page.views += value(item.views ?? item.pageviews);
97
+ page.uniqueVisitors += value(item.uniqueVisitors);
98
+ page.entries += value(item.entries);
99
+ page.exits += value(item.exits);
100
+ page.bounceCount += value(item.bounceCount);
101
+ page.totalDuration += value(item.totalDuration);
102
+ pages.set(pagePath, page);
103
+ }
104
+ }
105
+ return [...pages.values()]
106
+ .sort((a, b) => b.views - a.views || a.path.localeCompare(b.path))
107
+ .slice(0, 10)
108
+ .map(({ bounceCount, totalDuration, ...page }) => ({
109
+ ...page,
110
+ ...(page.entries > 0 ? { bouncePercent: Math.round((bounceCount / page.entries) * 100) } : {}),
111
+ ...(page.views > 0 ? { avgTimeSeconds: Math.round((totalDuration / page.views) * 10) / 10 } : {}),
112
+ }));
113
+ }
114
+ export function aggregateAudience(rows) {
115
+ const countries = new Map();
116
+ for (const row of rows) {
117
+ for (const location of items(row.visitorLocations)) {
118
+ const country = typeof location.country === "string" ? location.country : "Unknown";
119
+ countries.set(country, (countries.get(country) ?? 0) + value(location.visits ?? location.visitors));
120
+ }
121
+ }
122
+ const technology = (key) => {
123
+ const totals = new Map();
124
+ for (const row of rows) {
125
+ const details = row.technologyDetails;
126
+ if (!details || typeof details !== "object" || Array.isArray(details))
127
+ continue;
128
+ const group = details[key];
129
+ if (!group || typeof group !== "object" || Array.isArray(group))
130
+ continue;
131
+ for (const [name, count] of Object.entries(group)) {
132
+ totals.set(name, (totals.get(name) ?? 0) + value(count));
133
+ }
134
+ }
135
+ return rankedShares(totals, 5);
136
+ };
137
+ return {
138
+ devices: rankedShares(mergeObject(rows, "deviceBreakdown")),
139
+ browsers: rankedShares(mergeObject(rows, "browserBreakdown")),
140
+ operatingSystems: rankedShares(mergeObject(rows, "osBreakdown")),
141
+ countries: [...countries.entries()]
142
+ .map(([country, visitors]) => ({ country, visitors }))
143
+ .sort((a, b) => b.visitors - a.visitors || a.country.localeCompare(b.country))
144
+ .slice(0, 10),
145
+ visitorSegments: rankedShares(mergeObject(rows, "visitorSegments")),
146
+ screenResolutions: technology("screenResolutions"),
147
+ languages: technology("languages"),
148
+ };
149
+ }
150
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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"}
package/dist/api.d.ts CHANGED
@@ -17,6 +17,11 @@ export interface AnalyticsRow {
17
17
  trafficChannels?: unknown;
18
18
  [key: string]: unknown;
19
19
  }
20
+ export type ExportFormat = "csv" | "json";
21
+ export interface ExportDownload {
22
+ data: string;
23
+ contentType: string | null;
24
+ }
20
25
  export interface RealtimeSnapshot {
21
26
  count?: number;
22
27
  [key: string]: unknown;
@@ -75,6 +80,7 @@ export interface ClarvivoApi {
75
80
  }): Promise<ClarvivoProject>;
76
81
  getInstallStatus(projectId: number | string): Promise<InstallStatus>;
77
82
  getAnalytics(projectId: number | string, days: number): Promise<AnalyticsRow[]>;
83
+ exportData(projectId: number | string, format: ExportFormat, days: number): Promise<ExportDownload>;
78
84
  getRealtime(projectId: number | string): Promise<RealtimeSnapshot>;
79
85
  getRevenue(projectId: number | string): Promise<RevenueSummary>;
80
86
  connectRevenue(projectId: number | string, provider: string): Promise<RevenueConnection>;
@@ -106,12 +112,14 @@ export declare const DEFAULT_BASE_URL = "https://app.clarvivo.com";
106
112
  export declare function tokenSetupMessage(baseUrl?: string): string;
107
113
  export declare function planLimitMessage(baseUrl?: string): string;
108
114
  export declare function payToReadMessage(baseUrl?: string): string;
115
+ export declare function exportPlanMessage(baseUrl?: string): string;
109
116
  export declare function requireToken(env?: NodeJS.ProcessEnv): string;
110
117
  export declare class HttpClarvivoApi implements ClarvivoApi {
111
118
  private readonly fetchImpl;
112
119
  private readonly baseUrl;
113
120
  private readonly token;
114
121
  constructor(env?: NodeJS.ProcessEnv, fetchImpl?: typeof fetch);
122
+ private response;
115
123
  private request;
116
124
  listProjects(): Promise<ClarvivoProject[]>;
117
125
  createProject(input: {
@@ -120,6 +128,7 @@ export declare class HttpClarvivoApi implements ClarvivoApi {
120
128
  }): Promise<ClarvivoProject>;
121
129
  getInstallStatus(projectId: number | string): Promise<InstallStatus>;
122
130
  getAnalytics(projectId: number | string, days: number): Promise<AnalyticsRow[]>;
131
+ exportData(projectId: number | string, format: ExportFormat, days: number): Promise<ExportDownload>;
123
132
  getRealtime(projectId: number | string): Promise<RealtimeSnapshot>;
124
133
  getRevenue(projectId: number | string): Promise<RevenueSummary>;
125
134
  connectRevenue(projectId: number | string, provider: string): Promise<RevenueConnection>;
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -12,7 +12,8 @@ export class ClarvivoApiError extends Error {
12
12
  }
13
13
  export const DEFAULT_BASE_URL = "https://app.clarvivo.com";
14
14
  export function tokenSetupMessage(baseUrl = process.env.CLARVIVO_BASE_URL || DEFAULT_BASE_URL) {
15
- return `Clarvivo needs an API token. Open ${baseUrl.replace(/\/$/, "")}/dashboard/settings?tab=api-tokens, create a token, then set CLARVIVO_API_TOKEN=clv_live_<your-token> in this MCP server's environment and restart the client.`;
15
+ const appUrl = baseUrl.replace(/\/$/, "");
16
+ return `Clarvivo needs an API token: sign in and create one on ${appUrl}/dashboard if you are a new user, or in ${appUrl}/dashboard/settings?tab=api-tokens if you are a paying user, then set CLARVIVO_API_TOKEN=clv_live_<your-token> in this MCP server's environment and restart the client.`;
16
17
  }
17
18
  export function planLimitMessage(baseUrl = process.env.CLARVIVO_BASE_URL || DEFAULT_BASE_URL) {
18
19
  return `Your Clarvivo plan cannot create another project. Open ${baseUrl.replace(/\/$/, "")}/dashboard/billing — checkout takes about 30 seconds — then re-run setup_analytics.`;
@@ -20,6 +21,9 @@ export function planLimitMessage(baseUrl = process.env.CLARVIVO_BASE_URL || DEFA
20
21
  export function payToReadMessage(baseUrl = process.env.CLARVIVO_BASE_URL || DEFAULT_BASE_URL) {
21
22
  return `Pay $1 to read your Clarvivo data. Open ${baseUrl.replace(/\/$/, "")}/dashboard/billing, then re-run get_stats.`;
22
23
  }
24
+ export function exportPlanMessage(baseUrl = process.env.CLARVIVO_BASE_URL || DEFAULT_BASE_URL) {
25
+ return `Clarvivo data exports need a paid plan. Open ${baseUrl.replace(/\/$/, "")}/dashboard/billing, upgrade, then retry export_data.`;
26
+ }
23
27
  export function requireToken(env = process.env) {
24
28
  const token = env.CLARVIVO_API_TOKEN?.trim();
25
29
  if (!token)
@@ -35,7 +39,7 @@ export class HttpClarvivoApi {
35
39
  this.baseUrl = (env.CLARVIVO_BASE_URL || DEFAULT_BASE_URL).replace(/\/$/, "");
36
40
  this.token = requireToken(env);
37
41
  }
38
- async request(pathname, init = {}) {
42
+ async response(pathname, init = {}) {
39
43
  const response = await this.fetchImpl(`${this.baseUrl}${pathname}`, {
40
44
  ...init,
41
45
  headers: {
@@ -45,6 +49,8 @@ export class HttpClarvivoApi {
45
49
  Authorization: `Bearer ${this.token}`,
46
50
  },
47
51
  });
52
+ if (response.ok)
53
+ return response;
48
54
  const text = await response.text();
49
55
  let body;
50
56
  try {
@@ -53,9 +59,18 @@ export class HttpClarvivoApi {
53
59
  catch {
54
60
  body = text;
55
61
  }
56
- if (!response.ok) {
57
- const object = body && typeof body === "object" ? body : {};
58
- throw new ClarvivoApiError(typeof object.message === "string" ? object.message : `Clarvivo API request failed (${response.status}).`, response.status, typeof object.code === "string" ? object.code : undefined, typeof object.scope === "string" ? object.scope : undefined);
62
+ const object = body && typeof body === "object" ? body : {};
63
+ throw new ClarvivoApiError(typeof object.message === "string" ? object.message : `Clarvivo API request failed (${response.status}).`, response.status, typeof object.code === "string" ? object.code : undefined, typeof object.scope === "string" ? object.scope : undefined);
64
+ }
65
+ async request(pathname, init = {}) {
66
+ const response = await this.response(pathname, init);
67
+ const text = await response.text();
68
+ let body;
69
+ try {
70
+ body = text ? JSON.parse(text) : undefined;
71
+ }
72
+ catch {
73
+ body = text;
59
74
  }
60
75
  return body;
61
76
  }
@@ -71,6 +86,17 @@ export class HttpClarvivoApi {
71
86
  getAnalytics(projectId, days) {
72
87
  return this.request(`/api/projects/${encodeURIComponent(String(projectId))}/analytics?days=${days}`);
73
88
  }
89
+ async exportData(projectId, format, days) {
90
+ const end = new Date();
91
+ const start = new Date(end);
92
+ start.setUTCDate(start.getUTCDate() - days + 1);
93
+ const query = new URLSearchParams({
94
+ startDate: start.toISOString().slice(0, 10),
95
+ endDate: end.toISOString(),
96
+ });
97
+ const response = await this.response(`/api/projects/${encodeURIComponent(String(projectId))}/export/${format}?${query}`);
98
+ return { data: await response.text(), contentType: response.headers.get("content-type") };
99
+ }
74
100
  getRealtime(projectId) {
75
101
  return this.request(`/api/projects/${encodeURIComponent(String(projectId))}/realtime/active`);
76
102
  }
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyticsRow } from "./api.js";
2
+ export declare function generateReportHtml(projectId: number | string, days: number, analytics: AnalyticsRow[], generatedAt?: Date): string;
3
+ //# sourceMappingURL=report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAsB7C,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,WAAW,OAAa,GAAG,MAAM,CAmBxI"}
package/dist/report.js ADDED
@@ -0,0 +1,38 @@
1
+ import { aggregatePages, aggregateTrafficSources } from "./analytics.js";
2
+ function number(value) {
3
+ const parsed = typeof value === "number" ? value : Number(value ?? 0);
4
+ return Number.isFinite(parsed) ? parsed : 0;
5
+ }
6
+ function escapeHtml(value) {
7
+ return String(value)
8
+ .replace(/&/g, "&amp;")
9
+ .replace(/</g, "&lt;")
10
+ .replace(/>/g, "&gt;")
11
+ .replace(/"/g, "&quot;")
12
+ .replace(/'/g, "&#39;");
13
+ }
14
+ function table(title, headings, rows) {
15
+ if (!rows.length)
16
+ return "";
17
+ return `<section><h2>${escapeHtml(title)}</h2><table><thead><tr>${headings.map((heading) => `<th>${escapeHtml(heading)}</th>`).join("")}</tr></thead><tbody>${rows.map((row) => `<tr>${row.map((cell) => `<td>${escapeHtml(cell)}</td>`).join("")}</tr>`).join("")}</tbody></table></section>`;
18
+ }
19
+ export function generateReportHtml(projectId, days, analytics, generatedAt = new Date()) {
20
+ const traffic = aggregateTrafficSources(analytics);
21
+ const pages = aggregatePages(analytics);
22
+ const visitors = analytics.reduce((sum, row) => sum + number(row.uniqueVisitors ?? row.visitors), 0);
23
+ const pageviews = analytics.reduce((sum, row) => sum + number(row.pageviews), 0);
24
+ const sessions = analytics.reduce((sum, row) => sum + number(row.sessions), 0);
25
+ const end = generatedAt.toISOString().slice(0, 10);
26
+ const startDate = new Date(generatedAt);
27
+ startDate.setUTCDate(startDate.getUTCDate() - days + 1);
28
+ const start = startDate.toISOString().slice(0, 10);
29
+ return `<!doctype html>
30
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Clarvivo analytics report — ${escapeHtml(projectId)}</title><style>
31
+ *{box-sizing:border-box}body{max-width:900px;margin:0 auto;padding:40px;font:14px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif;color:#172033}h1{font-size:28px;margin:0 0 4px}h2{font-size:17px;margin:30px 0 10px}.sub{color:#64748b;margin-bottom:26px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric{border:1px solid #dbe2ea;border-radius:9px;padding:14px}.label,th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.value{font-size:24px;font-weight:700;margin-top:3px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid #e7ebf0}th{font-weight:650}.foot{margin-top:36px;padding-top:12px;border-top:1px solid #dbe2ea;color:#64748b;font-size:11px}@media print{body{padding:16px}.metric{break-inside:avoid}section{break-inside:avoid}}
32
+ </style></head><body><h1>Clarvivo analytics report</h1><div class="sub">Project ${escapeHtml(projectId)} · ${start} to ${end} · ${days} days</div><div class="metrics"><div class="metric"><div class="label">Visitors</div><div class="value">${visitors.toLocaleString("en-US")}</div></div><div class="metric"><div class="label">Pageviews</div><div class="value">${pageviews.toLocaleString("en-US")}</div></div><div class="metric"><div class="label">Sessions</div><div class="value">${sessions.toLocaleString("en-US")}</div></div></div>
33
+ ${table("Traffic channels", ["Channel", "Visitors", "Share"], traffic.channels.map((row) => [row.channel, row.visitors, row.sharePercent === undefined ? "—" : `${row.sharePercent}%`]))}
34
+ ${table("Top pages", ["Page", "Views", "Unique visitors", "Bounce", "Avg time"], pages.map((row) => [row.path, row.views, row.uniqueVisitors, row.bouncePercent === undefined ? "—" : `${row.bouncePercent}%`, row.avgTimeSeconds === undefined ? "—" : `${row.avgTimeSeconds}s`]))}
35
+ ${table("Top sources", ["Source", "Medium", "Campaign", "Visitors", "Conversions", "Revenue"], traffic.sources.map((row) => [row.source, row.medium, row.campaign, row.visitors, row.conversions ?? "—", row.revenue ?? "—"]))}
36
+ <div class="foot">Generated by Clarvivo. Open this file in a browser and use Print → Save as PDF.</div></body></html>`;
37
+ }
38
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,YAAY,IAAI,SAAS,CA+GxC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,YAAY,IAAI,SAAS,CAyJxC"}
package/dist/server.js CHANGED
@@ -2,7 +2,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { z } from "zod";
3
3
  import { createToolHandlers } from "./tools.js";
4
4
  export function createServer() {
5
- const server = new McpServer({ name: "clarvivo", version: "0.2.0" });
5
+ const server = new McpServer({ name: "clarvivo", version: "0.3.1" });
6
6
  const handlers = createToolHandlers();
7
7
  const projectId = z.union([z.number(), z.string()]).describe("Clarvivo project ID");
8
8
  server.registerTool("setup_analytics", {
@@ -46,6 +46,44 @@ export function createServer() {
46
46
  },
47
47
  annotations: { readOnlyHint: true, idempotentHint: true },
48
48
  }, handlers.getStats);
49
+ server.registerTool("get_traffic_sources", {
50
+ title: "Get traffic sources",
51
+ description: "Aggregate the selected analytics window into compact traffic-channel shares, the top ten referrers, and the top ten UTM source/medium/campaign rows. Never returns raw daily rows.",
52
+ inputSchema: {
53
+ projectId,
54
+ days: z.number().int().min(1).max(90).default(30).describe("Reporting window from 1 to 90 days"),
55
+ },
56
+ annotations: { readOnlyHint: true, idempotentHint: true },
57
+ }, handlers.getTrafficSources);
58
+ server.registerTool("get_pages", {
59
+ title: "Get top pages",
60
+ description: "Aggregate page analytics and return only the top ten pages by views, including known visitor, entry, exit, bounce, and average-time metrics.",
61
+ inputSchema: {
62
+ projectId,
63
+ days: z.number().int().min(1).max(90).default(30).describe("Reporting window from 1 to 90 days"),
64
+ },
65
+ annotations: { readOnlyHint: true, idempotentHint: true },
66
+ }, handlers.getPages);
67
+ server.registerTool("get_audience", {
68
+ title: "Get audience breakdown",
69
+ description: "Return compact device, browser, OS, country, visitor-segment, screen-resolution, and language aggregates for the selected window.",
70
+ inputSchema: {
71
+ projectId,
72
+ days: z.number().int().min(1).max(90).default(30).describe("Reporting window from 1 to 90 days"),
73
+ },
74
+ annotations: { readOnlyHint: true, idempotentHint: true },
75
+ }, handlers.getAudience);
76
+ server.registerTool("export_data", {
77
+ title: "Export analytics data",
78
+ description: "Write a CSV or JSON analytics export to a safe local path, or write a self-contained printable HTML report for saving as PDF. Returns file metadata, never file contents.",
79
+ inputSchema: {
80
+ projectId,
81
+ format: z.enum(["csv", "json", "pdf"]),
82
+ days: z.number().int().min(1).max(90).default(30).describe("Reporting window from 1 to 90 days"),
83
+ path: z.string().min(1).optional().describe("Destination inside the current working directory"),
84
+ overwrite: z.boolean().default(false).describe("Replace an existing destination file"),
85
+ },
86
+ }, handlers.exportData);
49
87
  server.registerTool("connect_revenue", {
50
88
  title: "Connect payment revenue",
51
89
  description: "Detect a supported payment SDK (or use the named provider), connect its Clarvivo webhook, and return a three-step setup checklist with the exact attribution edit. Never accepts or transmits webhook secrets.",
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -39,6 +39,25 @@ export declare function createToolHandlers(context?: ToolContext): {
39
39
  projectId: number | string;
40
40
  days?: number;
41
41
  }) => Promise<ToolResult>;
42
+ getTrafficSources: (input: {
43
+ projectId: number | string;
44
+ days?: number;
45
+ }) => Promise<ToolResult>;
46
+ getPages: (input: {
47
+ projectId: number | string;
48
+ days?: number;
49
+ }) => Promise<ToolResult>;
50
+ getAudience: (input: {
51
+ projectId: number | string;
52
+ days?: number;
53
+ }) => Promise<ToolResult>;
54
+ exportData: (input: {
55
+ projectId: number | string;
56
+ format: "csv" | "json" | "pdf";
57
+ days?: number;
58
+ path?: string;
59
+ overwrite?: boolean;
60
+ }) => Promise<ToolResult>;
42
61
  connectRevenue: (input: {
43
62
  projectId: number | string;
44
63
  provider?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/tools.js CHANGED
@@ -1,20 +1,70 @@
1
+ import fs from "node:fs";
1
2
  import path from "node:path";
2
- import { ClarvivoApiError, HttpClarvivoApi, isAnalyticsLockout, isPlanLimit, payToReadMessage, planLimitMessage, requireToken, } from "./api.js";
3
+ import { ClarvivoApiError, HttpClarvivoApi, isAnalyticsLockout, isPlanLimit, exportPlanMessage, payToReadMessage, planLimitMessage, requireToken, } from "./api.js";
4
+ import { aggregateAudience, aggregatePages, aggregateTrafficSources } from "./analytics.js";
3
5
  import { detectFramework, getInstallInstructions, normalizeFramework, } from "./frameworks.js";
4
6
  import { detectRevenueProvider, normalizeProvider, revenueChecklist, signedRevenueSnippet, } from "./payments.js";
7
+ import { generateReportHtml } from "./report.js";
5
8
  function success(data) {
6
9
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }], structuredContent: data };
7
10
  }
8
11
  function failure(error, env, mode) {
9
12
  const message = error instanceof ClarvivoApiError && error.code === "TOKEN_SCOPE_REQUIRED"
10
13
  ? `This tool needs the ${error.scope || "required"} scope. Open ${(env.CLARVIVO_BASE_URL || "https://app.clarvivo.com").replace(/\/$/, "")}/dashboard/settings?tab=api-tokens, add ${error.scope || "that scope"} to this API token (or create a token with it), then restart the MCP client and retry.`
11
- : mode === "project-limit" && isPlanLimit(error)
12
- ? planLimitMessage(env.CLARVIVO_BASE_URL)
13
- : mode === "analytics-lockout" && isAnalyticsLockout(error)
14
+ : mode === "export" && error instanceof ClarvivoApiError && error.status === 403
15
+ ? exportPlanMessage(env.CLARVIVO_BASE_URL)
16
+ : mode === "export" && isAnalyticsLockout(error)
14
17
  ? payToReadMessage(env.CLARVIVO_BASE_URL)
15
- : error instanceof Error ? error.message : "Clarvivo request failed.";
18
+ : mode === "project-limit" && isPlanLimit(error)
19
+ ? planLimitMessage(env.CLARVIVO_BASE_URL)
20
+ : mode === "analytics-lockout" && isAnalyticsLockout(error)
21
+ ? payToReadMessage(env.CLARVIVO_BASE_URL)
22
+ : error instanceof Error ? error.message : "Clarvivo request failed.";
16
23
  return { content: [{ type: "text", text: message }], isError: true };
17
24
  }
25
+ function reportingDays(input, fallback = 30) {
26
+ return Math.max(1, Math.min(90, Math.round(input ?? fallback)));
27
+ }
28
+ function exportPath(cwd, requested, projectId, extension) {
29
+ if (requested?.split(/[\\/]+/).includes("..")) {
30
+ throw new Error("Export path cannot contain '..' traversal.");
31
+ }
32
+ const safeProject = String(projectId).replace(/[^0-9A-Za-z_-]+/g, "-") || "project";
33
+ const date = new Date().toISOString().slice(0, 10);
34
+ let target = requested?.trim() || `clarvivo-export-${safeProject}-${date}.${extension}`;
35
+ if (extension === "html" && path.extname(target).toLowerCase() !== ".html") {
36
+ target = `${target.slice(0, target.length - path.extname(target).length)}.html`;
37
+ }
38
+ const resolvedCwd = path.resolve(cwd);
39
+ const resolved = path.resolve(resolvedCwd, target);
40
+ const relative = path.relative(resolvedCwd, resolved);
41
+ if (relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) {
42
+ throw new Error("Export path must stay inside the current working directory.");
43
+ }
44
+ return resolved;
45
+ }
46
+ function exportedRowCount(format, data) {
47
+ if (format === "csv") {
48
+ const lines = data.trimEnd().split(/\r?\n/);
49
+ return Math.max(0, lines.length - 1);
50
+ }
51
+ try {
52
+ const parsed = JSON.parse(data);
53
+ if (Array.isArray(parsed))
54
+ return parsed.length;
55
+ if (parsed && typeof parsed === "object") {
56
+ const record = parsed;
57
+ if (Number.isFinite(Number(record.rowCount)))
58
+ return Number(record.rowCount);
59
+ if (Array.isArray(record.rows))
60
+ return record.rows.length;
61
+ }
62
+ }
63
+ catch {
64
+ // The successful HTTP response is still written verbatim; unknown shapes count as 0.
65
+ }
66
+ return 0;
67
+ }
18
68
  function projectApiKey(projects, projectId) {
19
69
  const project = projects.find((candidate) => String(candidate.id) === String(projectId));
20
70
  if (!project)
@@ -248,6 +298,72 @@ export function createToolHandlers(context = {}) {
248
298
  return failure(error, env, "analytics-lockout");
249
299
  }
250
300
  },
301
+ getTrafficSources: async (input) => {
302
+ try {
303
+ const days = reportingDays(input.days);
304
+ const rows = await resolveApi(context).getAnalytics(input.projectId, days);
305
+ return success({ projectId: input.projectId, days, ...aggregateTrafficSources(rows) });
306
+ }
307
+ catch (error) {
308
+ return failure(error, env, "analytics-lockout");
309
+ }
310
+ },
311
+ getPages: async (input) => {
312
+ try {
313
+ const days = reportingDays(input.days);
314
+ const rows = await resolveApi(context).getAnalytics(input.projectId, days);
315
+ return success({ projectId: input.projectId, days, pages: aggregatePages(rows) });
316
+ }
317
+ catch (error) {
318
+ return failure(error, env, "analytics-lockout");
319
+ }
320
+ },
321
+ getAudience: async (input) => {
322
+ try {
323
+ const days = reportingDays(input.days);
324
+ const rows = await resolveApi(context).getAnalytics(input.projectId, days);
325
+ return success({ projectId: input.projectId, days, ...aggregateAudience(rows) });
326
+ }
327
+ catch (error) {
328
+ return failure(error, env, "analytics-lockout");
329
+ }
330
+ },
331
+ exportData: async (input) => {
332
+ try {
333
+ const api = resolveApi(context);
334
+ const days = reportingDays(input.days);
335
+ const extension = input.format === "pdf" ? "html" : input.format;
336
+ const writtenPath = exportPath(cwd, input.path, input.projectId, extension);
337
+ if (!input.overwrite && fs.existsSync(writtenPath)) {
338
+ throw new Error(`Refusing to overwrite existing file: ${writtenPath}. Pass overwrite: true to replace it.`);
339
+ }
340
+ let data;
341
+ let rowCount;
342
+ if (input.format === "pdf") {
343
+ const rows = await api.getAnalytics(input.projectId, days);
344
+ data = generateReportHtml(input.projectId, days, rows);
345
+ rowCount = rows.length;
346
+ }
347
+ else {
348
+ const download = await api.exportData(input.projectId, input.format, days);
349
+ data = download.data;
350
+ rowCount = exportedRowCount(input.format, data);
351
+ }
352
+ fs.writeFileSync(writtenPath, data, { encoding: "utf8", flag: input.overwrite ? "w" : "wx" });
353
+ const sizeBytes = Buffer.byteLength(data, "utf8");
354
+ return success({
355
+ projectId: input.projectId,
356
+ format: input.format,
357
+ path: writtenPath,
358
+ rowCount,
359
+ sizeBytes,
360
+ ...(input.format === "pdf" ? { message: "Open this HTML report in a browser and use Print → Save as PDF." } : {}),
361
+ });
362
+ }
363
+ catch (error) {
364
+ return failure(error, env, "export");
365
+ }
366
+ },
251
367
  connectRevenue: async (input) => {
252
368
  try {
253
369
  const api = resolveApi(context);
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAEL,gBAAgB,EAEhB,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,kBAAkB,GAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAYjD,SAAS,OAAO,CAAC,IAA6B;IAC5C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;AACvG,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,GAAsB,EAAE,IAAuD;IAC9G,MAAM,OAAO,GAAG,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB;QACxF,CAAC,CAAC,uBAAuB,KAAK,CAAC,KAAK,IAAI,UAAU,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,IAAI,0BAA0B,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,2CAA2C,KAAK,CAAC,KAAK,IAAI,YAAY,wFAAwF;QACxS,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAC9E,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC5C,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC;gBAC9C,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAC3C,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,WAAW,CAAC,KAAK,CAAC;oBAChD,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC;oBACzC,CAAC,CAAC,IAAI,KAAK,mBAAmB,IAAI,kBAAkB,CAAC,KAAK,CAAC;wBACzD,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC;wBACzC,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;IAC1E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB,EAAE,QAAQ,GAAG,EAAE;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,SAA6B,EAAE,SAA0B,EAAE,SAAiB;IAC3G,IAAI,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC;IACpF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,mBAAmB,WAAW,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;IACxF,IAAI,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;QAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAClF,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAsB,EAAE,IAAY;IAC5D,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC;QAChD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAiC,CAAC;YACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qFAAqF;IACvF,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,QAA0D,EAAE,SAA0B;IAC3G,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACzF,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,iBAAiB,CAAC,CAAC;IACrE,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC1D,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC3C,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,GAAG,KAAK,OAAO,CAAC;IACvC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,IAAoB;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACvE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC;YACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,8DAA8D,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACxG,CAAC;AAED,SAAS,UAAU,CAAC,OAAoB;IACtC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,GAAG,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,OAAO,CAAC,OAAoB;IACnC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,0BAA0B,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5H,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAqB,EAAE,MAAc;IACjE,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,QAA4B,EAAE,GAAW;IAChE,IAAI,QAAQ;QAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yIAAyI,CAAC,CAAC;IAC7J,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,KAAK,CAAC,KAAc;IAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAmC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxI,CAAC;AAED,SAAS,UAAU,CAAC,IAAoB,EAAE,IAAqD,EAAE,SAAmB,EAAE,SAAmB;IACvI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAuB,CAAC;gBAC5H,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;gBACjG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAoB,EAAE,aAAqB,EAAE,IAAY;IACtF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAkE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACzG,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAChD,cAAc,EAAE,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC;QAC/E,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;KAC9C,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAAE,SAAS;QACpH,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAA0C,CAAC,EAAE,CAAC;YAC3F,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,GAAG,MAAM;QACT,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjG,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzG,eAAe,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KACjI,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAuB,EAAE;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEzC,OAAO;QACL,cAAc,EAAE,KAAK,EAAE,KAA4D,EAAuB,EAAE;YAC1G,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC1C,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC3F,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBACxG,CAAC;gBACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClG,OAAO,OAAO,CAAC;oBACb,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;oBAC/F,qBAAqB,EAAE,MAAM;oBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,OAAO;oBACP,QAAQ,EAAE,QAAQ,OAAO,CAAC,IAAI,uFAAuF,OAAO,CAAC,EAAE,GAAG;iBACnI,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,KAA0E,EAAuB,EAAE;YAC3H,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;gBAClC,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,SAAS,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;oBAC7E,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC3G,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,iBAAiB,CAAC,CAAC;oBACrE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;oBACxB,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;gBACzB,CAAC;gBACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtD,OAAO,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACnH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,kBAAkB,EAAE,KAAK,EAAE,KAAqC,EAAuB,EAAE;YACvF,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBAChF,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS;oBAClC,CAAC,CAAC,0BAA0B,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,sBAAsB;oBAC/E,CAAC,CAAC,wJAAwJ,CAAC;gBAC7J,OAAO,OAAO,CAAC;oBACb,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,cAAc,EAAE,KAAK;oBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,OAAO,EAAE,MAAM,CAAC,MAAM;wBACpB,CAAC,CAAC,GAAG,WAAW,8BAA8B,UAAU,EAAE;wBAC1D,CAAC,CAAC,WAAW;iBAChB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,YAAY,EAAE,KAAK,IAAyB,EAAE;YAC5C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC;gBAC1D,OAAO,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACvI,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,QAAQ,EAAE,KAAK,EAAE,KAAoD,EAAuB,EAAE;YAC5F,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAClD,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;oBACvC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;oBAChC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;iBAChC,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC;oBACb,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;oBACrD,OAAO,EAAE;wBACP,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;wBACnC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;wBAClC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;qBACvC;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,KAAoD,EAAuB,EAAE;YACrG,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC3E,OAAO,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,QAAQ,EAAE,KAAK,EAAE,KAAoD,EAAuB,EAAE;YAC5F,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC3E,OAAO,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,WAAW,EAAE,KAAK,EAAE,KAAoD,EAAuB,EAAE;YAC/F,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC3E,OAAO,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,KAAwH,EAAuB,EAAE;YAClK,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjE,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC5E,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBACnD,MAAM,IAAI,KAAK,CAAC,wCAAwC,WAAW,uCAAuC,CAAC,CAAC;gBAC9G,CAAC;gBACD,IAAI,IAAY,CAAC;gBACjB,IAAI,QAAgB,CAAC;gBACrB,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC3B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC3D,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACvD,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC3E,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;oBACrB,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClD,CAAC;gBACD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9F,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAClD,OAAO,OAAO,CAAC;oBACb,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,WAAW;oBACjB,QAAQ;oBACR,SAAS;oBACT,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,iEAAiE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClH,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,cAAc,EAAE,KAAK,EAAE,KAAgF,EAAuB,EAAE;YAC9H,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACzF,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACvC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;oBACxE,OAAO,OAAO,CAAC;wBACb,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,gSAAgS;wBACzS,OAAO,EAAE,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBACvD,WAAW,EAAE,4HAA4H;qBAC1I,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACvE,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBACzE,OAAO,OAAO,CAAC;oBACb,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,QAAQ;oBACR,YAAY,EAAE,QAAQ,EAAE,WAAW;oBACnC,SAAS,EAAE,IAAI;oBACf,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;oBAC7C,SAAS;oBACT,iBAAiB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;iBACxF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,aAAa,EAAE,KAAK,EAAE,KAAqC,EAAuB,EAAE;YAClF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;gBAC5F,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;gBAC5H,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,QAAQ,UAAU,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,eAAe,CAAC;gBAC5J,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;oBACtD,CAAC,CAAC,wIAAwI;oBAC1I,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChI,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,QAAQ,EAAE,KAAK,EAAE,KAA+G,EAAuB,EAAE;YACvJ,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE;oBACnE,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC7D,CAAC,CAAC;gBACH,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,KAAK,IAAI,CAAC;gBAClF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAC3F,CAAC,CAAC,kEAAkE;oBACpE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC;gBACtH,OAAO,OAAO,CAAC;oBACb,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK;oBACL,YAAY,EAAE,8BAA8B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,IAAI;oBACzF,SAAS,EAAE,4BAA4B,KAAK,2EAA2E;oBACvH,GAAG,EAAE,uFAAuF;iBAC7F,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,WAAW,EAAE,KAAK,EAAE,KAAqC,EAAuB,EAAE;YAChF,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACvE,OAAO,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACjF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,YAAY,EAAE,KAAK,EAAE,KAAgG,EAAuB,EAAE;YAC5I,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjJ,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClF,MAAM,MAAM,GAAG,QAAQ,IAAI,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBACzG,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzE,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBACnC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,OAAO,CAAC;qBAC9C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;qBACrD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,iGAAiG,EAAE,CAAC,CAAC,CAAC;gBACxJ,OAAO,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YAChH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,WAAW,EAAE,KAAK,EAAE,KAAsE,EAAuB,EAAE;YACjH,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpG,MAAM,KAAK,GAAG,QAAQ,IAAI,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBACnH,OAAO,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AACnC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@clarvivo/mcp",
3
3
  "mcpName": "io.github.cracked-collective/clarvivo-mcp",
4
- "version": "0.2.0",
4
+ "version": "0.3.1",
5
5
  "description": "Install Clarvivo analytics, connect payments, and manage events, funnels, and alerts from your coding agent.",
6
6
  "type": "module",
7
7
  "bin": {