@stacknext/diagnostics 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/classify.d.ts.map +1 -1
- package/dist/classify.js +2 -0
- package/dist/classify.js.map +1 -1
- package/dist/engine.d.ts +3 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +44 -10
- package/dist/engine.js.map +1 -1
- package/dist/fingerprints.d.ts +5 -0
- package/dist/fingerprints.d.ts.map +1 -1
- package/dist/fingerprints.js +95 -14
- package/dist/fingerprints.js.map +1 -1
- package/dist/rules.d.ts +7 -2
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +771 -177
- package/dist/rules.js.map +1 -1
- package/dist/trace.d.ts +68 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +352 -0
- package/dist/trace.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# @stacknext/diagnostics
|
|
2
2
|
|
|
3
3
|
Deterministic, evidence-backed diagnostics for [StackNext](https://github.com/marrrkkk/stacknext)
|
|
4
|
-
telemetry. The engine evaluates
|
|
5
|
-
retention sample: repeated SQL shapes, slow spans, repeated
|
|
6
|
-
endpoints and error
|
|
4
|
+
telemetry. The engine evaluates six conservative rules over the current
|
|
5
|
+
retention sample: repeated SQL shapes, slow requests and spans, repeated
|
|
6
|
+
external HTTP endpoints, request errors and server-error responses.
|
|
7
7
|
|
|
8
8
|
Findings are heuristics, not confirmed root causes. The same report is exposed
|
|
9
9
|
by the StackNext CLI, dashboard, JSON export and read-only MCP server.
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npm install --save-dev stacknext @stacknext/next
|
|
12
|
+
npm install --save-dev @stacknext/cli @stacknext/next
|
|
13
13
|
npx stacknext diagnose
|
|
14
14
|
```
|
|
15
15
|
|
package/dist/classify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAA;AAcxB;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,sBAAsB,CAclF;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,GACrC,MAAM,
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAA;AAcxB;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,sBAAsB,CAclF;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,GACrC,MAAM,CAMR;AASD,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAOjE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAiBnE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIzE;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,aAAa,EACnB,QAAQ,yBAA+B,GACtC,sBAAsB,CAYxB"}
|
package/dist/classify.js
CHANGED
|
@@ -37,6 +37,8 @@ export function spanThresholdMs(category, config) {
|
|
|
37
37
|
return config.slowSpans.httpMs;
|
|
38
38
|
if (category === 'custom')
|
|
39
39
|
return config.slowSpans.customMs;
|
|
40
|
+
if (category === 'framework')
|
|
41
|
+
return config.slowSpans.frameworkMs;
|
|
40
42
|
return config.slowSpans.otherMs;
|
|
41
43
|
}
|
|
42
44
|
function methodFromName(name) {
|
package/dist/classify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type DiagnosticCounts, type DiagnosticDetailResponse, type DiagnosticFilters, type DiagnosticFinding, type DiagnosticListResponse, type DiagnosticOverview, type DiagnosticReport, type DiagnosticSnapshot, type StackNextConfig } from '@stacknext/core';
|
|
2
|
-
export declare const DIAGNOSTICS_ENGINE_VERSION = "0.
|
|
2
|
+
export declare const DIAGNOSTICS_ENGINE_VERSION = "0.7.0";
|
|
3
3
|
export interface DiagnosticEngineOptions {
|
|
4
4
|
projectName: string;
|
|
5
5
|
collectorVersion: string;
|
|
6
6
|
config: StackNextConfig['diagnostics'];
|
|
7
|
+
/** Top-level request threshold; defaults to 500 ms when omitted. */
|
|
8
|
+
slowRequestMs?: number;
|
|
7
9
|
generatedAt?: number;
|
|
8
10
|
connected?: boolean;
|
|
9
11
|
connectedInstances?: number;
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EAEvB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAA;AAKxB,eAAO,MAAM,0BAA0B,UAAU,CAAA;AAEjD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,CAAA;IACtC,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AA8BD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAS7E;AAwGD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,CA2BlB;AAOD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,iBAAsB,GAC9B,sBAAsB,CA4CxB;AAmDD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,kBAAkB,GAC3B,wBAAwB,GAAG,IAAI,CAQjC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,SAAI,GACX,kBAAkB,CAUpB"}
|
package/dist/engine.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { STACKNEXT_DIAGNOSTICS_FORMAT, STACKNEXT_DIAGNOSTICS_FORMAT_VERSION, STACKNEXT_DIAGNOSTICS_RULE_SET_VERSION, } from '@stacknext/core';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { isControlFlowError } from './fingerprints.js';
|
|
3
|
+
import { evaluateDiagnosticRules, findingMatchesTrace } from './rules.js';
|
|
4
|
+
import { buildTraceIndex } from './trace.js';
|
|
5
|
+
export const DIAGNOSTICS_ENGINE_VERSION = '0.7.0';
|
|
4
6
|
const REPORT_LIMITATIONS = [
|
|
5
7
|
'Findings are deterministic heuristics over the current in-memory sample, not confirmed root causes.',
|
|
6
8
|
'StackNext does not read application source, run EXPLAIN, inspect query plans or modify code.',
|
|
7
|
-
'Null durations are unknown, not zero
|
|
9
|
+
'Null durations are unknown, not zero. Self time subtracts the union of direct child intervals and is approximate.',
|
|
10
|
+
'Request-level rules only analyze traces with a captured request root; detached spans are excluded and noted.',
|
|
8
11
|
'Only OpenTelemetry and adapter evidence received by the collector is analyzed.',
|
|
9
12
|
'Redaction and truncation may reduce the specificity of SQL and error signatures.',
|
|
10
13
|
];
|
|
@@ -36,7 +39,16 @@ export function countFindings(findings) {
|
|
|
36
39
|
}
|
|
37
40
|
return counts;
|
|
38
41
|
}
|
|
39
|
-
function sampleFor(snapshot, options) {
|
|
42
|
+
function sampleFor(snapshot, index, options) {
|
|
43
|
+
const ignoredControlFlowErrors = snapshot.errors.filter(isControlFlowError).length;
|
|
44
|
+
const errorTraceIds = new Set(snapshot.errors
|
|
45
|
+
.filter((error) => !isControlFlowError(error))
|
|
46
|
+
.map((error) => error.resolvedTraceId ?? error.traceId ?? null)
|
|
47
|
+
.filter((traceId) => Boolean(traceId)));
|
|
48
|
+
const serverErrorsWithoutError = index.requestTraces.filter((trace) => trace.statusCode !== null &&
|
|
49
|
+
trace.statusCode >= 500 &&
|
|
50
|
+
trace.statusCode <= 599 &&
|
|
51
|
+
!errorTraceIds.has(trace.traceId)).length;
|
|
40
52
|
return {
|
|
41
53
|
firstEventTime: snapshot.firstEventTime,
|
|
42
54
|
lastEventTime: snapshot.lastEventTime,
|
|
@@ -47,9 +59,15 @@ function sampleFor(snapshot, options) {
|
|
|
47
59
|
databaseQueries: snapshot.databaseQueries.length,
|
|
48
60
|
connectedInstances: options.connectedInstances ?? 0,
|
|
49
61
|
connected: options.connected ?? false,
|
|
62
|
+
requestTraces: index.requestTraces.length,
|
|
63
|
+
tracesWithoutRequestRoot: index.tracesWithoutRequestRoot.filter((trace) => trace.nodes.length > 0).length,
|
|
64
|
+
tracesWithMissingParents: index.requestTraces.filter((trace) => index.missingParentTraceIds.has(trace.traceId)).length,
|
|
65
|
+
unattributedSpans: index.unattributedSpans,
|
|
66
|
+
ignoredControlFlowErrors,
|
|
67
|
+
serverErrorsWithoutError,
|
|
50
68
|
};
|
|
51
69
|
}
|
|
52
|
-
function buildNotes(snapshot, totalFindings, visibleFindings, config) {
|
|
70
|
+
function buildNotes(snapshot, sample, totalFindings, visibleFindings, config) {
|
|
53
71
|
const notes = [];
|
|
54
72
|
if (!config.enabled) {
|
|
55
73
|
notes.push('Diagnostics are disabled by configuration.');
|
|
@@ -67,22 +85,38 @@ function buildNotes(snapshot, totalFindings, visibleFindings, config) {
|
|
|
67
85
|
if (totalFindings > visibleFindings) {
|
|
68
86
|
notes.push(`Showing the top ${visibleFindings} of ${totalFindings} findings. Narrow the filters or raise diagnostics.maxFindings to inspect the rest.`);
|
|
69
87
|
}
|
|
88
|
+
if (sample.tracesWithoutRequestRoot !== undefined && sample.tracesWithoutRequestRoot > 0) {
|
|
89
|
+
notes.push(`${sample.tracesWithoutRequestRoot} trace${sample.tracesWithoutRequestRoot === 1 ? '' : 's'} had spans but no captured request root; request-level rules ignored them.`);
|
|
90
|
+
}
|
|
91
|
+
if (sample.tracesWithMissingParents !== undefined &&
|
|
92
|
+
sample.tracesWithMissingParents > 0) {
|
|
93
|
+
notes.push(`${sample.tracesWithMissingParents} request trace${sample.tracesWithMissingParents === 1 ? '' : 's'} contain spans whose parent is not in the sample; attribution may be incomplete.`);
|
|
94
|
+
}
|
|
95
|
+
if (sample.unattributedSpans !== undefined && sample.unattributedSpans > 0) {
|
|
96
|
+
notes.push(`${sample.unattributedSpans} span${sample.unattributedSpans === 1 ? '' : 's'} could not be attributed to a request root and were excluded from request-level rules.`);
|
|
97
|
+
}
|
|
98
|
+
if (sample.ignoredControlFlowErrors !== undefined &&
|
|
99
|
+
sample.ignoredControlFlowErrors > 0) {
|
|
100
|
+
notes.push(`${sample.ignoredControlFlowErrors} Next.js control-flow error${sample.ignoredControlFlowErrors === 1 ? '' : 's'} (not-found/redirect) were ignored by the error rules.`);
|
|
101
|
+
}
|
|
70
102
|
if (snapshot.databaseQueries.some((query) => query.durationMs === null)) {
|
|
71
103
|
notes.push('One or more database queries have no measured duration; null is not treated as zero.');
|
|
72
104
|
}
|
|
73
105
|
return notes;
|
|
74
106
|
}
|
|
75
107
|
export function generateDiagnosticReport(snapshot, options) {
|
|
76
|
-
const
|
|
108
|
+
const index = buildTraceIndex(snapshot);
|
|
77
109
|
const evaluated = options.config.enabled
|
|
78
110
|
? evaluateDiagnosticRules({
|
|
79
111
|
snapshot,
|
|
80
112
|
config: options.config,
|
|
81
|
-
|
|
113
|
+
slowRequestMs: options.slowRequestMs ?? 500,
|
|
114
|
+
traceIndex: index,
|
|
82
115
|
})
|
|
83
116
|
: [];
|
|
84
117
|
const maxFindings = options.config.maxFindings;
|
|
85
118
|
const findings = evaluated.slice(0, maxFindings);
|
|
119
|
+
const sample = sampleFor(snapshot, index, options);
|
|
86
120
|
return {
|
|
87
121
|
format: STACKNEXT_DIAGNOSTICS_FORMAT,
|
|
88
122
|
version: STACKNEXT_DIAGNOSTICS_FORMAT_VERSION,
|
|
@@ -91,10 +125,10 @@ export function generateDiagnosticReport(snapshot, options) {
|
|
|
91
125
|
generatedAt: options.generatedAt ?? Date.now(),
|
|
92
126
|
projectName: options.projectName,
|
|
93
127
|
collectorVersion: options.collectorVersion,
|
|
94
|
-
sample
|
|
128
|
+
sample,
|
|
95
129
|
counts: countFindings(findings),
|
|
96
130
|
findings,
|
|
97
|
-
notes: buildNotes(snapshot, evaluated.length, findings.length, options.config),
|
|
131
|
+
notes: buildNotes(snapshot, sample, evaluated.length, findings.length, options.config),
|
|
98
132
|
limitations: [...REPORT_LIMITATIONS],
|
|
99
133
|
};
|
|
100
134
|
}
|
|
@@ -118,7 +152,7 @@ export function listDiagnosticFindings(report, filters = {}) {
|
|
|
118
152
|
return false;
|
|
119
153
|
if (route && !finding.route?.toLowerCase().includes(route))
|
|
120
154
|
return false;
|
|
121
|
-
if (traceId && !finding
|
|
155
|
+
if (traceId && !findingMatchesTrace(finding, traceId))
|
|
122
156
|
return false;
|
|
123
157
|
if (filters.since !== undefined && finding.lastSeen < filters.since)
|
|
124
158
|
return false;
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/fingerprints.d.ts
CHANGED
|
@@ -6,11 +6,16 @@ import { type StackNextError } from '@stacknext/core';
|
|
|
6
6
|
export declare function sqlFingerprint(sql: string): string;
|
|
7
7
|
/** Safe, bounded SQL shape used in finding evidence instead of raw SQL. */
|
|
8
8
|
export declare function sqlPreview(sql: string, maxLength?: number): string;
|
|
9
|
+
export declare function normalizePath(pathname: string): string;
|
|
9
10
|
/**
|
|
10
11
|
* Reduces a URL or path to an endpoint shape: credentials, query values,
|
|
11
12
|
* fragments and ID-like path segments are removed.
|
|
12
13
|
*/
|
|
13
14
|
export declare function httpEndpoint(value: string | undefined): string | null;
|
|
15
|
+
/** Best-effort table hint from a normalized SQL shape. Never used as proof. */
|
|
16
|
+
export declare function sqlTableHint(sql: string): string | null;
|
|
17
|
+
/** Next.js control-flow errors are not request failures for diagnostics. */
|
|
18
|
+
export declare function isControlFlowError(error: StackNextError): boolean;
|
|
14
19
|
export declare function normalizeErrorMessage(message: string): string;
|
|
15
20
|
export declare function errorOperationCategory(error: StackNextError): string;
|
|
16
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprints.d.ts","sourceRoot":"","sources":["../src/fingerprints.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAMxB;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"fingerprints.d.ts","sourceRoot":"","sources":["../src/fingerprints.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAMxB;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4DlD;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAM/D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYtD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAYrE;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKvD;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CASjE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAU7D;AAmBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAOpE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAQxE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,MAAM,EAC1B,KAAK,SAAK,GACT,MAAM,CAIR"}
|
package/dist/fingerprints.js
CHANGED
|
@@ -6,19 +6,85 @@ const LONG_HEX_PATTERN = /\b[0-9a-f]{16,}\b/gi;
|
|
|
6
6
|
* used for grouping only; it is never treated as proof of an N+1 pattern.
|
|
7
7
|
*/
|
|
8
8
|
export function sqlFingerprint(sql) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
const parts = [];
|
|
10
|
+
let plain = '';
|
|
11
|
+
const flush = () => {
|
|
12
|
+
let value = plain.replace(UUID_PATTERN, '?');
|
|
13
|
+
value = value.replace(/\$\d+/g, '?');
|
|
14
|
+
value = value.replace(/(?<!:):[a-zA-Z_][a-zA-Z0-9_]*/g, '?');
|
|
15
|
+
value = value.replace(/@[a-zA-Z_][a-zA-Z0-9_]*/g, '?');
|
|
16
|
+
value = value.replace(LONG_HEX_PATTERN, '?');
|
|
17
|
+
value = value.replace(/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/gi, '?');
|
|
18
|
+
value = value.replace(/\(\s*\?(?:\s*,\s*\?)+\s*\)/g, '(?)');
|
|
19
|
+
parts.push(value.replace(/\s+/g, ' ').toLowerCase());
|
|
20
|
+
plain = '';
|
|
21
|
+
};
|
|
22
|
+
let index = 0;
|
|
23
|
+
while (index < sql.length) {
|
|
24
|
+
const char = sql[index];
|
|
25
|
+
if (sql.startsWith('--', index)) {
|
|
26
|
+
const end = sql.indexOf('\n', index + 2);
|
|
27
|
+
index = end < 0 ? sql.length : end + 1;
|
|
28
|
+
plain += ' ';
|
|
29
|
+
}
|
|
30
|
+
else if (sql.startsWith('/*', index)) {
|
|
31
|
+
let depth = 1;
|
|
32
|
+
index += 2;
|
|
33
|
+
while (index < sql.length && depth > 0) {
|
|
34
|
+
if (sql.startsWith('/*', index)) {
|
|
35
|
+
depth += 1;
|
|
36
|
+
index += 2;
|
|
37
|
+
}
|
|
38
|
+
else if (sql.startsWith('*/', index)) {
|
|
39
|
+
depth -= 1;
|
|
40
|
+
index += 2;
|
|
41
|
+
}
|
|
42
|
+
else
|
|
43
|
+
index += 1;
|
|
44
|
+
}
|
|
45
|
+
plain += ' ';
|
|
46
|
+
}
|
|
47
|
+
else if (char === '"' || char === '`' || char === '[' || char === "'") {
|
|
48
|
+
const start = index++;
|
|
49
|
+
const closing = char === '[' ? ']' : char;
|
|
50
|
+
// PostgreSQL E strings and MySQL strings support backslash escapes.
|
|
51
|
+
const backslashEscapes = char === "'" && /(?:^|\W)e$/i.test(sql.slice(0, start));
|
|
52
|
+
while (index < sql.length) {
|
|
53
|
+
if (backslashEscapes && sql[index] === '\\') {
|
|
54
|
+
index += 2;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (sql[index++] !== closing)
|
|
58
|
+
continue;
|
|
59
|
+
if (sql[index] === closing) {
|
|
60
|
+
index += 1;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
if (char === "'") {
|
|
66
|
+
if (backslashEscapes)
|
|
67
|
+
plain = plain.slice(0, -1);
|
|
68
|
+
plain += '?';
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
flush();
|
|
72
|
+
parts.push(sql.slice(start, index));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else if (char === '$' && /^\$(?:[a-z_][\w]*)?\$/i.test(sql.slice(index))) {
|
|
76
|
+
const delimiter = /^\$(?:[a-z_][\w]*)?\$/i.exec(sql.slice(index))[0];
|
|
77
|
+
const end = sql.indexOf(delimiter, index + delimiter.length);
|
|
78
|
+
index = end < 0 ? sql.length : end + delimiter.length;
|
|
79
|
+
plain += '?';
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
plain += char;
|
|
83
|
+
index += 1;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
flush();
|
|
87
|
+
return parts.join('').trim();
|
|
22
88
|
}
|
|
23
89
|
/** Safe, bounded SQL shape used in finding evidence instead of raw SQL. */
|
|
24
90
|
export function sqlPreview(sql, maxLength = 500) {
|
|
@@ -30,7 +96,7 @@ export function sqlPreview(sql, maxLength = 500) {
|
|
|
30
96
|
return shape.slice(0, maxLength);
|
|
31
97
|
return `${shape.slice(0, maxLength - suffix.length)}${suffix}`;
|
|
32
98
|
}
|
|
33
|
-
function normalizePath(pathname) {
|
|
99
|
+
export function normalizePath(pathname) {
|
|
34
100
|
const segments = pathname.split('/').filter((segment) => segment.length > 0);
|
|
35
101
|
const normalized = segments.map((segment) => {
|
|
36
102
|
if (/^\d+$/.test(segment))
|
|
@@ -68,6 +134,21 @@ export function httpEndpoint(value) {
|
|
|
68
134
|
return normalizePath(stripped);
|
|
69
135
|
}
|
|
70
136
|
}
|
|
137
|
+
/** Best-effort table hint from a normalized SQL shape. Never used as proof. */
|
|
138
|
+
export function sqlTableHint(sql) {
|
|
139
|
+
const match = /\b(?:from|join|into|update|delete\s+from)\s+"?([a-z_][a-z0-9_.]*)"?/i.exec(sql);
|
|
140
|
+
const table = match?.[1]?.trim();
|
|
141
|
+
return table ? table.slice(0, 120) : null;
|
|
142
|
+
}
|
|
143
|
+
/** Next.js control-flow errors are not request failures for diagnostics. */
|
|
144
|
+
export function isControlFlowError(error) {
|
|
145
|
+
const digest = error.digest?.trim();
|
|
146
|
+
if (digest &&
|
|
147
|
+
/^(?:NEXT_NOT_FOUND|NEXT_REDIRECT|NEXT_HTTP_ERROR_FALLBACK)(?:;|$)/i.test(digest)) {
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return /^(?:NEXT_NOT_FOUND|NEXT_REDIRECT|NEXT_HTTP_ERROR_FALLBACK)(?:;|$)/i.test(error.message.trim());
|
|
151
|
+
}
|
|
71
152
|
export function normalizeErrorMessage(message) {
|
|
72
153
|
let value = message.toLowerCase();
|
|
73
154
|
value = value.replace(/https?:\/\/[^\s]+/g, '<url>');
|
package/dist/fingerprints.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprints.js","sourceRoot":"","sources":["../src/fingerprints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,GAEd,MAAM,iBAAiB,CAAA;AAExB,MAAM,YAAY,GAChB,gEAAgE,CAAA;AAClE,MAAM,gBAAgB,GAAG,qBAAqB,CAAA;AAE9C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"fingerprints.js","sourceRoot":"","sources":["../src/fingerprints.ts"],"names":[],"mappings":"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"}
|
package/dist/rules.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { type DiagnosticFinding, type DiagnosticSnapshot, type StackNextConfig
|
|
1
|
+
import { type DiagnosticFinding, type DiagnosticSnapshot, type StackNextConfig } from '@stacknext/core';
|
|
2
|
+
import { type DiagnosticTraceIndex } from './trace.js';
|
|
2
3
|
export interface DiagnosticRuleContext {
|
|
3
4
|
snapshot: DiagnosticSnapshot;
|
|
4
5
|
config: StackNextConfig['diagnostics'];
|
|
5
|
-
|
|
6
|
+
/** Top-level request threshold used by the request summary and slow-request rule. */
|
|
7
|
+
slowRequestMs: number;
|
|
8
|
+
/** Optional pre-built index; the engine builds one and passes it in. */
|
|
9
|
+
traceIndex?: DiagnosticTraceIndex;
|
|
6
10
|
}
|
|
11
|
+
export declare function findingMatchesTrace(finding: DiagnosticFinding, traceId: string): boolean;
|
|
7
12
|
export declare function evaluateDiagnosticRules(context: DiagnosticRuleContext): DiagnosticFinding[];
|
|
8
13
|
//# sourceMappingURL=rules.d.ts.map
|
package/dist/rules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,iBAAiB,EAGtB,KAAK,kBAAkB,EAKvB,KAAK,eAAe,EAGrB,MAAM,iBAAiB,CAAA;AAkBxB,OAAO,EAWL,KAAK,oBAAoB,EAG1B,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,CAAA;IACtC,qFAAqF;IACrF,aAAa,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAClC;AAiHD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAExF;AAigCD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,EAAE,CA2B3F"}
|