foolfuuka-mcp-server 0.1.0 → 0.1.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.
- package/README.md +56 -8
- package/dist/foolfuuka.d.ts.map +1 -1
- package/dist/foolfuuka.js +78 -8
- package/dist/foolfuuka.js.map +1 -1
- package/dist/index.js +10 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,6 +32,7 @@ Add to your MCP client config (Claude Desktop, VS Code, etc.):
|
|
|
32
32
|
|---|---|---|
|
|
33
33
|
| `FOOLFUUKA_BASE_URL` | `https://desuarchive.org` | Root URL of a FoolFuuka archive |
|
|
34
34
|
| `FOOLFUUKA_USER_AGENT` | `foolfuuka-mcp-server/1.0` | User-Agent header sent with API requests |
|
|
35
|
+
| `FOOLFUUKA_BOARDS` | none | Comma-separated board shortnames to display (e.g. `"a,aco,an"`). Overrides the default board list. When unset, desuarchive uses a curated subset matching its mirrors; other archives attempt the API then fall back to a full hardcoded list. |
|
|
35
36
|
|
|
36
37
|
> [!TIP]
|
|
37
38
|
> Desuarchive works out of the box. For Cloudflare-protected archives (4plebs, archived.moe), you may need to run the server on a machine with the archive whitelisted, or use a different base URL.
|
|
@@ -44,23 +45,23 @@ Full-text search across archived posts with filters.
|
|
|
44
45
|
|
|
45
46
|
**Parameters:** `text`, `boards`, `subject`, `username`, `tripcode`, `capcode`, `filename`, `image`, `uid`, `country`, `deleted`, `ghost`, `filter`, `type`, `start`, `end`, `results`, `order`, `page`
|
|
46
47
|
|
|
47
|
-
Returns a markdown table
|
|
48
|
+
Returns a markdown table with **Board**, **Thread**, **Post**, **Date**, **Author**, **Excerpt** columns. OP posts are marked with **(OP)**. Use single-board or multi-board mode depending on the `boards` parameter.
|
|
48
49
|
|
|
49
50
|
### `get_thread`
|
|
50
51
|
|
|
51
52
|
Retrieve all posts in a thread.
|
|
52
53
|
|
|
53
|
-
**Parameters:** `board`, `num`, `latest_doc_id` (incremental), `last_limit` (default 100)
|
|
54
|
+
**Parameters:** `board`, `num`, `latest_doc_id` (incremental), `last_limit` (default 100, pass 0 for all)
|
|
54
55
|
|
|
55
|
-
Returns the OP post and all replies in markdown with author, timestamp, content, and media.
|
|
56
|
+
Returns the OP post and all replies in formatted markdown with author, timestamp, subject, content, and media attachments.
|
|
56
57
|
|
|
57
58
|
### `get_post`
|
|
58
59
|
|
|
59
60
|
Retrieve a single post.
|
|
60
61
|
|
|
61
|
-
**Parameters:** `board`, `num` (supports `_` suffix for ghost posts)
|
|
62
|
+
**Parameters:** `board`, `num` (supports `_` suffix for ghost posts, e.g. `"676_1"`)
|
|
62
63
|
|
|
63
|
-
Returns
|
|
64
|
+
Returns post details including author, date, board, thread number, subject, content, media (filename, dimensions, size), and image link when present.
|
|
64
65
|
|
|
65
66
|
### `list_boards`
|
|
66
67
|
|
|
@@ -68,7 +69,7 @@ List available boards for the configured archive.
|
|
|
68
69
|
|
|
69
70
|
**Parameters:** none
|
|
70
71
|
|
|
71
|
-
Returns a markdown table of board shortnames and names.
|
|
72
|
+
Returns a markdown table of board shortnames and names, plus site name and search-enabled board count. The board list comes from `FOOLFUUKA_BOARDS` if set, otherwise a desuarchive-curated subset or API response depending on the archive. Boards not in the list still work for search and post lookups.
|
|
72
73
|
|
|
73
74
|
## Examples
|
|
74
75
|
|
|
@@ -79,11 +80,26 @@ Returns a markdown table of board shortnames and names.
|
|
|
79
80
|
"method": "tools/call",
|
|
80
81
|
"params": {
|
|
81
82
|
"name": "search_archive",
|
|
82
|
-
|
|
83
|
+
"arguments": { "boards": "a", "text": "kamiina botan", "page": 1 }
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
```
|
|
86
87
|
|
|
88
|
+
Response (single-board):
|
|
89
|
+
|
|
90
|
+
```markdown
|
|
91
|
+
## Search: "kamiina botan" on /a/
|
|
92
|
+
|
|
93
|
+
Found 25 of 330 matching posts (page 1 of 200, 25 per page)
|
|
94
|
+
|
|
95
|
+
| Thread | Post | Date | Author | Excerpt |
|
|
96
|
+
|--------|------|------|--------|---------|
|
|
97
|
+
| #288811815 | #288821283 | 2026-06-20 | Anonymous | They say in /au/ that Japanese otakus don't like Kamiina Botan... |
|
|
98
|
+
| #288749749 | #288763277 | 2026-06-17 | Anonymous | So uh... How about that erm, K-Kamiina Botan? |
|
|
99
|
+
| #288735782 | #288744910 | 2026-06-16 | Anonymous | Kamiina Botan is the best romance anime of the decade. |
|
|
100
|
+
| #288692733 | #288705032 | 2026-06-14 | Anonymous | Kamiina Botan the best yuri anime adaptation of all time... |
|
|
101
|
+
```
|
|
102
|
+
|
|
87
103
|
```json
|
|
88
104
|
{
|
|
89
105
|
"jsonrpc": "2.0",
|
|
@@ -91,11 +107,43 @@ Returns a markdown table of board shortnames and names.
|
|
|
91
107
|
"method": "tools/call",
|
|
92
108
|
"params": {
|
|
93
109
|
"name": "get_thread",
|
|
94
|
-
"arguments": { "board": "a", "num":
|
|
110
|
+
"arguments": { "board": "a", "num": 288342508 }
|
|
95
111
|
}
|
|
96
112
|
}
|
|
97
113
|
```
|
|
98
114
|
|
|
115
|
+
Response:
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
## Thread #288342508 on /a/
|
|
119
|
+
|
|
120
|
+
**OP** by Anonymous — 2026-05-26 14:38:49 UTC
|
|
121
|
+
**Subject:** Marriagetoxin
|
|
122
|
+
> Best girl is here.
|
|
123
|
+
>
|
|
124
|
+
> Sorry Kinosaki.
|
|
125
|
+
📎 [SubsPlease] MARRIAGETOXIN - 08 (720p) [50718D73].mkv-2026-05-26-10h38m13s978.jpg (1280×720, 234 KB)
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
**#288342579** by Anonymous — 2026-05-26 14:42:24 UTC
|
|
130
|
+
> why is Gero spending so much time with Mei on the weekend?
|
|
131
|
+
📎 [SubsPlease] MARRIAGETOXIN - 08 (720p) [50718D73].mkv-2026-05-26-10h42m06s075.jpg (1280×720, 244 KB)
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
**#288344069** by Anonymous — 2026-05-26 16:06:53 UTC
|
|
136
|
+
> Genuinely best girl.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
**#288345985** by Anonymous — 2026-05-26 17:40:31 UTC
|
|
141
|
+
> >>288342508
|
|
142
|
+
> In a series of Best Girls, Hamster Lady is absolutely Best Best Girl.
|
|
143
|
+
>
|
|
144
|
+
> Her main 'attack' is putting on a Carnivale costume and dancing with hamsters!
|
|
145
|
+
```
|
|
146
|
+
|
|
99
147
|
## How it works
|
|
100
148
|
|
|
101
149
|
The server runs over **stdio transport** — it reads JSON-RPC messages from stdin and writes responses to stdout. There is no HTTP server.
|
package/dist/foolfuuka.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foolfuuka.d.ts","sourceRoot":"","sources":["../src/foolfuuka.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,IAAI,EACJ,YAAY,EACb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"foolfuuka.d.ts","sourceRoot":"","sources":["../src/foolfuuka.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,IAAI,EACJ,YAAY,EACb,MAAM,YAAY,CAAC;AAiEpB,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAmBvI;AAED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;CAAE,CAAC,CAWpD;AAED,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE;AAgHD,wBAAsB,UAAU,IAAI,OAAO,CAAC;IAC1C,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,OAAO,CAAA;KAAE,CAAC;IACnF,MAAM,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC7E,CAAC,CAoDD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAG9E"}
|
package/dist/foolfuuka.js
CHANGED
|
@@ -4,6 +4,13 @@ function getBaseUrl() {
|
|
|
4
4
|
function getUserAgent() {
|
|
5
5
|
return process.env.FOOLFUUKA_USER_AGENT || "foolfuuka-mcp-server/1.0";
|
|
6
6
|
}
|
|
7
|
+
function getBoardsEnv() {
|
|
8
|
+
const val = process.env.FOOLFUUKA_BOARDS;
|
|
9
|
+
if (!val || typeof val !== "string")
|
|
10
|
+
return null;
|
|
11
|
+
const trimmed = val.trim();
|
|
12
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
13
|
+
}
|
|
7
14
|
function buildUrl(path, params) {
|
|
8
15
|
const base = getBaseUrl().replace(/\/+$/, "");
|
|
9
16
|
const url = new URL(`${base}/_/api/chan${path}`);
|
|
@@ -79,6 +86,8 @@ export async function getPost(board, num) {
|
|
|
79
86
|
const body = await apiFetch(url);
|
|
80
87
|
return body;
|
|
81
88
|
}
|
|
89
|
+
// Hardcoded because desuarchive's /_/api/chan/boards/ returns incomplete/wrong board
|
|
90
|
+
// listings. The API still accepts and works with these boards for search/post lookups.
|
|
82
91
|
const FOURCHAN_BOARDS = [
|
|
83
92
|
{ shortname: "a", name: "Anime & Manga" },
|
|
84
93
|
{ shortname: "b", name: "Random" },
|
|
@@ -156,21 +165,82 @@ const FOURCHAN_BOARDS = [
|
|
|
156
165
|
{ shortname: "x", name: "Paranormal" },
|
|
157
166
|
{ shortname: "xs", name: "Extreme Sports" },
|
|
158
167
|
];
|
|
168
|
+
const DESUARCHIVE_BOARDS = [
|
|
169
|
+
"a", "aco", "an", "c", "cgl", "co", "d", "fit", "g", "his",
|
|
170
|
+
"int", "k", "m", "mlp", "mu", "q", "qa", "r9k", "tg", "trash", "vr", "wsg",
|
|
171
|
+
];
|
|
172
|
+
function isDesuArchive() {
|
|
173
|
+
return getBaseUrl().includes("desuarchive.org");
|
|
174
|
+
}
|
|
175
|
+
function parseBoardsEnvVar() {
|
|
176
|
+
const raw = getBoardsEnv();
|
|
177
|
+
if (!raw)
|
|
178
|
+
return null;
|
|
179
|
+
const boards = raw
|
|
180
|
+
.split(",")
|
|
181
|
+
.map((s) => s.trim())
|
|
182
|
+
.filter((s) => s.length > 0);
|
|
183
|
+
return boards.length > 0 ? [...new Set(boards)] : null;
|
|
184
|
+
}
|
|
185
|
+
function resolveBoards(shortnames) {
|
|
186
|
+
const lookup = new Map(FOURCHAN_BOARDS.map((b) => [b.shortname, b.name]));
|
|
187
|
+
return shortnames.map((s) => ({
|
|
188
|
+
shortname: s,
|
|
189
|
+
name: lookup.get(s) ?? s,
|
|
190
|
+
search_enabled: true,
|
|
191
|
+
}));
|
|
192
|
+
}
|
|
159
193
|
export async function listBoards() {
|
|
160
|
-
|
|
194
|
+
// 1. Env var override takes highest priority
|
|
195
|
+
const envBoards = parseBoardsEnvVar();
|
|
196
|
+
if (envBoards) {
|
|
197
|
+
let site;
|
|
198
|
+
try {
|
|
199
|
+
const url = buildUrl("/boards/");
|
|
200
|
+
const body = await apiFetch(url);
|
|
201
|
+
site = body.site ?? { url: getBaseUrl(), name: "4chan", title: "4chan", global_search_enabled: true };
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
site = { url: getBaseUrl(), name: "4chan", title: "4chan", global_search_enabled: true };
|
|
205
|
+
}
|
|
206
|
+
return { site, boards: resolveBoards(envBoards) };
|
|
207
|
+
}
|
|
208
|
+
// 2. Desuarchive default subset
|
|
209
|
+
if (isDesuArchive()) {
|
|
210
|
+
let site;
|
|
211
|
+
try {
|
|
212
|
+
const url = buildUrl("/boards/");
|
|
213
|
+
const body = await apiFetch(url);
|
|
214
|
+
site = body.site ?? { url: getBaseUrl(), name: "Desuarchive", title: "Desuarchive", global_search_enabled: true };
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
site = { url: getBaseUrl(), name: "Desuarchive", title: "Desuarchive", global_search_enabled: true };
|
|
218
|
+
}
|
|
219
|
+
return { site, boards: resolveBoards(DESUARCHIVE_BOARDS) };
|
|
220
|
+
}
|
|
221
|
+
// 3. Non-desuarchive: try API, fall back to full hardcoded list
|
|
161
222
|
try {
|
|
162
223
|
const url = buildUrl("/boards/");
|
|
163
224
|
const body = await apiFetch(url);
|
|
164
|
-
site = body.site ?? { url: getBaseUrl(), name: "4chan", title: "4chan", global_search_enabled: true };
|
|
225
|
+
const site = body.site ?? { url: getBaseUrl(), name: "4chan", title: "4chan", global_search_enabled: true };
|
|
226
|
+
if (body?.boards && typeof body.boards === "object") {
|
|
227
|
+
const apiBoards = Object.values(body.boards).map((b) => ({
|
|
228
|
+
shortname: b.shortname,
|
|
229
|
+
name: b.name,
|
|
230
|
+
search_enabled: true,
|
|
231
|
+
}));
|
|
232
|
+
if (apiBoards.length > 0) {
|
|
233
|
+
return { site, boards: apiBoards };
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return { site, boards: resolveBoards(FOURCHAN_BOARDS.map((b) => b.shortname)) };
|
|
165
237
|
}
|
|
166
238
|
catch {
|
|
167
|
-
|
|
239
|
+
return {
|
|
240
|
+
site: { url: getBaseUrl(), name: "4chan", title: "4chan", global_search_enabled: true },
|
|
241
|
+
boards: resolveBoards(FOURCHAN_BOARDS.map((b) => b.shortname)),
|
|
242
|
+
};
|
|
168
243
|
}
|
|
169
|
-
const boards = FOURCHAN_BOARDS.map((b) => ({
|
|
170
|
-
...b,
|
|
171
|
-
search_enabled: true,
|
|
172
|
-
}));
|
|
173
|
-
return { site, boards };
|
|
174
244
|
}
|
|
175
245
|
export function parseGhostNum(num) {
|
|
176
246
|
const parts = num.split("_");
|
package/dist/foolfuuka.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foolfuuka.js","sourceRoot":"","sources":["../src/foolfuuka.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"foolfuuka.js","sourceRoot":"","sources":["../src/foolfuuka.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { searchPosts, getThread, getPost, listBoards, } from "./foolfuuka.js";
|
|
|
6
6
|
import { formatSuccess, formatError, sanitizeTableCell, formatPostContent, formatMediaLine, formatTimestamp, formatAuthorLine, formatPostMeta, } from "./format.js";
|
|
7
7
|
const server = new McpServer({ name: "foolfuuka-mcp-server", version: "0.1.0" }, { capabilities: { tools: {} } });
|
|
8
8
|
server.registerTool("search_archive", {
|
|
9
|
-
description: "Full-text search across archived 4chan posts.
|
|
9
|
+
description: "Full-text search across archived 4chan posts. Parameters: text (comment search), boards (dot-delimited, e.g. \"a\" or \"adv.trv\"), subject, username, tripcode, capcode, filename, image (MD5 hash), uid, country, deleted, ghost, filter (image/text), type (sticky/op/posts), start/end (YYYY-MM-DD), results (thread to group), order (asc/desc), page. Returns a markdown table with Board, Thread, Post, Date, Author, Excerpt columns.",
|
|
10
10
|
inputSchema: {
|
|
11
11
|
text: z.string().optional().describe("Comment text to search for"),
|
|
12
12
|
boards: z.string().optional().describe("Dot-delimited board shortnames, e.g. \"a\" or \"adv.trv\". Omit to search all boards"),
|
|
@@ -41,21 +41,23 @@ server.registerTool("search_archive", {
|
|
|
41
41
|
let md = `## Search: "${args.text ?? ""}"${args.boards ? ` on /${args.boards}/` : " (all boards)"}\n\n`;
|
|
42
42
|
md += `Found ${result.posts.length} of ${totalFound.toLocaleString()} matching posts (page ${args.page} of ${totalPages}, 25 per page)\n\n`;
|
|
43
43
|
if (isMultiBoard) {
|
|
44
|
-
md += "| Board | Post | Date | Author | Excerpt |\n
|
|
44
|
+
md += "| Board | Thread | Post | Date | Author | Excerpt |\n|-------|--------|------|------|--------|---------|\n";
|
|
45
45
|
}
|
|
46
46
|
else {
|
|
47
|
-
md += "| Post | Date | Author | Excerpt |\n
|
|
47
|
+
md += "| Thread | Post | Date | Author | Excerpt |\n|--------|------|------|--------|---------|\n";
|
|
48
48
|
}
|
|
49
49
|
for (const post of result.posts) {
|
|
50
50
|
const boardShort = post.board?.shortname ? `/${post.board.shortname}/` : "";
|
|
51
51
|
const excerpt = sanitizeTableCell(post.comment_sanitized || "");
|
|
52
52
|
const date = formatTimestamp(post.timestamp, true);
|
|
53
53
|
const author = sanitizeTableCell(post.name, 40);
|
|
54
|
+
const postDisplay = `#${post.num}${post.op === "1" ? " (OP)" : ""}`;
|
|
55
|
+
const threadDisplay = `#${post.thread_num}`;
|
|
54
56
|
if (isMultiBoard) {
|
|
55
|
-
md += `| ${boardShort} |
|
|
57
|
+
md += `| ${boardShort} | ${threadDisplay} | ${postDisplay} | ${date} | ${author} | ${excerpt} |\n`;
|
|
56
58
|
}
|
|
57
59
|
else {
|
|
58
|
-
md += `|
|
|
60
|
+
md += `| ${threadDisplay} | ${postDisplay} | ${date} | ${author} | ${excerpt} |\n`;
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
md += `\n*Use \`get_thread\` to view a full thread or \`get_post\` for a single post.*`;
|
|
@@ -66,7 +68,7 @@ server.registerTool("search_archive", {
|
|
|
66
68
|
}
|
|
67
69
|
});
|
|
68
70
|
server.registerTool("get_thread", {
|
|
69
|
-
description: "Retrieve all posts in a thread from a 4chan archive.
|
|
71
|
+
description: "Retrieve all posts in a thread from a 4chan archive. Parameters: board (shortname), num (thread OP post number), latest_doc_id (incremental fetch, returns only newer posts), last_limit (max posts to return, default 100, pass 0 for all). Returns formatted thread with OP and replies including author, timestamp, subject, content, and media attachments.",
|
|
70
72
|
inputSchema: {
|
|
71
73
|
board: z.string().describe("Board shortname, e.g. \"a\""),
|
|
72
74
|
num: z.number().describe("Thread OP post number"),
|
|
@@ -109,7 +111,7 @@ server.registerTool("get_thread", {
|
|
|
109
111
|
}
|
|
110
112
|
});
|
|
111
113
|
server.registerTool("get_post", {
|
|
112
|
-
description: "Retrieve a single post from a 4chan archive by board and post number.
|
|
114
|
+
description: "Retrieve a single post from a 4chan archive by board and post number. Parameters: board (shortname), num (post number, can include _ suffix for ghost posts, e.g. \"676_1\"). Returns post details including author, date, board, thread number, subject, content, and media (filename, dimensions, size) with image link.",
|
|
113
115
|
inputSchema: {
|
|
114
116
|
board: z.string().describe("Board shortname, e.g. \"a\""),
|
|
115
117
|
num: z.string().describe("Post number. Can include _ suffix for ghost posts, e.g. \"676_1\""),
|
|
@@ -135,7 +137,7 @@ server.registerTool("get_post", {
|
|
|
135
137
|
}
|
|
136
138
|
});
|
|
137
139
|
server.registerTool("list_boards", {
|
|
138
|
-
description: "List all available boards on the configured 4chan archive. Returns
|
|
140
|
+
description: "List all available boards on the configured 4chan archive. No parameters required. Returns a markdown table with Board and Name columns, plus site name and search-enabled board count.",
|
|
139
141
|
inputSchema: {},
|
|
140
142
|
}, async () => {
|
|
141
143
|
try {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,EAAE,EAClD,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE;IACpC,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|