@diskd-ai/email-client-mcp 0.1.20 → 0.1.21

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.
@@ -4,9 +4,10 @@
4
4
  * (e.g. a different mailbox-id scheme) only edits one file.
5
5
  */
6
6
  /**
7
- * Sanitize an account id for use as a Drive mailbox id (slug subset
8
- * `[a-z0-9-]{1,64}`). Lowercase, replace anything else with `-`, collapse
9
- * runs, trim leading/trailing dashes, truncate. Empty input -> 'mailbox'.
7
+ * Map an account id to the Exchange-owned Drive mailbox id namespace.
8
+ * Lowercase, replace anything else with `-`, collapse runs, trim
9
+ * leading/trailing dashes, then prefix with `exchange-`.
10
+ * Empty input -> `exchange-default`.
10
11
  */
11
12
  export declare const sanitizeMailboxId: (raw: string) => string;
12
13
  /**
@@ -4,19 +4,24 @@
4
4
  * (e.g. a different mailbox-id scheme) only edits one file.
5
5
  */
6
6
  const MAILBOX_ID_RE = /^[a-z0-9-]{1,64}$/;
7
+ const EXCHANGE_MAILBOX_PREFIX = "exchange-";
7
8
  /**
8
- * Sanitize an account id for use as a Drive mailbox id (slug subset
9
- * `[a-z0-9-]{1,64}`). Lowercase, replace anything else with `-`, collapse
10
- * runs, trim leading/trailing dashes, truncate. Empty input -> 'mailbox'.
9
+ * Map an account id to the Exchange-owned Drive mailbox id namespace.
10
+ * Lowercase, replace anything else with `-`, collapse runs, trim
11
+ * leading/trailing dashes, then prefix with `exchange-`.
12
+ * Empty input -> `exchange-default`.
11
13
  */
12
14
  export const sanitizeMailboxId = (raw) => {
13
- const lowered = raw
15
+ const slug = raw
14
16
  .toLowerCase()
15
17
  .replace(/[^a-z0-9-]+/g, "-")
16
18
  .replace(/-+/g, "-")
17
19
  .replace(/^-|-$/g, "");
18
- const truncated = lowered.slice(0, 64);
19
- return truncated.length === 0 ? "mailbox" : truncated;
20
+ if (slug.startsWith(EXCHANGE_MAILBOX_PREFIX))
21
+ return slug.slice(0, 64);
22
+ const maxSlugLength = 64 - EXCHANGE_MAILBOX_PREFIX.length;
23
+ const truncated = slug.slice(0, maxSlugLength);
24
+ return `${EXCHANGE_MAILBOX_PREFIX}${truncated.length === 0 ? "default" : truncated}`;
20
25
  };
21
26
  /**
22
27
  * Caller-supplied folderId for a given IMAP mailbox path. We keep the
@@ -1 +1 @@
1
- {"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/store/conventions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAU,EAAE;IACvD,MAAM,OAAO,GAAG,GAAG;SAChB,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,QAAQ,CAAC;AAE3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAE,GAAW,EAAU,EAAE,CAAC,GAAG,WAAW,IAAI,GAAG,EAAE,CAAC;AAEnG;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAAkB,EAC2B,EAAE;IAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/store/conventions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,uBAAuB,GAAG,WAAW,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAU,EAAE;IACvD,MAAM,IAAI,GAAG,GAAG;SACb,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,EAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAC/C,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACvF,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,QAAQ,CAAC;AAE3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAE,GAAW,EAAU,EAAE,CAAC,GAAG,WAAW,IAAI,GAAG,EAAE,CAAC;AAEnG;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAAkB,EAC2B,EAAE;IAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diskd-ai/email-client-mcp",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "description": "Drive-backed multi-account email MCP with reliable IMAP-to-mailboxes sync.",
5
5
  "license": "LGPL-3.0-or-later",
6
6
  "repository": {