@aligulzar729/google-ads-mcp 0.1.0 → 0.2.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.
- package/dist/index.js +12 -6
- package/package.json +9 -10
package/dist/index.js
CHANGED
|
@@ -39,22 +39,22 @@ var httpExtra = z.object({
|
|
|
39
39
|
try {
|
|
40
40
|
out.push(new URL(raw).origin);
|
|
41
41
|
} catch {
|
|
42
|
-
ctx.addIssue({ code:
|
|
42
|
+
ctx.addIssue({ code: "custom", message: `not a valid origin: ${raw}` });
|
|
43
43
|
}
|
|
44
44
|
} else if (hostPat.test(raw)) {
|
|
45
45
|
const labels = (raw.startsWith("*.") ? raw.slice(2) : raw).split(".");
|
|
46
46
|
const malformed = raw.startsWith(".") || raw.endsWith(".") || labels.some((l) => !l);
|
|
47
47
|
const tooBroad = labels.length < 2 && raw !== "localhost";
|
|
48
48
|
if (malformed || tooBroad) {
|
|
49
|
-
ctx.addIssue({ code:
|
|
49
|
+
ctx.addIssue({ code: "custom", message: `not a usable host/wildcard (use "apple.example.com" or "*.example.com"): ${raw}` });
|
|
50
50
|
} else {
|
|
51
51
|
out.push(raw);
|
|
52
52
|
}
|
|
53
53
|
} else {
|
|
54
|
-
ctx.addIssue({ code:
|
|
54
|
+
ctx.addIssue({ code: "custom", message: `not a valid origin or host pattern: ${raw}` });
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
if (!out.length) ctx.addIssue({ code:
|
|
57
|
+
if (!out.length) ctx.addIssue({ code: "custom", message: "at least one entry is required" });
|
|
58
58
|
return out;
|
|
59
59
|
})
|
|
60
60
|
});
|
|
@@ -393,7 +393,8 @@ function loadSqlite() {
|
|
|
393
393
|
return requireCjs("node:sqlite");
|
|
394
394
|
} catch (err) {
|
|
395
395
|
throw new Error(
|
|
396
|
-
`HTTP mode needs Node's built-in SQLite ("node:sqlite"), available in Node >= 22.5 (some 22.x builds require the --experimental-sqlite flag). This runtime does not provide it; upgrade Node to run HTTP mode. stdio mode does not use it
|
|
396
|
+
`HTTP mode needs Node's built-in SQLite ("node:sqlite"), available in Node >= 22.5 (some 22.x builds require the --experimental-sqlite flag). This runtime does not provide it; upgrade Node to run HTTP mode. stdio mode does not use it.`,
|
|
397
|
+
{ cause: err }
|
|
397
398
|
);
|
|
398
399
|
}
|
|
399
400
|
}
|
|
@@ -730,7 +731,12 @@ var PageCache = class {
|
|
|
730
731
|
while (this.entries.size >= this.MAX_ENTRIES) {
|
|
731
732
|
let oldestId = null;
|
|
732
733
|
let oldestAt = Infinity;
|
|
733
|
-
for (const [id, e] of this.entries)
|
|
734
|
+
for (const [id, e] of this.entries) {
|
|
735
|
+
if (e.createdAt < oldestAt) {
|
|
736
|
+
oldestAt = e.createdAt;
|
|
737
|
+
oldestId = id;
|
|
738
|
+
}
|
|
739
|
+
}
|
|
734
740
|
if (oldestId) this.entries.delete(oldestId);
|
|
735
741
|
else break;
|
|
736
742
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aligulzar729/google-ads-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Manage Google Ads from Claude, Codex, LibreChat, or any MCP client. Natural-language reporting plus guarded campaign, keyword, and Performance Max operations.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"dev:stdio": "tsx src/index.ts --stdio",
|
|
19
19
|
"start": "node dist/index.js",
|
|
20
20
|
"typecheck": "tsc --noEmit",
|
|
21
|
-
"lint": "eslint
|
|
21
|
+
"lint": "eslint src",
|
|
22
22
|
"test": "vitest run",
|
|
23
23
|
"prepublishOnly": "npm run build && npm test"
|
|
24
24
|
},
|
|
@@ -55,19 +55,18 @@
|
|
|
55
55
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
56
56
|
"google-ads-api": "^23.0.0",
|
|
57
57
|
"google-auth-library": "^9.15.0",
|
|
58
|
-
"hono": "^4.12.
|
|
59
|
-
"zod": "^
|
|
58
|
+
"hono": "^4.12.28",
|
|
59
|
+
"zod": "^4.4.3"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
+
"@eslint/js": "^10.0.1",
|
|
62
63
|
"@types/node": "^22.10.0",
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"eslint": "^8.57.1",
|
|
66
|
-
"eslint-import-resolver-typescript": "^3.7.0",
|
|
67
|
-
"eslint-plugin-import": "^2.31.0",
|
|
64
|
+
"eslint": "^10.6.0",
|
|
65
|
+
"globals": "^17.7.0",
|
|
68
66
|
"tsup": "^8.3.5",
|
|
69
|
-
"tsx": "^4.
|
|
67
|
+
"tsx": "^4.23.0",
|
|
70
68
|
"typescript": "^5.7.2",
|
|
69
|
+
"typescript-eslint": "^8.63.0",
|
|
71
70
|
"vitest": "^2.1.8"
|
|
72
71
|
}
|
|
73
72
|
}
|