mcp-code-context 3.6.1 → 3.6.3
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 +41 -31
- package/HIRE_ME.md +234 -234
- package/INSTRUCTIONS.md +279 -274
- package/LICENSE +21 -21
- package/README.md +482 -486
- package/SECURITY.md +14 -14
- package/SPONSORS.md +104 -104
- package/dist/src/core/cacheManager.d.ts +6 -1
- package/dist/src/core/cacheManager.js +25 -16
- package/dist/src/core/cacheManager.js.map +1 -1
- package/dist/src/core/engine.d.ts +1 -1
- package/dist/src/core/engine.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 +207 -24
- package/dist/src/index.js.map +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/read.d.ts +37 -1
- package/dist/src/operations/read.js +176 -9
- package/dist/src/operations/read.js.map +1 -1
- package/dist/src/operations/write.d.ts +2 -2
- package/dist/src/operations/write.js +2 -2
- package/dist/src/parsers/base.d.ts +3 -1
- package/dist/src/parsers/base.js +1 -1
- package/dist/src/parsers/base.js.map +1 -1
- package/dist/src/parsers/dartTreeSitter.d.ts +1 -1
- package/dist/src/parsers/dartTreeSitter.js +5 -1
- package/dist/src/parsers/dartTreeSitter.js.map +1 -1
- package/dist/src/parsers/php.d.ts +1 -1
- package/dist/src/parsers/php.js +5 -1
- package/dist/src/parsers/php.js.map +1 -1
- package/dist/src/parsers/python.d.ts +1 -1
- package/dist/src/parsers/python.js +5 -1
- package/dist/src/parsers/python.js.map +1 -1
- package/dist/src/parsers/registry.d.ts +1 -1
- package/dist/src/parsers/registry.js +1 -1
- package/dist/src/parsers/typescript.d.ts +1 -1
- package/dist/src/parsers/typescript.js +9 -5
- package/dist/src/parsers/typescript.js.map +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 +1 -1
- package/dist/src/utils/diff.js +4 -4
- 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 +2 -1
- package/dist/src/utils/fileWatcher.js +12 -2
- package/dist/src/utils/fileWatcher.js.map +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/rateLimiter.d.ts +5 -1
- package/dist/src/utils/rateLimiter.js +5 -1
- package/dist/src/utils/rateLimiter.js.map +1 -1
- package/dist/src/utils/safeRegex.d.ts +1 -1
- package/dist/src/utils/safeRegex.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 +37 -21
- package/package.json +3 -3
- package/scripts/replace-version.js +59 -59
- package/vitest.config.ts +37 -37
package/dist/src/utils/diff.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Diff Utilities - v3.6.
|
|
2
|
+
* Diff Utilities - v3.6.3
|
|
3
3
|
* Uses diff-match-patch for efficient diffing
|
|
4
4
|
*/
|
|
5
5
|
import DiffMatchPatch from 'diff-match-patch';
|
|
@@ -35,9 +35,9 @@ export function generateUnifiedDiff(oldText, newText) {
|
|
|
35
35
|
export function generateSimpleDiff(oldText, newText) {
|
|
36
36
|
const oldLines = oldText.split('\n');
|
|
37
37
|
const newLines = newText.split('\n');
|
|
38
|
-
return `File too large for detailed diff.
|
|
39
|
-
Old: ${oldLines.length} lines
|
|
40
|
-
New: ${newLines.length} lines
|
|
38
|
+
return `File too large for detailed diff.
|
|
39
|
+
Old: ${oldLines.length} lines
|
|
40
|
+
New: ${newLines.length} lines
|
|
41
41
|
Changed: ${Math.abs(oldLines.length - newLines.length)} lines`;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* File Watcher - v3.6.
|
|
2
|
+
* File Watcher - v3.6.3
|
|
3
3
|
* Auto-invalidate cache on file changes with chokidar
|
|
4
4
|
*/
|
|
5
5
|
export interface FileWatcherConfig {
|
|
@@ -18,6 +18,7 @@ export declare class FileWatcher {
|
|
|
18
18
|
getStatus(): {
|
|
19
19
|
isWatching: boolean;
|
|
20
20
|
watchedFiles: number;
|
|
21
|
+
paths: string[];
|
|
21
22
|
};
|
|
22
23
|
private handleChange;
|
|
23
24
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* File Watcher - v3.6.
|
|
2
|
+
* File Watcher - v3.6.3
|
|
3
3
|
* Auto-invalidate cache on file changes with chokidar
|
|
4
4
|
*/
|
|
5
5
|
import chokidar from 'chokidar';
|
|
@@ -52,9 +52,19 @@ export class FileWatcher {
|
|
|
52
52
|
logger.info('File watcher stopped');
|
|
53
53
|
}
|
|
54
54
|
getStatus() {
|
|
55
|
+
if (!this.watcher)
|
|
56
|
+
return { isWatching: false, watchedFiles: 0, paths: [] };
|
|
57
|
+
const watched = this.watcher.getWatched();
|
|
58
|
+
const paths = [];
|
|
59
|
+
for (const [dir, files] of Object.entries(watched)) {
|
|
60
|
+
for (const file of files) {
|
|
61
|
+
paths.push(file ? `${dir}/${file}` : dir);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
55
64
|
return {
|
|
56
65
|
isWatching: this.isWatching,
|
|
57
|
-
watchedFiles:
|
|
66
|
+
watchedFiles: paths.length,
|
|
67
|
+
paths: paths.slice(0, 50), // cap at 50 to avoid token explosion
|
|
58
68
|
};
|
|
59
69
|
}
|
|
60
70
|
handleChange(filePath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileWatcher.js","sourceRoot":"","sources":["../../../src/utils/fileWatcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAuB,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,MAAM,OAAO,WAAW;IACd,OAAO,GAAqB,IAAI,CAAC;IACjC,MAAM,CAAoB;IAC1B,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,UAAU,GAAG,KAAK,CAAC;IAE3B,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;YACrC,OAAO,EAAE;gBACP,eAAe,EAAE,eAAe;gBAChC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC1C,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;aACvB;YACD,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE;gBAChB,kBAAkB,EAAE,GAAG;gBACvB,YAAY,EAAE,GAAG;aAClB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO;aACT,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aACvD,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aACvD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAEzE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,sBAAsB,CAAC,CAAC;IACvF,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,oCAAoC;QACpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAE5B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED,SAAS;QACP,OAAO;
|
|
1
|
+
{"version":3,"file":"fileWatcher.js","sourceRoot":"","sources":["../../../src/utils/fileWatcher.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils/logger.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rate Limiter - v3.6.
|
|
2
|
+
* Rate Limiter - v3.6.3
|
|
3
3
|
* Token bucket algorithm for DoS protection
|
|
4
4
|
*/
|
|
5
5
|
interface RateLimitConfig {
|
|
@@ -57,5 +57,9 @@ export declare const OPERATION_COSTS: {
|
|
|
57
57
|
readonly rollback_file: 2;
|
|
58
58
|
readonly clean_backups: 2;
|
|
59
59
|
readonly get_server_stats: 1;
|
|
60
|
+
readonly get_rate_limit_status: 1;
|
|
61
|
+
readonly search_symbols: 40;
|
|
62
|
+
readonly explain_symbol: 10;
|
|
63
|
+
readonly batch_read: 10;
|
|
60
64
|
};
|
|
61
65
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rate Limiter - v3.6.
|
|
2
|
+
* Rate Limiter - v3.6.3
|
|
3
3
|
* Token bucket algorithm for DoS protection
|
|
4
4
|
*/
|
|
5
5
|
export class RateLimiter {
|
|
@@ -110,5 +110,9 @@ export const OPERATION_COSTS = {
|
|
|
110
110
|
rollback_file: 2,
|
|
111
111
|
clean_backups: 2,
|
|
112
112
|
get_server_stats: 1,
|
|
113
|
+
get_rate_limit_status: 1,
|
|
114
|
+
search_symbols: 40, // Full repo AST walk
|
|
115
|
+
explain_symbol: 10,
|
|
116
|
+
batch_read: 10,
|
|
113
117
|
};
|
|
114
118
|
//# sourceMappingURL=rateLimiter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../../src/utils/rateLimiter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../../src/utils/rateLimiter.ts"],"names":[],"mappings":"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"}
|
package/llms.txt
CHANGED
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
# mcp-code-context v3.6.
|
|
1
|
+
# mcp-code-context v3.6.3
|
|
2
2
|
|
|
3
3
|
> A Model Context Protocol (MCP) server with **Tree-sitter WASM parsers** for 100% AST accuracy. Zero native dependencies. Production-ready with middleware pipeline.
|
|
4
4
|
|
|
5
|
-
## What's New in v3.6.
|
|
5
|
+
## What's New in v3.6.3
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- ✅
|
|
9
|
-
- ✅
|
|
10
|
-
- ✅
|
|
11
|
-
- ✅
|
|
12
|
-
- ✅
|
|
13
|
-
- ✅
|
|
14
|
-
- ✅
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- ✅ web-tree-sitter@0.25.1 (WASM)
|
|
18
|
-
- ✅ Zero native dependencies (no Visual Studio, node-gyp, Python)
|
|
19
|
-
- ✅ Windows/Mac/Linux without compilation
|
|
20
|
-
- ✅ TypeScript/JavaScript/Python/PHP/Dart all use WASM parsers
|
|
7
|
+
🚀 **LLM Agent Experience Release**:
|
|
8
|
+
- ✅ 4 new tools: `search_symbols`, `explain_symbol`, `batch_read`, `get_rate_limit_status`
|
|
9
|
+
- ✅ `diffFormat` parameter on all write tools (`unified`, `compact`, `summary`, `none`)
|
|
10
|
+
- ✅ Phase 2 no longer requires `newContent`/`code` — server stores content from Phase 1
|
|
11
|
+
- ✅ `aroundPattern` now includes match line number in output
|
|
12
|
+
- ✅ `get_server_stats` includes rate limiter token balance and operation costs
|
|
13
|
+
- ✅ `get_cache_stats` includes hit rate percentage
|
|
14
|
+
- ✅ `get_file_watcher_status` includes list of watched paths
|
|
15
|
+
- ✅ `read_file_lines` clamps `endLine` to file length instead of erroring
|
|
16
|
+
- ✅ CVE fix: `@modelcontextprotocol/sdk` updated from 1.12.0 to 1.29.0
|
|
21
17
|
|
|
22
18
|
## What This Tool Does
|
|
23
19
|
|
|
@@ -142,13 +138,13 @@ This MCP server solves two problems:
|
|
|
142
138
|
- `steps` (optional): Number of versions to go back (1-5, default: 1).
|
|
143
139
|
**What it does:** Reverts the file to the state it was in before the last 1-5 modifications.
|
|
144
140
|
|
|
145
|
-
### Write Tools (v3.6.
|
|
141
|
+
### Write Tools (v3.6.3 Two-Phase Workflow)
|
|
146
142
|
|
|
147
143
|
All write tools follow a **Two-Phase Workflow**:
|
|
148
144
|
1. **Phase 1 (Preview)**: Call without a token to get a unified `diff` and a `confirmationToken`.
|
|
149
145
|
2. **Phase 2 (Apply)**: Call with `confirmationToken` and `confirm: true` to apply the changes.
|
|
150
146
|
|
|
151
|
-
**Important Notes (v3.6.
|
|
147
|
+
**Important Notes (v3.6.3):**
|
|
152
148
|
- ✅ **Windows CRLF Support**: Fully resolved. All operations work correctly on Windows files with CRLF line endings.
|
|
153
149
|
- ✅ **Parameter Brace Handling**: Methods with braces in parameters (e.g., `{int? cart}`) are now handled correctly.
|
|
154
150
|
|
|
@@ -236,12 +232,12 @@ All write tools follow a **Two-Phase Workflow**:
|
|
|
236
232
|
5. **Phase 2: Apply Edit** → Verify the diff, then call with the token and `confirm: true`.
|
|
237
233
|
6. **Recovery** → Use `rollback_file` if needed.
|
|
238
234
|
|
|
239
|
-
### Additional Tools (v3.6.
|
|
235
|
+
### Additional Tools (v3.6.3)
|
|
240
236
|
|
|
241
237
|
#### 11. `parse_file`
|
|
242
238
|
**Purpose:** Parse a file using Tree-sitter and extract all symbols.
|
|
243
239
|
**Input:** `filePath` (required), `projectRoot` (required).
|
|
244
|
-
**Returns:** JSON array of all symbols with type and
|
|
240
|
+
**Returns:** JSON array of all symbols with type, name, `startLine`, and `endLine`.
|
|
245
241
|
|
|
246
242
|
#### 12. `clean_backups`
|
|
247
243
|
**Purpose:** Remove all backup files for a project.
|
|
@@ -250,7 +246,27 @@ All write tools follow a **Two-Phase Workflow**:
|
|
|
250
246
|
#### 13. `get_server_stats`
|
|
251
247
|
**Purpose:** Get server telemetry, audit statistics, and health metrics.
|
|
252
248
|
**Input:** None.
|
|
253
|
-
**Returns:** Pending confirmations
|
|
249
|
+
**Returns:** Pending confirmations, rate limiter token balance, operation costs, and operational metrics.
|
|
250
|
+
|
|
251
|
+
#### 14. `search_symbols`
|
|
252
|
+
**Purpose:** Search symbols by name across the repo using AST (not text search).
|
|
253
|
+
**Input:** `rootDir` (required), `projectRoot` (required), `query` (required), `types` (optional), `fuzzy` (optional), `fileExtensions` (optional), `maxResults` (optional).
|
|
254
|
+
**Returns:** Matching symbols with file path, line numbers, and type.
|
|
255
|
+
|
|
256
|
+
#### 15. `explain_symbol`
|
|
257
|
+
**Purpose:** Get signature, location, and callers of a symbol in one call.
|
|
258
|
+
**Input:** `filePath` (required), `projectRoot` (required), `symbolName` (required), `className` (optional), `rootDir` (optional).
|
|
259
|
+
**Returns:** Symbol definition + list of files that call it. Replaces `read_file_surgical` + `analyze_impact` in one round-trip.
|
|
260
|
+
|
|
261
|
+
#### 16. `batch_read`
|
|
262
|
+
**Purpose:** Read N symbols from N files in a single call.
|
|
263
|
+
**Input:** `reads` (required): array of `{filePath, symbolName, className?}`. `projectRoot` (required).
|
|
264
|
+
**Returns:** All requested symbols in one response. Eliminates N round-trips.
|
|
265
|
+
|
|
266
|
+
#### 17. `get_rate_limit_status`
|
|
267
|
+
**Purpose:** Get current token balance and operation costs.
|
|
268
|
+
**Input:** None.
|
|
269
|
+
**Returns:** `tokensAvailable`, `maxTokens`, `refillRate`, and `canAfford` map per operation. Lets autonomous agents plan their budget.
|
|
254
270
|
|
|
255
271
|
## Technical Details
|
|
256
272
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-code-context",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.3",
|
|
4
4
|
"description": "Powerful MCP server with Tree-sitter WASM parsers for 100% AST accuracy. Zero native dependencies. Production-ready with persistent caching, structured logging, file watching, fuzzy search, rate limiting, file locking, and ReDoS protection. Supports TypeScript, JavaScript, PHP, Dart, and Python.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"email": "a.chataing.a@gmail.com"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@modelcontextprotocol/sdk": "1.
|
|
65
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
66
66
|
"chokidar": "5.0.0",
|
|
67
67
|
"diff-match-patch": "1.0.5",
|
|
68
68
|
"fuse.js": "7.3.0",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"@vitest/coverage-v8": "4.1.5",
|
|
84
84
|
"@vitest/ui": "4.1.5",
|
|
85
85
|
"rimraf": "6.0.1",
|
|
86
|
-
"typescript": "5.7.
|
|
86
|
+
"typescript": "5.7.2",
|
|
87
87
|
"vitest": "4.1.5"
|
|
88
88
|
},
|
|
89
89
|
"engines": {
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Universal Version Replacer - v1.0.0
|
|
6
|
-
* Usage: node scripts/replace-version.js <oldVersion> <newVersion>
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
const [,, oldVersion, newVersion] = process.argv;
|
|
10
|
-
|
|
11
|
-
if (!oldVersion || !newVersion) {
|
|
12
|
-
console.error('Usage: node scripts/replace-version.js <oldVersion> <newVersion>');
|
|
13
|
-
console.error('Example: node scripts/replace-version.js 3.4.0 3.4.1');
|
|
14
|
-
process.exit(1);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const root = process.cwd();
|
|
18
|
-
const oldRegex = new RegExp(oldVersion.replace(/\./g, '\\.'), 'g');
|
|
19
|
-
|
|
20
|
-
console.log(`🚀 Starting global replace: ${oldVersion} -> ${newVersion}`);
|
|
21
|
-
|
|
22
|
-
function walk(dir) {
|
|
23
|
-
const files = fs.readdirSync(dir);
|
|
24
|
-
for (const file of files) {
|
|
25
|
-
const fullPath = path.join(dir, file);
|
|
26
|
-
|
|
27
|
-
// Safety boundaries
|
|
28
|
-
if (fullPath.includes('.git') ||
|
|
29
|
-
fullPath.includes('node_modules') ||
|
|
30
|
-
fullPath.includes('scripts') ||
|
|
31
|
-
file === 'stderr.txt' ||
|
|
32
|
-
file === 'stdout.txt') continue;
|
|
33
|
-
|
|
34
|
-
const stat = fs.statSync(fullPath);
|
|
35
|
-
if (stat.isDirectory()) {
|
|
36
|
-
walk(fullPath);
|
|
37
|
-
} else {
|
|
38
|
-
// Process only relevant text files
|
|
39
|
-
const ext = path.extname(file).toLowerCase();
|
|
40
|
-
const textExtensions = ['.ts', '.js', '.json', '.md', '.txt', '.d.ts', '.map'];
|
|
41
|
-
|
|
42
|
-
if (textExtensions.includes(ext) || file.endsWith('.d.ts')) {
|
|
43
|
-
try {
|
|
44
|
-
const content = fs.readFileSync(fullPath, 'utf8');
|
|
45
|
-
if (content.includes(oldVersion)) {
|
|
46
|
-
const updated = content.replace(oldRegex, newVersion);
|
|
47
|
-
fs.writeFileSync(fullPath, updated, 'utf8');
|
|
48
|
-
console.log(`✅ Updated: ${fullPath}`);
|
|
49
|
-
}
|
|
50
|
-
} catch (err) {
|
|
51
|
-
console.warn(`⚠️ Skipped ${fullPath}: ${err.message}`);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
walk(root);
|
|
59
|
-
console.log('✨ Version update complete.');
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Universal Version Replacer - v1.0.0
|
|
6
|
+
* Usage: node scripts/replace-version.js <oldVersion> <newVersion>
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const [,, oldVersion, newVersion] = process.argv;
|
|
10
|
+
|
|
11
|
+
if (!oldVersion || !newVersion) {
|
|
12
|
+
console.error('Usage: node scripts/replace-version.js <oldVersion> <newVersion>');
|
|
13
|
+
console.error('Example: node scripts/replace-version.js 3.4.0 3.4.1');
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const root = process.cwd();
|
|
18
|
+
const oldRegex = new RegExp(oldVersion.replace(/\./g, '\\.'), 'g');
|
|
19
|
+
|
|
20
|
+
console.log(`🚀 Starting global replace: ${oldVersion} -> ${newVersion}`);
|
|
21
|
+
|
|
22
|
+
function walk(dir) {
|
|
23
|
+
const files = fs.readdirSync(dir);
|
|
24
|
+
for (const file of files) {
|
|
25
|
+
const fullPath = path.join(dir, file);
|
|
26
|
+
|
|
27
|
+
// Safety boundaries
|
|
28
|
+
if (fullPath.includes('.git') ||
|
|
29
|
+
fullPath.includes('node_modules') ||
|
|
30
|
+
fullPath.includes('scripts') ||
|
|
31
|
+
file === 'stderr.txt' ||
|
|
32
|
+
file === 'stdout.txt') continue;
|
|
33
|
+
|
|
34
|
+
const stat = fs.statSync(fullPath);
|
|
35
|
+
if (stat.isDirectory()) {
|
|
36
|
+
walk(fullPath);
|
|
37
|
+
} else {
|
|
38
|
+
// Process only relevant text files
|
|
39
|
+
const ext = path.extname(file).toLowerCase();
|
|
40
|
+
const textExtensions = ['.ts', '.js', '.json', '.md', '.txt', '.d.ts', '.map'];
|
|
41
|
+
|
|
42
|
+
if (textExtensions.includes(ext) || file.endsWith('.d.ts')) {
|
|
43
|
+
try {
|
|
44
|
+
const content = fs.readFileSync(fullPath, 'utf8');
|
|
45
|
+
if (content.includes(oldVersion)) {
|
|
46
|
+
const updated = content.replace(oldRegex, newVersion);
|
|
47
|
+
fs.writeFileSync(fullPath, updated, 'utf8');
|
|
48
|
+
console.log(`✅ Updated: ${fullPath}`);
|
|
49
|
+
}
|
|
50
|
+
} catch (err) {
|
|
51
|
+
console.warn(`⚠️ Skipped ${fullPath}: ${err.message}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
walk(root);
|
|
59
|
+
console.log('✨ Version update complete.');
|
package/vitest.config.ts
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { defineConfig } from 'vitest/config';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
|
|
4
|
-
export default defineConfig({
|
|
5
|
-
test: {
|
|
6
|
-
globals: true,
|
|
7
|
-
environment: 'node',
|
|
8
|
-
reporters: ['default'],
|
|
9
|
-
coverage: {
|
|
10
|
-
provider: 'v8',
|
|
11
|
-
reporter: ['text', 'json', 'html'],
|
|
12
|
-
exclude: [
|
|
13
|
-
'node_modules/',
|
|
14
|
-
'dist/',
|
|
15
|
-
'dist-tests/',
|
|
16
|
-
'**/*.spec.ts',
|
|
17
|
-
'**/*.test.ts',
|
|
18
|
-
'tests/',
|
|
19
|
-
'scripts/'
|
|
20
|
-
],
|
|
21
|
-
thresholds: {
|
|
22
|
-
lines: 80,
|
|
23
|
-
functions: 80,
|
|
24
|
-
branches: 75,
|
|
25
|
-
statements: 80
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
testTimeout: 60000,
|
|
29
|
-
hookTimeout: 60000,
|
|
30
|
-
outputTruncateLength: 80
|
|
31
|
-
},
|
|
32
|
-
resolve: {
|
|
33
|
-
alias: {
|
|
34
|
-
'@': path.resolve(__dirname, './src')
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
});
|
|
1
|
+
import { defineConfig } from 'vitest/config';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
test: {
|
|
6
|
+
globals: true,
|
|
7
|
+
environment: 'node',
|
|
8
|
+
reporters: ['default'],
|
|
9
|
+
coverage: {
|
|
10
|
+
provider: 'v8',
|
|
11
|
+
reporter: ['text', 'json', 'html'],
|
|
12
|
+
exclude: [
|
|
13
|
+
'node_modules/',
|
|
14
|
+
'dist/',
|
|
15
|
+
'dist-tests/',
|
|
16
|
+
'**/*.spec.ts',
|
|
17
|
+
'**/*.test.ts',
|
|
18
|
+
'tests/',
|
|
19
|
+
'scripts/'
|
|
20
|
+
],
|
|
21
|
+
thresholds: {
|
|
22
|
+
lines: 80,
|
|
23
|
+
functions: 80,
|
|
24
|
+
branches: 75,
|
|
25
|
+
statements: 80
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
testTimeout: 60000,
|
|
29
|
+
hookTimeout: 60000,
|
|
30
|
+
outputTruncateLength: 80
|
|
31
|
+
},
|
|
32
|
+
resolve: {
|
|
33
|
+
alias: {
|
|
34
|
+
'@': path.resolve(__dirname, './src')
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|