@splicr/mcp-server 0.3.0 → 0.3.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.
- package/dist/auth.d.ts +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +11 -38
- package/dist/auth.js.map +1 -1
- package/package.json +1 -1
package/dist/auth.d.ts
CHANGED
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAqCA;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAOvG;AAaD;;GAEG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAyD3C;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC"}
|
package/dist/auth.js
CHANGED
|
@@ -8,13 +8,17 @@ const WEB_URL = 'https://splicr.dev';
|
|
|
8
8
|
const SPLICR_AUTH = join(homedir(), '.splicr', 'auth.json');
|
|
9
9
|
const CORTEX_AUTH = join(homedir(), '.cortex', 'auth.json');
|
|
10
10
|
const AUTH_FILE = existsSync(SPLICR_AUTH) ? SPLICR_AUTH : existsSync(CORTEX_AUTH) ? CORTEX_AUTH : SPLICR_AUTH;
|
|
11
|
-
// Mutex to prevent concurrent refresh races
|
|
12
|
-
let refreshPromise = null;
|
|
13
11
|
function readAuthFile() {
|
|
14
12
|
if (!existsSync(AUTH_FILE))
|
|
15
13
|
return null;
|
|
16
14
|
try {
|
|
17
|
-
|
|
15
|
+
const data = JSON.parse(readFileSync(AUTH_FILE, 'utf-8'));
|
|
16
|
+
// Support both new (token) and old (access_token) formats
|
|
17
|
+
if (data.token)
|
|
18
|
+
return { token: data.token, user_id: data.user_id };
|
|
19
|
+
if (data.access_token)
|
|
20
|
+
return { token: data.access_token, user_id: data.user_id };
|
|
21
|
+
return null;
|
|
18
22
|
}
|
|
19
23
|
catch {
|
|
20
24
|
return null;
|
|
@@ -26,45 +30,16 @@ function writeAuthFile(auth) {
|
|
|
26
30
|
mkdirSync(dir, { recursive: true });
|
|
27
31
|
writeFileSync(AUTH_FILE, JSON.stringify(auth, null, 2));
|
|
28
32
|
}
|
|
29
|
-
async function refreshToken(auth) {
|
|
30
|
-
const res = await fetch(`${API_URL}/auth/refresh`, {
|
|
31
|
-
method: 'POST',
|
|
32
|
-
headers: { 'Content-Type': 'application/json' },
|
|
33
|
-
body: JSON.stringify({ refresh_token: auth.refresh_token }),
|
|
34
|
-
});
|
|
35
|
-
if (!res.ok) {
|
|
36
|
-
throw new Error('Session expired. Run `npx @splicr/mcp-server login` to re-authenticate.');
|
|
37
|
-
}
|
|
38
|
-
const body = await res.json();
|
|
39
|
-
const newAuth = {
|
|
40
|
-
access_token: body.data.access_token,
|
|
41
|
-
refresh_token: body.data.refresh_token,
|
|
42
|
-
expires_at: body.data.expires_at ?? Math.floor(Date.now() / 1000) + 3600,
|
|
43
|
-
user_id: auth.user_id,
|
|
44
|
-
};
|
|
45
|
-
writeAuthFile(newAuth);
|
|
46
|
-
return newAuth;
|
|
47
|
-
}
|
|
48
33
|
/**
|
|
49
|
-
* Load auth
|
|
34
|
+
* Load auth token. No refresh needed — token is permanent.
|
|
50
35
|
*/
|
|
51
36
|
export async function loadAuth() {
|
|
52
37
|
const auth = readAuthFile();
|
|
53
38
|
if (!auth) {
|
|
54
39
|
throw new Error('Not authenticated. Run `npx @splicr/mcp-server login` to sign in.');
|
|
55
40
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (auth.expires_at - now < fiveMinutes) {
|
|
59
|
-
if (!refreshPromise) {
|
|
60
|
-
refreshPromise = refreshToken(auth).finally(() => {
|
|
61
|
-
refreshPromise = null;
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
const refreshed = await refreshPromise;
|
|
65
|
-
return { accessToken: refreshed.access_token, refreshToken: refreshed.refresh_token, userId: refreshed.user_id };
|
|
66
|
-
}
|
|
67
|
-
return { accessToken: auth.access_token, refreshToken: auth.refresh_token, userId: auth.user_id };
|
|
41
|
+
// refreshToken kept for backward compat with api-client interface
|
|
42
|
+
return { accessToken: auth.token, refreshToken: '', userId: auth.user_id };
|
|
68
43
|
}
|
|
69
44
|
function openBrowser(url) {
|
|
70
45
|
try {
|
|
@@ -109,9 +84,7 @@ export async function login() {
|
|
|
109
84
|
const pollBody = await pollRes.json();
|
|
110
85
|
if (pollBody.data.status === 'complete') {
|
|
111
86
|
const auth = {
|
|
112
|
-
|
|
113
|
-
refresh_token: pollBody.data.refresh_token,
|
|
114
|
-
expires_at: pollBody.data.expires_at ?? Math.floor(Date.now() / 1000) + 3600,
|
|
87
|
+
token: pollBody.data.token,
|
|
115
88
|
user_id: pollBody.data.user.id,
|
|
116
89
|
};
|
|
117
90
|
writeAuthFile(auth);
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,4CAA4C,CAAC;AAC3F,MAAM,OAAO,GAAG,oBAAoB,CAAC;AAErC,oEAAoE;AACpE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|