supporthero-mcp-server 1.1.0 → 1.1.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAEV,SAAS,EAET,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IAOrE,+EAA+E;IAC/E,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;OAEG;YACW,OAAO;IA0BrB,sEAAsE;IAChE,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAStE,mCAAmC;IAC7B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAM1D,6CAA6C;IACvC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5D,kCAAkC;IAC5B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAMvD,uEAAuE;IACjE,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC;IAS5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAEV,SAAS,EAET,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IAOrE,+EAA+E;IAC/E,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;OAEG;YACW,OAAO;IA0BrB,sEAAsE;IAChE,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAStE,mCAAmC;IAC7B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAM1D,6CAA6C;IACvC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5D,kCAAkC;IAC5B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAMvD,uEAAuE;IACjE,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC;IAS5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA+B7E;;;;;OAKG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;CAkDnC"}
|
package/dist/services/client.js
CHANGED
|
@@ -94,14 +94,23 @@ export class SupportHeroClient {
|
|
|
94
94
|
async getArticleForUpdate(articleId) {
|
|
95
95
|
const session = this.requireSession();
|
|
96
96
|
const url = `${this.baseUrl}/api/article/${articleId}`;
|
|
97
|
+
console.error(`[client] getArticleForUpdate: GET ${url}`);
|
|
97
98
|
const response = await session.authenticatedFetch(url, {
|
|
98
99
|
headers: { "Accept": "application/json" },
|
|
99
100
|
});
|
|
101
|
+
console.error(`[client] getArticleForUpdate: Response status=${response.status}`);
|
|
100
102
|
if (!response.ok) {
|
|
101
103
|
const body = await response.text().catch(() => "");
|
|
102
104
|
throw new Error(`Failed to fetch article ${articleId} for update: ${response.status} ${response.statusText}. ${body}`);
|
|
103
105
|
}
|
|
104
|
-
|
|
106
|
+
const body = await response.text();
|
|
107
|
+
console.error(`[client] getArticleForUpdate: Response body length=${body.length}`);
|
|
108
|
+
if (!body.trim()) {
|
|
109
|
+
throw new Error(`Failed to fetch article ${articleId} for update: server returned empty response body`);
|
|
110
|
+
}
|
|
111
|
+
const article = JSON.parse(body);
|
|
112
|
+
console.error(`[client] getArticleForUpdate: Got article title="${article.title}", containerId="${article.containerId}"`);
|
|
113
|
+
return article;
|
|
105
114
|
}
|
|
106
115
|
/**
|
|
107
116
|
* Update an article by merging provided fields into the existing article
|
|
@@ -122,6 +131,8 @@ export class SupportHeroClient {
|
|
|
122
131
|
// Ensure the id matches
|
|
123
132
|
payload.id = articleId;
|
|
124
133
|
const url = `${this.baseUrl}/api/article/${articleId}`;
|
|
134
|
+
console.error(`[client] updateArticle: PUT ${url}`);
|
|
135
|
+
console.error(`[client] updateArticle: Fields being updated: ${JSON.stringify(Object.keys(cleaned))}`);
|
|
125
136
|
const response = await session.authenticatedFetch(url, {
|
|
126
137
|
method: "PUT",
|
|
127
138
|
headers: {
|
|
@@ -130,11 +141,21 @@ export class SupportHeroClient {
|
|
|
130
141
|
},
|
|
131
142
|
body: JSON.stringify(payload),
|
|
132
143
|
});
|
|
144
|
+
console.error(`[client] updateArticle: PUT response status=${response.status}`);
|
|
133
145
|
if (!response.ok) {
|
|
134
146
|
const body = await response.text().catch(() => "");
|
|
147
|
+
console.error(`[client] updateArticle: PUT failed, body="${body.slice(0, 500)}"`);
|
|
135
148
|
throw new Error(`Failed to update article ${articleId}: ${response.status} ${response.statusText}. ${body}`);
|
|
136
149
|
}
|
|
137
|
-
return
|
|
150
|
+
// SupportHero may return 200 with an empty body on success.
|
|
151
|
+
// In that case, return the payload we sent (which reflects the merged state).
|
|
152
|
+
const body = await response.text();
|
|
153
|
+
console.error(`[client] updateArticle: PUT response body length=${body.length}`);
|
|
154
|
+
if (!body.trim()) {
|
|
155
|
+
console.error("[client] updateArticle: Empty response body, returning merged payload as confirmation");
|
|
156
|
+
return payload;
|
|
157
|
+
}
|
|
158
|
+
return JSON.parse(body);
|
|
138
159
|
}
|
|
139
160
|
}
|
|
140
161
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,eAAe,CAAS;gBAEpB,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,eAAe,CAAS;gBAEpB,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAU3D;;;OAGG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsH5B;;;OAGG;IACG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAuDpF"}
|
package/dist/session.js
CHANGED
|
@@ -24,14 +24,19 @@ export class SessionManager {
|
|
|
24
24
|
const hostname = new URL(domain).hostname;
|
|
25
25
|
this.subdomain = hostname.split(".")[0];
|
|
26
26
|
this.baseUrl = domain.replace(/\/+$/, "");
|
|
27
|
+
console.error(`[session] Initialized for subdomain="${this.subdomain}", baseUrl="${this.baseUrl}"`);
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
29
30
|
* Parse Set-Cookie headers and merge into our cookie jar.
|
|
30
31
|
* Handles both single and multiple Set-Cookie values.
|
|
31
32
|
*/
|
|
32
|
-
collectCookies(response) {
|
|
33
|
+
collectCookies(response, label) {
|
|
33
34
|
// response.headers.getSetCookie() returns an array of Set-Cookie strings
|
|
34
35
|
const setCookieHeaders = response.headers.getSetCookie?.() ?? [];
|
|
36
|
+
if (setCookieHeaders.length === 0) {
|
|
37
|
+
console.error(`[session] ${label}: No Set-Cookie headers received`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
35
40
|
for (const header of setCookieHeaders) {
|
|
36
41
|
const nameValue = header.split(";")[0]; // ignore attributes like Path, Domain
|
|
37
42
|
const eqIndex = nameValue.indexOf("=");
|
|
@@ -39,6 +44,7 @@ export class SessionManager {
|
|
|
39
44
|
const name = nameValue.slice(0, eqIndex).trim();
|
|
40
45
|
const value = nameValue.slice(eqIndex + 1).trim();
|
|
41
46
|
this.cookies.set(name, value);
|
|
47
|
+
console.error(`[session] ${label}: Set cookie ${name}=${value.slice(0, 20)}...`);
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
}
|
|
@@ -62,18 +68,24 @@ export class SessionManager {
|
|
|
62
68
|
async login() {
|
|
63
69
|
this.cookies.clear();
|
|
64
70
|
this.isAuthenticated = false;
|
|
71
|
+
console.error("[session] Starting login flow...");
|
|
65
72
|
// Step 1: GET the login page to inspect the form
|
|
66
73
|
const loginPageUrl = "https://signin.supporthero.io/";
|
|
74
|
+
console.error(`[session] Step 1: GET ${loginPageUrl}`);
|
|
67
75
|
const loginPageRes = await fetch(loginPageUrl, {
|
|
68
76
|
redirect: "manual",
|
|
69
77
|
});
|
|
70
|
-
|
|
78
|
+
console.error(`[session] Step 1: Response status=${loginPageRes.status}`);
|
|
79
|
+
this.collectCookies(loginPageRes, "Step 1 (GET login page)");
|
|
71
80
|
const loginPageHtml = await loginPageRes.text();
|
|
81
|
+
console.error(`[session] Step 1: Page HTML length=${loginPageHtml.length}`);
|
|
72
82
|
// Extract form action URL (default to the login page itself if not found)
|
|
73
83
|
const actionMatch = loginPageHtml.match(/<form[^>]*action=["']([^"']*)["']/i);
|
|
74
84
|
const formAction = actionMatch ? actionMatch[1] : loginPageUrl;
|
|
85
|
+
console.error(`[session] Step 1: Form action="${formAction}" (matched=${!!actionMatch})`);
|
|
75
86
|
// Resolve relative action URLs against the login page
|
|
76
87
|
const postUrl = new URL(formAction, loginPageUrl).toString();
|
|
88
|
+
console.error(`[session] Step 1: Resolved POST URL="${postUrl}"`);
|
|
77
89
|
// Extract any hidden input fields (CSRF tokens, etc.)
|
|
78
90
|
const hiddenFields = {};
|
|
79
91
|
const hiddenInputRegex = /<input[^>]*type=["']hidden["'][^>]*>/gi;
|
|
@@ -86,6 +98,18 @@ export class SessionManager {
|
|
|
86
98
|
hiddenFields[nameMatch[1]] = valueMatch ? valueMatch[1] : "";
|
|
87
99
|
}
|
|
88
100
|
}
|
|
101
|
+
console.error(`[session] Step 1: Hidden fields found: ${JSON.stringify(Object.keys(hiddenFields))}`);
|
|
102
|
+
// Also look for all input fields to understand the form structure
|
|
103
|
+
const allInputRegex = /<input[^>]*>/gi;
|
|
104
|
+
const allInputs = [];
|
|
105
|
+
while ((match = allInputRegex.exec(loginPageHtml)) !== null) {
|
|
106
|
+
const nameMatch = match[0].match(/name=["']([^"']*)["']/);
|
|
107
|
+
const typeMatch = match[0].match(/type=["']([^"']*)["']/);
|
|
108
|
+
if (nameMatch) {
|
|
109
|
+
allInputs.push(`${nameMatch[1]} (type=${typeMatch ? typeMatch[1] : "text"})`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
console.error(`[session] Step 1: All form inputs: ${JSON.stringify(allInputs)}`);
|
|
89
113
|
// Step 2: POST login credentials
|
|
90
114
|
const formData = new URLSearchParams({
|
|
91
115
|
...hiddenFields,
|
|
@@ -93,6 +117,9 @@ export class SessionManager {
|
|
|
93
117
|
password: this.password,
|
|
94
118
|
helpCenter: this.subdomain,
|
|
95
119
|
});
|
|
120
|
+
console.error(`[session] Step 2: POST to ${postUrl}`);
|
|
121
|
+
console.error(`[session] Step 2: Form fields being sent: ${JSON.stringify(Object.keys({ ...hiddenFields, email: "(set)", password: "(set)", helpCenter: this.subdomain }))}`);
|
|
122
|
+
console.error(`[session] Step 2: helpCenter value="${this.subdomain}"`);
|
|
96
123
|
let response = await fetch(postUrl, {
|
|
97
124
|
method: "POST",
|
|
98
125
|
headers: {
|
|
@@ -102,15 +129,19 @@ export class SessionManager {
|
|
|
102
129
|
body: formData.toString(),
|
|
103
130
|
redirect: "manual",
|
|
104
131
|
});
|
|
105
|
-
|
|
132
|
+
console.error(`[session] Step 2: POST response status=${response.status}`);
|
|
133
|
+
this.collectCookies(response, "Step 2 (POST login)");
|
|
106
134
|
// Step 3: Follow redirect chain manually to collect cookies from each domain
|
|
107
135
|
const maxRedirects = 10;
|
|
108
136
|
let redirectCount = 0;
|
|
109
137
|
while (isRedirect(response.status) && redirectCount < maxRedirects) {
|
|
110
138
|
const location = response.headers.get("location");
|
|
111
|
-
if (!location)
|
|
139
|
+
if (!location) {
|
|
140
|
+
console.error(`[session] Step 3: Redirect ${redirectCount + 1} has no Location header, stopping`);
|
|
112
141
|
break;
|
|
142
|
+
}
|
|
113
143
|
const nextUrl = new URL(location, response.url || postUrl).toString();
|
|
144
|
+
console.error(`[session] Step 3: Redirect ${redirectCount + 1} -> ${nextUrl}`);
|
|
114
145
|
response = await fetch(nextUrl, {
|
|
115
146
|
method: "GET",
|
|
116
147
|
headers: {
|
|
@@ -118,16 +149,21 @@ export class SessionManager {
|
|
|
118
149
|
},
|
|
119
150
|
redirect: "manual",
|
|
120
151
|
});
|
|
121
|
-
|
|
152
|
+
console.error(`[session] Step 3: Redirect ${redirectCount + 1} response status=${response.status}`);
|
|
153
|
+
this.collectCookies(response, `Step 3 (redirect ${redirectCount + 1})`);
|
|
122
154
|
redirectCount++;
|
|
123
155
|
}
|
|
124
156
|
// Step 4: Verify we have the required session cookies
|
|
157
|
+
const cookieNames = Array.from(this.cookies.keys());
|
|
158
|
+
console.error(`[session] Step 4: All cookies collected: ${JSON.stringify(cookieNames)}`);
|
|
159
|
+
console.error(`[session] Step 4: Has JSESSIONID=${this.cookies.has("JSESSIONID")}, Has X-Session-Token=${this.cookies.has("X-Session-Token")}`);
|
|
125
160
|
if (!this.cookies.has("JSESSIONID")) {
|
|
126
161
|
throw new Error("Login failed: JSESSIONID cookie not received. " +
|
|
127
|
-
"Check your SUPPORTHERO_EMAIL and SUPPORTHERO_PASSWORD credentials."
|
|
162
|
+
"Check your SUPPORTHERO_EMAIL and SUPPORTHERO_PASSWORD credentials. " +
|
|
163
|
+
`Cookies received: ${JSON.stringify(cookieNames)}`);
|
|
128
164
|
}
|
|
129
165
|
this.isAuthenticated = true;
|
|
130
|
-
console.error("
|
|
166
|
+
console.error("[session] Login successful, session authenticated");
|
|
131
167
|
}
|
|
132
168
|
/**
|
|
133
169
|
* Make an authenticated HTTP request. Automatically logs in if needed
|
|
@@ -135,11 +171,15 @@ export class SessionManager {
|
|
|
135
171
|
*/
|
|
136
172
|
async authenticatedFetch(url, options = {}) {
|
|
137
173
|
if (!this.isAuthenticated) {
|
|
174
|
+
console.error(`[session] Not authenticated yet, logging in before request to ${url}`);
|
|
138
175
|
await this.login();
|
|
139
176
|
}
|
|
140
177
|
const doFetch = async () => {
|
|
141
178
|
const headers = new Headers(options.headers);
|
|
142
|
-
|
|
179
|
+
const cookieHeader = this.getCookieHeader();
|
|
180
|
+
headers.set("Cookie", cookieHeader);
|
|
181
|
+
console.error(`[session] authenticatedFetch: ${options.method || "GET"} ${url}`);
|
|
182
|
+
console.error(`[session] authenticatedFetch: Sending cookies: ${Array.from(this.cookies.keys()).join(", ")}`);
|
|
143
183
|
// Don't follow redirects automatically so we can detect login redirects
|
|
144
184
|
return fetch(url, {
|
|
145
185
|
...options,
|
|
@@ -148,11 +188,13 @@ export class SessionManager {
|
|
|
148
188
|
});
|
|
149
189
|
};
|
|
150
190
|
let response = await doFetch();
|
|
191
|
+
console.error(`[session] authenticatedFetch: Response status=${response.status}`);
|
|
151
192
|
// Detect session expiry: 401, 403, or redirect back to signin
|
|
152
193
|
if (isSessionExpired(response)) {
|
|
153
|
-
console.error("
|
|
194
|
+
console.error("[session] Session expired detected, re-authenticating...");
|
|
154
195
|
await this.login();
|
|
155
196
|
response = await doFetch();
|
|
197
|
+
console.error(`[session] authenticatedFetch (retry): Response status=${response.status}`);
|
|
156
198
|
// If still failing after re-auth, let it through as-is
|
|
157
199
|
if (isSessionExpired(response)) {
|
|
158
200
|
throw new Error("SupportHero authentication failed after retry. " +
|
|
@@ -164,10 +206,12 @@ export class SessionManager {
|
|
|
164
206
|
const location = response.headers.get("location");
|
|
165
207
|
if (location) {
|
|
166
208
|
const redirectUrl = new URL(location, url).toString();
|
|
209
|
+
console.error(`[session] authenticatedFetch: Following non-login redirect to ${redirectUrl}`);
|
|
167
210
|
const headers = new Headers();
|
|
168
211
|
headers.set("Cookie", this.getCookieHeader());
|
|
169
212
|
headers.set("Accept", "application/json");
|
|
170
213
|
response = await fetch(redirectUrl, { headers });
|
|
214
|
+
console.error(`[session] authenticatedFetch: Redirect response status=${response.status}`);
|
|
171
215
|
}
|
|
172
216
|
}
|
|
173
217
|
return response;
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,OAAO,cAAc;IACjB,KAAK,CAAS;IACd,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;IACzC,eAAe,GAAG,KAAK,CAAC;IAEhC,YAAY,KAAa,EAAE,QAAgB,EAAE,MAAc;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,uFAAuF;QACvF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,OAAO,cAAc;IACjB,KAAK,CAAS;IACd,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;IACzC,eAAe,GAAG,KAAK,CAAC;IAEhC,YAAY,KAAa,EAAE,QAAgB,EAAE,MAAc;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,uFAAuF;QACvF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACtG,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,QAAkB,EAAE,KAAa;QACtD,yEAAyE;QACzE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC;QAEjE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,kCAAkC,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;YAC9E,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,gBAAgB,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAElD,iDAAiD;QACjD,MAAM,YAAY,GAAG,gCAAgC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;YAC7C,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,qCAAqC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;QAE7D,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,sCAAsC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QAE5E,0EAA0E;QAC1E,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,kCAAkC,UAAU,cAAc,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QAE1F,sDAAsD;QACtD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,wCAAwC,OAAO,GAAG,CAAC,CAAC;QAElE,sDAAsD;QACtD,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,MAAM,gBAAgB,GAAG,wCAAwC,CAAC;QAClE,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACzD,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,0CAA0C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;QAErG,kEAAkE;QAClE,MAAM,aAAa,GAAG,gBAAgB,CAAC;QACvC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC1D,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEjF,iCAAiC;QACjC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;YACnC,GAAG,YAAY;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,6CAA6C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5K,OAAO,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAExE,IAAI,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;YAClC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;gBACnD,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;aACjC;YACD,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE;YACzB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,0CAA0C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAErD,6EAA6E;QAC7E,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,aAAa,GAAG,YAAY,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,8BAA8B,aAAa,GAAG,CAAC,mCAAmC,CAAC,CAAC;gBAClG,MAAM;YACR,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YACtE,OAAO,CAAC,KAAK,CAAC,8BAA8B,aAAa,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;YAE/E,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;gBAC9B,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;iBACjC;gBACD,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,8BAA8B,aAAa,GAAG,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACpG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC;YACxE,aAAa,EAAE,CAAC;QAClB,CAAC;QAED,sDAAsD;QACtD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,yBAAyB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAEhJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,gDAAgD;gBAChD,qEAAqE;gBACrE,qBAAqB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,UAAuB,EAAE;QAC7D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,iEAAiE,GAAG,EAAE,CAAC,CAAC;YACtF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,IAAuB,EAAE;YAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;YACjF,OAAO,CAAC,KAAK,CAAC,kDAAkD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9G,wEAAwE;YACxE,OAAO,KAAK,CAAC,GAAG,EAAE;gBAChB,GAAG,OAAO;gBACV,OAAO;gBACP,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,QAAQ,GAAG,MAAM,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,iDAAiD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAElF,8DAA8D;QAC9D,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC1E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,QAAQ,GAAG,MAAM,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,yDAAyD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAE1F,uDAAuD;YACvD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CACb,iDAAiD;oBACjD,uCAAuC,CACxC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACtD,OAAO,CAAC,KAAK,CAAC,iEAAiE,WAAW,EAAE,CAAC,CAAC;gBAC9F,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;gBAC1C,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,0DAA0D,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,6CAA6C;IAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "supporthero-mcp-server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "MCP server for SupportHero Help Center API. Enables Claude and other LLMs to search, browse, read, and update help center articles.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|