gogcli-mcp-slides 4.8.0 → 4.8.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.
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "metadata": {
9
9
  "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
10
- "version": "4.8.0"
10
+ "version": "4.8.1"
11
11
  },
12
12
  "plugins": [
13
13
  {
@@ -15,7 +15,7 @@
15
15
  "displayName": "gogcli (Slides)",
16
16
  "source": "./",
17
17
  "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
18
- "version": "4.8.0",
18
+ "version": "4.8.1",
19
19
  "author": {
20
20
  "name": "Chris Hall"
21
21
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gogcli-mcp-slides",
3
3
  "displayName": "gogcli (Slides)",
4
- "version": "4.8.0",
4
+ "version": "4.8.1",
5
5
  "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
6
6
  "author": {
7
7
  "name": "Chris Hall",
package/.mcp.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "mcpServers": {
3
3
  "gogcli-slides": {
4
- "command": "node",
4
+ "command": "npx",
5
5
  "args": [
6
- "${CLAUDE_PLUGIN_ROOT}/dist/index.js"
6
+ "-y",
7
+ "gogcli-mcp-slides"
7
8
  ],
8
9
  "env": {
9
10
  "GOG_ACCOUNT": "${GOG_ACCOUNT}",
package/dist/index.js CHANGED
@@ -746,6 +746,7 @@ __export(util_exports, {
746
746
  required: () => required,
747
747
  safeExtend: () => safeExtend,
748
748
  shallowClone: () => shallowClone,
749
+ sizeCaps: () => sizeCaps,
749
750
  slugify: () => slugify,
750
751
  stringifyPrimitive: () => stringifyPrimitive,
751
752
  toZod: () => toZod,
@@ -1265,6 +1266,18 @@ function prefixIssues(path, issues) {
1265
1266
  function unwrapMessage(message) {
1266
1267
  return typeof message === "string" ? message : message?.message;
1267
1268
  }
1269
+ function sizeCaps(defChecks) {
1270
+ const caps = [];
1271
+ for (const ch of defChecks ?? []) {
1272
+ const d = ch._zod.def;
1273
+ if (!/_(length|size)$|_equals$/.test(d.check))
1274
+ break;
1275
+ const max = d.maximum ?? d.length ?? d.size;
1276
+ if (max >= 0)
1277
+ caps.push([max, ch]);
1278
+ }
1279
+ return caps;
1280
+ }
1268
1281
  function attachSchema(issues, start, inst) {
1269
1282
  var _a3;
1270
1283
  for (let i = start; i < issues.length; i++) {
@@ -2685,7 +2698,7 @@ ${content.join("\n")}
2685
2698
  var version = {
2686
2699
  major: 4,
2687
2700
  minor: 6,
2688
- patch: 5
2701
+ patch: 7
2689
2702
  };
2690
2703
 
2691
2704
  // ../../node_modules/zod/v4/core/schemas.js
@@ -3441,6 +3454,31 @@ var $ZodDate = /* @__PURE__ */ $constructor("$ZodDate", (inst, def) => {
3441
3454
  return payload;
3442
3455
  };
3443
3456
  });
3457
+ function capSize(inst, size) {
3458
+ const caps = sizeCaps(inst._zod.def.checks);
3459
+ if (!caps.length)
3460
+ return;
3461
+ const cap = Math.min(...caps.map((c) => c[0]));
3462
+ const parse3 = inst._zod.parse;
3463
+ inst._zod.parse = (payload, ctx) => {
3464
+ const n = size(payload.value);
3465
+ if (n > cap && !ctx?.skipChecks && ctx?.direction !== "backward") {
3466
+ for (const [max, ch] of sizeCaps(inst._zod.def.checks)) {
3467
+ if (n > max && ch._zod.def.when(payload)) {
3468
+ const start = payload.issues.length;
3469
+ ch._zod.check(payload);
3470
+ payload.issues[start].continue = false;
3471
+ attachSchema(payload.issues, start, inst);
3472
+ return payload;
3473
+ }
3474
+ }
3475
+ }
3476
+ return parse3(payload, ctx);
3477
+ };
3478
+ }
3479
+ var arraySize = (input2) => Array.isArray(input2) ? input2.length : -1;
3480
+ var mapSize = (input2) => input2 instanceof Map ? input2.size : -1;
3481
+ var setSize = (input2) => input2 instanceof Set ? input2.size : -1;
3444
3482
  function handleArrayResult(result, final, index) {
3445
3483
  if (result.issues.length) {
3446
3484
  final.issues.push(...prefixIssues(index, result.issues));
@@ -3484,6 +3522,7 @@ var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => {
3484
3522
  }
3485
3523
  return payload;
3486
3524
  };
3525
+ capSize(inst, arraySize);
3487
3526
  });
3488
3527
  function handlePropertyResult(result, final, key, input2, optin, optout) {
3489
3528
  const isPresent = key in input2;
@@ -4440,6 +4479,7 @@ var $ZodMap = /* @__PURE__ */ $constructor("$ZodMap", (inst, def) => {
4440
4479
  return Promise.all(proms).then(() => payload);
4441
4480
  return payload;
4442
4481
  };
4482
+ capSize(inst, mapSize);
4443
4483
  });
4444
4484
  function handleMapResult(keyResult, valueResult, final, key, input2, inst, ctx) {
4445
4485
  if (keyResult.issues.length) {
@@ -4506,6 +4546,7 @@ var $ZodSet = /* @__PURE__ */ $constructor("$ZodSet", (inst, def) => {
4506
4546
  return Promise.all(proms).then(() => payload);
4507
4547
  return payload;
4508
4548
  };
4549
+ capSize(inst, setSize);
4509
4550
  });
4510
4551
  function handleSetResult(result, final) {
4511
4552
  if (result.issues.length) {
@@ -14036,9 +14077,15 @@ function generateNullableCheck(doc, ctx, schema, accessor, buildsValue = true) {
14036
14077
  doc.write(`}`);
14037
14078
  return outputVar;
14038
14079
  }
14080
+ function generateSizeGate(doc, schema, size) {
14081
+ for (const [max, check2] of sizeCaps(schema._zod.def.checks)) {
14082
+ doc.write(`if (${size} > ${numericOperand(max, check2._zod.def.check)}) return INVALID;`);
14083
+ }
14084
+ }
14039
14085
  function generateArrayCheck(doc, ctx, schema, accessor, buildsValue = true) {
14040
14086
  const def = schema._zod.def;
14041
14087
  doc.write(`if (!Array.isArray(${accessor})) return INVALID;`);
14088
+ generateSizeGate(doc, schema, `${accessor}.length`);
14042
14089
  const outputVar = buildsValue ? newVar(ctx) : null;
14043
14090
  const iVar = newVar(ctx);
14044
14091
  const elemVar = newVar(ctx);
@@ -14438,6 +14485,7 @@ function literalPropertyKey(ctx, key) {
14438
14485
  function generateMapCheck(doc, ctx, schema, accessor) {
14439
14486
  const def = schema._zod.def;
14440
14487
  doc.write(`if (!(${accessor} instanceof Map)) return INVALID;`);
14488
+ generateSizeGate(doc, schema, `${accessor}.size`);
14441
14489
  const outputVar = newVar(ctx);
14442
14490
  const kVar = newVar(ctx);
14443
14491
  const valVar = newVar(ctx);
@@ -14454,6 +14502,7 @@ function generateMapCheck(doc, ctx, schema, accessor) {
14454
14502
  function generateSetCheck(doc, ctx, schema, accessor) {
14455
14503
  const def = schema._zod.def;
14456
14504
  doc.write(`if (!(${accessor} instanceof Set)) return INVALID;`);
14505
+ generateSizeGate(doc, schema, `${accessor}.size`);
14457
14506
  const outputVar = newVar(ctx);
14458
14507
  const valVar = newVar(ctx);
14459
14508
  doc.write(`const ${outputVar} = new Set();`);
@@ -34516,7 +34565,7 @@ var API_KEY_RE = new RegExp([
34516
34565
  // webhook signing secret (Stripe-style)
34517
34566
  ].map((p) => `\\b${p}`).join("|"), "g");
34518
34567
  var GOOGLE_OAUTH_TOKEN_RE = /(?<![A-Za-z0-9+/])(?:ya29\.|1\/\/)[A-Za-z0-9._-]{8,}/g;
34519
- var QUERY_SECRET_RE = new RegExp(`([?&](?:(?:access|refresh|id|auth|session|csrf|xsrf)[_-]?token|client[_-]?secret|api[_-]?secret|api[_-]?key|password|passwd|signature|token|key|sig|(?:code[_-]?)?verifier|(?:php|j)?sess(?:ion)?[_-]?id|sid|x[-_]${HEADER_NAME_RUN}?(?:api[-_]?key|token|secret|auth)${HEADER_NAME_RUN})=)[^&#\\s"'<>\`]+`, "gi");
34568
+ var QUERY_SECRET_RE = new RegExp(`([?&#;](?:(?:access|refresh|id|auth|session|csrf|xsrf|api)[_-]?token|client[_-]?secret|api[_-]?secret|api[_-]?key|password|passwd|signature|secret|token|auth|key|sig|(?:code[_-]?)?verifier|(?:php|j)?sess(?:ion)?[_-]?id|sid|x[-_]${HEADER_NAME_RUN}?(?:api[-_]?key|token|secret|auth)${HEADER_NAME_RUN})=)[^&#\\s"'<>\`]+`, "gi");
34520
34569
  var OAUTH_CODE_RE = /([?&]code=)(?=[^&#\s"'<>`]{16,})[^&#\s"'<>`]+/gi;
34521
34570
  var FORM_PASSWORD_RE = /((?:^|[\s,;:"'(\[{])(?:password|passwd)=)[^&#\s"'<>`]+/gim;
34522
34571
  var HEADER_SECRET_RE = new RegExp(`(\\b(?:x[-_]${HEADER_NAME_RUN}?(?:api[-_]?key|token|secret|auth)${HEADER_NAME_RUN}|api[-_]?key)\\s*:\\s*)[^\\s,;"'<>\`]+`, "gi");
@@ -34527,6 +34576,8 @@ var JSON_SECRET_KEYS = [
34527
34576
  "api[_-]?secret",
34528
34577
  "(?:x[_-])?api[_-]?key",
34529
34578
  "private[_-]?key",
34579
+ "aws[_-]?secret[_-]?access[_-]?key",
34580
+ // fleet-audit#1297
34530
34581
  "code[_-]?verifier",
34531
34582
  // PKCE; a bare `verifier` key is too generic for JSON
34532
34583
  `x[_-]${HEADER_NAME_RUN}?(?:api[_-]?key|token|secret|auth)${HEADER_NAME_RUN}`,
@@ -35515,7 +35566,7 @@ var PATH_FLAGS = /* @__PURE__ */ new Set(["out", "output", "out-dir", "output-di
35515
35566
  var ID_FLAGS = {
35516
35567
  drive: /* @__PURE__ */ new Set(["file", "filter-file"])
35517
35568
  };
35518
- var EXEC_FLAGS = /* @__PURE__ */ new Set(["on-change", "on-new", "mmdc"]);
35569
+ var EXEC_FLAGS = /* @__PURE__ */ new Set(["on-change", "on-new", "mmdc", "deploy"]);
35519
35570
  var SHORT_PATH_CLUSTER = /^-(?!-)[A-Za-z]*[of]/;
35520
35571
  var LONG_FLAG = /^--([A-Za-z0-9][A-Za-z0-9-]*)(?:=([\s\S]*))?$/;
35521
35572
  function isPathFlag(service, name) {
@@ -36089,7 +36140,7 @@ function registerSlidesTools(server) {
36089
36140
  }
36090
36141
 
36091
36142
  // ../gogcli-mcp/src/server.ts
36092
- var VERSION = true ? "4.8.0" : "0.0.0";
36143
+ var VERSION = true ? "4.8.1" : "0.0.0";
36093
36144
 
36094
36145
  // ../gogcli-mcp/src/bootstrap-auth.ts
36095
36146
  import { join as join5 } from "node:path";
package/manifest.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "manifest_version": "0.3",
4
4
  "name": "gogcli-mcp-slides",
5
5
  "display_name": "gogcli (Slides)",
6
- "version": "4.8.0",
6
+ "version": "4.8.1",
7
7
  "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
8
8
  "author": {
9
9
  "name": "Chris Hall",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gogcli-mcp-slides",
3
- "version": "4.8.0",
3
+ "version": "4.8.1",
4
4
  "mcpName": "io.github.chrischall/gogcli-mcp-slides",
5
5
  "description": "Extended Google Slides MCP server via gogcli — auth + full Slides support",
6
6
  "author": "Claude Code (AI) <https://www.anthropic.com/claude>",
@@ -24,7 +24,7 @@
24
24
  "test:coverage": "vitest run --coverage"
25
25
  },
26
26
  "dependencies": {
27
- "@chrischall/mcp-utils": "^3.0.0",
27
+ "@chrischall/mcp-utils": "^3.0.3",
28
28
  "@modelcontextprotocol/server": "^2.3.1",
29
29
  "zod": "^4.6.1"
30
30
  },
package/server.json CHANGED
@@ -7,12 +7,12 @@
7
7
  "source": "github",
8
8
  "subfolder": "packages/gogcli-mcp-slides"
9
9
  },
10
- "version": "4.8.0",
10
+ "version": "4.8.1",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "gogcli-mcp-slides",
15
- "version": "4.8.0",
15
+ "version": "4.8.1",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },