mcp-google-multi 6.0.0-alpha.46 → 6.0.0-alpha.48

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 (60) hide show
  1. package/dist/doctor.js +28 -2
  2. package/dist/registry.d.ts +3 -0
  3. package/dist/registry.js +5 -0
  4. package/dist/tools/generated/_shared.d.ts +2 -1
  5. package/dist/tools/generated/_shared.js +6 -3
  6. package/dist/tools/generated/admin.d.ts +2 -1
  7. package/dist/tools/generated/admin.js +265 -265
  8. package/dist/tools/generated/analytics.d.ts +2 -1
  9. package/dist/tools/generated/analytics.js +125 -125
  10. package/dist/tools/generated/appsmarket.d.ts +2 -1
  11. package/dist/tools/generated/appsmarket.js +5 -5
  12. package/dist/tools/generated/calendar.d.ts +2 -1
  13. package/dist/tools/generated/calendar.js +55 -55
  14. package/dist/tools/generated/chat.d.ts +2 -1
  15. package/dist/tools/generated/chat.js +95 -95
  16. package/dist/tools/generated/classroom.d.ts +2 -1
  17. package/dist/tools/generated/classroom.js +209 -209
  18. package/dist/tools/generated/cloudidentity.d.ts +2 -1
  19. package/dist/tools/generated/cloudidentity.js +133 -133
  20. package/dist/tools/generated/cloudsearch.d.ts +2 -1
  21. package/dist/tools/generated/cloudsearch.js +99 -99
  22. package/dist/tools/generated/contacts.d.ts +2 -1
  23. package/dist/tools/generated/contacts.js +29 -29
  24. package/dist/tools/generated/drive.d.ts +2 -1
  25. package/dist/tools/generated/drive.js +71 -71
  26. package/dist/tools/generated/driveactivity.d.ts +2 -1
  27. package/dist/tools/generated/driveactivity.js +3 -3
  28. package/dist/tools/generated/drivelabels.d.ts +2 -1
  29. package/dist/tools/generated/drivelabels.js +53 -53
  30. package/dist/tools/generated/forms.d.ts +2 -1
  31. package/dist/tools/generated/forms.js +7 -7
  32. package/dist/tools/generated/gmail.d.ts +2 -1
  33. package/dist/tools/generated/gmail.js +117 -117
  34. package/dist/tools/generated/groupsmigration.d.ts +2 -1
  35. package/dist/tools/generated/groupsmigration.js +3 -3
  36. package/dist/tools/generated/groupssettings.d.ts +2 -1
  37. package/dist/tools/generated/groupssettings.js +7 -7
  38. package/dist/tools/generated/keep.d.ts +2 -1
  39. package/dist/tools/generated/keep.js +15 -15
  40. package/dist/tools/generated/licensing.d.ts +2 -1
  41. package/dist/tools/generated/licensing.js +15 -15
  42. package/dist/tools/generated/meet.d.ts +2 -1
  43. package/dist/tools/generated/meet.js +27 -27
  44. package/dist/tools/generated/postmaster.d.ts +2 -1
  45. package/dist/tools/generated/postmaster.js +9 -9
  46. package/dist/tools/generated/reseller.d.ts +2 -1
  47. package/dist/tools/generated/reseller.js +35 -35
  48. package/dist/tools/generated/script.d.ts +2 -1
  49. package/dist/tools/generated/script.js +33 -33
  50. package/dist/tools/generated/searchconsole.d.ts +2 -1
  51. package/dist/tools/generated/searchconsole.js +3 -3
  52. package/dist/tools/generated/sheets.d.ts +2 -1
  53. package/dist/tools/generated/sheets.js +15 -15
  54. package/dist/tools/generated/tasks.d.ts +2 -1
  55. package/dist/tools/generated/tasks.js +5 -5
  56. package/dist/tools/generated/vault.d.ts +2 -1
  57. package/dist/tools/generated/vault.js +67 -67
  58. package/dist/tools/generated/workspaceevents.d.ts +2 -1
  59. package/dist/tools/generated/workspaceevents.js +31 -31
  60. package/package.json +1 -1
package/dist/doctor.js CHANGED
@@ -341,9 +341,35 @@ export function renderDoctorText(report) {
341
341
  out.push(`Overall: ${report.verdict.toUpperCase()}`);
342
342
  return out.join('\n');
343
343
  }
344
- /** Mask the local-part of an email so a report never carries a full address (BR8). */
344
+ const EMAIL_LOCAL_CHAR = /[A-Za-z0-9._%+-]/;
345
+ const EMAIL_DOMAIN_CHAR = /[A-Za-z0-9.-]/;
346
+ /** Mask the local-part of an email so a report never carries a full address
347
+ * (BR8). A linear scan, not a regex: the `local* @domain` pattern backtracks
348
+ * polynomially on long local-charset runs without an @ (CodeQL
349
+ * js/polynomial-redos), and report text can embed arbitrary error strings. */
345
350
  function maskEmails(text) {
346
- return text.replace(/([A-Za-z0-9._%+-])[A-Za-z0-9._%+-]*(@[A-Za-z0-9.-]+)/g, '$1***$2');
351
+ let out = '';
352
+ let i = 0;
353
+ while (i < text.length) {
354
+ if (text[i] === '@') {
355
+ let j = i + 1;
356
+ while (j < text.length && EMAIL_DOMAIN_CHAR.test(text[j]))
357
+ j += 1;
358
+ let k = out.length;
359
+ while (k > 0 && EMAIL_LOCAL_CHAR.test(out[k - 1]))
360
+ k -= 1;
361
+ if (j > i + 1 && k < out.length) {
362
+ // keep the first local char, mask the rest ('*' is outside the local
363
+ // charset, so a masked run can never be re-masked by a later @)
364
+ out = `${out.slice(0, k + 1)}***${text.slice(i, j)}`;
365
+ i = j;
366
+ continue;
367
+ }
368
+ }
369
+ out += text[i];
370
+ i += 1;
371
+ }
372
+ return out;
347
373
  }
348
374
  /** Redacted, paste-ready bug report (BR8): verdicts + provenance labels + token
349
375
  * statuses + slugs; NO token values, secrets, keys, or full email addresses. */
@@ -62,6 +62,9 @@ export declare class ToolRegistry {
62
62
  constructor(server: McpServer, policy: Policy, mode?: DiscoveryMode, metrics?: Metrics | null, accounts?: () => AccountSet);
63
63
  registerMeta: McpServer['registerTool'];
64
64
  services(): string[];
65
+ /** The registry's OWN alias list: registration-time schema builders (the
66
+ * generated account enums) read this, never the process global. */
67
+ accountAliases(): readonly string[];
65
68
  /** Declared input-schema keys + scalar kinds for one tool (tools/call arg
66
69
  * normalization; the kind drives value coercion on renamed keys). */
67
70
  argShape(name: string): ArgShape | undefined;
package/dist/registry.js CHANGED
@@ -245,6 +245,11 @@ export class ToolRegistry {
245
245
  services() {
246
246
  return [...new Set(this.tools.filter((t) => !t.meta).map((t) => t.service))];
247
247
  }
248
+ /** The registry's OWN alias list: registration-time schema builders (the
249
+ * generated account enums) read this, never the process global. */
250
+ accountAliases() {
251
+ return this.accounts().aliases;
252
+ }
248
253
  /** Declared input-schema keys + scalar kinds for one tool (tools/call arg
249
254
  * normalization; the kind drives value coercion on renamed keys). */
250
255
  argShape(name) {
@@ -21,5 +21,6 @@ export interface GeneratedToolDef {
21
21
  }>;
22
22
  shape: z.ZodRawShape;
23
23
  }
24
- export declare function accountField(): z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
24
+ export declare function accountField(aliases?: readonly string[]): z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
25
+ export type { ExecuteDeps } from '../../executor.js';
25
26
  export declare function registerGeneratedTool(registry: ToolRegistry, def: GeneratedToolDef, deps?: ExecuteDeps): void;
@@ -1,7 +1,10 @@
1
- import { accountAliasSchema } from '../../accounts.js';
1
+ import { accountAliasSchema, accountAliasSchemaFor } from '../../accounts.js';
2
2
  import { executeApiMethod } from '../../executor.js';
3
- export function accountField() {
4
- return accountAliasSchema.optional().describe('Google account alias (omit for the default account)');
3
+ export function accountField(aliases) {
4
+ // Per-registry enum when the caller supplies its alias list (regenerated
5
+ // code passes registry.accountAliases()); the no-arg form keeps the
6
+ // global-bound schema for compatibility.
7
+ return (aliases ? accountAliasSchemaFor(aliases) : accountAliasSchema).optional().describe('Google account alias (omit for the default account)');
5
8
  }
6
9
  export function registerGeneratedTool(registry, def, deps = {}) {
7
10
  // Widened locally: `cud` is a registry extension the SDK config type doesn't
@@ -1,2 +1,3 @@
1
1
  import type { ToolRegistry } from '../../registry.js';
2
- export declare function registerAdminGeneratedTools(registry: ToolRegistry): void;
2
+ import { type ExecuteDeps } from './_shared.js';
3
+ export declare function registerAdminGeneratedTools(registry: ToolRegistry, deps?: ExecuteDeps): void;