@apify/mcpc 0.1.0 → 0.1.3
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/.claude/settings.local.json +6 -2
- package/.idea/workspace.xml +283 -274
- package/README.md +190 -112
- package/TODOs.md +39 -48
- package/dist/bridge/index.js +131 -76
- package/dist/bridge/index.js.map +1 -1
- package/dist/cli/commands/auth.js +1 -1
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/clean.d.ts.map +1 -1
- package/dist/cli/commands/clean.js +31 -56
- package/dist/cli/commands/clean.js.map +1 -1
- package/dist/cli/commands/sessions.d.ts.map +1 -1
- package/dist/cli/commands/sessions.js +115 -40
- package/dist/cli/commands/sessions.js.map +1 -1
- package/dist/cli/helpers.d.ts +3 -0
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/helpers.js +91 -15
- package/dist/cli/helpers.js.map +1 -1
- package/dist/cli/index.js +13 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +26 -4
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/shell-parser.d.ts.map +1 -1
- package/dist/cli/shell-parser.js.map +1 -1
- package/dist/cli/shell.d.ts.map +1 -1
- package/dist/cli/shell.js +9 -8
- package/dist/cli/shell.js.map +1 -1
- package/dist/core/factory.d.ts +2 -0
- package/dist/core/factory.d.ts.map +1 -1
- package/dist/core/factory.js +3 -1
- package/dist/core/factory.js.map +1 -1
- package/dist/core/mcp-client.d.ts.map +1 -1
- package/dist/core/mcp-client.js +8 -12
- package/dist/core/mcp-client.js.map +1 -1
- package/dist/core/transports.d.ts +5 -1
- package/dist/core/transports.d.ts.map +1 -1
- package/dist/core/transports.js +39 -9
- package/dist/core/transports.js.map +1 -1
- package/dist/lib/auth/keychain.d.ts.map +1 -1
- package/dist/lib/auth/keychain.js +5 -2
- package/dist/lib/auth/keychain.js.map +1 -1
- package/dist/lib/auth/oauth-flow.d.ts.map +1 -1
- package/dist/lib/auth/oauth-flow.js +11 -2
- package/dist/lib/auth/oauth-flow.js.map +1 -1
- package/dist/lib/auth/oauth-provider.d.ts +19 -8
- package/dist/lib/auth/oauth-provider.d.ts.map +1 -1
- package/dist/lib/auth/oauth-provider.js +95 -27
- package/dist/lib/auth/oauth-provider.js.map +1 -1
- package/dist/lib/auth/oauth-token-manager.d.ts +8 -0
- package/dist/lib/auth/oauth-token-manager.d.ts.map +1 -1
- package/dist/lib/auth/oauth-token-manager.js +43 -0
- package/dist/lib/auth/oauth-token-manager.js.map +1 -1
- package/dist/lib/auth/{auth-profiles.d.ts → profiles.d.ts} +2 -1
- package/dist/lib/auth/profiles.d.ts.map +1 -0
- package/dist/lib/auth/{auth-profiles.js → profiles.js} +26 -10
- package/dist/lib/auth/profiles.js.map +1 -0
- package/dist/lib/auth/token-refresh.js +1 -1
- package/dist/lib/auth/token-refresh.js.map +1 -1
- package/dist/lib/bridge-client.js.map +1 -1
- package/dist/lib/bridge-manager.d.ts +0 -1
- package/dist/lib/bridge-manager.d.ts.map +1 -1
- package/dist/lib/bridge-manager.js +32 -46
- package/dist/lib/bridge-manager.js.map +1 -1
- package/dist/lib/cleanup.d.ts +5 -0
- package/dist/lib/cleanup.d.ts.map +1 -0
- package/dist/lib/cleanup.js +48 -0
- package/dist/lib/cleanup.js.map +1 -0
- package/dist/lib/errors.d.ts +1 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +5 -1
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/session-client.d.ts.map +1 -1
- package/dist/lib/session-client.js +7 -7
- package/dist/lib/session-client.js.map +1 -1
- package/dist/lib/sessions.d.ts +6 -1
- package/dist/lib/sessions.d.ts.map +1 -1
- package/dist/lib/sessions.js +71 -13
- package/dist/lib/sessions.js.map +1 -1
- package/dist/lib/types.d.ts +6 -3
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/utils.d.ts +2 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +16 -3
- package/dist/lib/utils.js.map +1 -1
- package/docs/claude-skill/README.md +38 -0
- package/docs/claude-skill/SKILL.md +159 -0
- package/package.json +8 -3
- package/PHASE1-SUMMARY.md +0 -269
- package/dist/lib/auth/auth-profiles.d.ts.map +0 -1
- package/dist/lib/auth/auth-profiles.js.map +0 -1
|
@@ -12,6 +12,7 @@ export class OAuthTokenManager {
|
|
|
12
12
|
accessToken = null;
|
|
13
13
|
accessTokenExpiresAt = null;
|
|
14
14
|
onTokenRefresh;
|
|
15
|
+
onBeforeRefresh;
|
|
15
16
|
constructor(options) {
|
|
16
17
|
this.serverUrl = options.serverUrl;
|
|
17
18
|
this.profileName = options.profileName;
|
|
@@ -22,6 +23,9 @@ export class OAuthTokenManager {
|
|
|
22
23
|
if (options.onTokenRefresh) {
|
|
23
24
|
this.onTokenRefresh = options.onTokenRefresh;
|
|
24
25
|
}
|
|
26
|
+
if (options.onBeforeRefresh) {
|
|
27
|
+
this.onBeforeRefresh = options.onBeforeRefresh;
|
|
28
|
+
}
|
|
25
29
|
}
|
|
26
30
|
isAccessTokenExpired() {
|
|
27
31
|
if (!this.accessToken || !this.accessTokenExpiresAt) {
|
|
@@ -29,7 +33,36 @@ export class OAuthTokenManager {
|
|
|
29
33
|
}
|
|
30
34
|
return Date.now() / 1000 > this.accessTokenExpiresAt - EXPIRY_BUFFER_SECONDS;
|
|
31
35
|
}
|
|
36
|
+
getSecondsUntilExpiry() {
|
|
37
|
+
if (!this.accessToken || !this.accessTokenExpiresAt) {
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
const secondsUntil = this.accessTokenExpiresAt - EXPIRY_BUFFER_SECONDS - Math.floor(Date.now() / 1000);
|
|
41
|
+
return Math.max(0, secondsUntil);
|
|
42
|
+
}
|
|
32
43
|
async refreshAccessToken() {
|
|
44
|
+
if (this.onBeforeRefresh) {
|
|
45
|
+
logger.debug('Reloading tokens from storage before refresh...');
|
|
46
|
+
const latestTokens = await this.onBeforeRefresh();
|
|
47
|
+
if (latestTokens) {
|
|
48
|
+
if (latestTokens.refreshToken && latestTokens.refreshToken !== this.refreshToken) {
|
|
49
|
+
logger.debug('Found newer refresh token in storage (another process rotated it)');
|
|
50
|
+
this.refreshToken = latestTokens.refreshToken;
|
|
51
|
+
}
|
|
52
|
+
if (latestTokens.accessToken && latestTokens.accessTokenExpiresAt) {
|
|
53
|
+
const nowSeconds = Math.floor(Date.now() / 1000);
|
|
54
|
+
if (latestTokens.accessTokenExpiresAt > nowSeconds + EXPIRY_BUFFER_SECONDS) {
|
|
55
|
+
logger.debug('Found valid access token in storage, using it instead of refreshing');
|
|
56
|
+
this.accessToken = latestTokens.accessToken;
|
|
57
|
+
this.accessTokenExpiresAt = latestTokens.accessTokenExpiresAt;
|
|
58
|
+
return {
|
|
59
|
+
access_token: this.accessToken,
|
|
60
|
+
token_type: 'Bearer',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
33
66
|
if (!this.refreshToken) {
|
|
34
67
|
throw createReauthError(this.serverUrl, this.profileName, `No refresh token available for profile ${this.profileName}`);
|
|
35
68
|
}
|
|
@@ -58,12 +91,22 @@ export class OAuthTokenManager {
|
|
|
58
91
|
}
|
|
59
92
|
}
|
|
60
93
|
async getValidAccessToken() {
|
|
94
|
+
logger.debug('>>> getValidAccessToken() called <<<');
|
|
95
|
+
logger.debug(` hasAccessToken: ${!!this.accessToken}`);
|
|
96
|
+
logger.debug(` accessTokenExpiresAt: ${this.accessTokenExpiresAt}`);
|
|
97
|
+
logger.debug(` isExpired: ${this.isAccessTokenExpired()}`);
|
|
98
|
+
logger.debug(` secondsUntilExpiry: ${this.getSecondsUntilExpiry()}`);
|
|
61
99
|
if (this.isAccessTokenExpired()) {
|
|
100
|
+
logger.debug(' Token is expired, refreshing...');
|
|
62
101
|
await this.refreshAccessToken();
|
|
63
102
|
}
|
|
103
|
+
else {
|
|
104
|
+
logger.debug(' Token is still valid, returning cached token');
|
|
105
|
+
}
|
|
64
106
|
if (!this.accessToken) {
|
|
65
107
|
throw new AuthError('No access token available after refresh');
|
|
66
108
|
}
|
|
109
|
+
logger.debug(` Returning token: ${this.accessToken.substring(0, 20)}...`);
|
|
67
110
|
return this.accessToken;
|
|
68
111
|
}
|
|
69
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-token-manager.js","sourceRoot":"","sources":["../../../src/lib/auth/oauth-token-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAA2B,MAAM,kBAAkB,CAAC;AAEvG,MAAM,MAAM,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAGnD,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAG1C,MAAM,qBAAqB,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth-token-manager.js","sourceRoot":"","sources":["../../../src/lib/auth/oauth-token-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,6 @@ export declare function loadAuthProfiles(): Promise<AuthProfilesStorage>;
|
|
|
3
3
|
export declare function listAuthProfiles(): Promise<AuthProfile[]>;
|
|
4
4
|
export declare function getAuthProfile(serverUrl: string, profileName: string): Promise<AuthProfile | undefined>;
|
|
5
5
|
export declare function saveAuthProfile(profile: AuthProfile): Promise<void>;
|
|
6
|
+
export declare function updateAuthProfileRefreshedAt(serverUrl: string, profileName: string): Promise<void>;
|
|
6
7
|
export declare function deleteAuthProfile(serverUrl: string, profileName: string): Promise<boolean>;
|
|
7
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/profiles.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA6EpE,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAGrE;AAKD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAiB/D;AAMD,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAIlC;AAMD,wBAAsB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBzE;AAMD,wBAAsB,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxG;AAMD,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BhG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFile, writeFile, rename, unlink } from 'fs/promises';
|
|
2
2
|
import { tmpdir } from 'os';
|
|
3
3
|
import { join } from 'path';
|
|
4
|
-
import { getAuthProfilesFilePath, fileExists, ensureDir, getMcpcHome } from '../utils.js';
|
|
4
|
+
import { getAuthProfilesFilePath, fileExists, ensureDir, getMcpcHome, getServerHost } from '../utils.js';
|
|
5
5
|
import { withFileLock } from '../file-lock.js';
|
|
6
6
|
import { createLogger } from '../logger.js';
|
|
7
7
|
import { ClientError } from '../errors.js';
|
|
@@ -69,25 +69,41 @@ export async function listAuthProfiles() {
|
|
|
69
69
|
}
|
|
70
70
|
export async function getAuthProfile(serverUrl, profileName) {
|
|
71
71
|
const storage = await loadAuthProfiles();
|
|
72
|
-
|
|
72
|
+
const host = getServerHost(serverUrl);
|
|
73
|
+
return storage.profiles[host]?.[profileName];
|
|
73
74
|
}
|
|
74
75
|
export async function saveAuthProfile(profile) {
|
|
75
76
|
const filePath = getAuthProfilesFilePath();
|
|
76
77
|
return withFileLock(filePath, async () => {
|
|
77
78
|
const storage = await loadAuthProfilesInternal();
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
const host = getServerHost(profile.serverUrl);
|
|
80
|
+
if (!storage.profiles[host]) {
|
|
81
|
+
storage.profiles[host] = {};
|
|
80
82
|
}
|
|
81
|
-
storage.profiles[
|
|
83
|
+
storage.profiles[host][profile.name] = profile;
|
|
82
84
|
await saveAuthProfilesInternal(storage);
|
|
83
|
-
logger.debug(`Saved auth profile: ${profile.name} for ${
|
|
85
|
+
logger.debug(`Saved auth profile: ${profile.name} for ${host}`);
|
|
86
|
+
}, AUTH_PROFILES_DEFAULT_CONTENT);
|
|
87
|
+
}
|
|
88
|
+
export async function updateAuthProfileRefreshedAt(serverUrl, profileName) {
|
|
89
|
+
const filePath = getAuthProfilesFilePath();
|
|
90
|
+
return withFileLock(filePath, async () => {
|
|
91
|
+
const storage = await loadAuthProfilesInternal();
|
|
92
|
+
const host = getServerHost(serverUrl);
|
|
93
|
+
const profile = storage.profiles[host]?.[profileName];
|
|
94
|
+
if (profile) {
|
|
95
|
+
profile.refreshedAt = new Date().toISOString();
|
|
96
|
+
await saveAuthProfilesInternal(storage);
|
|
97
|
+
logger.debug(`Updated refreshedAt for profile: ${profileName} on ${host}`);
|
|
98
|
+
}
|
|
84
99
|
}, AUTH_PROFILES_DEFAULT_CONTENT);
|
|
85
100
|
}
|
|
86
101
|
export async function deleteAuthProfile(serverUrl, profileName) {
|
|
87
102
|
const filePath = getAuthProfilesFilePath();
|
|
88
103
|
return withFileLock(filePath, async () => {
|
|
89
104
|
const storage = await loadAuthProfilesInternal();
|
|
90
|
-
const
|
|
105
|
+
const host = getServerHost(serverUrl);
|
|
106
|
+
const serverProfiles = storage.profiles[host];
|
|
91
107
|
if (!serverProfiles || !serverProfiles[profileName]) {
|
|
92
108
|
return false;
|
|
93
109
|
}
|
|
@@ -95,11 +111,11 @@ export async function deleteAuthProfile(serverUrl, profileName) {
|
|
|
95
111
|
await removeKeychainOAuthTokenInfo(serverUrl, profileName);
|
|
96
112
|
delete serverProfiles[profileName];
|
|
97
113
|
if (Object.keys(serverProfiles).length === 0) {
|
|
98
|
-
delete storage.profiles[
|
|
114
|
+
delete storage.profiles[host];
|
|
99
115
|
}
|
|
100
116
|
await saveAuthProfilesInternal(storage);
|
|
101
|
-
logger.debug(`Deleted auth profile: ${profileName} for ${
|
|
117
|
+
logger.debug(`Deleted auth profile: ${profileName} for ${host}`);
|
|
102
118
|
return true;
|
|
103
119
|
}, AUTH_PROFILES_DEFAULT_CONTENT);
|
|
104
120
|
}
|
|
105
|
-
//# sourceMappingURL=
|
|
121
|
+
//# sourceMappingURL=profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/lib/auth/profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAuthProfile, saveAuthProfile } from '../auth/
|
|
1
|
+
import { getAuthProfile, saveAuthProfile } from '../auth/profiles.js';
|
|
2
2
|
import { createLogger } from '../logger.js';
|
|
3
3
|
import { createReauthError, DEFAULT_AUTH_PROFILE } from './oauth-utils.js';
|
|
4
4
|
import { readKeychainOAuthTokenInfo, storeKeychainOAuthTokenInfo, readKeychainOAuthClientInfo } from './keychain.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-refresh.js","sourceRoot":"","sources":["../../../src/lib/auth/token-refresh.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"token-refresh.js","sourceRoot":"","sources":["../../../src/lib/auth/token-refresh.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-client.js","sourceRoot":"","sources":["../../src/lib/bridge-client.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAe,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAG7C,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAGtC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC;AAEjC,MAAM,OAAO,YAAa,SAAQ,YAAY;IACpC,MAAM,GAAkB,IAAI,CAAC;IAC7B,UAAU,CAAS;IACnB,MAAM,GAAG,EAAE,CAAC;IACZ,eAAe,GAAG,IAAI,GAAG,EAI7B,CAAC;IAEL,YAAY,UAAkB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAMD,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAEhE,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,CAAC,EAAc,
|
|
1
|
+
{"version":3,"file":"bridge-client.js","sourceRoot":"","sources":["../../src/lib/bridge-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ export interface StartBridgeOptions {
|
|
|
8
8
|
}
|
|
9
9
|
export interface StartBridgeResult {
|
|
10
10
|
pid: number;
|
|
11
|
-
socketPath: string;
|
|
12
11
|
}
|
|
13
12
|
export declare function startBridge(options: StartBridgeOptions): Promise<StartBridgeResult>;
|
|
14
13
|
export declare function stopBridge(sessionName: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-manager.d.ts","sourceRoot":"","sources":["../../src/lib/bridge-manager.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAC;AAsBnE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge-manager.d.ts","sourceRoot":"","sources":["../../src/lib/bridge-manager.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAC;AAsBnE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAiBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0FzF;AAMD,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCnE;AASD,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwDnF;AAqHD,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA2D5E"}
|
|
@@ -2,13 +2,13 @@ import { spawn } from 'child_process';
|
|
|
2
2
|
import { unlink } from 'fs/promises';
|
|
3
3
|
import { join, dirname } from 'path';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
|
-
import {
|
|
5
|
+
import { getSocketPath, waitForFile, isProcessAlive, fileExists, getLogsDir } from './utils.js';
|
|
6
6
|
import { updateSession, getSession } from './sessions.js';
|
|
7
7
|
import { createLogger } from './logger.js';
|
|
8
8
|
import { ClientError, NetworkError } from './errors.js';
|
|
9
9
|
import { BridgeClient } from './bridge-client.js';
|
|
10
10
|
import { readKeychainOAuthTokenInfo, readKeychainOAuthClientInfo, readKeychainSessionHeaders } from './auth/keychain.js';
|
|
11
|
-
import { getAuthProfile } from './auth/
|
|
11
|
+
import { getAuthProfile } from './auth/profiles.js';
|
|
12
12
|
const logger = createLogger('bridge-manager');
|
|
13
13
|
function getBridgeExecutable() {
|
|
14
14
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -18,8 +18,8 @@ function getBridgeExecutable() {
|
|
|
18
18
|
export async function startBridge(options) {
|
|
19
19
|
const { sessionName, target, verbose, profileName, headers } = options;
|
|
20
20
|
logger.debug(`Launching bridge for session: ${sessionName}`);
|
|
21
|
-
const socketPath =
|
|
22
|
-
if (await fileExists(socketPath)) {
|
|
21
|
+
const socketPath = getSocketPath(sessionName);
|
|
22
|
+
if (process.platform !== 'win32' && (await fileExists(socketPath))) {
|
|
23
23
|
logger.debug(`Removing existing socket: ${socketPath}`);
|
|
24
24
|
await unlink(socketPath);
|
|
25
25
|
}
|
|
@@ -29,7 +29,7 @@ export async function startBridge(options) {
|
|
|
29
29
|
}
|
|
30
30
|
const bridgeExecutable = getBridgeExecutable();
|
|
31
31
|
const targetJson = JSON.stringify(sanitizedTarget);
|
|
32
|
-
const args = [sessionName,
|
|
32
|
+
const args = [sessionName, targetJson];
|
|
33
33
|
if (verbose) {
|
|
34
34
|
args.push('--verbose');
|
|
35
35
|
}
|
|
@@ -66,7 +66,7 @@ export async function startBridge(options) {
|
|
|
66
66
|
await sendAuthCredentialsToBridge(socketPath, target.url || target.command || '', profileName, headers);
|
|
67
67
|
}
|
|
68
68
|
logger.debug(`Bridge started successfully for session: ${sessionName}`);
|
|
69
|
-
return { pid
|
|
69
|
+
return { pid };
|
|
70
70
|
}
|
|
71
71
|
export async function stopBridge(sessionName) {
|
|
72
72
|
logger.debug(`Stopping bridge for: ${sessionName}`);
|
|
@@ -105,11 +105,11 @@ export async function restartBridge(sessionName) {
|
|
|
105
105
|
? { type: 'http', url: session.target }
|
|
106
106
|
: { type: 'stdio', command: session.target };
|
|
107
107
|
let headers;
|
|
108
|
-
if (session.transport === 'http' && session.
|
|
108
|
+
if (session.transport === 'http' && session.httpHeaderCount && session.httpHeaderCount > 0) {
|
|
109
109
|
headers = await readKeychainSessionHeaders(sessionName);
|
|
110
110
|
const retrievedCount = Object.keys(headers || {}).length;
|
|
111
|
-
if (retrievedCount !== session.
|
|
112
|
-
throw new ClientError(`Failed to retrieve ${session.
|
|
111
|
+
if (retrievedCount !== session.httpHeaderCount) {
|
|
112
|
+
throw new ClientError(`Failed to retrieve ${session.httpHeaderCount} HTTP header(s) from keychain for session ${sessionName}. ` +
|
|
113
113
|
`The session may need to be recreated with "mcpc ${sessionName} close" followed by a new connect.`);
|
|
114
114
|
}
|
|
115
115
|
logger.debug(`Retrieved ${retrievedCount} headers from keychain for failover`);
|
|
@@ -124,13 +124,10 @@ export async function restartBridge(sessionName) {
|
|
|
124
124
|
if (session.profileName) {
|
|
125
125
|
bridgeOptions.profileName = session.profileName;
|
|
126
126
|
}
|
|
127
|
-
const { pid
|
|
128
|
-
await updateSession(sessionName, {
|
|
129
|
-
pid,
|
|
130
|
-
socketPath,
|
|
131
|
-
});
|
|
127
|
+
const { pid } = await startBridge(bridgeOptions);
|
|
128
|
+
await updateSession(sessionName, { pid });
|
|
132
129
|
logger.debug(`Bridge restarted for ${sessionName} with PID: ${pid}`);
|
|
133
|
-
return { pid
|
|
130
|
+
return { pid };
|
|
134
131
|
}
|
|
135
132
|
async function sendAuthCredentialsToBridge(socketPath, serverUrl, profileName, headers) {
|
|
136
133
|
const credentials = {
|
|
@@ -177,13 +174,10 @@ async function checkBridgeHealth(socketPath) {
|
|
|
177
174
|
try {
|
|
178
175
|
await client.connect();
|
|
179
176
|
await client.request('getServerInfo');
|
|
180
|
-
return true;
|
|
177
|
+
return { healthy: true };
|
|
181
178
|
}
|
|
182
179
|
catch (error) {
|
|
183
|
-
|
|
184
|
-
return false;
|
|
185
|
-
}
|
|
186
|
-
throw error;
|
|
180
|
+
return { healthy: false, error: error };
|
|
187
181
|
}
|
|
188
182
|
finally {
|
|
189
183
|
await client.close();
|
|
@@ -200,41 +194,33 @@ export async function ensureBridgeReady(sessionName) {
|
|
|
200
194
|
`To reconnect, run: mcpc ${sessionName} connect\n` +
|
|
201
195
|
`To remove the expired session, run: mcpc ${sessionName} close`);
|
|
202
196
|
}
|
|
203
|
-
|
|
204
|
-
throw new ClientError(`Session ${sessionName} has no socket path`);
|
|
205
|
-
}
|
|
197
|
+
const socketPath = getSocketPath(sessionName);
|
|
206
198
|
const processAlive = session.pid ? isProcessAlive(session.pid) : false;
|
|
207
199
|
if (processAlive) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
200
|
+
const result = await checkBridgeHealth(socketPath);
|
|
201
|
+
if (result.healthy) {
|
|
202
|
+
logger.debug(`Bridge for ${sessionName} is healthy`);
|
|
203
|
+
return socketPath;
|
|
204
|
+
}
|
|
205
|
+
if (result.error instanceof NetworkError) {
|
|
214
206
|
logger.warn(`Bridge process alive but socket not responding for ${sessionName}`);
|
|
215
207
|
}
|
|
216
|
-
|
|
217
|
-
throw new ClientError(`Bridge for ${sessionName} failed to connect to MCP server: ${error.message}`);
|
|
208
|
+
else if (result.error) {
|
|
209
|
+
throw new ClientError(`Bridge for ${sessionName} failed to connect to MCP server: ${result.error.message}`);
|
|
218
210
|
}
|
|
219
211
|
}
|
|
220
212
|
else {
|
|
221
213
|
logger.warn(`Bridge process not alive for ${sessionName}, will try to restart it`);
|
|
222
214
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return freshSocketPath;
|
|
229
|
-
}
|
|
230
|
-
throw new ClientError(`Bridge for ${sessionName} not responding after restart`);
|
|
231
|
-
}
|
|
232
|
-
catch (error) {
|
|
233
|
-
if (error instanceof ClientError) {
|
|
234
|
-
throw error;
|
|
235
|
-
}
|
|
236
|
-
throw new ClientError(`Bridge for ${sessionName} failed to connect to MCP server: ${error.message}. ` +
|
|
237
|
-
`Check logs at ~/.mcpc/logs/bridge-${sessionName}.log for details.`);
|
|
215
|
+
await restartBridge(sessionName);
|
|
216
|
+
const result = await checkBridgeHealth(socketPath);
|
|
217
|
+
if (result.healthy) {
|
|
218
|
+
logger.debug(`Bridge for ${sessionName} passed health check`);
|
|
219
|
+
return socketPath;
|
|
238
220
|
}
|
|
221
|
+
const errorMsg = result.error?.message || 'unknown error';
|
|
222
|
+
const logPath = `${getLogsDir()}/bridge-${sessionName}.log`;
|
|
223
|
+
throw new ClientError(`Bridge for ${sessionName} failed after restart: ${errorMsg}. ` +
|
|
224
|
+
`Check logs at ${logPath} for details.`);
|
|
239
225
|
}
|
|
240
226
|
//# sourceMappingURL=bridge-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-manager.js","sourceRoot":"","sources":["../../src/lib/bridge-manager.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge-manager.js","sourceRoot":"","sources":["../../src/lib/bridge-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/lib/cleanup.ts"],"names":[],"mappings":"AAqBA,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC,MAAM,CAAC,CAyDjB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { readdir, unlink, stat } from 'fs/promises';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { getLogsDir, fileExists } from './utils.js';
|
|
4
|
+
import { createLogger } from './logger.js';
|
|
5
|
+
const logger = createLogger('cleanup');
|
|
6
|
+
export async function cleanupOrphanedLogFiles(activeSessions, options = {}) {
|
|
7
|
+
const { maxAgeDays = 7, skipSession } = options;
|
|
8
|
+
let deletedCount = 0;
|
|
9
|
+
const logsDir = getLogsDir();
|
|
10
|
+
if (!(await fileExists(logsDir))) {
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
const files = await readdir(logsDir);
|
|
14
|
+
const bridgeLogPattern = /^bridge-(@.+?)\.log(?:\.\d+)?$/;
|
|
15
|
+
const cutoffTime = Date.now() - maxAgeDays * 24 * 60 * 60 * 1000;
|
|
16
|
+
logger.debug(`Cleaning orphaned logs older than ${maxAgeDays} days`);
|
|
17
|
+
for (const file of files) {
|
|
18
|
+
const match = file.match(bridgeLogPattern);
|
|
19
|
+
if (!match || !match[1])
|
|
20
|
+
continue;
|
|
21
|
+
const sessionName = match[1];
|
|
22
|
+
if (skipSession && sessionName === skipSession) {
|
|
23
|
+
logger.debug(`Skipping current session's log file: ${file}`);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (!activeSessions[sessionName]) {
|
|
27
|
+
const filePath = join(logsDir, file);
|
|
28
|
+
try {
|
|
29
|
+
const fileStats = await stat(filePath);
|
|
30
|
+
const fileAge = fileStats.mtime.getTime();
|
|
31
|
+
const ageInDays = Math.floor((Date.now() - fileAge) / (24 * 60 * 60 * 1000));
|
|
32
|
+
if (fileAge < cutoffTime) {
|
|
33
|
+
await unlink(filePath);
|
|
34
|
+
deletedCount++;
|
|
35
|
+
logger.debug(`Removed orphaned log file: ${file} (age: ${ageInDays} days)`);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
logger.debug(`Keeping recent orphaned log file: ${file} (age: ${ageInDays} days)`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
logger.debug(`Failed to process log file: ${file}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return deletedCount;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/lib/cleanup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAYvC,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,cAAuC,EACvC,UAAyD,EAAE;IAE3D,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAGrC,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;IAG1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEjE,MAAM,CAAC,KAAK,CAAC,qCAAqC,UAAU,OAAO,CAAC,CAAC;IAErE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,SAAS;QAElC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAG7B,IAAI,WAAW,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QAGD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAErC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;gBAG7E,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACvB,YAAY,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,UAAU,SAAS,QAAQ,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,UAAU,SAAS,QAAQ,CAAC,CAAC;gBACrF,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBAEP,MAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
package/dist/lib/errors.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare class AuthError extends McpError {
|
|
|
17
17
|
constructor(message: string, details?: unknown);
|
|
18
18
|
}
|
|
19
19
|
export declare function isMcpError(error: unknown): error is McpError;
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function isShutdownError(error: unknown): boolean;
|
|
21
21
|
export declare function toMcpError(error: unknown): McpError;
|
|
22
22
|
export declare function formatError(error: unknown, verbose?: boolean): string;
|
|
23
23
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/lib/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAeA,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAe5D,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQlC;AAMD,qBAAa,WAAY,SAAQ,QAAQ;gBAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAG/C;AAMD,qBAAa,WAAY,SAAQ,QAAQ;gBAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAG/C;AAMD,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAG/C;AAMD,qBAAa,SAAU,SAAQ,QAAQ;gBACzB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAG/C;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAeA,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAe5D,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQlC;AAMD,qBAAa,WAAY,SAAQ,QAAQ;gBAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAG/C;AAMD,qBAAa,WAAY,SAAQ,QAAQ;gBAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAG/C;AAMD,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAG/C;AAMD,qBAAa,SAAU,SAAQ,QAAQ;gBACzB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAG/C;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AASD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmBvD;AAMD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAUnD;AAKD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,MAAM,CAcnE"}
|
package/dist/lib/errors.js
CHANGED
|
@@ -42,7 +42,7 @@ export class AuthError extends McpError {
|
|
|
42
42
|
export function isMcpError(error) {
|
|
43
43
|
return error instanceof McpError;
|
|
44
44
|
}
|
|
45
|
-
export function
|
|
45
|
+
export function isShutdownError(error) {
|
|
46
46
|
if (!error)
|
|
47
47
|
return false;
|
|
48
48
|
if (error instanceof Error) {
|
|
@@ -52,6 +52,10 @@ export function isAbortError(error) {
|
|
|
52
52
|
return true;
|
|
53
53
|
if (error.message.includes('aborted'))
|
|
54
54
|
return true;
|
|
55
|
+
if (error.message.includes('Not connected'))
|
|
56
|
+
return true;
|
|
57
|
+
if (error.message.includes('Failed to send an error response'))
|
|
58
|
+
return true;
|
|
55
59
|
}
|
|
56
60
|
if (typeof error === 'object' && 'name' in error && error.name === 'AbortError') {
|
|
57
61
|
return true;
|
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjB,IAAI,CAAS;IACb,OAAO,CAAW;IAElC,YAAY,OAAe,EAAE,IAAY,EAAE,OAAiB;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAGvB,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAKD,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAMD,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC,YAAY,OAAe,EAAE,OAAiB;QAC5C,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF;AAMD,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC,YAAY,OAAe,EAAE,OAAiB;QAC5C,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF;AAMD,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,YAAY,OAAe,EAAE,OAAiB;QAC5C,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF;AAMD,MAAM,OAAO,SAAU,SAAQ,QAAQ;IACrC,YAAY,OAAe,EAAE,OAAiB;QAC5C,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF;AAKD,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,QAAQ,CAAC;AACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAMA,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAMA,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC"}
|
package/dist/lib/index.js
CHANGED
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAMA,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAMA,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC"}
|