@shuji-bonji/rxjs-mcp 0.4.0 → 0.4.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/CHANGELOG.md +16 -0
- package/README.ja.md +32 -0
- package/dist/data/lint-rules.d.ts.map +1 -1
- package/dist/data/lint-rules.js +3 -5
- package/dist/data/lint-rules.js.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/subscription-analysis.d.ts +82 -0
- package/dist/shared/subscription-analysis.d.ts.map +1 -0
- package/dist/shared/subscription-analysis.js +143 -0
- package/dist/shared/subscription-analysis.js.map +1 -0
- package/dist/tools/execute-stream.d.ts.map +1 -1
- package/dist/tools/execute-stream.js +10 -4
- package/dist/tools/execute-stream.js.map +1 -1
- package/dist/tools/lint-rxjs.d.ts.map +1 -1
- package/dist/tools/lint-rxjs.js +11 -2
- package/dist/tools/lint-rxjs.js.map +1 -1
- package/dist/tools/marble-diagram.d.ts +5 -0
- package/dist/tools/marble-diagram.d.ts.map +1 -1
- package/dist/tools/marble-diagram.js +10 -4
- package/dist/tools/marble-diagram.js.map +1 -1
- package/dist/tools/memory-leak.d.ts.map +1 -1
- package/dist/tools/memory-leak.js +71 -65
- package/dist/tools/memory-leak.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.4.1] - 2026-05-17
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- **`detect_memory_leak`**: 単純な subscribe/unsubscribe カウント比較を廃止し、`takeUntilDestroyed()`(Angular 16+)/ `take(N)` / `first()` / `firstValueFrom` / `useEffect` cleanup / `onUnmounted` 等の **自動クリーンアップパターンを認識** するように改修。これにより、Angular 16+ の `takeUntilDestroyed()` 等を使った現代的なコードに対する false positive を解消。
|
|
12
|
+
- **`detect_memory_leak`** の description に "Recognizes modern auto-cleanup patterns" を明記。
|
|
13
|
+
- **memory-leak と lint_rxjs の検出ロジック共通化**: `src/shared/subscription-analysis.ts` を新設し、サブスクリプション解析のヒューリスティクスを一元化。
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- **`getWorkerPath()` の Windows 非互換**: `__dirname.includes('/src/')` というハードコードを `path.sep` 経由のセグメント走査に変更。Windows (`\src\`) でも src/dist 判定が正しく動作するように。
|
|
17
|
+
- **`marble-diagram.ts`**: 未使用変数 `index` 削除、case block の `const value` をブロック化、内部ヘルパー `parseMarbleSyntax` の名前を `_parseMarbleSyntax`(未使用許可・将来の marble syntax 入力対応用)に整理。
|
|
18
|
+
|
|
19
|
+
### Infrastructure
|
|
20
|
+
- **ESLint 自己適用**: `eslint.config.js`(flat config)を追加し、`@eslint/js` + `typescript-eslint` を全 `src/` に、`eslint-plugin-rxjs-x` を `execute-stream*.ts` のみに(type-aware)適用。`npm run lint` / `npm run lint:fix` を追加し、CI workflow にも `Lint` ステップを追加。
|
|
21
|
+
- **Dependabot**: `.github/dependabot.yml` を追加。npm 依存(dev/prod グループ分け、週次)と GitHub Actions(月次)を自動更新。
|
|
22
|
+
- **MCP integration test の vitest 化**: `src/tools/mcp-integration.test.ts` を新規追加。子プロセスとして `dist/index.js` を spawn し、JSON-RPC で全 6 ツールを実機テスト。`npm test` で一括実行可能(dist 未ビルド時は自動 skip)。既存の `test-mcp-server.mjs` は legacy 用に残存(`npm run test:mcp`)。
|
|
23
|
+
|
|
8
24
|
## [0.4.0] - 2026-05-17
|
|
9
25
|
|
|
10
26
|
### Added
|
package/README.ja.md
CHANGED
|
@@ -62,6 +62,12 @@ ClaudeなどのAIアシスタントから直接RxJSストリームを実行、
|
|
|
62
62
|
- 状態管理
|
|
63
63
|
- その他多数...
|
|
64
64
|
|
|
65
|
+
### 🔍 RxJS Lint(v0.4.0〜)
|
|
66
|
+
- eslint-plugin-rxjs-x ルールの正規表現ベース再実装
|
|
67
|
+
- ESLint / TypeScript パーサー不要で即チェック
|
|
68
|
+
- recommended(20ルール)/ strict(28ルール)の2段階
|
|
69
|
+
- Angular / React / Vue 固有のフレームワークルール対応
|
|
70
|
+
|
|
65
71
|
## インストール
|
|
66
72
|
|
|
67
73
|
```bash
|
|
@@ -197,6 +203,31 @@ source$.pipe(
|
|
|
197
203
|
- `cache-refresh` - リフレッシュ戦略付きキャッシュ
|
|
198
204
|
- その他多数...
|
|
199
205
|
|
|
206
|
+
### lint_rxjs
|
|
207
|
+
|
|
208
|
+
RxJSコードスニペットを静的解析し、一般的な問題とベストプラクティスを検出します。[eslint-plugin-rxjs-x](https://github.com/JasonWeinzierl/eslint-plugin-rxjs-x) のルールを正規表現ベースで再実装しています(ESLint不要)。
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
// パラメータ:
|
|
212
|
+
{
|
|
213
|
+
code: string; // 解析対象の RxJS コード
|
|
214
|
+
config?: 'recommended' | 'strict'; // ルールセット(デフォルト: recommended)
|
|
215
|
+
framework?: 'angular' | 'react' | 'vue' | 'none'; // フレームワークコンテキスト
|
|
216
|
+
rules?: string[]; // 個別ルール指定(config を上書き)
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**Config レベル:**
|
|
221
|
+
|
|
222
|
+
- `recommended` — 最も一般的な問題をカバーする20ルール
|
|
223
|
+
- `strict` — スタイルチェック含む全ルール(finnish, no-exposed-subjects 等)
|
|
224
|
+
|
|
225
|
+
**フレームワーク固有チェック:**
|
|
226
|
+
|
|
227
|
+
- **Angular** — コンポーネント内の `takeUntilDestroyed()` / `takeUntil(destroy$)` 欠落を検出
|
|
228
|
+
- **React** — `useEffect` なしの `subscribe()` を検出
|
|
229
|
+
- **Vue** — `onUnmounted` なしの `subscribe()` を検出
|
|
230
|
+
|
|
200
231
|
## 使用例
|
|
201
232
|
|
|
202
233
|
### Claudeでの使用
|
|
@@ -300,6 +331,7 @@ RxJS MCP Serverは以下と組み合わせて使用できます:
|
|
|
300
331
|
│ • analyze_operators│
|
|
301
332
|
│ • detect_memory_leak│
|
|
302
333
|
│ • suggest_pattern│
|
|
334
|
+
│ • lint_rxjs │
|
|
303
335
|
└─────────────────┘
|
|
304
336
|
```
|
|
305
337
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint-rules.d.ts","sourceRoot":"","sources":["../../src/data/lint-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,uFAAuF;IACvF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,KAAK,cAAc,EAAE,CAAC;CACxE;
|
|
1
|
+
{"version":3,"file":"lint-rules.d.ts","sourceRoot":"","sources":["../../src/data/lint-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,uFAAuF;IACvF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,KAAK,cAAc,EAAE,CAAC;CACxE;AA+/BD,eAAO,MAAM,YAAY,EAAE,QAAQ,EAiClC,CAAC;AAEF,yCAAyC;AACzC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,EAAE,CAMhE"}
|
package/dist/data/lint-rules.js
CHANGED
|
@@ -252,9 +252,9 @@ const noNestedSubscribe = {
|
|
|
252
252
|
continue;
|
|
253
253
|
// Check if any other subscribe match falls inside this range
|
|
254
254
|
const innerContent = code.slice(outerStart + 1, endIndex);
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
const absolutePos = outerStart + 1 +
|
|
255
|
+
const innerSubscribes = findAll(innerContent, /\.subscribe\s*\(/g);
|
|
256
|
+
for (const innerSub of innerSubscribes) {
|
|
257
|
+
const absolutePos = outerStart + 1 + innerSub.index;
|
|
258
258
|
diagnostics.push({
|
|
259
259
|
rule: this.name,
|
|
260
260
|
severity: this.severity,
|
|
@@ -263,7 +263,6 @@ const noNestedSubscribe = {
|
|
|
263
263
|
suggestion: 'Refactor to: source$.pipe(switchMap(value => inner$)).subscribe()',
|
|
264
264
|
docUrl: this.docUrl,
|
|
265
265
|
});
|
|
266
|
-
break; // Report once per code snippet
|
|
267
266
|
}
|
|
268
267
|
}
|
|
269
268
|
return diagnostics;
|
|
@@ -446,7 +445,6 @@ const noUnsafeTakeuntil = {
|
|
|
446
445
|
suggestion: 'Move takeUntil to the end of the pipe (before share/finalize only).',
|
|
447
446
|
docUrl: this.docUrl,
|
|
448
447
|
});
|
|
449
|
-
break;
|
|
450
448
|
}
|
|
451
449
|
}
|
|
452
450
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint-rules.js","sourceRoot":"","sources":["../../src/data/lint-rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lint-rules.js","sourceRoot":"","sources":["../../src/data/lint-rules.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,16 +3,20 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
5
|
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
6
|
+
import { createRequire } from 'node:module';
|
|
6
7
|
import { executeStreamTool } from './tools/execute-stream.js';
|
|
7
8
|
import { generateMarbleTool } from './tools/marble-diagram.js';
|
|
8
9
|
import { analyzeOperatorsTool } from './tools/analyze-operators.js';
|
|
9
10
|
import { detectMemoryLeakTool } from './tools/memory-leak.js';
|
|
10
11
|
import { suggestPatternTool } from './tools/suggest-pattern.js';
|
|
11
12
|
import { lintRxjsTool } from './tools/lint-rxjs.js';
|
|
13
|
+
// Read version from package.json (single source of truth)
|
|
14
|
+
const require = createRequire(import.meta.url);
|
|
15
|
+
const { version } = require('../package.json');
|
|
12
16
|
// Server configuration
|
|
13
17
|
const server = new Server({
|
|
14
18
|
name: 'rxjs-mcp',
|
|
15
|
-
version
|
|
19
|
+
version,
|
|
16
20
|
}, {
|
|
17
21
|
capabilities: {
|
|
18
22
|
tools: {},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,uBAAuB;AACvB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,UAAU;IAChB,OAAO
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscription / completion pattern analysis.
|
|
3
|
+
*
|
|
4
|
+
* Shared helper used by `memory-leak` (and optionally `lint-rxjs`) so that the
|
|
5
|
+
* "is this subscription managed?" check is consistent across tools.
|
|
6
|
+
*
|
|
7
|
+
* Historically, `memory-leak.ts` compared raw counts:
|
|
8
|
+
*
|
|
9
|
+
* if (subscribeMatches.length > unsubscribeMatches.length) → leak
|
|
10
|
+
*
|
|
11
|
+
* This produced false positives on modern Angular (16+) where the idiomatic
|
|
12
|
+
* code is `takeUntilDestroyed()` with no manual unsubscribe at all, and on
|
|
13
|
+
* any code using `take(N)` / `first()` / async pipe.
|
|
14
|
+
*
|
|
15
|
+
* This module exposes a set of pure detection helpers + a higher-level
|
|
16
|
+
* `analyzeSubscriptionSafety()` that decides whether a subscription
|
|
17
|
+
* needs an explicit unsubscribe.
|
|
18
|
+
*/
|
|
19
|
+
export type Framework = 'angular' | 'react' | 'vue' | 'none';
|
|
20
|
+
/**
|
|
21
|
+
* Raw subscription / unsubscription counts.
|
|
22
|
+
*
|
|
23
|
+
* Note: regex-based, so this only catches `.subscribe(` and `.unsubscribe()`
|
|
24
|
+
* call sites — not destructured / aliased forms. That's an accepted
|
|
25
|
+
* limitation of the heuristic.
|
|
26
|
+
*/
|
|
27
|
+
export interface SubscriptionCounts {
|
|
28
|
+
subscribes: number;
|
|
29
|
+
unsubscribes: number;
|
|
30
|
+
completes: number;
|
|
31
|
+
subjects: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function countCalls(code: string): SubscriptionCounts;
|
|
34
|
+
/** `takeUntil(destroy$)` style — manual but standard. */
|
|
35
|
+
export declare function hasTakeUntil(code: string): boolean;
|
|
36
|
+
/** `takeUntilDestroyed()` — Angular 16+ idiomatic, requires no manual cleanup. */
|
|
37
|
+
export declare function hasTakeUntilDestroyed(code: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Bounded `take(N)`. Distinguished from `takeUntil` / `takeWhile` / `takeLast`
|
|
40
|
+
* / `takeUntilDestroyed` because `\b` is a word boundary — `takeUntil` does
|
|
41
|
+
* not match `\btake\s*\(` since `e` is followed by `U`, not `(`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function hasBoundedTake(code: string): boolean;
|
|
44
|
+
/** `first()` / `last()` / `single()` — all auto-complete after one value. */
|
|
45
|
+
export declare function hasFirstLastSingle(code: string): boolean;
|
|
46
|
+
/** `takeWhile(...)` — auto-completes when predicate is false. */
|
|
47
|
+
export declare function hasTakeWhile(code: string): boolean;
|
|
48
|
+
/** Angular template async pipe (`| async`). Auto-managed by the framework. */
|
|
49
|
+
export declare function hasAsyncPipe(code: string): boolean;
|
|
50
|
+
/** Angular `DestroyRef` usage — same managed-lifetime contract as `takeUntilDestroyed`. */
|
|
51
|
+
export declare function hasDestroyRef(code: string): boolean;
|
|
52
|
+
/** React `useEffect` with a cleanup return. */
|
|
53
|
+
export declare function hasUseEffectCleanup(code: string): boolean;
|
|
54
|
+
/** Vue 3 lifecycle cleanup hooks. */
|
|
55
|
+
export declare function hasVueUnmountHook(code: string): boolean;
|
|
56
|
+
/** firstValueFrom / lastValueFrom — implicit single-emission consumption. */
|
|
57
|
+
export declare function hasValueFromHelper(code: string): boolean;
|
|
58
|
+
export interface SubscriptionSafetyReport {
|
|
59
|
+
/** True if the code uses at least one pattern that makes manual unsubscribe unnecessary. */
|
|
60
|
+
hasAutoCleanup: boolean;
|
|
61
|
+
/** Human-readable names of the patterns found, for reporting. */
|
|
62
|
+
detectedPatterns: string[];
|
|
63
|
+
/** Framework-specific cleanup mechanism (if applicable). */
|
|
64
|
+
frameworkPattern?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Decide whether the code uses an auto-cleanup pattern that makes a
|
|
68
|
+
* raw subscribe / unsubscribe count mismatch a false alarm.
|
|
69
|
+
*
|
|
70
|
+
* This is intentionally generous: we'd rather under-report leaks than
|
|
71
|
+
* over-report on modern, idiomatic code.
|
|
72
|
+
*/
|
|
73
|
+
export declare function analyzeSubscriptionSafety(code: string, framework?: Framework): SubscriptionSafetyReport;
|
|
74
|
+
/** `shareReplay` without explicit `refCount: true`. Memory-leak risk. */
|
|
75
|
+
export declare function hasUnsafeShareReplay(code: string): boolean;
|
|
76
|
+
/** `fromEvent(...)` — DOM listener that requires explicit cleanup. */
|
|
77
|
+
export declare function countFromEvent(code: string): number;
|
|
78
|
+
/** Infinite `interval(...)` (no count argument). */
|
|
79
|
+
export declare function hasInfiniteInterval(code: string): boolean;
|
|
80
|
+
/** `timer(initial, period)` — periodic, so infinite without limits. */
|
|
81
|
+
export declare function hasPeriodicTimer(code: string): boolean;
|
|
82
|
+
//# sourceMappingURL=subscription-analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription-analysis.d.ts","sourceRoot":"","sources":["../../src/shared/subscription-analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAO3D;AAMD,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,+CAA+C;AAC/C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzD;AAED,qCAAqC;AACrC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD,MAAM,WAAW,wBAAwB;IACvC,4FAA4F;IAC5F,cAAc,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAAkB,GAC5B,wBAAwB,CAqC1B;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscription / completion pattern analysis.
|
|
3
|
+
*
|
|
4
|
+
* Shared helper used by `memory-leak` (and optionally `lint-rxjs`) so that the
|
|
5
|
+
* "is this subscription managed?" check is consistent across tools.
|
|
6
|
+
*
|
|
7
|
+
* Historically, `memory-leak.ts` compared raw counts:
|
|
8
|
+
*
|
|
9
|
+
* if (subscribeMatches.length > unsubscribeMatches.length) → leak
|
|
10
|
+
*
|
|
11
|
+
* This produced false positives on modern Angular (16+) where the idiomatic
|
|
12
|
+
* code is `takeUntilDestroyed()` with no manual unsubscribe at all, and on
|
|
13
|
+
* any code using `take(N)` / `first()` / async pipe.
|
|
14
|
+
*
|
|
15
|
+
* This module exposes a set of pure detection helpers + a higher-level
|
|
16
|
+
* `analyzeSubscriptionSafety()` that decides whether a subscription
|
|
17
|
+
* needs an explicit unsubscribe.
|
|
18
|
+
*/
|
|
19
|
+
export function countCalls(code) {
|
|
20
|
+
return {
|
|
21
|
+
subscribes: (code.match(/\.subscribe\s*\(/g) ?? []).length,
|
|
22
|
+
unsubscribes: (code.match(/\.unsubscribe\s*\(\s*\)/g) ?? []).length,
|
|
23
|
+
completes: (code.match(/\.complete\s*\(\s*\)/g) ?? []).length,
|
|
24
|
+
subjects: (code.match(/new\s+(Subject|BehaviorSubject|ReplaySubject|AsyncSubject)\b/g) ?? []).length,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// ----------------------------------------------------------------------------
|
|
28
|
+
// Auto-cleanup pattern detection
|
|
29
|
+
// ----------------------------------------------------------------------------
|
|
30
|
+
/** `takeUntil(destroy$)` style — manual but standard. */
|
|
31
|
+
export function hasTakeUntil(code) {
|
|
32
|
+
return /\btakeUntil\s*\(/.test(code);
|
|
33
|
+
}
|
|
34
|
+
/** `takeUntilDestroyed()` — Angular 16+ idiomatic, requires no manual cleanup. */
|
|
35
|
+
export function hasTakeUntilDestroyed(code) {
|
|
36
|
+
return /\btakeUntilDestroyed\s*\(/.test(code);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Bounded `take(N)`. Distinguished from `takeUntil` / `takeWhile` / `takeLast`
|
|
40
|
+
* / `takeUntilDestroyed` because `\b` is a word boundary — `takeUntil` does
|
|
41
|
+
* not match `\btake\s*\(` since `e` is followed by `U`, not `(`.
|
|
42
|
+
*/
|
|
43
|
+
export function hasBoundedTake(code) {
|
|
44
|
+
return /\btake\s*\(/.test(code);
|
|
45
|
+
}
|
|
46
|
+
/** `first()` / `last()` / `single()` — all auto-complete after one value. */
|
|
47
|
+
export function hasFirstLastSingle(code) {
|
|
48
|
+
return /\b(first|last|single)\s*\(/.test(code);
|
|
49
|
+
}
|
|
50
|
+
/** `takeWhile(...)` — auto-completes when predicate is false. */
|
|
51
|
+
export function hasTakeWhile(code) {
|
|
52
|
+
return /\btakeWhile\s*\(/.test(code);
|
|
53
|
+
}
|
|
54
|
+
/** Angular template async pipe (`| async`). Auto-managed by the framework. */
|
|
55
|
+
export function hasAsyncPipe(code) {
|
|
56
|
+
return /\|\s*async\b/.test(code);
|
|
57
|
+
}
|
|
58
|
+
/** Angular `DestroyRef` usage — same managed-lifetime contract as `takeUntilDestroyed`. */
|
|
59
|
+
export function hasDestroyRef(code) {
|
|
60
|
+
return /\bDestroyRef\b/.test(code);
|
|
61
|
+
}
|
|
62
|
+
/** React `useEffect` with a cleanup return. */
|
|
63
|
+
export function hasUseEffectCleanup(code) {
|
|
64
|
+
if (!/\buseEffect\s*\(/.test(code))
|
|
65
|
+
return false;
|
|
66
|
+
// Look for `return () => ...` inside useEffect body. This is a heuristic,
|
|
67
|
+
// not an AST check — but it does the right thing for the common shape.
|
|
68
|
+
return /return\s*\(?\s*\(\s*\)\s*=>/.test(code);
|
|
69
|
+
}
|
|
70
|
+
/** Vue 3 lifecycle cleanup hooks. */
|
|
71
|
+
export function hasVueUnmountHook(code) {
|
|
72
|
+
return /\b(onUnmounted|onBeforeUnmount|beforeUnmount|beforeDestroy)\b/.test(code);
|
|
73
|
+
}
|
|
74
|
+
/** firstValueFrom / lastValueFrom — implicit single-emission consumption. */
|
|
75
|
+
export function hasValueFromHelper(code) {
|
|
76
|
+
return /\b(firstValueFrom|lastValueFrom)\s*\(/.test(code);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Decide whether the code uses an auto-cleanup pattern that makes a
|
|
80
|
+
* raw subscribe / unsubscribe count mismatch a false alarm.
|
|
81
|
+
*
|
|
82
|
+
* This is intentionally generous: we'd rather under-report leaks than
|
|
83
|
+
* over-report on modern, idiomatic code.
|
|
84
|
+
*/
|
|
85
|
+
export function analyzeSubscriptionSafety(code, framework = 'none') {
|
|
86
|
+
const detected = [];
|
|
87
|
+
let frameworkPattern;
|
|
88
|
+
if (hasTakeUntilDestroyed(code)) {
|
|
89
|
+
detected.push('takeUntilDestroyed()');
|
|
90
|
+
frameworkPattern = 'takeUntilDestroyed (Angular 16+)';
|
|
91
|
+
}
|
|
92
|
+
if (hasDestroyRef(code)) {
|
|
93
|
+
detected.push('DestroyRef');
|
|
94
|
+
}
|
|
95
|
+
if (hasTakeUntil(code))
|
|
96
|
+
detected.push('takeUntil(notifier$)');
|
|
97
|
+
if (hasBoundedTake(code))
|
|
98
|
+
detected.push('take(N)');
|
|
99
|
+
if (hasFirstLastSingle(code))
|
|
100
|
+
detected.push('first()/last()/single()');
|
|
101
|
+
if (hasTakeWhile(code))
|
|
102
|
+
detected.push('takeWhile()');
|
|
103
|
+
if (hasValueFromHelper(code))
|
|
104
|
+
detected.push('firstValueFrom/lastValueFrom');
|
|
105
|
+
if (framework === 'angular') {
|
|
106
|
+
if (hasAsyncPipe(code)) {
|
|
107
|
+
detected.push('| async (Angular async pipe)');
|
|
108
|
+
frameworkPattern ??= 'async pipe';
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (framework === 'react' && hasUseEffectCleanup(code)) {
|
|
112
|
+
detected.push('useEffect cleanup return');
|
|
113
|
+
frameworkPattern = 'useEffect cleanup';
|
|
114
|
+
}
|
|
115
|
+
if (framework === 'vue' && hasVueUnmountHook(code)) {
|
|
116
|
+
detected.push('onUnmounted/onBeforeUnmount');
|
|
117
|
+
frameworkPattern = 'onUnmounted';
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
hasAutoCleanup: detected.length > 0,
|
|
121
|
+
detectedPatterns: detected,
|
|
122
|
+
frameworkPattern,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/** `shareReplay` without explicit `refCount: true`. Memory-leak risk. */
|
|
126
|
+
export function hasUnsafeShareReplay(code) {
|
|
127
|
+
if (!/shareReplay\s*\(/.test(code))
|
|
128
|
+
return false;
|
|
129
|
+
return !/refCount\s*:\s*true/.test(code);
|
|
130
|
+
}
|
|
131
|
+
/** `fromEvent(...)` — DOM listener that requires explicit cleanup. */
|
|
132
|
+
export function countFromEvent(code) {
|
|
133
|
+
return (code.match(/\bfromEvent\s*\(/g) ?? []).length;
|
|
134
|
+
}
|
|
135
|
+
/** Infinite `interval(...)` (no count argument). */
|
|
136
|
+
export function hasInfiniteInterval(code) {
|
|
137
|
+
return /\binterval\s*\(/.test(code);
|
|
138
|
+
}
|
|
139
|
+
/** `timer(initial, period)` — periodic, so infinite without limits. */
|
|
140
|
+
export function hasPeriodicTimer(code) {
|
|
141
|
+
return /\btimer\s*\([^,)]+,[^)]+\)/.test(code);
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=subscription-analysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription-analysis.js","sourceRoot":"","sources":["../../src/shared/subscription-analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-stream.d.ts","sourceRoot":"","sources":["../../src/tools/execute-stream.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,kBAAkB,EAInB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"execute-stream.d.ts","sourceRoot":"","sources":["../../src/tools/execute-stream.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,kBAAkB,EAInB,MAAM,aAAa,CAAC;AA0LrB,eAAO,MAAM,iBAAiB,EAAE,kBAmC/B,CAAC"}
|
|
@@ -6,12 +6,18 @@ import path from 'path';
|
|
|
6
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
7
7
|
const __dirname = path.dirname(__filename);
|
|
8
8
|
/**
|
|
9
|
-
* Determine the worker path - handle both src (vitest) and dist (production) scenarios
|
|
9
|
+
* Determine the worker path - handle both src (vitest) and dist (production) scenarios.
|
|
10
|
+
*
|
|
11
|
+
* Cross-platform: uses `path.sep` so that the check works on both POSIX (`/src/`)
|
|
12
|
+
* and Windows (`\src\`). Splitting `__dirname` by `path.sep` and looking for
|
|
13
|
+
* a `src` segment is more robust than substring matching against a hard-coded
|
|
14
|
+
* `/src/` literal, which silently fails on Windows.
|
|
10
15
|
*/
|
|
11
16
|
function getWorkerPath() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
const segments = __dirname.split(path.sep);
|
|
18
|
+
if (segments.includes('src')) {
|
|
19
|
+
// Running from src (e.g. vitest) — look for compiled worker in dist
|
|
20
|
+
return path.resolve(__dirname, '..', '..', 'dist', 'tools', 'execute-stream-worker.js');
|
|
15
21
|
}
|
|
16
22
|
// Running from dist
|
|
17
23
|
return path.join(__dirname, 'execute-stream-worker.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-stream.js","sourceRoot":"","sources":["../../src/tools/execute-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,iCAAiC;AACjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"execute-stream.js","sourceRoot":"","sources":["../../src/tools/execute-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint-rxjs.d.ts","sourceRoot":"","sources":["../../src/tools/lint-rxjs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,aAAa,CAAC;AA4B/D,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"lint-rxjs.d.ts","sourceRoot":"","sources":["../../src/tools/lint-rxjs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,aAAa,CAAC;AA4B/D,eAAO,MAAM,YAAY,EAAE,kBA8H1B,CAAC"}
|
package/dist/tools/lint-rxjs.js
CHANGED
|
@@ -20,9 +20,10 @@ const severityIcon = {
|
|
|
20
20
|
export const lintRxjsTool = {
|
|
21
21
|
definition: {
|
|
22
22
|
name: 'lint_rxjs',
|
|
23
|
-
description: 'Lint RxJS code for common issues and best practices. ' +
|
|
23
|
+
description: 'Lint RxJS code snippets for common issues and best practices (regex-based best-effort analysis, no ESLint runtime required). ' +
|
|
24
24
|
'Based on eslint-plugin-rxjs-x rules. ' +
|
|
25
25
|
'Checks for nested subscribes, memory leaks, deprecated patterns, and more. ' +
|
|
26
|
+
'Rules marked as type-info-required use heuristics and may have false positives/negatives. ' +
|
|
26
27
|
'Supports framework-specific rules for Angular, React, and Vue.',
|
|
27
28
|
inputSchema: inputSchema,
|
|
28
29
|
annotations: {
|
|
@@ -51,7 +52,10 @@ export const lintRxjsTool = {
|
|
|
51
52
|
}
|
|
52
53
|
// Run all applicable rules
|
|
53
54
|
const diagnostics = [];
|
|
55
|
+
const typeInfoRules = new Set();
|
|
54
56
|
for (const rule of rulesToRun) {
|
|
57
|
+
if (rule.requiresTypeInfo)
|
|
58
|
+
typeInfoRules.add(rule.name);
|
|
55
59
|
const results = rule.check(code, framework);
|
|
56
60
|
diagnostics.push(...results);
|
|
57
61
|
}
|
|
@@ -96,7 +100,8 @@ export const lintRxjsTool = {
|
|
|
96
100
|
for (const diag of diagnostics) {
|
|
97
101
|
const icon = severityIcon[diag.severity];
|
|
98
102
|
const lineInfo = diag.line ? ` (line ${diag.line})` : '';
|
|
99
|
-
|
|
103
|
+
const heuristic = typeInfoRules.has(diag.rule) ? ' 🔍' : '';
|
|
104
|
+
parts.push(`${icon} **${diag.rule}**${lineInfo}${heuristic}`);
|
|
100
105
|
parts.push(` ${diag.message}`);
|
|
101
106
|
if (diag.suggestion) {
|
|
102
107
|
parts.push(` 💡 *${diag.suggestion}*`);
|
|
@@ -107,6 +112,10 @@ export const lintRxjsTool = {
|
|
|
107
112
|
}
|
|
108
113
|
// Footer
|
|
109
114
|
parts.push('---');
|
|
115
|
+
if (diagnostics.length > 0 && diagnostics.some(d => typeInfoRules.has(d.rule))) {
|
|
116
|
+
parts.push('🔍 = heuristic detection (normally requires type information)');
|
|
117
|
+
parts.push('');
|
|
118
|
+
}
|
|
110
119
|
parts.push('📚 Reference: [eslint-plugin-rxjs-x](https://github.com/JasonWeinzierl/eslint-plugin-rxjs-x)');
|
|
111
120
|
if (framework === 'angular') {
|
|
112
121
|
parts.push(' | [eslint-plugin-rxjs-angular-x](https://github.com/JasonWeinzierl/eslint-plugin-rxjs-angular-x)');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint-rxjs.js","sourceRoot":"","sources":["../../src/tools/lint-rxjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAIL,YAAY,EACZ,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,eAAe;AACf,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;SACxE,QAAQ,CAAC,yEAAyE,CAAC;IACtF,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SAC9E,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,yGAAyG,CAAC;CACvH,CAAC,CAAC;AAEH,iBAAiB;AACjB,MAAM,YAAY,GAA2B;IAC3C,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAuB;IAC9C,UAAU,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,WAAW,EACT
|
|
1
|
+
{"version":3,"file":"lint-rxjs.js","sourceRoot":"","sources":["../../src/tools/lint-rxjs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import { ToolImplementation } from '../types.js';
|
|
2
|
+
export declare function _parseMarbleSyntax(marble: string, values?: Record<string, unknown>): Array<{
|
|
3
|
+
time: number;
|
|
4
|
+
value: unknown;
|
|
5
|
+
type: string;
|
|
6
|
+
}>;
|
|
2
7
|
export declare const generateMarbleTool: ToolImplementation;
|
|
3
8
|
//# sourceMappingURL=marble-diagram.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marble-diagram.d.ts","sourceRoot":"","sources":["../../src/tools/marble-diagram.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAqC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"marble-diagram.d.ts","sourceRoot":"","sources":["../../src/tools/marble-diagram.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAqC,MAAM,aAAa,CAAC;AA8JpF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAgCvD;AAGD,eAAO,MAAM,kBAAkB,EAAE,kBAsDhC,CAAC"}
|
|
@@ -90,7 +90,7 @@ function generateExplanation(events, scale) {
|
|
|
90
90
|
return 'Empty stream with no emissions';
|
|
91
91
|
}
|
|
92
92
|
parts.push(`Stream with ${events.length} event(s):`);
|
|
93
|
-
events.forEach((event
|
|
93
|
+
events.forEach((event) => {
|
|
94
94
|
const timeStr = `${event.time}ms`;
|
|
95
95
|
switch (event.type) {
|
|
96
96
|
case 'error':
|
|
@@ -125,8 +125,13 @@ function generateExplanation(events, scale) {
|
|
|
125
125
|
}
|
|
126
126
|
return parts.join('\n');
|
|
127
127
|
}
|
|
128
|
-
// Parse RxJS marble syntax
|
|
129
|
-
|
|
128
|
+
// Parse RxJS marble syntax.
|
|
129
|
+
//
|
|
130
|
+
// Currently unused by the public tool surface — kept as an internal helper
|
|
131
|
+
// for a future `generate_marble({ marble: '--a-b-|' })` input mode that
|
|
132
|
+
// would parse marble strings directly instead of expecting `events`.
|
|
133
|
+
// Exported with `_` prefix so the unused-vars rule allows it.
|
|
134
|
+
export function _parseMarbleSyntax(marble, values) {
|
|
130
135
|
const events = [];
|
|
131
136
|
const frameSize = 10; // Each frame is 10ms
|
|
132
137
|
for (let i = 0; i < marble.length; i++) {
|
|
@@ -146,11 +151,12 @@ function parseMarbleSyntax(marble, values) {
|
|
|
146
151
|
case ')':
|
|
147
152
|
// Grouping, ignore for now
|
|
148
153
|
break;
|
|
149
|
-
default:
|
|
154
|
+
default: {
|
|
150
155
|
// Value emission
|
|
151
156
|
const value = values?.[char] ?? char;
|
|
152
157
|
events.push({ time, value, type: 'next' });
|
|
153
158
|
break;
|
|
159
|
+
}
|
|
154
160
|
}
|
|
155
161
|
}
|
|
156
162
|
return events;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marble-diagram.js","sourceRoot":"","sources":["../../src/tools/marble-diagram.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"marble-diagram.js","sourceRoot":"","sources":["../../src/tools/marble-diagram.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-leak.d.ts","sourceRoot":"","sources":["../../src/tools/memory-leak.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-leak.d.ts","sourceRoot":"","sources":["../../src/tools/memory-leak.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkC,MAAM,aAAa,CAAC;AAyKjF,eAAO,MAAM,oBAAoB,EAAE,kBAwElC,CAAC"}
|
|
@@ -1,49 +1,63 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getCleanupExample } from '../data/cleanup-examples.js';
|
|
3
|
+
import { analyzeSubscriptionSafety, countCalls, countFromEvent, hasInfiniteInterval, hasPeriodicTimer, hasUnsafeShareReplay, hasAsyncPipe, hasUseEffectCleanup, hasVueUnmountHook, } from '../shared/subscription-analysis.js';
|
|
3
4
|
// Input schema
|
|
4
5
|
const inputSchema = z.object({
|
|
5
6
|
code: z.string().describe('RxJS code to analyze for potential memory leaks'),
|
|
6
7
|
componentLifecycle: z.enum(['angular', 'react', 'vue', 'none']).optional().default('none').describe('Component lifecycle context'),
|
|
7
8
|
});
|
|
8
|
-
// Analyze code for memory leaks
|
|
9
|
+
// Analyze code for memory leaks.
|
|
10
|
+
//
|
|
11
|
+
// Behaviour vs v0.4.0:
|
|
12
|
+
// - Subscription-count mismatch is no longer reported when the code uses
|
|
13
|
+
// an auto-cleanup pattern (`takeUntilDestroyed()`, `take(N)`, `first()`,
|
|
14
|
+
// `firstValueFrom()`, `useEffect` cleanup, `onUnmounted`, async pipe, etc.).
|
|
15
|
+
// This fixes the false positive on modern Angular 16+ idioms.
|
|
16
|
+
// - The "missing completion operators" check now also considers `takeWhile`,
|
|
17
|
+
// `takeUntilDestroyed`, and `firstValueFrom/lastValueFrom`.
|
|
18
|
+
// - All concrete pattern detection lives in `shared/subscription-analysis.ts`,
|
|
19
|
+
// shared with other tools that may need it later.
|
|
9
20
|
function analyzeMemoryLeaks(code, lifecycle) {
|
|
10
21
|
const result = {
|
|
11
22
|
hasLeak: false,
|
|
12
23
|
leakSources: [],
|
|
13
24
|
recommendations: [],
|
|
14
25
|
};
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
const counts = countCalls(code);
|
|
27
|
+
const safety = analyzeSubscriptionSafety(code, lifecycle);
|
|
28
|
+
// -------------------------------------------------------------------------
|
|
29
|
+
// Subscription / unsubscription count mismatch
|
|
30
|
+
// -------------------------------------------------------------------------
|
|
31
|
+
// Only flag a mismatch when there is NO auto-cleanup pattern in the code.
|
|
32
|
+
// takeUntilDestroyed() / take(N) / useEffect cleanup / etc. all imply
|
|
33
|
+
// managed lifetime even without a manual `.unsubscribe()`.
|
|
34
|
+
if (counts.subscribes > counts.unsubscribes && !safety.hasAutoCleanup) {
|
|
21
35
|
result.hasLeak = true;
|
|
22
36
|
result.leakSources.push({
|
|
23
37
|
type: 'subscription',
|
|
24
|
-
description: `Found ${
|
|
38
|
+
description: `Found ${counts.subscribes} subscribe() calls but only ${counts.unsubscribes} unsubscribe() calls`,
|
|
25
39
|
severity: 'high',
|
|
26
|
-
suggestion: 'Store subscriptions and unsubscribe in cleanup (ngOnDestroy, useEffect cleanup, etc.)',
|
|
40
|
+
suggestion: 'Store subscriptions and unsubscribe in cleanup (ngOnDestroy, useEffect cleanup, etc.) — or use takeUntilDestroyed() / take() / async pipe.',
|
|
27
41
|
});
|
|
28
42
|
}
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (
|
|
43
|
+
// -------------------------------------------------------------------------
|
|
44
|
+
// Missing completion operators
|
|
45
|
+
// -------------------------------------------------------------------------
|
|
46
|
+
// If there are subscribes but NO auto-cleanup pattern of any kind,
|
|
47
|
+
// recommend adding one.
|
|
48
|
+
if (counts.subscribes > 0 && !safety.hasAutoCleanup) {
|
|
35
49
|
result.hasLeak = true;
|
|
36
50
|
result.leakSources.push({
|
|
37
51
|
type: 'subscription',
|
|
38
|
-
description: 'Subscriptions without completion operators (takeUntil, take, first)',
|
|
52
|
+
description: 'Subscriptions without completion operators (takeUntil, takeUntilDestroyed, take, first)',
|
|
39
53
|
severity: 'medium',
|
|
40
|
-
suggestion: 'Use takeUntil with a destroy$ subject for
|
|
54
|
+
suggestion: 'Use takeUntil with a destroy$ subject, takeUntilDestroyed() (Angular 16+), or take()/first() for auto cleanup',
|
|
41
55
|
});
|
|
42
56
|
}
|
|
43
|
-
//
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if ((
|
|
57
|
+
// -------------------------------------------------------------------------
|
|
58
|
+
// Infinite interval/timer
|
|
59
|
+
// -------------------------------------------------------------------------
|
|
60
|
+
if ((hasInfiniteInterval(code) || hasPeriodicTimer(code)) && !safety.hasAutoCleanup) {
|
|
47
61
|
result.hasLeak = true;
|
|
48
62
|
result.leakSources.push({
|
|
49
63
|
type: 'operator',
|
|
@@ -52,24 +66,22 @@ function analyzeMemoryLeaks(code, lifecycle) {
|
|
|
52
66
|
suggestion: 'Add take() or takeUntil() to limit emissions',
|
|
53
67
|
});
|
|
54
68
|
}
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const completeMatches = code.match(completeRegex) || [];
|
|
60
|
-
if (subjectMatches.length > completeMatches.length) {
|
|
69
|
+
// -------------------------------------------------------------------------
|
|
70
|
+
// Subjects without complete
|
|
71
|
+
// -------------------------------------------------------------------------
|
|
72
|
+
if (counts.subjects > counts.completes) {
|
|
61
73
|
result.hasLeak = true;
|
|
62
74
|
result.leakSources.push({
|
|
63
75
|
type: 'subject',
|
|
64
|
-
description: `${
|
|
76
|
+
description: `${counts.subjects} Subject(s) created but only ${counts.completes} complete() calls`,
|
|
65
77
|
severity: 'medium',
|
|
66
78
|
suggestion: 'Call complete() on Subjects in cleanup to release resources',
|
|
67
79
|
});
|
|
68
80
|
}
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (
|
|
81
|
+
// -------------------------------------------------------------------------
|
|
82
|
+
// shareReplay without refCount
|
|
83
|
+
// -------------------------------------------------------------------------
|
|
84
|
+
if (hasUnsafeShareReplay(code)) {
|
|
73
85
|
result.leakSources.push({
|
|
74
86
|
type: 'operator',
|
|
75
87
|
description: 'shareReplay() without refCount may keep subscriptions alive',
|
|
@@ -77,58 +89,52 @@ function analyzeMemoryLeaks(code, lifecycle) {
|
|
|
77
89
|
suggestion: 'Consider using shareReplay({ bufferSize: 1, refCount: true })',
|
|
78
90
|
});
|
|
79
91
|
}
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (
|
|
92
|
+
// -------------------------------------------------------------------------
|
|
93
|
+
// fromEvent without explicit cleanup
|
|
94
|
+
// -------------------------------------------------------------------------
|
|
95
|
+
if (countFromEvent(code) > 0 && !safety.hasAutoCleanup) {
|
|
84
96
|
result.hasLeak = true;
|
|
85
97
|
result.leakSources.push({
|
|
86
98
|
type: 'operator',
|
|
87
99
|
description: 'fromEvent() creates DOM event listeners that may not be removed',
|
|
88
100
|
severity: 'high',
|
|
89
|
-
suggestion: 'Use takeUntil()
|
|
101
|
+
suggestion: 'Use takeUntil(), takeUntilDestroyed(), or store and unsubscribe the subscription',
|
|
90
102
|
});
|
|
91
103
|
}
|
|
92
|
-
//
|
|
104
|
+
// -------------------------------------------------------------------------
|
|
105
|
+
// Framework-specific recommendations
|
|
106
|
+
// -------------------------------------------------------------------------
|
|
93
107
|
if (lifecycle === 'angular') {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (!hasAsyncPipe && subscribeMatches.length > 0) {
|
|
97
|
-
result.recommendations.push('Consider using Angular\'s async pipe to auto-manage subscriptions');
|
|
108
|
+
if (!hasAsyncPipe(code) && counts.subscribes > 0) {
|
|
109
|
+
result.recommendations.push("Consider using Angular's async pipe to auto-manage subscriptions");
|
|
98
110
|
}
|
|
99
|
-
// Check for ngOnDestroy
|
|
100
111
|
const hasNgOnDestroy = /ngOnDestroy\s*\(/.test(code);
|
|
101
|
-
|
|
102
|
-
|
|
112
|
+
const usesTakeUntilDestroyed = safety.detectedPatterns.includes('takeUntilDestroyed()');
|
|
113
|
+
if (!hasNgOnDestroy && !usesTakeUntilDestroyed && counts.subscribes > 0) {
|
|
114
|
+
result.recommendations.push('Implement OnDestroy lifecycle hook for cleanup, or use takeUntilDestroyed() (Angular 16+)');
|
|
103
115
|
}
|
|
104
116
|
}
|
|
105
117
|
else if (lifecycle === 'react') {
|
|
106
|
-
|
|
107
|
-
const hasUseEffect = /useEffect\s*\(/.test(code);
|
|
108
|
-
// Match various cleanup return patterns:
|
|
109
|
-
// - return () => { ... }
|
|
110
|
-
// - return () => subscription.unsubscribe()
|
|
111
|
-
// - return () => sub.unsubscribe();
|
|
112
|
-
// - return cleanup;
|
|
113
|
-
// - return function cleanup() { ... }
|
|
114
|
-
const hasCleanupReturn = /return\s+(\(\s*\)\s*=>|function\s*\w*\s*\(|[a-zA-Z_$][\w$]*\s*;)/.test(code);
|
|
115
|
-
const hasUnsubscribeInReturn = /return\s+\(\s*\)\s*=>\s*\w+\.unsubscribe\s*\(\s*\)/.test(code);
|
|
116
|
-
if (hasUseEffect && subscribeMatches.length > 0 && !hasCleanupReturn && !hasUnsubscribeInReturn) {
|
|
118
|
+
if (/useEffect\s*\(/.test(code) && counts.subscribes > 0 && !hasUseEffectCleanup(code)) {
|
|
117
119
|
result.recommendations.push('Return cleanup function from useEffect to unsubscribe');
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
122
|
else if (lifecycle === 'vue') {
|
|
121
|
-
|
|
122
|
-
const hasBeforeDestroy = /beforeDestroy|beforeUnmount|onBeforeUnmount/.test(code);
|
|
123
|
-
if (!hasBeforeDestroy && subscribeMatches.length > 0) {
|
|
123
|
+
if (!hasVueUnmountHook(code) && counts.subscribes > 0) {
|
|
124
124
|
result.recommendations.push('Use beforeUnmount/onBeforeUnmount for cleanup in Vue 3');
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
//
|
|
127
|
+
// -------------------------------------------------------------------------
|
|
128
|
+
// Acknowledge detected auto-cleanup so the user knows we saw it
|
|
129
|
+
// -------------------------------------------------------------------------
|
|
130
|
+
if (safety.hasAutoCleanup && counts.subscribes > 0 && !result.hasLeak) {
|
|
131
|
+
result.recommendations.push(`Detected auto-cleanup pattern(s): ${safety.detectedPatterns.join(', ')}. No manual unsubscribe required.`);
|
|
132
|
+
}
|
|
133
|
+
// General recommendations when leaks were found
|
|
128
134
|
if (result.hasLeak) {
|
|
129
|
-
result.recommendations.push('Use a subscription management pattern (e.g., SubSink, subscription array)');
|
|
135
|
+
result.recommendations.push('Use a subscription management pattern (e.g., SubSink, subscription array, takeUntilDestroyed)');
|
|
130
136
|
result.recommendations.push('Consider using operators that auto-complete (first, take, takeUntil)');
|
|
131
|
-
if (
|
|
137
|
+
if (counts.subscribes > 3) {
|
|
132
138
|
result.recommendations.push('With many subscriptions, consider combining streams with merge/combineLatest');
|
|
133
139
|
}
|
|
134
140
|
}
|
|
@@ -138,7 +144,7 @@ function analyzeMemoryLeaks(code, lifecycle) {
|
|
|
138
144
|
export const detectMemoryLeakTool = {
|
|
139
145
|
definition: {
|
|
140
146
|
name: 'detect_memory_leak',
|
|
141
|
-
description: 'Analyze RxJS code for potential memory leaks and subscription management issues',
|
|
147
|
+
description: 'Analyze RxJS code for potential memory leaks and subscription management issues. Recognizes modern auto-cleanup patterns (takeUntilDestroyed, async pipe, useEffect cleanup, onUnmounted) to avoid false positives.',
|
|
142
148
|
inputSchema: inputSchema,
|
|
143
149
|
annotations: {
|
|
144
150
|
readOnlyHint: true,
|
|
@@ -179,8 +185,8 @@ export const detectMemoryLeakTool = {
|
|
|
179
185
|
parts.push('```');
|
|
180
186
|
// Add best practices
|
|
181
187
|
parts.push('', '### Best Practices');
|
|
182
|
-
parts.push('1. **Always unsubscribe** from infinite streams (interval, fromEvent, Subject)');
|
|
183
|
-
parts.push('2. **Use limiting operators** (take, takeUntil, first) when possible');
|
|
188
|
+
parts.push('1. **Always unsubscribe** from infinite streams (interval, fromEvent, Subject) — or use auto-cleanup');
|
|
189
|
+
parts.push('2. **Use limiting operators** (take, takeUntil, takeUntilDestroyed, first) when possible');
|
|
184
190
|
parts.push('3. **Complete Subjects** in cleanup to free resources');
|
|
185
191
|
parts.push('4. **Prefer async pipe** (Angular) or hooks (React) for auto-cleanup');
|
|
186
192
|
parts.push('5. **Use shareReplay carefully** with refCount: true for shared streams');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-leak.js","sourceRoot":"","sources":["../../src/tools/memory-leak.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-leak.js","sourceRoot":"","sources":["../../src/tools/memory-leak.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface ToolResponse {
|
|
|
5
5
|
text: string;
|
|
6
6
|
}>;
|
|
7
7
|
}
|
|
8
|
-
export type ToolHandler = (args:
|
|
8
|
+
export type ToolHandler = (args: unknown) => Promise<ToolResponse>;
|
|
9
9
|
export interface ToolDefinition {
|
|
10
10
|
name: string;
|
|
11
11
|
description: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAGD,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shuji-bonji/rxjs-mcp",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "RxJS MCP Server - Execute, debug, and visualize RxJS streams for AI assistants",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -44,7 +44,10 @@
|
|
|
44
44
|
"test:watch": "vitest",
|
|
45
45
|
"test:coverage": "vitest run --coverage",
|
|
46
46
|
"test:mcp": "node test-mcp-server.mjs",
|
|
47
|
+
"test:integration": "vitest run src/tools/mcp-integration.test.ts",
|
|
47
48
|
"test:inspector": "npx @modelcontextprotocol/inspector dist/index.js",
|
|
49
|
+
"lint": "eslint src/",
|
|
50
|
+
"lint:fix": "eslint src/ --fix",
|
|
48
51
|
"clean": "rm -rf dist",
|
|
49
52
|
"prepare": "npm run build"
|
|
50
53
|
},
|
|
@@ -55,9 +58,13 @@
|
|
|
55
58
|
"zod-to-json-schema": "^3.25.0"
|
|
56
59
|
},
|
|
57
60
|
"devDependencies": {
|
|
61
|
+
"@eslint/js": "^9.0.0",
|
|
58
62
|
"@types/node": "^20.19.27",
|
|
63
|
+
"eslint": "^9.0.0",
|
|
64
|
+
"eslint-plugin-rxjs-x": "^0.7.0",
|
|
59
65
|
"tsx": "^4.7.0",
|
|
60
66
|
"typescript": "^5.3.0",
|
|
67
|
+
"typescript-eslint": "^8.0.0",
|
|
61
68
|
"vitest": "^4.0.16"
|
|
62
69
|
},
|
|
63
70
|
"engines": {
|