@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.
Files changed (2) hide show
  1. package/dist/index.js +12 -6
  2. 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: z.ZodIssueCode.custom, message: `not a valid origin: ${raw}` });
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: z.ZodIssueCode.custom, message: `not a usable host/wildcard (use "apple.example.com" or "*.example.com"): ${raw}` });
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: z.ZodIssueCode.custom, message: `not a valid origin or host pattern: ${raw}` });
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: z.ZodIssueCode.custom, message: "at least one entry is required" });
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. Cause: ` + (err instanceof Error ? err.message : String(err))
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) if (e.createdAt < oldestAt) oldestAt = e.createdAt, oldestId = id;
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.1.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 --ext .ts src",
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.9",
59
- "zod": "^3.24.1"
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
- "@typescript-eslint/eslint-plugin": "^7.18.0",
64
- "@typescript-eslint/parser": "^7.18.0",
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.19.2",
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
  }