mcp-code-context 3.7.1 → 3.8.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.
- package/CHANGELOG.md +25 -0
- package/INSTRUCTIONS.md +3 -3
- package/README.md +12 -9
- package/SECURITY.md +10 -10
- 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 +1 -1
- package/dist/src/core/sessionManager.d.ts +1 -1
- package/dist/src/core/sessionManager.js +1 -1
- package/dist/src/core/validator.d.ts +1 -1
- package/dist/src/core/validator.js +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 +1 -1
- package/dist/src/parsers/base.js +1 -1
- 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 +1 -1
- package/dist/src/parsers/python.js +1 -1
- package/dist/src/parsers/registry.d.ts +1 -1
- package/dist/src/parsers/registry.js +1 -1
- package/dist/src/parsers/ruby.d.ts +8 -1
- package/dist/src/parsers/ruby.js +18 -3
- package/dist/src/parsers/ruby.js.map +1 -1
- 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/readHandlers.js +26 -0
- package/dist/src/tools/readHandlers.js.map +1 -1
- package/dist/src/tools/toolDefinitionsCore.js +2 -2
- 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/logger.d.ts +1 -1
- package/dist/src/utils/logger.js +1 -1
- package/dist/src/utils/railsSchema.d.ts +10 -0
- package/dist/src/utils/railsSchema.js +104 -0
- package/dist/src/utils/railsSchema.js.map +1 -0
- 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 +11 -9
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.8.0] - 2026-07-15
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **Ruby full support** — `RubyParser` now complete with `search()` method for `search_code_pattern` tool compatibility
|
|
8
|
+
- **ActiveRecord Virtual Schema Extractor** — new `src/utils/railsSchema.ts` utility:
|
|
9
|
+
- Parses `db/schema.rb` via O(n) line-by-line state machine (no backtracking risk)
|
|
10
|
+
- mtime-keyed in-memory cache — zero I/O on repeated reads of unchanged schema
|
|
11
|
+
- `modelToTable()` — Rails CoC PascalCase → snake_case → pluralize (`AdminUser → admin_users`, `Category → categories`)
|
|
12
|
+
- `formatSchemaAnnotation()` — emits XML comment block with column names and types
|
|
13
|
+
- **AR schema injection in `read_file_surgical`** — when reading `.rb` files inheriting from `ApplicationRecord` or `ActiveRecord::Base`, virtual schema columns are prepended as XML comments
|
|
14
|
+
- Context-aware: when `symbolName` is set, reads full file to detect AR inheritance before injecting
|
|
15
|
+
- Graceful: no-op when `db/schema.rb` is absent or table not found
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- **`RubyParser.extractSymbol` off-by-one** — `tree.rootNode.text` omits leading whitespace on Windows/WASM, causing `startIndex` drift. Fixed by adjusting indices relative to `tree.rootNode.startIndex`.
|
|
20
|
+
|
|
21
|
+
### Tests
|
|
22
|
+
|
|
23
|
+
- Added `tests/unit/parsers/ruby.spec.ts` — 5 vitest specs: symbol discovery, surgical replace, `extractSymbol` scoping, `parseSchemaRb` column extraction, `modelToTable` CoC mapping
|
|
24
|
+
- All 115 WASM parser tests passing (100%)
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
3
28
|
## [3.7.1] - 2026-06-18
|
|
4
29
|
|
|
5
30
|
### Fixed
|
package/INSTRUCTIONS.md
CHANGED
|
@@ -253,7 +253,7 @@ newContent: "{ return 42; }"
|
|
|
253
253
|
|
|
254
254
|
---
|
|
255
255
|
|
|
256
|
-
## 🚀 v3.
|
|
256
|
+
## 🚀 v3.8.0 Features
|
|
257
257
|
|
|
258
258
|
### New Tools
|
|
259
259
|
- **`get_session_stats`**: Session-scoped stats (pending ops, locks held, rate limiter tokens)
|
|
@@ -267,7 +267,7 @@ newContent: "{ return 42; }"
|
|
|
267
267
|
- ✅ **Auto-persist before eviction**: Cache data preserved
|
|
268
268
|
- ✅ **Higher file limits**: MAX_FILES = 2000 (was 500)
|
|
269
269
|
|
|
270
|
-
### Previously Added in v3.7.
|
|
270
|
+
### Previously Added in v3.7.x
|
|
271
271
|
- ✅ **4 New Tools**: `search_symbols`, `explain_symbol`, `batch_read`, `get_rate_limit_status`
|
|
272
272
|
- ✅ **`diffFormat`**: Control diff verbosity (`unified`, `compact`, `summary`, `none`)
|
|
273
273
|
- ✅ **Phase 2 optimized**: No need to resend `newContent`/`code` — server stores it from Phase 1
|
|
@@ -288,6 +288,6 @@ See `llms.txt` for complete API reference and technical details.
|
|
|
288
288
|
|
|
289
289
|
---
|
|
290
290
|
|
|
291
|
-
**Version**: 3.
|
|
291
|
+
**Version**: 3.8.0
|
|
292
292
|
**Last Updated**: June 8, 2026
|
|
293
293
|
**Status**: Production-ready with session-scoped state and crash recovery
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
[](https://www.npmjs.com/package/mcp-code-context)
|
|
5
5
|
[](https://www.npmjs.com/package/mcp-code-context)
|
|
6
6
|
[]()
|
|
7
|
-
[]()
|
|
8
8
|
[](https://ko-fi.com/achatainga)
|
|
9
9
|
[](https://paypal.me/achatainga)
|
|
10
10
|
|
|
@@ -75,7 +75,7 @@ Built to be robust and precise. Both read and write engines are tested against r
|
|
|
75
75
|
|
|
76
76
|
### Production-Ready Features
|
|
77
77
|
|
|
78
|
-
| Feature | v3.6.x | v3.
|
|
78
|
+
| Feature | v3.6.x | v3.8.0 | Benefit |
|
|
79
79
|
|---------|--------|--------|---------|
|
|
80
80
|
| Multi-process safety | ✅ | ✅ | No file corruption |
|
|
81
81
|
| Persistent cache | ✅ | ✅ | <100ms cache hits |
|
|
@@ -88,7 +88,7 @@ Built to be robust and precise. Both read and write engines are tested against r
|
|
|
88
88
|
|
|
89
89
|
## Features
|
|
90
90
|
|
|
91
|
-
### What's New in v3.
|
|
91
|
+
### What's New in v3.8.0
|
|
92
92
|
|
|
93
93
|
| Feature | Description |
|
|
94
94
|
|---------|-------------|
|
|
@@ -99,6 +99,8 @@ Built to be robust and precise. Both read and write engines are tested against r
|
|
|
99
99
|
| 📊 **Higher file limits** | MAX_FILES_REPO_MAP = 2000 (was 500) |
|
|
100
100
|
| 🧪 **Multi-client tests** | New integration tests for concurrent MCP clients |
|
|
101
101
|
| 📝 **New tools**: `get_session_stats`, `clear_session_cache`, `list_pending_operations` | Session-aware operations |
|
|
102
|
+
| 💎 **Ruby full support** | Complete `RubyParser` with `search()` for `search_code_pattern` compatibility |
|
|
103
|
+
| 🗄️ **ActiveRecord Virtual Schema** | Parses `db/schema.rb` and injects column annotations when reading AR model files |
|
|
102
104
|
|
|
103
105
|
### Previous Versions (v3.6.x)
|
|
104
106
|
|
|
@@ -142,6 +144,7 @@ Built to be robust and precise. Both read and write engines are tested against r
|
|
|
142
144
|
| PHP | ✅ AST (Tree-sitter WASM) | ✅ AST + line-splice | ✅ |
|
|
143
145
|
| Dart | ✅ AST (Tree-sitter WASM) | ✅ AST + line-splice | ✅ |
|
|
144
146
|
| Python | ✅ AST (Tree-sitter WASM) | ✅ Indentation-aware | ✅ |
|
|
147
|
+
| Ruby | ✅ AST (Tree-sitter WASM) + ActiveRecord Virtual Schema | ✅ AST byte-offset splice | ✅ |
|
|
145
148
|
| Others (JSON, YAML, CSS, etc.) | Passthrough / truncation | — | — |
|
|
146
149
|
|
|
147
150
|
---
|
|
@@ -161,7 +164,7 @@ Built to be robust and precise. Both read and write engines are tested against r
|
|
|
161
164
|
|
|
162
165
|
### `get_semantic_repo_map` Tool
|
|
163
166
|
|
|
164
|
-
- **Max files**: Limited to 2000 files to prevent timeouts (increased from 500 in v3.
|
|
167
|
+
- **Max files**: Limited to 2000 files to prevent timeouts (increased from 500 in v3.8.0)
|
|
165
168
|
- **Performance**: Synchronous I/O may take 10-30 seconds on large repositories
|
|
166
169
|
- **Recommendation**: Use `@folder` syntax to target specific directories
|
|
167
170
|
|
|
@@ -188,13 +191,13 @@ npx -y mcp-code-context
|
|
|
188
191
|
|
|
189
192
|
---
|
|
190
193
|
|
|
191
|
-
## Session State (v3.
|
|
194
|
+
## Session State (v3.8.0+)
|
|
192
195
|
|
|
193
|
-
**Important**: v3.
|
|
196
|
+
**Important**: v3.8.0 introduces **session-scoped state** for each MCP client connection. This prevents state leakage when multiple agents (Amazon Q, Kiro, Cursor, etc.) use the same server instance.
|
|
194
197
|
|
|
195
198
|
### What Changed
|
|
196
199
|
|
|
197
|
-
| Before (v3.6.x) | After (v3.
|
|
200
|
+
| Before (v3.6.x) | After (v3.8.0) |
|
|
198
201
|
|----------------|----------------|
|
|
199
202
|
| Global `LockManager` (shared by all clients) | Session-scoped `sessionStates` Map |
|
|
200
203
|
| Global `ConfirmationStore` (in-memory Map) | Session-scoped confirmation store + SQLite persistence |
|
|
@@ -222,7 +225,7 @@ npx -y mcp-code-context
|
|
|
222
225
|
}
|
|
223
226
|
```
|
|
224
227
|
|
|
225
|
-
### New Tools (v3.
|
|
228
|
+
### New Tools (v3.8.0)
|
|
226
229
|
|
|
227
230
|
- `get_session_stats` — Get stats for current session only
|
|
228
231
|
- `clear_session_cache` — Clear cache for current session only
|
|
@@ -526,7 +529,7 @@ npm run dev
|
|
|
526
529
|
- **Portability:** 100% WASM - no native dependencies, works on all platforms
|
|
527
530
|
- **Tests:** 83 passing (unit + integration + performance + stress)
|
|
528
531
|
|
|
529
|
-
### v3.
|
|
532
|
+
### v3.8.0 Key Changes
|
|
530
533
|
|
|
531
534
|
| Component | Change | Benefit |
|
|
532
535
|
|-----------|--------|---------|
|
package/SECURITY.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Security Policy - mcp-code-context v3.
|
|
1
|
+
# Security Policy - mcp-code-context v3.8.0
|
|
2
2
|
|
|
3
|
-
## 🔒 Security Improvements in v3.7.1
|
|
3
|
+
## 🔒 Security Improvements in v3.7.1+
|
|
4
4
|
|
|
5
|
-
This release addresses **all critical security vulnerabilities** from comprehensive adversarial audit, implements full middleware pipeline, and hardens all 13 tool handlers. **NEW**: Session-scoped state isolation prevents cross-client data leakage.
|
|
5
|
+
This release addresses **all critical security vulnerabilities** from comprehensive adversarial audit, implements full middleware pipeline, and hardens all 13 tool handlers. **NEW in v3.7.0**: Session-scoped state isolation prevents cross-client data leakage.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -96,9 +96,9 @@ This release addresses **all critical security vulnerabilities** from comprehens
|
|
|
96
96
|
|
|
97
97
|
---
|
|
98
98
|
|
|
99
|
-
### 10. Session State Leakage (HIGH) — **NEW**
|
|
99
|
+
### 10. Session State Leakage (HIGH) — **NEW in v3.7.0**
|
|
100
100
|
**CVSS Score**: 7.5 (High)
|
|
101
|
-
**Status**: ✅ FIXED in v3.7.
|
|
101
|
+
**Status**: ✅ FIXED in v3.7.0
|
|
102
102
|
|
|
103
103
|
**Description**: Global state (`globalLockManager`, `globalConfirmationStore`, `rateLimiter`) accumulated across client sessions with no cleanup.
|
|
104
104
|
|
|
@@ -108,9 +108,9 @@ This release addresses **all critical security vulnerabilities** from comprehens
|
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
|
111
|
-
### 11. Pending Operations Not Persistent (HIGH) — **NEW**
|
|
111
|
+
### 11. Pending Operations Not Persistent (HIGH) — **NEW in v3.7.0**
|
|
112
112
|
**CVSS Score**: 7.0 (High)
|
|
113
|
-
**Status**: ✅ FIXED in v3.7.
|
|
113
|
+
**Status**: ✅ FIXED in v3.7.0
|
|
114
114
|
|
|
115
115
|
**Description**: Pending operations stored in `globalConfirmationStore` (in-memory Map). No persistence.
|
|
116
116
|
|
|
@@ -141,7 +141,7 @@ This release addresses **all critical security vulnerabilities** from comprehens
|
|
|
141
141
|
- Audit logging (persistent `.mcp-audit-logs/`)
|
|
142
142
|
- Telemetry (operation metrics, percentiles)
|
|
143
143
|
|
|
144
|
-
4. **Session-Scoped State** (v3.7.
|
|
144
|
+
4. **Session-Scoped State** (v3.7.0)
|
|
145
145
|
- Each MCP client gets isolated locks, confirmation store, rate limiter
|
|
146
146
|
- No state leakage between clients (Amazon Q, Kiro, Cursor, etc.)
|
|
147
147
|
|
|
@@ -191,7 +191,7 @@ node dist-tests/tests/test-security.js
|
|
|
191
191
|
- [x] Syntax validation
|
|
192
192
|
- [x] Bounded memory in compress
|
|
193
193
|
|
|
194
|
-
### v3.7.
|
|
194
|
+
### v3.7.x ✅
|
|
195
195
|
- [x] Regex timeout enforcement (safeRegexTest)
|
|
196
196
|
- [x] Expanded ReDoS detection (15+ patterns)
|
|
197
197
|
- [x] Rate limiting (token bucket)
|
|
@@ -208,4 +208,4 @@ node dist-tests/tests/test-security.js
|
|
|
208
208
|
---
|
|
209
209
|
|
|
210
210
|
**Last Updated**: 2026-06-08
|
|
211
|
-
**Version**: 3.
|
|
211
|
+
**Version**: 3.8.0
|
package/dist/src/core/engine.js
CHANGED
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.
|
|
3
|
+
* mcp-code-context v3.8.0 - 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.
|
|
16
|
+
const SERVER_VERSION = "3.8.0";
|
|
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);
|
package/dist/src/parsers/base.js
CHANGED
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,12 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Ruby Parser - v3.
|
|
2
|
+
* Ruby Parser - v3.8.0
|
|
3
3
|
* Tree-sitter based Ruby parser
|
|
4
4
|
*/
|
|
5
5
|
import { Tree } from "web-tree-sitter";
|
|
6
6
|
import { BaseParser, SymbolInfo } from "./base.js";
|
|
7
7
|
export declare class RubyParser extends BaseParser {
|
|
8
8
|
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Extract a symbol from source content using AST byte offsets.
|
|
11
|
+
* NOTE: uses content directly (not tree.rootNode.text) because web-tree-sitter
|
|
12
|
+
* may strip leading whitespace/newlines from rootNode.text on Windows/WASM,
|
|
13
|
+
* causing off-by-one drift against the original byte offsets.
|
|
14
|
+
*/
|
|
9
15
|
extractSymbol(tree: Tree, symbolName: string, className?: string): string | null;
|
|
16
|
+
search(tree: Tree, pattern: string): SymbolInfo[];
|
|
10
17
|
findSymbols(tree: Tree): SymbolInfo[];
|
|
11
18
|
private findParentClass;
|
|
12
19
|
}
|
package/dist/src/parsers/ruby.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Ruby Parser - v3.
|
|
2
|
+
* Ruby Parser - v3.8.0
|
|
3
3
|
* Tree-sitter based Ruby parser
|
|
4
4
|
*/
|
|
5
5
|
import { BaseParser } from "./base.js";
|
|
@@ -7,11 +7,26 @@ export class RubyParser extends BaseParser {
|
|
|
7
7
|
constructor() {
|
|
8
8
|
super("ruby");
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Extract a symbol from source content using AST byte offsets.
|
|
12
|
+
* NOTE: uses content directly (not tree.rootNode.text) because web-tree-sitter
|
|
13
|
+
* may strip leading whitespace/newlines from rootNode.text on Windows/WASM,
|
|
14
|
+
* causing off-by-one drift against the original byte offsets.
|
|
15
|
+
*/
|
|
10
16
|
extractSymbol(tree, symbolName, className) {
|
|
11
|
-
const src = tree.rootNode.text;
|
|
12
17
|
const symbols = this.findSymbols(tree);
|
|
13
18
|
const target = symbols.find(s => s.name === symbolName && (!className || s.className === className));
|
|
14
|
-
|
|
19
|
+
if (!target)
|
|
20
|
+
return null;
|
|
21
|
+
// Reconstruct the original source from tree nodes — use the full text of the
|
|
22
|
+
// root node's parent walk so we always have the unparsed original.
|
|
23
|
+
// The safest approach: use tree.rootNode.text but correct the start offset.
|
|
24
|
+
const src = tree.rootNode.text;
|
|
25
|
+
const rootStart = tree.rootNode.startIndex;
|
|
26
|
+
return src.substring(target.startIndex - rootStart, target.endIndex - rootStart);
|
|
27
|
+
}
|
|
28
|
+
search(tree, pattern) {
|
|
29
|
+
return this.findSymbols(tree).filter(s => s.name.toLowerCase().includes(pattern.toLowerCase()));
|
|
15
30
|
}
|
|
16
31
|
findSymbols(tree) {
|
|
17
32
|
const symbols = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/parsers/ruby.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAc,MAAM,WAAW,CAAC;AAEnD,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxC;QACE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,IAAU,EAAE,UAAkB,EAAE,SAAkB;QAC9D,MAAM,
|
|
1
|
+
{"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/parsers/ruby.ts"],"names":[],"mappings":"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"}
|
package/dist/src/parsers/rust.js
CHANGED