@mantine/mcp-server 9.0.0-alpha.4 → 9.0.0-alpha.6

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,162 +1,130 @@
1
- 'use client';
2
- 'use strict';
3
-
1
+ "use client";
2
+ //#region packages/@mantine/mcp-server/src/data-client.ts
4
3
  function normalizeValue(value) {
5
- return value.trim().toLowerCase();
4
+ return value.trim().toLowerCase();
6
5
  }
7
6
  function clampLimit(limit, fallback, max) {
8
- if (typeof limit !== "number" || Number.isNaN(limit)) {
9
- return fallback;
10
- }
11
- return Math.max(1, Math.min(max, Math.floor(limit)));
12
- }
13
- class MantineMcpDataClient {
14
- constructor(baseUrl = "https://mantine.dev/mcp", timeoutMs = 1e4) {
15
- this.indexCache = null;
16
- this.itemCache = /* @__PURE__ */ new Map();
17
- this.baseUrl = baseUrl.replace(/\/+$/, "");
18
- this.timeoutMs = timeoutMs;
19
- }
20
- async fetchJson(relativePath) {
21
- const controller = new AbortController();
22
- const timer = setTimeout(() => controller.abort(), this.timeoutMs);
23
- try {
24
- const url = `${this.baseUrl}/${relativePath.replace(/^\/+/, "")}`;
25
- const response = await fetch(url, { signal: controller.signal });
26
- if (!response.ok) {
27
- throw new Error(`Failed to fetch ${url}: ${response.status}`);
28
- }
29
- return await response.json();
30
- } finally {
31
- clearTimeout(timer);
32
- }
33
- }
34
- async getIndex() {
35
- if (this.indexCache) {
36
- return this.indexCache;
37
- }
38
- this.indexCache = await this.fetchJson("index.json");
39
- return this.indexCache;
40
- }
41
- async listItems(args = {}) {
42
- const kind = args.kind || "component";
43
- const query = args.query ? normalizeValue(args.query) : null;
44
- const packageName = args.package ? normalizeValue(args.package) : null;
45
- const limit = clampLimit(args.limit, 30, 200);
46
- const index = await this.getIndex();
47
- return index.filter((item) => item.kind === kind).filter((item) => packageName ? normalizeValue(item.package) === packageName : true).filter((item) => {
48
- if (!query) {
49
- return true;
50
- }
51
- return normalizeValue(item.name).includes(query) || normalizeValue(item.description).includes(query) || normalizeValue(item.searchText).includes(query);
52
- }).slice(0, limit);
53
- }
54
- scoreMatch(item, query) {
55
- const normalizedQuery = normalizeValue(query);
56
- const normalizedName = normalizeValue(item.name);
57
- if (normalizedName === normalizedQuery) {
58
- return 100;
59
- }
60
- if (normalizedName.startsWith(normalizedQuery)) {
61
- return 80;
62
- }
63
- if (normalizedName.includes(normalizedQuery)) {
64
- return 70;
65
- }
66
- if (normalizeValue(item.searchText).includes(normalizedQuery)) {
67
- return 40;
68
- }
69
- const tokens = normalizedQuery.split(/\s+/).filter(Boolean);
70
- const matchedTokens = tokens.filter((token) => normalizeValue(item.searchText).includes(token));
71
- if (tokens.length > 0 && matchedTokens.length > 0) {
72
- return 10 + matchedTokens.length / tokens.length * 20;
73
- }
74
- return 0;
75
- }
76
- async searchDocs(args) {
77
- const kind = args.kind || "component";
78
- const limit = clampLimit(args.limit, 20, 100);
79
- const query = args.query.trim();
80
- if (!query) {
81
- return [];
82
- }
83
- const index = await this.getIndex();
84
- return index.filter((item) => item.kind === kind).map((item) => ({ item, score: this.scoreMatch(item, query) })).filter((entry) => entry.score > 0).sort((a, b) => b.score - a.score).slice(0, limit).map((entry) => ({
85
- id: entry.item.id,
86
- name: entry.item.name,
87
- kind: entry.item.kind,
88
- package: entry.item.package,
89
- route: entry.item.route,
90
- description: entry.item.description,
91
- score: Number(entry.score.toFixed(2))
92
- }));
93
- }
94
- async getItemDataById(id) {
95
- const cached = this.itemCache.get(id);
96
- if (cached) {
97
- return cached;
98
- }
99
- const data = await this.fetchJson(`components/${id}.json`);
100
- this.itemCache.set(id, data);
101
- return data;
102
- }
103
- async findItem(args) {
104
- const kind = args.kind || "component";
105
- const requested = normalizeValue(args.name);
106
- const index = await this.getIndex();
107
- const byKind = index.filter((item) => item.kind === kind);
108
- const exactId = byKind.find((item) => normalizeValue(item.id) === requested);
109
- if (exactId) {
110
- return exactId;
111
- }
112
- const exactName = byKind.find((item) => normalizeValue(item.name) === requested);
113
- if (exactName) {
114
- return exactName;
115
- }
116
- const prefixName = byKind.find((item) => normalizeValue(item.name).startsWith(requested));
117
- if (prefixName) {
118
- return prefixName;
119
- }
120
- return byKind.find((item) => normalizeValue(item.searchText).includes(requested)) || null;
121
- }
122
- async getItemDoc(args) {
123
- const item = await this.findItem(args);
124
- if (!item) {
125
- return null;
126
- }
127
- const data = await this.getItemDataById(item.id);
128
- return {
129
- item: {
130
- id: data.id,
131
- name: data.name,
132
- kind: data.kind,
133
- package: data.package,
134
- route: data.route,
135
- description: data.description,
136
- llmUrl: data.llmUrl
137
- },
138
- markdown: data.markdown
139
- };
140
- }
141
- async getItemProps(args) {
142
- const item = await this.findItem(args);
143
- if (!item) {
144
- return null;
145
- }
146
- const data = await this.getItemDataById(item.id);
147
- return {
148
- item: {
149
- id: data.id,
150
- name: data.name,
151
- kind: data.kind,
152
- package: data.package,
153
- route: data.route,
154
- description: data.description
155
- },
156
- props: data.props
157
- };
158
- }
7
+ if (typeof limit !== "number" || Number.isNaN(limit)) return fallback;
8
+ return Math.max(1, Math.min(max, Math.floor(limit)));
159
9
  }
160
-
10
+ var MantineMcpDataClient = class {
11
+ constructor(baseUrl = "https://mantine.dev/mcp", timeoutMs = 1e4) {
12
+ this.indexCache = null;
13
+ this.itemCache = /* @__PURE__ */ new Map();
14
+ this.baseUrl = baseUrl.replace(/\/+$/, "");
15
+ this.timeoutMs = timeoutMs;
16
+ }
17
+ async fetchJson(relativePath) {
18
+ const controller = new AbortController();
19
+ const timer = setTimeout(() => controller.abort(), this.timeoutMs);
20
+ try {
21
+ const url = `${this.baseUrl}/${relativePath.replace(/^\/+/, "")}`;
22
+ const response = await fetch(url, { signal: controller.signal });
23
+ if (!response.ok) throw new Error(`Failed to fetch ${url}: ${response.status}`);
24
+ return await response.json();
25
+ } finally {
26
+ clearTimeout(timer);
27
+ }
28
+ }
29
+ async getIndex() {
30
+ if (this.indexCache) return this.indexCache;
31
+ this.indexCache = await this.fetchJson("index.json");
32
+ return this.indexCache;
33
+ }
34
+ async listItems(args = {}) {
35
+ const kind = args.kind || "component";
36
+ const query = args.query ? normalizeValue(args.query) : null;
37
+ const packageName = args.package ? normalizeValue(args.package) : null;
38
+ const limit = clampLimit(args.limit, 30, 200);
39
+ return (await this.getIndex()).filter((item) => item.kind === kind).filter((item) => packageName ? normalizeValue(item.package) === packageName : true).filter((item) => {
40
+ if (!query) return true;
41
+ return normalizeValue(item.name).includes(query) || normalizeValue(item.description).includes(query) || normalizeValue(item.searchText).includes(query);
42
+ }).slice(0, limit);
43
+ }
44
+ scoreMatch(item, query) {
45
+ const normalizedQuery = normalizeValue(query);
46
+ const normalizedName = normalizeValue(item.name);
47
+ if (normalizedName === normalizedQuery) return 100;
48
+ if (normalizedName.startsWith(normalizedQuery)) return 80;
49
+ if (normalizedName.includes(normalizedQuery)) return 70;
50
+ if (normalizeValue(item.searchText).includes(normalizedQuery)) return 40;
51
+ const tokens = normalizedQuery.split(/\s+/).filter(Boolean);
52
+ const matchedTokens = tokens.filter((token) => normalizeValue(item.searchText).includes(token));
53
+ if (tokens.length > 0 && matchedTokens.length > 0) return 10 + matchedTokens.length / tokens.length * 20;
54
+ return 0;
55
+ }
56
+ async searchDocs(args) {
57
+ const kind = args.kind || "component";
58
+ const limit = clampLimit(args.limit, 20, 100);
59
+ const query = args.query.trim();
60
+ if (!query) return [];
61
+ return (await this.getIndex()).filter((item) => item.kind === kind).map((item) => ({
62
+ item,
63
+ score: this.scoreMatch(item, query)
64
+ })).filter((entry) => entry.score > 0).sort((a, b) => b.score - a.score).slice(0, limit).map((entry) => ({
65
+ id: entry.item.id,
66
+ name: entry.item.name,
67
+ kind: entry.item.kind,
68
+ package: entry.item.package,
69
+ route: entry.item.route,
70
+ description: entry.item.description,
71
+ score: Number(entry.score.toFixed(2))
72
+ }));
73
+ }
74
+ async getItemDataById(id) {
75
+ const cached = this.itemCache.get(id);
76
+ if (cached) return cached;
77
+ const data = await this.fetchJson(`components/${id}.json`);
78
+ this.itemCache.set(id, data);
79
+ return data;
80
+ }
81
+ async findItem(args) {
82
+ const kind = args.kind || "component";
83
+ const requested = normalizeValue(args.name);
84
+ const byKind = (await this.getIndex()).filter((item) => item.kind === kind);
85
+ const exactId = byKind.find((item) => normalizeValue(item.id) === requested);
86
+ if (exactId) return exactId;
87
+ const exactName = byKind.find((item) => normalizeValue(item.name) === requested);
88
+ if (exactName) return exactName;
89
+ const prefixName = byKind.find((item) => normalizeValue(item.name).startsWith(requested));
90
+ if (prefixName) return prefixName;
91
+ return byKind.find((item) => normalizeValue(item.searchText).includes(requested)) || null;
92
+ }
93
+ async getItemDoc(args) {
94
+ const item = await this.findItem(args);
95
+ if (!item) return null;
96
+ const data = await this.getItemDataById(item.id);
97
+ return {
98
+ item: {
99
+ id: data.id,
100
+ name: data.name,
101
+ kind: data.kind,
102
+ package: data.package,
103
+ route: data.route,
104
+ description: data.description,
105
+ llmUrl: data.llmUrl
106
+ },
107
+ markdown: data.markdown
108
+ };
109
+ }
110
+ async getItemProps(args) {
111
+ const item = await this.findItem(args);
112
+ if (!item) return null;
113
+ const data = await this.getItemDataById(item.id);
114
+ return {
115
+ item: {
116
+ id: data.id,
117
+ name: data.name,
118
+ kind: data.kind,
119
+ package: data.package,
120
+ route: data.route,
121
+ description: data.description
122
+ },
123
+ props: data.props
124
+ };
125
+ }
126
+ };
127
+ //#endregion
161
128
  exports.MantineMcpDataClient = MantineMcpDataClient;
162
- //# sourceMappingURL=data-client.cjs.map
129
+
130
+ //# sourceMappingURL=data-client.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-client.cjs","sources":["../src/data-client.ts"],"sourcesContent":["import { GetItemArgs, IndexItem, ItemData, ItemKind, ListItemsArgs, SearchDocsArgs } from './types';\n\nfunction normalizeValue(value: string) {\n return value.trim().toLowerCase();\n}\n\nfunction clampLimit(limit: number | undefined, fallback: number, max: number) {\n if (typeof limit !== 'number' || Number.isNaN(limit)) {\n return fallback;\n }\n\n return Math.max(1, Math.min(max, Math.floor(limit)));\n}\n\nexport class MantineMcpDataClient {\n private readonly baseUrl: string;\n private readonly timeoutMs: number;\n private indexCache: IndexItem[] | null = null;\n private itemCache = new Map<string, ItemData>();\n\n constructor(baseUrl = 'https://mantine.dev/mcp', timeoutMs = 10000) {\n this.baseUrl = baseUrl.replace(/\\/+$/, '');\n this.timeoutMs = timeoutMs;\n }\n\n private async fetchJson<T>(relativePath: string): Promise<T> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), this.timeoutMs);\n\n try {\n const url = `${this.baseUrl}/${relativePath.replace(/^\\/+/, '')}`;\n const response = await fetch(url, { signal: controller.signal });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch ${url}: ${response.status}`);\n }\n\n return (await response.json()) as T;\n } finally {\n clearTimeout(timer);\n }\n }\n\n async getIndex() {\n if (this.indexCache) {\n return this.indexCache;\n }\n\n this.indexCache = await this.fetchJson<IndexItem[]>('index.json');\n return this.indexCache;\n }\n\n async listItems(args: ListItemsArgs = {}) {\n const kind = args.kind || 'component';\n const query = args.query ? normalizeValue(args.query) : null;\n const packageName = args.package ? normalizeValue(args.package) : null;\n const limit = clampLimit(args.limit, 30, 200);\n\n const index = await this.getIndex();\n\n return index\n .filter((item) => item.kind === kind)\n .filter((item) => (packageName ? normalizeValue(item.package) === packageName : true))\n .filter((item) => {\n if (!query) {\n return true;\n }\n\n return (\n normalizeValue(item.name).includes(query) ||\n normalizeValue(item.description).includes(query) ||\n normalizeValue(item.searchText).includes(query)\n );\n })\n .slice(0, limit);\n }\n\n private scoreMatch(item: IndexItem, query: string) {\n const normalizedQuery = normalizeValue(query);\n const normalizedName = normalizeValue(item.name);\n\n if (normalizedName === normalizedQuery) {\n return 100;\n }\n\n if (normalizedName.startsWith(normalizedQuery)) {\n return 80;\n }\n\n if (normalizedName.includes(normalizedQuery)) {\n return 70;\n }\n\n if (normalizeValue(item.searchText).includes(normalizedQuery)) {\n return 40;\n }\n\n const tokens = normalizedQuery.split(/\\s+/).filter(Boolean);\n const matchedTokens = tokens.filter((token) => normalizeValue(item.searchText).includes(token));\n\n if (tokens.length > 0 && matchedTokens.length > 0) {\n return 10 + (matchedTokens.length / tokens.length) * 20;\n }\n\n return 0;\n }\n\n async searchDocs(args: SearchDocsArgs) {\n const kind: ItemKind = args.kind || 'component';\n const limit = clampLimit(args.limit, 20, 100);\n const query = args.query.trim();\n\n if (!query) {\n return [];\n }\n\n const index = await this.getIndex();\n\n return index\n .filter((item) => item.kind === kind)\n .map((item) => ({ item, score: this.scoreMatch(item, query) }))\n .filter((entry) => entry.score > 0)\n .sort((a, b) => b.score - a.score)\n .slice(0, limit)\n .map((entry) => ({\n id: entry.item.id,\n name: entry.item.name,\n kind: entry.item.kind,\n package: entry.item.package,\n route: entry.item.route,\n description: entry.item.description,\n score: Number(entry.score.toFixed(2)),\n }));\n }\n\n private async getItemDataById(id: string): Promise<ItemData> {\n const cached = this.itemCache.get(id);\n if (cached) {\n return cached;\n }\n\n const data = await this.fetchJson<ItemData>(`components/${id}.json`);\n this.itemCache.set(id, data);\n return data;\n }\n\n async findItem(args: GetItemArgs) {\n const kind = args.kind || 'component';\n const requested = normalizeValue(args.name);\n const index = await this.getIndex();\n\n const byKind = index.filter((item) => item.kind === kind);\n\n const exactId = byKind.find((item) => normalizeValue(item.id) === requested);\n if (exactId) {\n return exactId;\n }\n\n const exactName = byKind.find((item) => normalizeValue(item.name) === requested);\n if (exactName) {\n return exactName;\n }\n\n const prefixName = byKind.find((item) => normalizeValue(item.name).startsWith(requested));\n if (prefixName) {\n return prefixName;\n }\n\n return byKind.find((item) => normalizeValue(item.searchText).includes(requested)) || null;\n }\n\n async getItemDoc(args: GetItemArgs) {\n const item = await this.findItem(args);\n if (!item) {\n return null;\n }\n\n const data = await this.getItemDataById(item.id);\n\n return {\n item: {\n id: data.id,\n name: data.name,\n kind: data.kind,\n package: data.package,\n route: data.route,\n description: data.description,\n llmUrl: data.llmUrl,\n },\n markdown: data.markdown,\n };\n }\n\n async getItemProps(args: GetItemArgs) {\n const item = await this.findItem(args);\n if (!item) {\n return null;\n }\n\n const data = await this.getItemDataById(item.id);\n\n return {\n item: {\n id: data.id,\n name: data.name,\n kind: data.kind,\n package: data.package,\n route: data.route,\n description: data.description,\n },\n props: data.props,\n };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-client.cjs","names":[],"sources":["../src/data-client.ts"],"sourcesContent":["import { GetItemArgs, IndexItem, ItemData, ItemKind, ListItemsArgs, SearchDocsArgs } from './types';\n\nfunction normalizeValue(value: string) {\n return value.trim().toLowerCase();\n}\n\nfunction clampLimit(limit: number | undefined, fallback: number, max: number) {\n if (typeof limit !== 'number' || Number.isNaN(limit)) {\n return fallback;\n }\n\n return Math.max(1, Math.min(max, Math.floor(limit)));\n}\n\nexport class MantineMcpDataClient {\n private readonly baseUrl: string;\n private readonly timeoutMs: number;\n private indexCache: IndexItem[] | null = null;\n private itemCache = new Map<string, ItemData>();\n\n constructor(baseUrl = 'https://mantine.dev/mcp', timeoutMs = 10000) {\n this.baseUrl = baseUrl.replace(/\\/+$/, '');\n this.timeoutMs = timeoutMs;\n }\n\n private async fetchJson<T>(relativePath: string): Promise<T> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), this.timeoutMs);\n\n try {\n const url = `${this.baseUrl}/${relativePath.replace(/^\\/+/, '')}`;\n const response = await fetch(url, { signal: controller.signal });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch ${url}: ${response.status}`);\n }\n\n return (await response.json()) as T;\n } finally {\n clearTimeout(timer);\n }\n }\n\n async getIndex() {\n if (this.indexCache) {\n return this.indexCache;\n }\n\n this.indexCache = await this.fetchJson<IndexItem[]>('index.json');\n return this.indexCache;\n }\n\n async listItems(args: ListItemsArgs = {}) {\n const kind = args.kind || 'component';\n const query = args.query ? normalizeValue(args.query) : null;\n const packageName = args.package ? normalizeValue(args.package) : null;\n const limit = clampLimit(args.limit, 30, 200);\n\n const index = await this.getIndex();\n\n return index\n .filter((item) => item.kind === kind)\n .filter((item) => (packageName ? normalizeValue(item.package) === packageName : true))\n .filter((item) => {\n if (!query) {\n return true;\n }\n\n return (\n normalizeValue(item.name).includes(query) ||\n normalizeValue(item.description).includes(query) ||\n normalizeValue(item.searchText).includes(query)\n );\n })\n .slice(0, limit);\n }\n\n private scoreMatch(item: IndexItem, query: string) {\n const normalizedQuery = normalizeValue(query);\n const normalizedName = normalizeValue(item.name);\n\n if (normalizedName === normalizedQuery) {\n return 100;\n }\n\n if (normalizedName.startsWith(normalizedQuery)) {\n return 80;\n }\n\n if (normalizedName.includes(normalizedQuery)) {\n return 70;\n }\n\n if (normalizeValue(item.searchText).includes(normalizedQuery)) {\n return 40;\n }\n\n const tokens = normalizedQuery.split(/\\s+/).filter(Boolean);\n const matchedTokens = tokens.filter((token) => normalizeValue(item.searchText).includes(token));\n\n if (tokens.length > 0 && matchedTokens.length > 0) {\n return 10 + (matchedTokens.length / tokens.length) * 20;\n }\n\n return 0;\n }\n\n async searchDocs(args: SearchDocsArgs) {\n const kind: ItemKind = args.kind || 'component';\n const limit = clampLimit(args.limit, 20, 100);\n const query = args.query.trim();\n\n if (!query) {\n return [];\n }\n\n const index = await this.getIndex();\n\n return index\n .filter((item) => item.kind === kind)\n .map((item) => ({ item, score: this.scoreMatch(item, query) }))\n .filter((entry) => entry.score > 0)\n .sort((a, b) => b.score - a.score)\n .slice(0, limit)\n .map((entry) => ({\n id: entry.item.id,\n name: entry.item.name,\n kind: entry.item.kind,\n package: entry.item.package,\n route: entry.item.route,\n description: entry.item.description,\n score: Number(entry.score.toFixed(2)),\n }));\n }\n\n private async getItemDataById(id: string): Promise<ItemData> {\n const cached = this.itemCache.get(id);\n if (cached) {\n return cached;\n }\n\n const data = await this.fetchJson<ItemData>(`components/${id}.json`);\n this.itemCache.set(id, data);\n return data;\n }\n\n async findItem(args: GetItemArgs) {\n const kind = args.kind || 'component';\n const requested = normalizeValue(args.name);\n const index = await this.getIndex();\n\n const byKind = index.filter((item) => item.kind === kind);\n\n const exactId = byKind.find((item) => normalizeValue(item.id) === requested);\n if (exactId) {\n return exactId;\n }\n\n const exactName = byKind.find((item) => normalizeValue(item.name) === requested);\n if (exactName) {\n return exactName;\n }\n\n const prefixName = byKind.find((item) => normalizeValue(item.name).startsWith(requested));\n if (prefixName) {\n return prefixName;\n }\n\n return byKind.find((item) => normalizeValue(item.searchText).includes(requested)) || null;\n }\n\n async getItemDoc(args: GetItemArgs) {\n const item = await this.findItem(args);\n if (!item) {\n return null;\n }\n\n const data = await this.getItemDataById(item.id);\n\n return {\n item: {\n id: data.id,\n name: data.name,\n kind: data.kind,\n package: data.package,\n route: data.route,\n description: data.description,\n llmUrl: data.llmUrl,\n },\n markdown: data.markdown,\n };\n }\n\n async getItemProps(args: GetItemArgs) {\n const item = await this.findItem(args);\n if (!item) {\n return null;\n }\n\n const data = await this.getItemDataById(item.id);\n\n return {\n item: {\n id: data.id,\n name: data.name,\n kind: data.kind,\n package: data.package,\n route: data.route,\n description: data.description,\n },\n props: data.props,\n };\n }\n}\n"],"mappings":"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"}
package/cjs/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
- 'use strict';
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_server = require("./server.cjs");
3
+ //#region packages/@mantine/mcp-server/src/index.ts
4
+ require_server.startServer();
5
+ //#endregion
6
+ exports.startServer = require_server.startServer;
2
7
 
3
- var server = require('./server.cjs');
4
-
5
- server.startServer();
6
-
7
- exports.startServer = server.startServer;
8
- //# sourceMappingURL=index.cjs.map
8
+ //# sourceMappingURL=index.cjs.map
package/cjs/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import { startServer } from './server';\n\nstartServer();\n\nexport { startServer };\n"],"names":["startServer"],"mappings":";;;;AAEAA,kBAAA,EAAY;;;;"}
1
+ {"version":3,"file":"index.cjs","names":["startServer"],"sources":["../src/index.ts"],"sourcesContent":["import { startServer } from './server';\n\nstartServer();\n\nexport { startServer };\n"],"mappings":";;;AAEAA,eAAAA,aAAa"}