mcp-code-context 3.9.0 → 3.9.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/CHANGELOG.md +227 -205
- package/INSTRUCTIONS.md +17 -11
- package/README.md +32 -11
- package/dist/src/core/engine.d.ts +1 -1
- package/dist/src/core/engine.js +1 -1
- package/dist/src/core/indexManager.d.ts +1 -1
- package/dist/src/core/indexManager.js +26 -26
- package/dist/src/core/sessionManager.d.ts +1 -1
- package/dist/src/core/sessionManager.js +1 -1
- package/dist/src/core/validator.d.ts +2 -2
- package/dist/src/core/validator.js +8 -2
- package/dist/src/core/validator.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/operations/astTransform.d.ts +1 -1
- package/dist/src/operations/astTransform.js +1 -1
- package/dist/src/operations/compress.d.ts +1 -1
- package/dist/src/operations/compress.js +1 -1
- package/dist/src/operations/confirmationStore.d.ts +1 -1
- package/dist/src/operations/confirmationStore.js +1 -1
- package/dist/src/operations/write.d.ts +1 -1
- package/dist/src/operations/write.js +1 -1
- package/dist/src/parsers/base.d.ts +2 -2
- package/dist/src/parsers/base.js +2 -2
- package/dist/src/parsers/csharp.d.ts +1 -1
- package/dist/src/parsers/csharp.js +1 -1
- package/dist/src/parsers/dartTreeSitter.d.ts +1 -1
- package/dist/src/parsers/dartTreeSitter.js +1 -1
- package/dist/src/parsers/go.d.ts +1 -1
- package/dist/src/parsers/go.js +1 -1
- package/dist/src/parsers/java.d.ts +1 -1
- package/dist/src/parsers/java.js +1 -1
- package/dist/src/parsers/kotlin.d.ts +1 -1
- package/dist/src/parsers/kotlin.js +1 -1
- package/dist/src/parsers/php.d.ts +1 -1
- package/dist/src/parsers/php.js +1 -1
- package/dist/src/parsers/python.d.ts +2 -2
- package/dist/src/parsers/python.js +2 -2
- package/dist/src/parsers/registry.d.ts +1 -1
- package/dist/src/parsers/registry.js +1 -1
- package/dist/src/parsers/ruby.d.ts +2 -2
- package/dist/src/parsers/ruby.js +2 -2
- package/dist/src/parsers/rust.d.ts +1 -1
- package/dist/src/parsers/rust.js +1 -1
- package/dist/src/parsers/typescript.d.ts +1 -1
- package/dist/src/parsers/typescript.js +1 -1
- package/dist/src/tools/adminHandlers.js +8 -7
- package/dist/src/tools/adminHandlers.js.map +1 -1
- package/dist/src/tools/readHandlers.js +20 -18
- package/dist/src/tools/readHandlers.js.map +1 -1
- package/dist/src/tools/toolDefinitions.d.ts +7 -2
- package/dist/src/tools/toolDefinitionsAdmin.d.ts +1 -1
- package/dist/src/tools/toolDefinitionsAdmin.js +12 -12
- package/dist/src/tools/toolDefinitionsAdmin.js.map +1 -1
- package/dist/src/tools/toolDefinitionsCore.d.ts +6 -1
- package/dist/src/tools/toolDefinitionsCore.js +40 -40
- package/dist/src/tools/toolDefinitionsCore.js.map +1 -1
- package/dist/src/tools/writeHandlers.js +28 -16
- package/dist/src/tools/writeHandlers.js.map +1 -1
- package/dist/src/utils/appDir.d.ts +1 -1
- package/dist/src/utils/appDir.js +1 -1
- package/dist/src/utils/auditLogger.d.ts +1 -1
- package/dist/src/utils/auditLogger.js +1 -1
- package/dist/src/utils/backupManager.d.ts +1 -1
- package/dist/src/utils/backupManager.js +1 -1
- package/dist/src/utils/constants.d.ts +1 -1
- package/dist/src/utils/constants.js +1 -1
- package/dist/src/utils/diff.d.ts +2 -2
- package/dist/src/utils/diff.js +2 -2
- package/dist/src/utils/fileLock.d.ts +1 -1
- package/dist/src/utils/fileLock.js +1 -1
- package/dist/src/utils/fileWalker.d.ts +1 -1
- package/dist/src/utils/fileWalker.js +1 -1
- package/dist/src/utils/fileWatcher.d.ts +1 -1
- package/dist/src/utils/fileWatcher.js +1 -1
- package/dist/src/utils/fuzzySearch.d.ts +1 -1
- package/dist/src/utils/fuzzySearch.js +1 -1
- package/dist/src/utils/gemfileParser.d.ts +1 -1
- package/dist/src/utils/gemfileParser.js +1 -1
- package/dist/src/utils/logger.d.ts +1 -1
- package/dist/src/utils/logger.js +1 -1
- package/dist/src/utils/metaprogramming.d.ts +1 -1
- package/dist/src/utils/metaprogramming.js +1 -1
- package/dist/src/utils/projectRoot.d.ts +9 -0
- package/dist/src/utils/projectRoot.js +94 -0
- package/dist/src/utils/projectRoot.js.map +1 -0
- package/dist/src/utils/railsRoutes.d.ts +4 -3
- package/dist/src/utils/railsRoutes.js +62 -67
- package/dist/src/utils/railsRoutes.js.map +1 -1
- package/dist/src/utils/rateLimiter.d.ts +1 -1
- package/dist/src/utils/rateLimiter.js +1 -1
- package/dist/src/utils/streaming.d.ts +1 -1
- package/dist/src/utils/streaming.js +1 -1
- package/dist/src/utils/telemetry.d.ts +1 -1
- package/dist/src/utils/telemetry.js +1 -1
- package/llms.txt +60 -21
- package/package.json +1 -1
- package/vitest.config.ts +0 -37
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Index Manager - v3.9.
|
|
2
|
+
* Index Manager - v3.9.2
|
|
3
3
|
* Persistent symbol index and dependency graph in ~/.mcp-code-context/index/
|
|
4
4
|
* Enables O(1) search_symbols and analyze_impact queries.
|
|
5
5
|
*/
|
|
@@ -53,35 +53,35 @@ export class IndexManager {
|
|
|
53
53
|
initSchema() {
|
|
54
54
|
if (!this.db)
|
|
55
55
|
return;
|
|
56
|
-
this.db.run(`
|
|
57
|
-
CREATE TABLE IF NOT EXISTS files (
|
|
58
|
-
file_path TEXT PRIMARY KEY,
|
|
59
|
-
file_hash TEXT NOT NULL,
|
|
60
|
-
indexed_at INTEGER NOT NULL
|
|
61
|
-
)
|
|
56
|
+
this.db.run(`
|
|
57
|
+
CREATE TABLE IF NOT EXISTS files (
|
|
58
|
+
file_path TEXT PRIMARY KEY,
|
|
59
|
+
file_hash TEXT NOT NULL,
|
|
60
|
+
indexed_at INTEGER NOT NULL
|
|
61
|
+
)
|
|
62
62
|
`);
|
|
63
|
-
this.db.run(`
|
|
64
|
-
CREATE TABLE IF NOT EXISTS symbols (
|
|
65
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
66
|
-
file_path TEXT NOT NULL,
|
|
67
|
-
name TEXT NOT NULL,
|
|
68
|
-
type TEXT NOT NULL,
|
|
69
|
-
start_line INTEGER NOT NULL DEFAULT 0,
|
|
70
|
-
end_line INTEGER NOT NULL DEFAULT 0,
|
|
71
|
-
class_name TEXT,
|
|
72
|
-
FOREIGN KEY (file_path) REFERENCES files(file_path) ON DELETE CASCADE
|
|
73
|
-
)
|
|
63
|
+
this.db.run(`
|
|
64
|
+
CREATE TABLE IF NOT EXISTS symbols (
|
|
65
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
66
|
+
file_path TEXT NOT NULL,
|
|
67
|
+
name TEXT NOT NULL,
|
|
68
|
+
type TEXT NOT NULL,
|
|
69
|
+
start_line INTEGER NOT NULL DEFAULT 0,
|
|
70
|
+
end_line INTEGER NOT NULL DEFAULT 0,
|
|
71
|
+
class_name TEXT,
|
|
72
|
+
FOREIGN KEY (file_path) REFERENCES files(file_path) ON DELETE CASCADE
|
|
73
|
+
)
|
|
74
74
|
`);
|
|
75
75
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_symbols_name ON symbols(name)`);
|
|
76
76
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_symbols_file ON symbols(file_path)`);
|
|
77
77
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_symbols_name_lower ON symbols(LOWER(name))`);
|
|
78
|
-
this.db.run(`
|
|
79
|
-
CREATE TABLE IF NOT EXISTS dependencies (
|
|
80
|
-
from_file TEXT NOT NULL,
|
|
81
|
-
to_file TEXT NOT NULL,
|
|
82
|
-
import_stmt TEXT,
|
|
83
|
-
PRIMARY KEY (from_file, to_file)
|
|
84
|
-
)
|
|
78
|
+
this.db.run(`
|
|
79
|
+
CREATE TABLE IF NOT EXISTS dependencies (
|
|
80
|
+
from_file TEXT NOT NULL,
|
|
81
|
+
to_file TEXT NOT NULL,
|
|
82
|
+
import_stmt TEXT,
|
|
83
|
+
PRIMARY KEY (from_file, to_file)
|
|
84
|
+
)
|
|
85
85
|
`);
|
|
86
86
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_deps_from ON dependencies(from_file)`);
|
|
87
87
|
this.db.run(`CREATE INDEX IF NOT EXISTS idx_deps_to ON dependencies(to_file)`);
|
|
@@ -115,7 +115,7 @@ export class IndexManager {
|
|
|
115
115
|
// Delete old symbols for this file
|
|
116
116
|
this.db.run("DELETE FROM symbols WHERE file_path = ?", [filePath]);
|
|
117
117
|
// Insert new symbols
|
|
118
|
-
const symStmt = this.db.prepare(`INSERT INTO symbols (file_path, name, type, start_line, end_line, class_name)
|
|
118
|
+
const symStmt = this.db.prepare(`INSERT INTO symbols (file_path, name, type, start_line, end_line, class_name)
|
|
119
119
|
VALUES (?, ?, ?, ?, ?, ?)`);
|
|
120
120
|
for (const sym of symbols) {
|
|
121
121
|
symStmt.run([
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Security Validator - v3.9.
|
|
2
|
+
* Security Validator - v3.9.2
|
|
3
3
|
* CRITICAL FIX: Path traversal check AFTER normalization
|
|
4
4
|
*/
|
|
5
5
|
export interface ValidationResult {
|
|
@@ -9,7 +9,7 @@ export interface ValidationResult {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class SecurityValidator {
|
|
11
11
|
private projectRoot;
|
|
12
|
-
constructor(projectRoot
|
|
12
|
+
constructor(projectRoot?: string);
|
|
13
13
|
validateFilePath(filePath: string): Promise<ValidationResult>;
|
|
14
14
|
validateFileSize(filePath: string, maxSize?: number): Promise<ValidationResult>;
|
|
15
15
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Security Validator - v3.9.
|
|
2
|
+
* Security Validator - v3.9.2
|
|
3
3
|
* CRITICAL FIX: Path traversal check AFTER normalization
|
|
4
4
|
*/
|
|
5
5
|
import * as path from "node:path";
|
|
@@ -8,7 +8,13 @@ export class SecurityValidator {
|
|
|
8
8
|
projectRoot;
|
|
9
9
|
constructor(projectRoot) {
|
|
10
10
|
// normalize: resolve + lowercase for case-insensitive Windows FS comparison
|
|
11
|
-
|
|
11
|
+
const safeRoot = projectRoot &&
|
|
12
|
+
projectRoot !== "undefined" &&
|
|
13
|
+
projectRoot !== "null" &&
|
|
14
|
+
projectRoot.trim().length > 0
|
|
15
|
+
? projectRoot
|
|
16
|
+
: process.cwd();
|
|
17
|
+
this.projectRoot = path.resolve(safeRoot).toLowerCase();
|
|
12
18
|
}
|
|
13
19
|
async validateFilePath(filePath) {
|
|
14
20
|
const resolved = path.resolve(filePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/core/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAQvC,MAAM,OAAO,iBAAiB;IACpB,WAAW,CAAS;IAE5B,YAAY,
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/core/validator.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* mcp-code-context v3.9.
|
|
3
|
+
* mcp-code-context v3.9.2 - Tree-sitter WASM Edition (thin bootstrap)
|
|
4
4
|
*/
|
|
5
5
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
6
6
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
@@ -13,7 +13,7 @@ import { TOOLS } from "./tools/toolDefinitions.js";
|
|
|
13
13
|
import { setServerInstances } from "./tools/context.js";
|
|
14
14
|
import { registerPipeline } from "./tools/pipeline.js";
|
|
15
15
|
const SERVER_NAME = "mcp-code-context";
|
|
16
|
-
const SERVER_VERSION = "3.9.
|
|
16
|
+
const SERVER_VERSION = "3.9.2";
|
|
17
17
|
const server = new Server({ name: SERVER_NAME, version: SERVER_VERSION }, { capabilities: { tools: {} } });
|
|
18
18
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }));
|
|
19
19
|
registerPipeline(server);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Base Parser - v3.9.
|
|
2
|
+
* Base Parser - v3.9.2
|
|
3
3
|
* Abstract base for all language parsers
|
|
4
4
|
* IMPROVEMENT: replaceSymbol moved here using AST indices (eliminates indexOf fragility)
|
|
5
|
-
* v3.9.
|
|
5
|
+
* v3.9.1: getInsideStartIndex/getInsideEndIndex overridable for brace-less languages
|
|
6
6
|
*/
|
|
7
7
|
import { Parser, Tree, Language } from "web-tree-sitter";
|
|
8
8
|
export interface ParseResult {
|
package/dist/src/parsers/base.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Base Parser - v3.9.
|
|
2
|
+
* Base Parser - v3.9.2
|
|
3
3
|
* Abstract base for all language parsers
|
|
4
4
|
* IMPROVEMENT: replaceSymbol moved here using AST indices (eliminates indexOf fragility)
|
|
5
|
-
* v3.9.
|
|
5
|
+
* v3.9.1: getInsideStartIndex/getInsideEndIndex overridable for brace-less languages
|
|
6
6
|
*/
|
|
7
7
|
export class BaseParser {
|
|
8
8
|
parser;
|
package/dist/src/parsers/go.d.ts
CHANGED
package/dist/src/parsers/go.js
CHANGED
package/dist/src/parsers/java.js
CHANGED
package/dist/src/parsers/php.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Python Parser - v3.9.
|
|
2
|
+
* Python Parser - v3.9.2
|
|
3
3
|
* CLEANUP: replaceSymbol removed (inherited from BaseParser)
|
|
4
|
-
* v3.9.
|
|
4
|
+
* v3.9.1: override getInsideStartIndex/getInsideEndIndex for indentation-based syntax
|
|
5
5
|
*/
|
|
6
6
|
import { Tree } from "web-tree-sitter";
|
|
7
7
|
import { BaseParser, SymbolInfo } from "./base.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Python Parser - v3.9.
|
|
2
|
+
* Python Parser - v3.9.2
|
|
3
3
|
* CLEANUP: replaceSymbol removed (inherited from BaseParser)
|
|
4
|
-
* v3.9.
|
|
4
|
+
* v3.9.1: override getInsideStartIndex/getInsideEndIndex for indentation-based syntax
|
|
5
5
|
*/
|
|
6
6
|
import { BaseParser } from "./base.js";
|
|
7
7
|
export class PythonParser extends BaseParser {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Ruby Parser - v3.9.
|
|
2
|
+
* Ruby Parser - v3.9.2
|
|
3
3
|
* Tree-sitter based Ruby parser
|
|
4
|
-
* v3.9.
|
|
4
|
+
* v3.9.1: override getInsideStartIndex/getInsideEndIndex for end-based syntax
|
|
5
5
|
*/
|
|
6
6
|
import { Tree } from "web-tree-sitter";
|
|
7
7
|
import { BaseParser, SymbolInfo } from "./base.js";
|
package/dist/src/parsers/ruby.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Ruby Parser - v3.9.
|
|
2
|
+
* Ruby Parser - v3.9.2
|
|
3
3
|
* Tree-sitter based Ruby parser
|
|
4
|
-
* v3.9.
|
|
4
|
+
* v3.9.1: override getInsideStartIndex/getInsideEndIndex for end-based syntax
|
|
5
5
|
*/
|
|
6
6
|
import { BaseParser } from "./base.js";
|
|
7
7
|
export class RubyParser extends BaseParser {
|
package/dist/src/parsers/rust.js
CHANGED
|
@@ -7,9 +7,10 @@ import { OPERATION_COSTS } from "../utils/rateLimiter.js";
|
|
|
7
7
|
import { BackupManager } from "../utils/backupManager.js";
|
|
8
8
|
import { globalSessionManager } from "../core/sessionManager.js";
|
|
9
9
|
import { getSession, getCacheManager, SESSION_ID } from "./context.js";
|
|
10
|
+
import { resolveProjectRoot } from "../utils/projectRoot.js";
|
|
10
11
|
export async function handleRollbackFile(args) {
|
|
11
12
|
const filePath = String(args.filePath);
|
|
12
|
-
const projectRoot =
|
|
13
|
+
const projectRoot = resolveProjectRoot(args, filePath);
|
|
13
14
|
const steps = args.steps ? Number(args.steps) : 1;
|
|
14
15
|
const validator = new SecurityValidator(projectRoot);
|
|
15
16
|
const validation = await validator.validateFilePath(filePath);
|
|
@@ -21,7 +22,7 @@ export async function handleRollbackFile(args) {
|
|
|
21
22
|
return { content: [{ type: "text", text: `Successfully rolled back ${path.basename(filePath)} from backup: ${result.restoredFrom}` }] };
|
|
22
23
|
}
|
|
23
24
|
export async function handleCleanBackups(args) {
|
|
24
|
-
const projectRoot =
|
|
25
|
+
const projectRoot = resolveProjectRoot(args);
|
|
25
26
|
const validator = new SecurityValidator(projectRoot);
|
|
26
27
|
// Just validate projectRoot is a valid directory
|
|
27
28
|
const validation = await validator.validateFilePath(projectRoot);
|
|
@@ -53,7 +54,7 @@ export async function handleGetServerStats() {
|
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
56
|
export async function handleGetCacheStats(args) {
|
|
56
|
-
const projectRoot =
|
|
57
|
+
const projectRoot = resolveProjectRoot(args);
|
|
57
58
|
const cache = getCacheManager(projectRoot);
|
|
58
59
|
const stats = await cache.getStats();
|
|
59
60
|
return {
|
|
@@ -61,7 +62,7 @@ export async function handleGetCacheStats(args) {
|
|
|
61
62
|
};
|
|
62
63
|
}
|
|
63
64
|
export async function handleClearCache(args) {
|
|
64
|
-
const projectRoot =
|
|
65
|
+
const projectRoot = resolveProjectRoot(args);
|
|
65
66
|
const cache = getCacheManager(projectRoot);
|
|
66
67
|
await cache.clear();
|
|
67
68
|
return {
|
|
@@ -69,7 +70,7 @@ export async function handleClearCache(args) {
|
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
72
|
export async function handleConfigureFileWatcher(args) {
|
|
72
|
-
const projectRoot =
|
|
73
|
+
const projectRoot = resolveProjectRoot(args);
|
|
73
74
|
const action = String(args.action);
|
|
74
75
|
const debounceMs = args.debounceMs ? Number(args.debounceMs) : 500;
|
|
75
76
|
const validator = new SecurityValidator(projectRoot);
|
|
@@ -94,7 +95,7 @@ export async function handleConfigureFileWatcher(args) {
|
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
export async function handleGetFileWatcherStatus(args) {
|
|
97
|
-
const projectRoot =
|
|
98
|
+
const projectRoot = resolveProjectRoot(args);
|
|
98
99
|
const cache = getCacheManager(projectRoot);
|
|
99
100
|
const status = cache.getWatcherStatus();
|
|
100
101
|
return {
|
|
@@ -118,7 +119,7 @@ export async function handleGetSessionStats() {
|
|
|
118
119
|
return { content: [{ type: "text", text: JSON.stringify(stats, null, 2) }] };
|
|
119
120
|
}
|
|
120
121
|
export async function handleClearSessionCache(args) {
|
|
121
|
-
const projectRoot = args.projectRoot
|
|
122
|
+
const projectRoot = (args.projectRoot && args.projectRoot !== "undefined") ? resolveProjectRoot(args) : undefined;
|
|
122
123
|
const cleared = await globalSessionManager.clearSessionCache(SESSION_ID, projectRoot);
|
|
123
124
|
return { content: [{ type: "text", text: JSON.stringify({ cacheEntriesCleared: cleared }, null, 2) }] };
|
|
124
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adminHandlers.js","sourceRoot":"","sources":["../../../src/tools/adminHandlers.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAe,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"adminHandlers.js","sourceRoot":"","sources":["../../../src/tools/adminHandlers.ts"],"names":[],"mappings":"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"}
|