@perfonext/render-mcp 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/dist/index.js +1 -1
- package/dist/ingest/server.d.ts +5 -0
- package/dist/ingest/server.d.ts.map +1 -1
- package/dist/ingest/server.js +170 -66
- package/dist/ingest/server.js.map +1 -1
- package/dist/parser/analysis.d.ts.map +1 -1
- package/dist/parser/analysis.js +61 -60
- package/dist/parser/analysis.js.map +1 -1
- package/dist/parser/react-scan-lite.d.ts.map +1 -1
- package/dist/parser/react-scan-lite.js +5 -2
- package/dist/parser/react-scan-lite.js.map +1 -1
- package/dist/parser/types.d.ts +0 -1
- package/dist/parser/types.d.ts.map +1 -1
- package/dist/store.d.ts +5 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +13 -0
- package/dist/store.js.map +1 -1
- package/dist/tools/begin-render-analysis.d.ts.map +1 -1
- package/dist/tools/begin-render-analysis.js +14 -0
- package/dist/tools/begin-render-analysis.js.map +1 -1
- package/dist/tools/compare-renders.d.ts.map +1 -1
- package/dist/tools/compare-renders.js +4 -9
- package/dist/tools/compare-renders.js.map +1 -1
- package/dist/tools/get-hot-commits.d.ts.map +1 -1
- package/dist/tools/get-hot-commits.js +21 -16
- package/dist/tools/get-hot-commits.js.map +1 -1
- package/dist/tools/get-render-summary.d.ts.map +1 -1
- package/dist/tools/get-render-summary.js +3 -5
- package/dist/tools/get-render-summary.js.map +1 -1
- package/dist/tools/get-rerender-causes.d.ts.map +1 -1
- package/dist/tools/get-rerender-causes.js +5 -5
- package/dist/tools/get-rerender-causes.js.map +1 -1
- package/dist/tools/get-slow-components.d.ts.map +1 -1
- package/dist/tools/get-slow-components.js +7 -6
- package/dist/tools/get-slow-components.js.map +1 -1
- package/dist/tools/load-render-profile.d.ts.map +1 -1
- package/dist/tools/load-render-profile.js +1 -0
- package/dist/tools/load-render-profile.js.map +1 -1
- package/dist/tools/stop-render-capture.d.ts.map +1 -1
- package/dist/tools/stop-render-capture.js +8 -4
- package/dist/tools/stop-render-capture.js.map +1 -1
- package/package.json +1 -2
package/README.md
CHANGED
|
@@ -120,6 +120,19 @@ Copilot will:
|
|
|
120
120
|
> expose the React DevTools profiling channel, so `changeDescription` data is unavailable and causes fall back
|
|
121
121
|
> to heuristics (`dataQuality: "heuristic"`).
|
|
122
122
|
|
|
123
|
+
> **Two preconditions commonly cause a silent `commitCount: 0`:**
|
|
124
|
+
>
|
|
125
|
+
> - **Build flavor.** A plain `next build`/`next start` compiles out React's profiling hooks entirely.
|
|
126
|
+
> Choose one of:
|
|
127
|
+
> - `next dev` — real component names, but dev-mode overhead means render timings and proportions
|
|
128
|
+
> may not match what real users experience in production.
|
|
129
|
+
> - `next build --profile` then `next start` — production-accurate timings, but component names get
|
|
130
|
+
> minified to 1-2 letters (e.g. `"V"`) by production minification, regardless of the profiling flag.
|
|
131
|
+
> `get_render_summary` surfaces a warning when this is detected.
|
|
132
|
+
> - **Instrumentation timing.** `instrument()` must run before React initializes — a static top-level import
|
|
133
|
+
> (as shown in the generated snippet) works; mounting it as a React component, or calling it inside a
|
|
134
|
+
> `useEffect`, runs too late and silently captures nothing.
|
|
135
|
+
|
|
123
136
|
The ingest server runs on a **fixed port (7721)**. Only the `sessionId` line in `instrumentation-client.js` changes between sessions — the file does not need to be re-wired each time.
|
|
124
137
|
|
|
125
138
|
**Option B — Manual DevTools export**
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import { registerStopRenderCapture } from './tools/stop-render-capture.js';
|
|
|
13
13
|
import { registerGetCapturedRenders } from './tools/get-captured-renders.js';
|
|
14
14
|
const server = new McpServer({
|
|
15
15
|
name: 'perfonext-render-mcp',
|
|
16
|
-
version: '0.3.
|
|
16
|
+
version: '0.3.4',
|
|
17
17
|
});
|
|
18
18
|
registerLoadRenderProfile(server);
|
|
19
19
|
registerCompareRenders(server);
|
package/dist/ingest/server.d.ts
CHANGED
|
@@ -45,6 +45,11 @@ export interface CaptureSession {
|
|
|
45
45
|
* is not wired correctly (e.g. the import path is wrong or the file runs server-side). */
|
|
46
46
|
unknownEvents: number;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Closes the ingest server and clears all sessions.
|
|
50
|
+
* @internal Test-only teardown hook — not part of the public tool surface.
|
|
51
|
+
*/
|
|
52
|
+
export declare function stopIngestServer(): Promise<void>;
|
|
48
53
|
export declare function createCaptureSession(): Promise<CaptureSession>;
|
|
49
54
|
export declare function getCaptureSession(sessionId: string): CaptureSession | undefined;
|
|
50
55
|
export declare function stopCaptureSession(sessionId: string): CaptureSession | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/ingest/server.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACtD,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/ingest/server.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACtD,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAsHD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB;;+FAE2F;IAC3F,aAAa,EAAE,MAAM,CAAC;CACvB;AAgND;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAatD;AAMD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC,CAoBpE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE/E;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAKhF;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAE7C"}
|
package/dist/ingest/server.js
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { createServer } from 'node:http';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
+
/** Coerces to a finite, non-negative duration — rejects NaN/Infinity/negative wire data. */
|
|
4
|
+
function toFiniteDuration(value) {
|
|
5
|
+
return typeof value === 'number' && Number.isFinite(value) && value >= 0 ? value : 0;
|
|
6
|
+
}
|
|
3
7
|
function normalizeFiber(raw) {
|
|
4
8
|
const cd = raw.changeDescription ?? null;
|
|
9
|
+
const actualDuration = toFiniteDuration(raw.actualDuration);
|
|
10
|
+
const rawSelfDuration = toFiniteDuration(raw.selfBaseDuration);
|
|
5
11
|
return {
|
|
6
12
|
fiberId: typeof raw.fiberId === 'number' ? raw.fiberId : 0,
|
|
7
13
|
name: typeof raw.name === 'string' && raw.name.trim() ? raw.name.trim() : '(anonymous)',
|
|
8
14
|
depth: typeof raw.depth === 'number' ? raw.depth : 0,
|
|
9
|
-
actualDuration
|
|
10
|
-
|
|
15
|
+
actualDuration,
|
|
16
|
+
// selfBaseDuration is measured independently of actualDuration and can exceed
|
|
17
|
+
// it in practice; clamp so self-cost ratios derived downstream stay <= 1.
|
|
18
|
+
selfDuration: Math.min(rawSelfDuration, actualDuration),
|
|
11
19
|
changeDescription: cd != null
|
|
12
20
|
? {
|
|
13
21
|
isFirstMount: cd.isFirstMount ?? false,
|
|
@@ -34,9 +42,13 @@ function parseOneEvent(raw, commitIndex, urlSessionId) {
|
|
|
34
42
|
if (r.message === 'commit') {
|
|
35
43
|
const tree = Array.isArray(data.tree) ? data.tree : [];
|
|
36
44
|
const fibers = tree.map(normalizeFiber);
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
|
|
45
|
+
// A commit can report more than one depth-0 fiber (independent root subtrees,
|
|
46
|
+
// e.g. a layout boundary alongside a page boundary) — sum them all rather than
|
|
47
|
+
// taking only the first, which silently dropped the rest of the committed work.
|
|
48
|
+
const rootDurations = fibers.filter((f) => f.depth === 0).map((f) => f.actualDuration);
|
|
49
|
+
const duration = rootDurations.length > 0
|
|
50
|
+
? rootDurations.reduce((s, d) => s + d, 0)
|
|
51
|
+
: fibers.reduce((s, f) => s + f.actualDuration, 0);
|
|
40
52
|
return {
|
|
41
53
|
kind: 'commit',
|
|
42
54
|
event: {
|
|
@@ -69,92 +81,164 @@ let serverPort = null;
|
|
|
69
81
|
// ---------------------------------------------------------------------------
|
|
70
82
|
// Internal helpers
|
|
71
83
|
// ---------------------------------------------------------------------------
|
|
84
|
+
// Caps memory use for a single POST — a render-storm capture can otherwise buffer
|
|
85
|
+
// an unbounded stream of events from a runaway page.
|
|
86
|
+
const MAX_BODY_BYTES = 20 * 1024 * 1024;
|
|
87
|
+
class PayloadTooLargeError extends Error {
|
|
88
|
+
}
|
|
72
89
|
function readBody(req) {
|
|
73
90
|
return new Promise((resolve, reject) => {
|
|
74
91
|
const chunks = [];
|
|
75
|
-
|
|
92
|
+
let total = 0;
|
|
93
|
+
const onData = (chunk) => {
|
|
94
|
+
total += chunk.length;
|
|
95
|
+
if (total > MAX_BODY_BYTES) {
|
|
96
|
+
// Don't destroy the socket — that resets the connection before the 413
|
|
97
|
+
// response can flush. Stop listening and drain the rest of the body instead.
|
|
98
|
+
req.off('data', onData);
|
|
99
|
+
req.resume();
|
|
100
|
+
reject(new PayloadTooLargeError('request body exceeds size limit'));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
chunks.push(chunk);
|
|
104
|
+
};
|
|
105
|
+
req.on('data', onData);
|
|
76
106
|
req.on('end', () => resolve(Buffer.concat(chunks).toString('utf-8')));
|
|
77
107
|
req.on('error', reject);
|
|
78
108
|
});
|
|
79
109
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const url = req.url ?? '';
|
|
90
|
-
const match = url.match(/^\/ingest\/([^/]+)$/);
|
|
91
|
-
if (!match || req.method !== 'POST') {
|
|
92
|
-
res.writeHead(404);
|
|
93
|
-
res.end(JSON.stringify({ error: 'not found' }));
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
const sessionId = decodeURIComponent(match[1]);
|
|
97
|
-
const session = sessions.get(sessionId);
|
|
98
|
-
if (!session) {
|
|
99
|
-
res.writeHead(404);
|
|
100
|
-
res.end(JSON.stringify({ error: 'session not found' }));
|
|
101
|
-
return;
|
|
110
|
+
/** Echoes the request Origin only for localhost/127.0.0.1 — this endpoint should
|
|
111
|
+
* only ever be called by the instrumented app itself, not an arbitrary open tab. */
|
|
112
|
+
function corsOrigin(req) {
|
|
113
|
+
const origin = req.headers.origin;
|
|
114
|
+
if (!origin)
|
|
115
|
+
return null;
|
|
116
|
+
try {
|
|
117
|
+
const { hostname } = new URL(origin);
|
|
118
|
+
return hostname === 'localhost' || hostname === '127.0.0.1' ? origin : null;
|
|
102
119
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
res.end(JSON.stringify({ error: 'session already stopped' }));
|
|
106
|
-
return;
|
|
120
|
+
catch {
|
|
121
|
+
return null;
|
|
107
122
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
123
|
+
}
|
|
124
|
+
function handleRequest(req, res) {
|
|
125
|
+
try {
|
|
126
|
+
const allowedOrigin = corsOrigin(req);
|
|
127
|
+
if (allowedOrigin) {
|
|
128
|
+
res.setHeader('Access-Control-Allow-Origin', allowedOrigin);
|
|
129
|
+
// The ACAO value varies per request (echoed origin) — tell caches not to reuse it.
|
|
130
|
+
res.setHeader('Vary', 'Origin');
|
|
131
|
+
}
|
|
132
|
+
res.setHeader('Access-Control-Allow-Methods', 'POST, OPTIONS');
|
|
133
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
|
|
134
|
+
if (req.method === 'OPTIONS') {
|
|
135
|
+
res.writeHead(204);
|
|
136
|
+
res.end();
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const url = req.url ?? '';
|
|
140
|
+
const match = url.match(/^\/ingest\/([^/]+)$/);
|
|
141
|
+
if (!match || req.method !== 'POST') {
|
|
142
|
+
res.writeHead(404);
|
|
143
|
+
res.end(JSON.stringify({ error: 'not found' }));
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
let sessionId;
|
|
111
147
|
try {
|
|
112
|
-
|
|
113
|
-
rawEvents = Array.isArray(parsed) ? parsed : [parsed];
|
|
148
|
+
sessionId = decodeURIComponent(match[1]);
|
|
114
149
|
}
|
|
115
150
|
catch {
|
|
116
151
|
res.writeHead(400);
|
|
117
|
-
res.end(JSON.stringify({ error: 'invalid
|
|
152
|
+
res.end(JSON.stringify({ error: 'invalid session id encoding' }));
|
|
118
153
|
return;
|
|
119
154
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
155
|
+
const session = sessions.get(sessionId);
|
|
156
|
+
if (!session) {
|
|
157
|
+
res.writeHead(404);
|
|
158
|
+
res.end(JSON.stringify({ error: 'session not found' }));
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
if (session.status !== 'active') {
|
|
162
|
+
res.writeHead(410);
|
|
163
|
+
res.end(JSON.stringify({ error: 'session already stopped' }));
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
readBody(req)
|
|
167
|
+
.then((body) => {
|
|
168
|
+
let rawEvents;
|
|
169
|
+
try {
|
|
170
|
+
const parsed = JSON.parse(body);
|
|
171
|
+
rawEvents = Array.isArray(parsed) ? parsed : [parsed];
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
res.writeHead(400);
|
|
175
|
+
res.end(JSON.stringify({ error: 'invalid JSON' }));
|
|
176
|
+
return;
|
|
128
177
|
}
|
|
129
|
-
received
|
|
130
|
-
|
|
131
|
-
session.commits.
|
|
178
|
+
let received = 0;
|
|
179
|
+
for (const raw of rawEvents) {
|
|
180
|
+
const normalized = parseOneEvent(raw, session.commits.length, sessionId);
|
|
181
|
+
if (!normalized) {
|
|
182
|
+
if (raw && typeof raw === 'object' && !('message' in raw)) {
|
|
183
|
+
session.unknownEvents++;
|
|
184
|
+
}
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
received++;
|
|
188
|
+
if (normalized.kind === 'commit') {
|
|
189
|
+
session.commits.push(normalized.event);
|
|
190
|
+
}
|
|
191
|
+
else if (normalized.kind === 'status') {
|
|
192
|
+
session.profilingAvailable = normalized.available;
|
|
193
|
+
}
|
|
132
194
|
}
|
|
133
|
-
|
|
134
|
-
|
|
195
|
+
res.writeHead(200);
|
|
196
|
+
res.end(JSON.stringify({ ok: true, received }));
|
|
197
|
+
})
|
|
198
|
+
.catch((err) => {
|
|
199
|
+
if (err instanceof PayloadTooLargeError) {
|
|
200
|
+
res.writeHead(413);
|
|
201
|
+
res.end(JSON.stringify({ error: 'payload too large' }));
|
|
202
|
+
return;
|
|
135
203
|
}
|
|
204
|
+
res.writeHead(500);
|
|
205
|
+
res.end(JSON.stringify({ error: 'internal error' }));
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
if (!res.headersSent) {
|
|
210
|
+
res.writeHead(500);
|
|
211
|
+
res.end(JSON.stringify({ error: 'internal error' }));
|
|
136
212
|
}
|
|
137
|
-
|
|
138
|
-
res.end(JSON.stringify({ ok: true, received }));
|
|
139
|
-
})
|
|
140
|
-
.catch(() => {
|
|
141
|
-
res.writeHead(500);
|
|
142
|
-
res.end(JSON.stringify({ error: 'internal error' }));
|
|
143
|
-
});
|
|
213
|
+
}
|
|
144
214
|
}
|
|
145
|
-
// Default port 7721; override with PERFONEXT_INGEST_PORT
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
215
|
+
// Default port 7721; override with PERFONEXT_INGEST_PORT (0 = OS-assigned ephemeral
|
|
216
|
+
// port, used by tests so the suite never collides with a real running server).
|
|
217
|
+
function resolveIngestPort() {
|
|
218
|
+
const raw = process.env.PERFONEXT_INGEST_PORT;
|
|
219
|
+
const parsed = parseInt(raw ?? '7721', 10);
|
|
220
|
+
if (!Number.isFinite(parsed) || parsed < 0 || parsed > 65535) {
|
|
221
|
+
throw new Error(`PERFONEXT_INGEST_PORT must be a number between 0 and 65535 (got: "${raw}")`);
|
|
222
|
+
}
|
|
223
|
+
return parsed;
|
|
149
224
|
}
|
|
150
|
-
|
|
225
|
+
// Guards concurrent createCaptureSession() calls from racing to bind the same port.
|
|
226
|
+
let startPromise = null;
|
|
151
227
|
function startHttpServer() {
|
|
152
|
-
|
|
228
|
+
if (startPromise)
|
|
229
|
+
return startPromise;
|
|
230
|
+
const port = resolveIngestPort();
|
|
231
|
+
startPromise = new Promise((resolve, reject) => {
|
|
153
232
|
const server = createServer(handleRequest);
|
|
233
|
+
server.on('clientError', (_err, socket) => {
|
|
234
|
+
if (socket.writable)
|
|
235
|
+
socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
|
|
236
|
+
});
|
|
154
237
|
// Bind to loopback only — no external exposure.
|
|
155
|
-
server.listen(
|
|
238
|
+
server.listen(port, '127.0.0.1', () => {
|
|
156
239
|
const addr = server.address();
|
|
157
240
|
if (!addr || typeof addr === 'string') {
|
|
241
|
+
startPromise = null;
|
|
158
242
|
reject(new Error('Unexpected server address'));
|
|
159
243
|
return;
|
|
160
244
|
}
|
|
@@ -163,8 +247,9 @@ function startHttpServer() {
|
|
|
163
247
|
resolve(addr.port);
|
|
164
248
|
});
|
|
165
249
|
server.on('error', (err) => {
|
|
250
|
+
startPromise = null;
|
|
166
251
|
if (err.code === 'EADDRINUSE') {
|
|
167
|
-
reject(new Error(`Ingest server port ${
|
|
252
|
+
reject(new Error(`Ingest server port ${port} is already in use. ` +
|
|
168
253
|
'Free the port or set PERFONEXT_INGEST_PORT to a different value.'));
|
|
169
254
|
}
|
|
170
255
|
else {
|
|
@@ -172,6 +257,25 @@ function startHttpServer() {
|
|
|
172
257
|
}
|
|
173
258
|
});
|
|
174
259
|
});
|
|
260
|
+
return startPromise;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Closes the ingest server and clears all sessions.
|
|
264
|
+
* @internal Test-only teardown hook — not part of the public tool surface.
|
|
265
|
+
*/
|
|
266
|
+
export async function stopIngestServer() {
|
|
267
|
+
const server = httpServer;
|
|
268
|
+
if (server) {
|
|
269
|
+
// Close before clearing module state — if close() fails, the server may
|
|
270
|
+
// still be bound, so leave state intact for diagnosis/retry.
|
|
271
|
+
await new Promise((resolve, reject) => {
|
|
272
|
+
server.close((err) => (err ? reject(err) : resolve()));
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
httpServer = null;
|
|
276
|
+
serverPort = null;
|
|
277
|
+
startPromise = null;
|
|
278
|
+
sessions.clear();
|
|
175
279
|
}
|
|
176
280
|
// ---------------------------------------------------------------------------
|
|
177
281
|
// Public API
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/ingest/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/ingest/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/parser/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAIf,gBAAgB,EAChB,mBAAmB,EAEnB,gBAAgB,EAEhB,WAAW,EAGX,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EAId,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/parser/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAIf,gBAAgB,EAChB,mBAAmB,EAEnB,gBAAgB,EAEhB,WAAW,EAGX,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EAId,MAAM,YAAY,CAAC;AAqCpB,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAgFD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,SAAK,EACV,cAAc,SAAI,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,gBAAgB,EAAE,CAsBpB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,SAAK,GACT;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC;CACpC,CA6CA;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,SAAK,EACV,MAAM,GAAE,OAAO,GAAG,SAAS,GAAG,KAAe,EAC7C,WAAW,SAAI,GACd,kBAAkB,EAAE,CA8BtB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,SAAK,EACV,WAAW,SAAI,GACd,aAAa,EAAE,CAsKjB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,MAAM,EACnB,cAAc,SAAI,GACjB,eAAe,GAAG,IAAI,CA8ExB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,MAAM,EACnB,KAAK,SAAK,GACT,qBAAqB,EAAE,CA8JzB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,SAAK,GAAG,WAAW,EAAE,CA6E1F;AAmDD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,mBAAmB,EAChC,cAAc,EAAE,mBAAmB,EACnC,KAAK,SAAK,EACV,QAAQ,SAAI,GACX,gBAAgB,CA6ClB"}
|