ofw-mcp 2.3.0 → 2.3.2

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.
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "OurFamilyWizard tools for Claude Code",
9
- "version": "2.3.0"
9
+ "version": "2.3.2"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -14,7 +14,7 @@
14
14
  "displayName": "OurFamilyWizard",
15
15
  "source": "./",
16
16
  "description": "OurFamilyWizard co-parenting tools for Claude — messages, calendar, expenses, and journal via MCP",
17
- "version": "2.3.0",
17
+ "version": "2.3.2",
18
18
  "author": {
19
19
  "name": "Chris Chall"
20
20
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ofw",
3
3
  "displayName": "OurFamilyWizard",
4
- "version": "2.3.0",
4
+ "version": "2.3.2",
5
5
  "description": "OurFamilyWizard co-parenting tools for Claude — messages, calendar, expenses, and journal via MCP",
6
6
  "author": {
7
7
  "name": "Chris Chall"
package/dist/auth.js CHANGED
@@ -45,28 +45,21 @@
45
45
  // - `./auth-password.js` (loginWithPassword) is a separate module
46
46
  // specifically so it can be mocked here too. This keeps the
47
47
  // selection logic independent of either implementation.
48
+ import { readEnvVar } from '@chrischall/mcp-utils';
48
49
  import { bootstrap } from '@fetchproxy/bootstrap';
49
- import { classifyBridgeError } from '@fetchproxy/server';
50
+ import { classifyBridgeError } from '@chrischall/mcp-utils/fetchproxy';
50
51
  import { loginWithPassword } from './auth-password.js';
51
52
  import { parseBoolEnv } from './config.js';
52
53
  import pkg from '../package.json' with { type: 'json' };
53
54
  /**
54
55
  * Read an env var, trim, and treat blank / `${UNEXPANDED}` placeholders as
55
56
  * unset. Defends against MCP hosts that pass `.mcp.json` env blocks through
56
- * without variable expansion.
57
+ * without variable expansion. Delegates to @chrischall/mcp-utils' `readEnvVar`,
58
+ * which applies the identical sanitization (blank, `undefined`/`null`,
59
+ * `${...}` placeholder → unset).
57
60
  */
58
61
  function readEnv(key) {
59
- const raw = process.env[key];
60
- if (typeof raw !== 'string')
61
- return undefined;
62
- const trimmed = raw.trim();
63
- if (trimmed.length === 0)
64
- return undefined;
65
- if (trimmed === 'undefined' || trimmed === 'null')
66
- return undefined;
67
- if (/^\$\{[^}]*\}$/.test(trimmed))
68
- return undefined;
69
- return trimmed;
62
+ return readEnvVar(key);
70
63
  }
71
64
  /** True if the user has explicitly disabled the fetchproxy fallback. */
72
65
  function fetchproxyDisabled() {
@@ -76,9 +69,9 @@ function fetchproxyDisabled() {
76
69
  * Resolve OFW auth using the three-path priority described at the top of
77
70
  * this file. Throws with an actionable error message when no path succeeds.
78
71
  *
79
- * Callers (i.e. `OFWClient.login()`) treat the return value as opaque
80
- * credentials — they should not branch on `source`. The field exists for
81
- * logging / future cache-keying only.
72
+ * Callers (i.e. the `OFWClient` TokenManager refresh callback) treat the
73
+ * return value as opaque credentials — they should not branch on `source`.
74
+ * The field exists for logging / future cache-keying only.
82
75
  */
83
76
  export async function resolveAuth() {
84
77
  // ── Path 1: env-var credentials (unchanged from pre-fetchproxy behavior).