substack-article-mcp 0.6.0 → 0.7.0

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/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,31 +1,35 @@
1
1
  import { load } from "cheerio";
2
- import { getCookieHeaders, loadAuth } from "./auth.js";
3
- /**
4
- * Resolve which subdomain to use. Priority:
5
- * 1. Explicit subdomain passed per-request (e.g. "platformer" to read someone else's newsletter)
6
- * 2. SUBSTACK_SUBDOMAIN env var
7
- * 3. Subdomain stored during login (your own newsletter)
8
- */
2
+ import { getCookieHeaders, getAuthGuidance, isAuthenticated, loadAuth } from "./auth.js";
3
+ const USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36";
9
4
  function resolveBaseUrl(subdomain) {
10
5
  const resolved = subdomain ||
11
6
  process.env["SUBSTACK_SUBDOMAIN"] ||
12
7
  loadAuth()?.subdomain;
13
8
  if (!resolved) {
14
- throw new Error("No subdomain specified. Either pass a subdomain parameter, or run `substack-article-mcp login` to set a default.");
9
+ throw new Error("No subdomain specified. Pass a subdomain parameter, set the SUBSTACK_SUBDOMAIN env var, or log in to set a default.");
15
10
  }
16
11
  return `https://${resolved}.substack.com`;
17
12
  }
13
+ /**
14
+ * Make an authenticated (or unauthenticated) GET request to a Substack API endpoint.
15
+ * Works without cookies for public content; includes cookies when available.
16
+ */
18
17
  async function apiGet(endpoint, subdomain) {
19
18
  const url = `${resolveBaseUrl(subdomain)}${endpoint}`;
20
- const headers = getCookieHeaders();
21
- const res = await fetch(url, {
22
- headers: {
23
- ...headers,
24
- Accept: "application/json",
25
- },
26
- });
19
+ const cookies = getCookieHeaders();
20
+ const headers = {
21
+ Accept: "application/json",
22
+ "User-Agent": USER_AGENT,
23
+ };
24
+ if (cookies) {
25
+ headers["Cookie"] = cookies["Cookie"];
26
+ }
27
+ const res = await fetch(url, { headers });
27
28
  if (res.status === 401 || res.status === 403) {
28
- throw new Error("Authentication failed. Your cookie may have expired. Run `substack-article-mcp login` to re-authenticate.");
29
+ if (!isAuthenticated()) {
30
+ throw new Error(`This content requires authentication. ${getAuthGuidance()}`);
31
+ }
32
+ throw new Error(`Authentication failed (cookie may have expired). ${getAuthGuidance()}`);
29
33
  }
30
34
  if (!res.ok) {
31
35
  const text = await res.text();
@@ -33,16 +37,17 @@ async function apiGet(endpoint, subdomain) {
33
37
  }
34
38
  return res.json();
35
39
  }
36
- /** Fetch article HTML page with auth and extract post body (fallback when API returns truncated paid content). */
37
40
  async function fetchArticleBodyFromPage(slug, subdomain) {
38
41
  const baseUrl = resolveBaseUrl(subdomain);
39
- const headers = getCookieHeaders();
40
- const res = await fetch(`${baseUrl}/p/${slug}`, {
41
- headers: {
42
- ...headers,
43
- Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
44
- },
45
- });
42
+ const cookies = getCookieHeaders();
43
+ const headers = {
44
+ Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
45
+ "User-Agent": USER_AGENT,
46
+ };
47
+ if (cookies) {
48
+ headers["Cookie"] = cookies["Cookie"];
49
+ }
50
+ const res = await fetch(`${baseUrl}/p/${slug}`, { headers });
46
51
  if (!res.ok)
47
52
  return "";
48
53
  const html = await res.text();
@@ -96,24 +101,21 @@ export async function listArticles(options) {
96
101
  const data = (await apiGet(`/api/v1/archive?${params}`, subdomain));
97
102
  return data.map(normalizePost);
98
103
  }
99
- /**
100
- * Detect whether the input looks like a numeric post ID (e.g. "184929446")
101
- * rather than a text slug (e.g. "my-article-title").
102
- */
103
104
  function isNumericId(slugOrId) {
104
105
  return /^\d+$/.test(slugOrId);
105
106
  }
106
- /**
107
- * Fetch a post by its numeric ID using the global by-id endpoint.
108
- * Returns the post data and the publication subdomain (useful when no subdomain was provided).
109
- */
110
107
  async function fetchPostById(id) {
111
- const headers = getCookieHeaders();
112
- const res = await fetch(`https://substack.com/api/v1/posts/by-id/${id}`, {
113
- headers: { ...headers, Accept: "application/json" },
114
- });
108
+ const cookies = getCookieHeaders();
109
+ const headers = {
110
+ Accept: "application/json",
111
+ "User-Agent": USER_AGENT,
112
+ };
113
+ if (cookies) {
114
+ headers["Cookie"] = cookies["Cookie"];
115
+ }
116
+ const res = await fetch(`https://substack.com/api/v1/posts/by-id/${id}`, { headers });
115
117
  if (res.status === 401 || res.status === 403) {
116
- throw new Error("Authentication failed. Run `substack-article-mcp login` to re-authenticate.");
118
+ throw new Error(`Authentication failed. ${getAuthGuidance()}`);
117
119
  }
118
120
  if (!res.ok) {
119
121
  const text = await res.text();
@@ -145,9 +147,16 @@ export async function getArticle(slugOrId, subdomain) {
145
147
  (truncatedBodyText != null && truncatedBodyText.length > 0) ||
146
148
  (wordCount != null && wordCount > 200 && bodyHtml.length < wordCount * 5);
147
149
  if (isPaid && likelyTruncated) {
148
- const fromPage = await fetchArticleBodyFromPage(slug, resolvedSubdomain);
149
- if (fromPage.length > bodyHtml.length)
150
- bodyHtml = fromPage;
150
+ if (isAuthenticated()) {
151
+ const fromPage = await fetchArticleBodyFromPage(slug, resolvedSubdomain);
152
+ if (fromPage.length > bodyHtml.length)
153
+ bodyHtml = fromPage;
154
+ }
155
+ if (!bodyHtml || bodyHtml.length < 200) {
156
+ bodyHtml = (bodyHtml || "") +
157
+ "\n\n<!-- This is a paid article. The content above may be truncated. " +
158
+ "Log in with a Substack account that has an active subscription to access the full article. -->";
159
+ }
151
160
  }
152
161
  return {
153
162
  ...normalizePost(raw),
@@ -170,10 +179,6 @@ function normalizeComment(raw) {
170
179
  children: Array.isArray(childrenRaw) ? childrenRaw.map(normalizeComment) : [],
171
180
  };
172
181
  }
173
- /**
174
- * Fetch full comment tree for an article.
175
- * The slug is resolved to a post ID first via the article detail endpoint.
176
- */
177
182
  export async function getComments(slugOrId, subdomain) {
178
183
  let postId;
179
184
  let resolvedSubdomain = subdomain;
@@ -201,15 +206,15 @@ export async function getComments(slugOrId, subdomain) {
201
206
  comments: commentsRaw.map(normalizeComment),
202
207
  };
203
208
  }
204
- /**
205
- * List all newsletters the authenticated user subscribes to.
206
- * Uses /api/v1/subscriptions which returns subscriptions + publications as sibling arrays.
207
- */
208
209
  export async function listSubscriptions() {
209
- const headers = { ...getCookieHeaders(), Accept: "application/json" };
210
+ if (!isAuthenticated()) {
211
+ throw new Error(`Listing subscriptions requires authentication. ${getAuthGuidance()}`);
212
+ }
213
+ const cookies = getCookieHeaders();
214
+ const headers = { ...cookies, Accept: "application/json" };
210
215
  const res = await fetch("https://substack.com/api/v1/subscriptions?limit=500", { headers });
211
216
  if (res.status === 401 || res.status === 403) {
212
- throw new Error("Authentication failed. Run `substack-article-mcp login` to re-authenticate.");
217
+ throw new Error(`Authentication failed (cookie may have expired). ${getAuthGuidance()}`);
213
218
  }
214
219
  if (!res.ok)
215
220
  throw new Error(`Substack API error ${res.status}`);
@@ -242,14 +247,12 @@ export async function listSubscriptions() {
242
247
  })
243
248
  .filter((s) => s !== null && s.subdomain !== "");
244
249
  }
245
- /**
246
- * Fetch the authenticated user's inbox — chronological list of posts from ALL subscribed newsletters.
247
- * Unlike getReaderFeed (algorithmic), this returns everything in publish-time order with pagination.
248
- *
249
- * @param pages Number of pages to fetch (each page = up to 20 items). Default 1.
250
- */
251
250
  export async function getInbox(pages = 1) {
252
- const headers = { ...getCookieHeaders(), Accept: "application/json" };
251
+ if (!isAuthenticated()) {
252
+ throw new Error(`Accessing your inbox requires authentication. ${getAuthGuidance()}`);
253
+ }
254
+ const cookies = getCookieHeaders();
255
+ const headers = { ...cookies, Accept: "application/json" };
253
256
  const allItems = [];
254
257
  let cursor = null;
255
258
  for (let page = 0; page < pages; page++) {
@@ -262,23 +265,20 @@ export async function getInbox(pages = 1) {
262
265
  params.set("cursor", cursor);
263
266
  const res = await fetch(`https://substack.com/api/v1/inbox/top?${params}`, { headers });
264
267
  if (res.status === 401 || res.status === 403) {
265
- throw new Error("Authentication failed. Run `substack-article-mcp login` to re-authenticate.");
268
+ throw new Error(`Authentication failed (cookie may have expired). ${getAuthGuidance()}`);
266
269
  }
267
270
  if (!res.ok)
268
271
  throw new Error(`Substack API error ${res.status}`);
269
272
  const json = (await res.json());
270
273
  const postItems = (json["post_items"] || json["posts"] || []);
271
- // Build publication lookup from inline publication objects
272
274
  const pubMap = new Map();
273
275
  const pubs = (json["publications"] || []);
274
276
  for (const pub of pubs) {
275
277
  pubMap.set(pub["id"], pub);
276
278
  }
277
279
  for (const item of postItems) {
278
- // inbox/top wraps posts in a container — the actual post may be nested under "post"
279
280
  const post = (item["post"] || item);
280
281
  const pubId = post["publication_id"];
281
- // Try inline publication first, then the top-level publications array
282
282
  let pub = post["publishedBylines"]
283
283
  ? undefined
284
284
  : post["publication"];
@@ -302,13 +302,11 @@ export async function getInbox(pages = 1) {
302
302
  wordCount: post["wordcount"],
303
303
  });
304
304
  }
305
- // Get next cursor for pagination
306
305
  const nextCursor = json["cursor"];
307
306
  if (!nextCursor || postItems.length === 0)
308
- break; // No more pages
307
+ break;
309
308
  cursor = nextCursor;
310
309
  }
311
- // Sort by publish date, newest first
312
310
  allItems.sort((a, b) => {
313
311
  const dateA = a.publishedAt ? new Date(a.publishedAt).getTime() : 0;
314
312
  const dateB = b.publishedAt ? new Date(b.publishedAt).getTime() : 0;
@@ -316,16 +314,16 @@ export async function getInbox(pages = 1) {
316
314
  });
317
315
  return allItems;
318
316
  }
319
- /**
320
- * Fetch the authenticated user's personalized reader feed — recent posts from subscribed newsletters.
321
- */
322
317
  export async function getReaderFeed(limit = 20) {
323
- // Substack caps the reader feed at 20 items per request
318
+ if (!isAuthenticated()) {
319
+ throw new Error(`Accessing your reader feed requires authentication. ${getAuthGuidance()}`);
320
+ }
324
321
  const apiLimit = Math.min(limit, 20);
325
- const headers = { ...getCookieHeaders(), Accept: "application/json" };
322
+ const cookies = getCookieHeaders();
323
+ const headers = { ...cookies, Accept: "application/json" };
326
324
  const res = await fetch(`https://substack.com/api/v1/reader/posts?limit=${apiLimit}`, { headers });
327
325
  if (res.status === 401 || res.status === 403) {
328
- throw new Error("Authentication failed. Run `substack-article-mcp login` to re-authenticate.");
326
+ throw new Error(`Authentication failed (cookie may have expired). ${getAuthGuidance()}`);
329
327
  }
330
328
  if (!res.ok)
331
329
  throw new Error(`Substack API error ${res.status}`);
@@ -357,7 +355,6 @@ export async function getReaderFeed(limit = 20) {
357
355
  wordCount: post["wordcount"],
358
356
  };
359
357
  });
360
- // Sort by publish date, newest first
361
358
  items.sort((a, b) => {
362
359
  const dateA = a.publishedAt ? new Date(a.publishedAt).getTime() : 0;
363
360
  const dateB = b.publishedAt ? new Date(b.publishedAt).getTime() : 0;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,76 @@
1
1
  #!/usr/bin/env node
2
+ import { readFileSync } from "node:fs";
3
+ import { join, dirname } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ function getVersion() {
6
+ try {
7
+ const dir = dirname(fileURLToPath(import.meta.url));
8
+ const pkgPath = join(dir, "..", "package.json");
9
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
10
+ return pkg.version;
11
+ }
12
+ catch {
13
+ return "0.7.0";
14
+ }
15
+ }
2
16
  const args = process.argv.slice(2);
3
17
  const command = args[0];
4
18
  async function main() {
19
+ // ─── install ────────────────────────────────────────────────
20
+ if (command === "install") {
21
+ const flag = args[1];
22
+ if (flag === "--cursor") {
23
+ console.log("Step 1/2: Logging in to Substack...\n");
24
+ const { runLogin } = await import("./auth.js");
25
+ await runLogin();
26
+ console.log("\nStep 2/2: Adding MCP to Cursor...\n");
27
+ const { addToConfig } = await import("./setup.js");
28
+ const { path, updated } = addToConfig("cursor");
29
+ if (updated) {
30
+ console.log(` Added to ${path}`);
31
+ }
32
+ else {
33
+ console.log(` Already configured in ${path}`);
34
+ }
35
+ console.log("\n✅ Done! Restart Cursor to start using the Substack MCP.");
36
+ return;
37
+ }
38
+ if (flag === "--claude-code") {
39
+ console.log("Step 1/2: Logging in to Substack...\n");
40
+ const { runLogin } = await import("./auth.js");
41
+ await runLogin();
42
+ console.log("\nStep 2/2: Adding MCP to Claude Code...\n");
43
+ const { addToClaudeCode } = await import("./setup.js");
44
+ const { success, output } = addToClaudeCode();
45
+ console.log(` ${output}`);
46
+ if (success) {
47
+ console.log("\n✅ Done! The Substack MCP is now available in Claude Code.");
48
+ }
49
+ else {
50
+ console.log('\n⚠️ Could not add automatically. Run this manually:');
51
+ console.log(" claude mcp add -s user substack -- npx -y substack-article-mcp");
52
+ }
53
+ return;
54
+ }
55
+ // No flag or unknown flag — show install help
56
+ console.log(`
57
+ substack-article-mcp install — One-step setup
58
+
59
+ Choose your AI client:
60
+
61
+ npx -y substack-article-mcp install --cursor
62
+ Log in + add MCP to Cursor (restart Cursor afterward)
63
+
64
+ npx -y substack-article-mcp install --claude-code
65
+ Log in + add MCP to Claude Code
66
+
67
+ Claude Desktop:
68
+ Install the .mcpb extension from quickviralnotes.com/mcp-setup
69
+ Or download from the GitHub releases page.
70
+ `);
71
+ return;
72
+ }
73
+ // ─── login ──────────────────────────────────────────────────
5
74
  if (command === "login") {
6
75
  const flag = args[1];
7
76
  if (flag === "--check" || flag === "--status") {
@@ -9,20 +78,21 @@ async function main() {
9
78
  const status = await checkAuthStatus();
10
79
  if (status.authenticated) {
11
80
  console.log("✅ Authenticated");
81
+ console.log(` Source: ${status.authSource || "unknown"}`);
12
82
  console.log(` Cookie age: ${status.cookieAge}`);
13
83
  console.log(` Subdomain: ${status.subdomain || process.env["SUBSTACK_SUBDOMAIN"] || "(not set)"}`);
14
84
  }
15
85
  else {
16
86
  console.log("❌ Not authenticated");
17
- console.log(' Run "substack-article-mcp login" to connect your account.');
87
+ console.log(' Run "npx -y substack-article-mcp login" to connect your account.');
18
88
  }
19
89
  return;
20
90
  }
21
91
  if (flag === "--manual") {
22
92
  const cookieArg = args[2];
23
93
  if (!cookieArg) {
24
- console.error("Usage: substack-article-mcp login --manual <substack.sid value OR full Cookie header>");
25
- console.error("\nTo get your cookie:\n1. Open your Substack in Chrome (e.g. buildtolaunch.substack.com)\n2. DevTools (F12) → Application → Cookies → select substack.com\n3. Copy either the value of 'substack.sid' or the full Cookie header (so we can use substack.lli for paid articles)");
94
+ console.error("Usage: npx -y substack-article-mcp login --manual <cookie>");
95
+ console.error('\nTo get your cookie:\n1. Open Substack in Chrome\n2. DevTools (F12) → Application → Cookies → substack.com\n3. Copy either:\n - The value of "substack.sid"\n - OR the full Cookie header: "substack.sid=...; substack.lli=..."');
26
96
  process.exit(1);
27
97
  }
28
98
  const { runManualLogin } = await import("./auth.js");
@@ -33,47 +103,49 @@ async function main() {
33
103
  await runLogin();
34
104
  return;
35
105
  }
106
+ // ─── help / version ─────────────────────────────────────────
36
107
  if (command === "--help" || command === "-h") {
37
108
  printHelp();
38
109
  return;
39
110
  }
40
111
  if (command === "--version" || command === "-v") {
41
- console.log("substack-article-mcp v0.5.1");
112
+ console.log(`substack-article-mcp v${getVersion()}`);
42
113
  return;
43
114
  }
44
- // Default: start MCP server
115
+ // ─── Default: start MCP server ──────────────────────────────
45
116
  const { startServer } = await import("./server.js");
46
117
  await startServer();
47
118
  }
48
119
  function printHelp() {
120
+ const v = getVersion();
49
121
  console.log(`
50
- substack-article-mcp — Substack MCP Server (v0.5.1)
51
-
52
- SETUP (run once in your terminal)
53
- npx -y substack-article-mcp login
122
+ substack-article-mcp — Substack MCP Server (v${v})
54
123
 
55
- This opens a Chrome window where you enter your email and password.
56
- Your main Chrome stays open — this is a separate, dedicated window.
57
- After you log in, it closes automatically and saves your session.
124
+ INSTALL (one-step setup for your AI client)
125
+ npx -y substack-article-mcp install --cursor Cursor
126
+ npx -y substack-article-mcp install --claude-code Claude Code
127
+ Claude Desktop: install the .mcpb extension
58
128
 
59
- Alternative (no window): paste cookies from DevTools
60
- npx -y substack-article-mcp login --manual 'substack.sid=...; substack.lli=...'
129
+ LOGIN (refresh credentials only, no client changes)
130
+ npx -y substack-article-mcp login Chrome login flow
131
+ npx -y substack-article-mcp login --manual <cookie> Paste cookie directly
132
+ npx -y substack-article-mcp login --check Check auth status
61
133
 
62
- OTHER COMMANDS
63
- npx -y substack-article-mcp login --check Check if you're authenticated
64
- npx -y substack-article-mcp --help Show this help
134
+ OTHER
135
+ npx -y substack-article-mcp --version
136
+ npx -y substack-article-mcp --help
65
137
 
66
- ⚠️ Do NOT run "npx -y substack-article-mcp" with no arguments.
67
- That starts the MCP stdio server your terminal will look stuck.
68
- Cursor/Claude/Claude Code start the server automatically.
138
+ NOTE: Public articles work without logging in.
139
+ Log in to access paid articles, subscriptions, feed, and inbox.
69
140
 
70
- MCP TOOLS (available inside your AI app after setup)
141
+ MCP TOOLS (available inside your AI app)
71
142
  substack_auth_status list_articles get_article search_articles
143
+ get_comments list_subscriptions get_feed
144
+ get_inbox
72
145
  `);
73
146
  }
74
147
  main().catch((error) => {
75
148
  console.error("Fatal error:", error);
76
149
  process.exit(1);
77
150
  });
78
- export {};
79
151
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;YAEvC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CACT,iBAAiB,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,WAAW,EAAE,CACxF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;gBACvG,OAAO,CAAC,KAAK,CACX,gRAAgR,CACjR,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7C,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,4BAA4B;IAC5B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,WAAW,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuBb,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAwgBA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAghBA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjD"}