@unclick/mcp-server 0.2.5 → 0.3.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.
- package/README.md +160 -139
- package/dist/abn-tool.js +1 -1
- package/dist/bgg-tool.js +1 -1
- package/dist/carboninterface-tool.js +1 -1
- package/dist/cards/card.d.ts +9 -0
- package/dist/cards/card.d.ts.map +1 -0
- package/dist/cards/card.js +4 -0
- package/dist/cards/card.js.map +1 -0
- package/dist/cards/search-memory-card.d.ts +11 -0
- package/dist/cards/search-memory-card.d.ts.map +1 -0
- package/dist/cards/search-memory-card.js +75 -0
- package/dist/cards/search-memory-card.js.map +1 -0
- package/dist/cards/search-memory-card.test.d.ts +2 -0
- package/dist/cards/search-memory-card.test.d.ts.map +1 -0
- package/dist/cards/search-memory-card.test.js +59 -0
- package/dist/cards/search-memory-card.test.js.map +1 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +265 -4
- package/dist/catalog.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +96 -6
- package/dist/client.js.map +1 -1
- package/dist/converter-tools.js +1 -1
- package/dist/crews-tool.d.ts +12 -0
- package/dist/crews-tool.d.ts.map +1 -0
- package/dist/crews-tool.js +125 -0
- package/dist/crews-tool.js.map +1 -0
- package/dist/gdelt-tool.js +4 -4
- package/dist/hackernews-tool.js +1 -1
- package/dist/index.js +0 -0
- package/dist/keychain-secure-input.js +42 -42
- package/dist/line-tool.js +1 -1
- package/dist/linear-tool.js +73 -73
- package/dist/local-catalog-handlers.js +1 -1
- package/dist/local-catalog-handlers.js.map +1 -1
- package/dist/local-tools.js +7 -7
- package/dist/local-tools.js.map +1 -1
- package/dist/memory/__tests__/bitemporal.test.d.ts +8 -0
- package/dist/memory/__tests__/bitemporal.test.d.ts.map +1 -0
- package/dist/memory/__tests__/bitemporal.test.js +148 -0
- package/dist/memory/__tests__/bitemporal.test.js.map +1 -0
- package/dist/memory/__tests__/hybrid-search.test.d.ts +14 -0
- package/dist/memory/__tests__/hybrid-search.test.d.ts.map +1 -0
- package/dist/memory/__tests__/hybrid-search.test.js +304 -0
- package/dist/memory/__tests__/hybrid-search.test.js.map +1 -0
- package/dist/memory/agent.d.ts +34 -0
- package/dist/memory/agent.d.ts.map +1 -0
- package/dist/memory/agent.js +69 -0
- package/dist/memory/agent.js.map +1 -0
- package/dist/memory/conflicts.d.ts +48 -0
- package/dist/memory/conflicts.d.ts.map +1 -0
- package/dist/memory/conflicts.js +209 -0
- package/dist/memory/conflicts.js.map +1 -0
- package/dist/memory/db.d.ts +25 -0
- package/dist/memory/db.d.ts.map +1 -0
- package/dist/memory/db.js +144 -0
- package/dist/memory/db.js.map +1 -0
- package/dist/memory/device.d.ts +20 -0
- package/dist/memory/device.d.ts.map +1 -0
- package/dist/memory/device.js +48 -0
- package/dist/memory/device.js.map +1 -0
- package/dist/memory/embeddings.d.ts +10 -0
- package/dist/memory/embeddings.d.ts.map +1 -0
- package/dist/memory/embeddings.js +40 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/handlers.d.ts +11 -0
- package/dist/memory/handlers.d.ts.map +1 -0
- package/dist/memory/handlers.js +219 -0
- package/dist/memory/handlers.js.map +1 -0
- package/dist/memory/instrumentation.d.ts +38 -0
- package/dist/memory/instrumentation.d.ts.map +1 -0
- package/dist/memory/instrumentation.js +97 -0
- package/dist/memory/instrumentation.js.map +1 -0
- package/dist/memory/load-events.d.ts +18 -0
- package/dist/memory/load-events.d.ts.map +1 -0
- package/dist/memory/load-events.js +61 -0
- package/dist/memory/load-events.js.map +1 -0
- package/dist/memory/local.d.ts +40 -0
- package/dist/memory/local.d.ts.map +1 -0
- package/dist/memory/local.js +400 -0
- package/dist/memory/local.js.map +1 -0
- package/dist/memory/session-state.d.ts +37 -0
- package/dist/memory/session-state.d.ts.map +1 -0
- package/dist/memory/session-state.js +82 -0
- package/dist/memory/session-state.js.map +1 -0
- package/dist/memory/supabase.d.ts +104 -0
- package/dist/memory/supabase.d.ts.map +1 -0
- package/dist/memory/supabase.js +710 -0
- package/dist/memory/supabase.js.map +1 -0
- package/dist/memory/tenant-settings.d.ts +33 -0
- package/dist/memory/tenant-settings.d.ts.map +1 -0
- package/dist/memory/tenant-settings.js +79 -0
- package/dist/memory/tenant-settings.js.map +1 -0
- package/dist/memory/tool-awareness.d.ts +66 -0
- package/dist/memory/tool-awareness.d.ts.map +1 -0
- package/dist/memory/tool-awareness.js +307 -0
- package/dist/memory/tool-awareness.js.map +1 -0
- package/dist/memory/types.d.ts +97 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +5 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/monday-tool.js +46 -46
- package/dist/musicbrainz-tool.js +1 -1
- package/dist/musicbrainz-tool.js.map +1 -1
- package/dist/numbers-tool.js +2 -2
- package/dist/openfoodfacts-tool.js +1 -1
- package/dist/openmeteo-tool.js +1 -1
- package/dist/radiobrowser-tool.js +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +838 -15
- package/dist/server.js.map +1 -1
- package/dist/signals/emit.d.ts +11 -0
- package/dist/signals/emit.d.ts.map +1 -0
- package/dist/signals/emit.js +26 -0
- package/dist/signals/emit.js.map +1 -0
- package/dist/testpass-tool.d.ts +12 -0
- package/dist/testpass-tool.d.ts.map +1 -0
- package/dist/testpass-tool.js +121 -0
- package/dist/testpass-tool.js.map +1 -0
- package/dist/toilets-tool.js +2 -2
- package/dist/tool-wiring.d.ts +320 -4
- package/dist/tool-wiring.d.ts.map +1 -1
- package/dist/tool-wiring.js +246 -5
- package/dist/tool-wiring.js.map +1 -1
- package/dist/trivia-tool.js +5 -5
- package/dist/usgs-tool.js +1 -1
- package/dist/uxpass-tool.d.ts +24 -0
- package/dist/uxpass-tool.d.ts.map +1 -0
- package/dist/uxpass-tool.js +165 -0
- package/dist/uxpass-tool.js.map +1 -0
- package/dist/vault-bridge.js +7 -7
- package/dist/vercel-tool.d.ts +3 -0
- package/dist/vercel-tool.d.ts.map +1 -1
- package/dist/vercel-tool.js +198 -7
- package/dist/vercel-tool.js.map +1 -1
- package/dist/web-tools.d.ts +62 -0
- package/dist/web-tools.d.ts.map +1 -0
- package/dist/web-tools.js +271 -0
- package/dist/web-tools.js.map +1 -0
- package/package.json +69 -65
- package/public/icon.svg +15 -15
- package/server.json +37 -37
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for UnClick Memory backends (local + Supabase).
|
|
3
|
+
*/
|
|
4
|
+
export interface SessionSummaryInput {
|
|
5
|
+
session_id: string;
|
|
6
|
+
summary: string;
|
|
7
|
+
topics: string[];
|
|
8
|
+
open_loops: string[];
|
|
9
|
+
decisions: string[];
|
|
10
|
+
platform: string;
|
|
11
|
+
duration_minutes?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface FactInput {
|
|
14
|
+
fact: string;
|
|
15
|
+
category: string;
|
|
16
|
+
confidence: number;
|
|
17
|
+
source_session_id?: string;
|
|
18
|
+
valid_from?: string;
|
|
19
|
+
extractor_id?: string;
|
|
20
|
+
prompt_version?: string;
|
|
21
|
+
model_id?: string;
|
|
22
|
+
preserve_as_blob?: boolean;
|
|
23
|
+
commit_sha?: string;
|
|
24
|
+
pr_number?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface InvalidateFactInput {
|
|
27
|
+
fact_id: string;
|
|
28
|
+
reason?: string;
|
|
29
|
+
session_id?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface ConversationInput {
|
|
32
|
+
session_id: string;
|
|
33
|
+
role: string;
|
|
34
|
+
content: string;
|
|
35
|
+
has_code: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface CodeInput {
|
|
38
|
+
session_id: string;
|
|
39
|
+
language: string;
|
|
40
|
+
filename?: string;
|
|
41
|
+
content: string;
|
|
42
|
+
description?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface LibraryDocInput {
|
|
45
|
+
slug: string;
|
|
46
|
+
title: string;
|
|
47
|
+
category: string;
|
|
48
|
+
content: string;
|
|
49
|
+
tags: string[];
|
|
50
|
+
}
|
|
51
|
+
export interface MemoryBackend {
|
|
52
|
+
/** Load startup context (business context + recent sessions + hot facts). */
|
|
53
|
+
getStartupContext(numSessions: number): Promise<unknown>;
|
|
54
|
+
/** Full-text / hybrid search across facts and session summaries. */
|
|
55
|
+
searchMemory(query: string, maxResults: number, asOf?: string): Promise<unknown>;
|
|
56
|
+
/** Search extracted facts. */
|
|
57
|
+
searchFacts(query: string): Promise<unknown>;
|
|
58
|
+
/** Search knowledge library. */
|
|
59
|
+
searchLibrary(query: string): Promise<unknown>;
|
|
60
|
+
/** Get a specific library doc by slug. */
|
|
61
|
+
getLibraryDoc(slug: string): Promise<unknown>;
|
|
62
|
+
/** List all library documents. */
|
|
63
|
+
listLibrary(): Promise<unknown>;
|
|
64
|
+
/** Write end-of-session summary. */
|
|
65
|
+
writeSessionSummary(data: SessionSummaryInput): Promise<{
|
|
66
|
+
id: string;
|
|
67
|
+
}>;
|
|
68
|
+
/** Add an extracted fact. */
|
|
69
|
+
addFact(data: FactInput): Promise<{
|
|
70
|
+
id: string;
|
|
71
|
+
}>;
|
|
72
|
+
/** Replace a fact with a new version. */
|
|
73
|
+
supersedeFact(oldId: string, newText: string, category?: string, confidence?: number): Promise<string>;
|
|
74
|
+
/** Log a conversation message. */
|
|
75
|
+
logConversation(data: ConversationInput): Promise<void>;
|
|
76
|
+
/** Get full conversation log for a session. */
|
|
77
|
+
getConversationDetail(sessionId: string): Promise<unknown>;
|
|
78
|
+
/** Store a code block. */
|
|
79
|
+
storeCode(data: CodeInput): Promise<{
|
|
80
|
+
id: string;
|
|
81
|
+
}>;
|
|
82
|
+
/** Get all business context entries. */
|
|
83
|
+
getBusinessContext(): Promise<unknown[]>;
|
|
84
|
+
/** Set or update a business context entry. */
|
|
85
|
+
setBusinessContext(category: string, key: string, value: unknown, priority?: number): Promise<void>;
|
|
86
|
+
/** Create or update a knowledge library doc. */
|
|
87
|
+
upsertLibraryDoc(data: LibraryDocInput): Promise<string>;
|
|
88
|
+
/** Run memory decay management. */
|
|
89
|
+
manageDecay(): Promise<unknown>;
|
|
90
|
+
/** Get memory usage stats. */
|
|
91
|
+
getMemoryStatus(): Promise<unknown>;
|
|
92
|
+
/** Mark a fact as invalidated (does not delete it). Writes an audit row. */
|
|
93
|
+
invalidateFact(input: InvalidateFactInput): Promise<{
|
|
94
|
+
invalidated_at: string;
|
|
95
|
+
}>;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/monday-tool.js
CHANGED
|
@@ -39,13 +39,13 @@ export async function listMondayBoards(args) {
|
|
|
39
39
|
try {
|
|
40
40
|
const apiKey = getApiKey(args);
|
|
41
41
|
const limit = Number(args.limit ?? 25);
|
|
42
|
-
const query = `
|
|
43
|
-
query($limit: Int) {
|
|
44
|
-
boards(limit: $limit) {
|
|
45
|
-
id name description state board_kind
|
|
46
|
-
columns { id title type }
|
|
47
|
-
}
|
|
48
|
-
}
|
|
42
|
+
const query = `
|
|
43
|
+
query($limit: Int) {
|
|
44
|
+
boards(limit: $limit) {
|
|
45
|
+
id name description state board_kind
|
|
46
|
+
columns { id title type }
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
49
|
`;
|
|
50
50
|
const data = await mondayQuery(apiKey, query, { limit });
|
|
51
51
|
const boards = (data.boards ?? []);
|
|
@@ -62,14 +62,14 @@ export async function getMondayBoard(args) {
|
|
|
62
62
|
const boardId = String(args.board_id ?? "").trim();
|
|
63
63
|
if (!boardId)
|
|
64
64
|
return { error: "board_id is required." };
|
|
65
|
-
const query = `
|
|
66
|
-
query($ids: [ID!]) {
|
|
67
|
-
boards(ids: $ids) {
|
|
68
|
-
id name description state board_kind
|
|
69
|
-
columns { id title type }
|
|
70
|
-
groups { id title color }
|
|
71
|
-
}
|
|
72
|
-
}
|
|
65
|
+
const query = `
|
|
66
|
+
query($ids: [ID!]) {
|
|
67
|
+
boards(ids: $ids) {
|
|
68
|
+
id name description state board_kind
|
|
69
|
+
columns { id title type }
|
|
70
|
+
groups { id title color }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
73
|
`;
|
|
74
74
|
const data = await mondayQuery(apiKey, query, { ids: [boardId] });
|
|
75
75
|
const boards = (data.boards ?? []);
|
|
@@ -87,18 +87,18 @@ export async function listMondayItems(args) {
|
|
|
87
87
|
if (!boardId)
|
|
88
88
|
return { error: "board_id is required." };
|
|
89
89
|
const limit = Number(args.limit ?? 50);
|
|
90
|
-
const query = `
|
|
91
|
-
query($ids: [ID!], $limit: Int) {
|
|
92
|
-
boards(ids: $ids) {
|
|
93
|
-
items_page(limit: $limit) {
|
|
94
|
-
items {
|
|
95
|
-
id name state created_at updated_at
|
|
96
|
-
column_values { id text value }
|
|
97
|
-
group { id title }
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
90
|
+
const query = `
|
|
91
|
+
query($ids: [ID!], $limit: Int) {
|
|
92
|
+
boards(ids: $ids) {
|
|
93
|
+
items_page(limit: $limit) {
|
|
94
|
+
items {
|
|
95
|
+
id name state created_at updated_at
|
|
96
|
+
column_values { id text value }
|
|
97
|
+
group { id title }
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
102
|
`;
|
|
103
103
|
const data = await mondayQuery(apiKey, query, { ids: [boardId], limit });
|
|
104
104
|
const boards = (data.boards ?? []);
|
|
@@ -120,12 +120,12 @@ export async function createMondayItem(args) {
|
|
|
120
120
|
const itemName = String(args.item_name ?? "").trim();
|
|
121
121
|
if (!itemName)
|
|
122
122
|
return { error: "item_name is required." };
|
|
123
|
-
const mutation = `
|
|
124
|
-
mutation($board_id: ID!, $item_name: String!, $group_id: String, $column_values: JSON) {
|
|
125
|
-
create_item(board_id: $board_id, item_name: $item_name, group_id: $group_id, column_values: $column_values) {
|
|
126
|
-
id name state created_at
|
|
127
|
-
}
|
|
128
|
-
}
|
|
123
|
+
const mutation = `
|
|
124
|
+
mutation($board_id: ID!, $item_name: String!, $group_id: String, $column_values: JSON) {
|
|
125
|
+
create_item(board_id: $board_id, item_name: $item_name, group_id: $group_id, column_values: $column_values) {
|
|
126
|
+
id name state created_at
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
129
|
`;
|
|
130
130
|
const variables = { board_id: boardId, item_name: itemName };
|
|
131
131
|
if (args.group_id)
|
|
@@ -157,12 +157,12 @@ export async function updateMondayItem(args) {
|
|
|
157
157
|
const value = args.value;
|
|
158
158
|
if (value === undefined)
|
|
159
159
|
return { error: "value is required." };
|
|
160
|
-
const mutation = `
|
|
161
|
-
mutation($board_id: ID!, $item_id: ID!, $column_id: String!, $value: JSON!) {
|
|
162
|
-
change_column_value(board_id: $board_id, item_id: $item_id, column_id: $column_id, value: $value) {
|
|
163
|
-
id name
|
|
164
|
-
}
|
|
165
|
-
}
|
|
160
|
+
const mutation = `
|
|
161
|
+
mutation($board_id: ID!, $item_id: ID!, $column_id: String!, $value: JSON!) {
|
|
162
|
+
change_column_value(board_id: $board_id, item_id: $item_id, column_id: $column_id, value: $value) {
|
|
163
|
+
id name
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
166
|
`;
|
|
167
167
|
const data = await mondayQuery(apiKey, mutation, {
|
|
168
168
|
board_id: boardId,
|
|
@@ -187,13 +187,13 @@ export async function searchMondayItems(args) {
|
|
|
187
187
|
if (!query_text)
|
|
188
188
|
return { error: "query is required." };
|
|
189
189
|
const limit = Number(args.limit ?? 25);
|
|
190
|
-
const query = `
|
|
191
|
-
query($board_id: ID!, $query: String!, $limit: Int) {
|
|
192
|
-
items_by_multiple_column_values(board_id: $board_id, limit: $limit, column_id: "name", column_values: [$query]) {
|
|
193
|
-
id name state created_at updated_at
|
|
194
|
-
column_values { id text value }
|
|
195
|
-
}
|
|
196
|
-
}
|
|
190
|
+
const query = `
|
|
191
|
+
query($board_id: ID!, $query: String!, $limit: Int) {
|
|
192
|
+
items_by_multiple_column_values(board_id: $board_id, limit: $limit, column_id: "name", column_values: [$query]) {
|
|
193
|
+
id name state created_at updated_at
|
|
194
|
+
column_values { id text value }
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
197
|
`;
|
|
198
198
|
const data = await mondayQuery(apiKey, query, { board_id: boardId, query: query_text, limit });
|
|
199
199
|
const items = (data.items_by_multiple_column_values ?? []);
|
package/dist/musicbrainz-tool.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Uses the MusicBrainz REST API via fetch - no external dependencies.
|
|
3
3
|
// No auth required. Identifies with a User-Agent header as required by MusicBrainz policy.
|
|
4
4
|
const MB_BASE = "https://musicbrainz.org/ws/2";
|
|
5
|
-
const MB_USER_AGENT = "UnClick/1.0 (
|
|
5
|
+
const MB_USER_AGENT = "UnClick/1.0 (support@unclick.world)";
|
|
6
6
|
// ─── API helper ───────────────────────────────────────────────────────────────
|
|
7
7
|
async function mbCall(path, params = {}) {
|
|
8
8
|
const url = new URL(`${MB_BASE}${path}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"musicbrainz-tool.js","sourceRoot":"","sources":["../src/musicbrainz-tool.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,sEAAsE;AACtE,2FAA2F;AAE3F,MAAM,OAAO,GAAG,8BAA8B,CAAC;AAC/C,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"musicbrainz-tool.js","sourceRoot":"","sources":["../src/musicbrainz-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/numbers-tool.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Numbers API integration
|
|
2
|
-
// No authentication required
|
|
1
|
+
// Numbers API integration - interesting facts about numbers, dates, and years.
|
|
2
|
+
// No authentication required - completely free and open.
|
|
3
3
|
// Base URL: http://numbersapi.com/
|
|
4
4
|
const NUMBERS_BASE = "http://numbersapi.com";
|
|
5
5
|
const VALID_TYPES = ["trivia", "math", "date", "year"];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// ─── Open Food Facts Product Database ────────────────────────────────────────
|
|
2
|
-
// Free, open-source food product database
|
|
2
|
+
// Free, open-source food product database - no auth required.
|
|
3
3
|
// Docs: https://wiki.openfoodfacts.org/API
|
|
4
4
|
const OFF_BASE = "https://world.openfoodfacts.org";
|
|
5
5
|
// ─── API helper ──────────────────────────────────────────────────────────────
|
package/dist/openmeteo-tool.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Open-Meteo weather API integration.
|
|
2
|
-
// No authentication required
|
|
2
|
+
// No authentication required - completely free and open.
|
|
3
3
|
// Base URL: https://api.open-meteo.com/v1/
|
|
4
4
|
// Geocoding: https://geocoding-api.open-meteo.com/v1/search
|
|
5
5
|
const WEATHER_BASE = "https://api.open-meteo.com/v1";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Radio Browser API integration
|
|
2
|
-
// No authentication required
|
|
1
|
+
// Radio Browser API integration - 50,000+ internet radio stations worldwide.
|
|
2
|
+
// No authentication required - completely free and open.
|
|
3
3
|
// Base URL: https://de1.api.radio-browser.info/json/
|
|
4
4
|
const RADIO_BASE = "https://de1.api.radio-browser.info/json";
|
|
5
5
|
// ─── API helper ───────────────────────────────────────────────────────────────
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA6lCnE,wBAAgB,YAAY,IAAI,MAAM,CAqdrC;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjD"}
|