flow-debugger 1.9.7 → 1.9.9
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/ENHANCED_OBSERVABILITY.md +835 -0
- package/IMPLEMENTATION_SUMMARY.md +466 -0
- package/README.md +147 -8
- package/bin/cli.js +1 -1
- package/dist/cjs/core/Alerting.js +310 -0
- package/dist/cjs/core/Alerting.js.map +1 -0
- package/dist/cjs/core/AnomalyDetection.js +223 -0
- package/dist/cjs/core/AnomalyDetection.js.map +1 -0
- package/dist/cjs/core/DependencyGraph.js +251 -0
- package/dist/cjs/core/DependencyGraph.js.map +1 -0
- package/dist/cjs/core/DistributedTracing.js +245 -0
- package/dist/cjs/core/DistributedTracing.js.map +1 -0
- package/dist/cjs/core/ErrorClustering.js +257 -0
- package/dist/cjs/core/ErrorClustering.js.map +1 -0
- package/dist/cjs/core/LogCorrelation.js +242 -0
- package/dist/cjs/core/LogCorrelation.js.map +1 -0
- package/dist/cjs/core/Metrics.js +301 -0
- package/dist/cjs/core/Metrics.js.map +1 -0
- package/dist/cjs/core/RootCause.js +107 -9
- package/dist/cjs/core/RootCause.js.map +1 -1
- package/dist/cjs/core/TrendAnalysis.js +254 -0
- package/dist/cjs/core/TrendAnalysis.js.map +1 -0
- package/dist/cjs/core/types.js +14 -0
- package/dist/cjs/core/types.js.map +1 -1
- package/dist/cjs/index.js +27 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/middleware/express.js +105 -4
- package/dist/cjs/middleware/express.js.map +1 -1
- package/dist/esm/core/Alerting.js +305 -0
- package/dist/esm/core/Alerting.js.map +1 -0
- package/dist/esm/core/AnomalyDetection.js +218 -0
- package/dist/esm/core/AnomalyDetection.js.map +1 -0
- package/dist/esm/core/DependencyGraph.js +246 -0
- package/dist/esm/core/DependencyGraph.js.map +1 -0
- package/dist/esm/core/DistributedTracing.js +240 -0
- package/dist/esm/core/DistributedTracing.js.map +1 -0
- package/dist/esm/core/ErrorClustering.js +252 -0
- package/dist/esm/core/ErrorClustering.js.map +1 -0
- package/dist/esm/core/LogCorrelation.js +236 -0
- package/dist/esm/core/LogCorrelation.js.map +1 -0
- package/dist/esm/core/Metrics.js +297 -0
- package/dist/esm/core/Metrics.js.map +1 -0
- package/dist/esm/core/RootCause.js +107 -9
- package/dist/esm/core/RootCause.js.map +1 -1
- package/dist/esm/core/TrendAnalysis.js +250 -0
- package/dist/esm/core/TrendAnalysis.js.map +1 -0
- package/dist/esm/core/types.js +14 -0
- package/dist/esm/core/types.js.map +1 -1
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/middleware/express.js +105 -4
- package/dist/esm/middleware/express.js.map +1 -1
- package/dist/types/core/Alerting.d.ts +82 -0
- package/dist/types/core/Alerting.d.ts.map +1 -0
- package/dist/types/core/AnomalyDetection.d.ts +93 -0
- package/dist/types/core/AnomalyDetection.d.ts.map +1 -0
- package/dist/types/core/DependencyGraph.d.ts +65 -0
- package/dist/types/core/DependencyGraph.d.ts.map +1 -0
- package/dist/types/core/DistributedTracing.d.ts +92 -0
- package/dist/types/core/DistributedTracing.d.ts.map +1 -0
- package/dist/types/core/ErrorClustering.d.ts +70 -0
- package/dist/types/core/ErrorClustering.d.ts.map +1 -0
- package/dist/types/core/LogCorrelation.d.ts +73 -0
- package/dist/types/core/LogCorrelation.d.ts.map +1 -0
- package/dist/types/core/Metrics.d.ts +73 -0
- package/dist/types/core/Metrics.d.ts.map +1 -0
- package/dist/types/core/RootCause.d.ts +9 -5
- package/dist/types/core/RootCause.d.ts.map +1 -1
- package/dist/types/core/TrendAnalysis.d.ts +63 -0
- package/dist/types/core/TrendAnalysis.d.ts.map +1 -0
- package/dist/types/core/types.d.ts +200 -0
- package/dist/types/core/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +9 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/middleware/express.d.ts +12 -0
- package/dist/types/middleware/express.d.ts.map +1 -1
- package/package.json +3 -3
- package/test-results.json +1 -0
|
@@ -6,6 +6,178 @@ export type ServiceTag = 'mongo' | 'mysql' | 'postgres' | 'redis' | 'axios' | 'f
|
|
|
6
6
|
export type HealthState = 'healthy' | 'degraded' | 'down';
|
|
7
7
|
/** Status of a single traced step */
|
|
8
8
|
export type StepStatus = 'success' | 'error' | 'timeout';
|
|
9
|
+
/** W3C Trace Context for distributed tracing */
|
|
10
|
+
export interface TraceContext {
|
|
11
|
+
traceId: string;
|
|
12
|
+
spanId: string;
|
|
13
|
+
parentSpanId?: string;
|
|
14
|
+
sampled: boolean;
|
|
15
|
+
tracestate?: Record<string, string>;
|
|
16
|
+
}
|
|
17
|
+
/** Span representing a unit of work in distributed tracing */
|
|
18
|
+
export interface Span {
|
|
19
|
+
id: string;
|
|
20
|
+
traceId: string;
|
|
21
|
+
parentSpanId?: string;
|
|
22
|
+
name: string;
|
|
23
|
+
startTime: number;
|
|
24
|
+
endTime?: number;
|
|
25
|
+
duration?: number;
|
|
26
|
+
status: 'pending' | 'success' | 'error' | 'timeout';
|
|
27
|
+
attributes: Record<string, unknown>;
|
|
28
|
+
events: SpanEvent[];
|
|
29
|
+
context: TraceContext;
|
|
30
|
+
children?: Span[];
|
|
31
|
+
}
|
|
32
|
+
/** Event within a span */
|
|
33
|
+
export interface SpanEvent {
|
|
34
|
+
name: string;
|
|
35
|
+
timestamp: number;
|
|
36
|
+
attributes?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
/** Metric type */
|
|
39
|
+
export type MetricType = 'counter' | 'gauge' | 'histogram' | 'summary';
|
|
40
|
+
/** Base metric interface */
|
|
41
|
+
export interface Metric {
|
|
42
|
+
name: string;
|
|
43
|
+
type: MetricType;
|
|
44
|
+
description?: string;
|
|
45
|
+
labels?: Record<string, string>;
|
|
46
|
+
createdAt: number;
|
|
47
|
+
updatedAt: number;
|
|
48
|
+
}
|
|
49
|
+
/** Counter metric (monotonically increasing) */
|
|
50
|
+
export interface CounterMetric extends Metric {
|
|
51
|
+
type: 'counter';
|
|
52
|
+
value: number;
|
|
53
|
+
}
|
|
54
|
+
/** Gauge metric (can go up/down) */
|
|
55
|
+
export interface GaugeMetric extends Metric {
|
|
56
|
+
type: 'gauge';
|
|
57
|
+
value: number;
|
|
58
|
+
min?: number;
|
|
59
|
+
max?: number;
|
|
60
|
+
}
|
|
61
|
+
/** Histogram metric (distribution of values) */
|
|
62
|
+
export interface HistogramMetric extends Metric {
|
|
63
|
+
type: 'histogram';
|
|
64
|
+
buckets: {
|
|
65
|
+
upperBound: number;
|
|
66
|
+
count: number;
|
|
67
|
+
}[];
|
|
68
|
+
sum: number;
|
|
69
|
+
count: number;
|
|
70
|
+
}
|
|
71
|
+
/** Summary metric (percentiles) */
|
|
72
|
+
export interface SummaryMetric extends Metric {
|
|
73
|
+
type: 'summary';
|
|
74
|
+
quantiles: {
|
|
75
|
+
quantile: number;
|
|
76
|
+
value: number;
|
|
77
|
+
}[];
|
|
78
|
+
sum: number;
|
|
79
|
+
count: number;
|
|
80
|
+
}
|
|
81
|
+
/** Alert severity */
|
|
82
|
+
export type AlertSeverity = 'info' | 'warning' | 'error' | 'critical';
|
|
83
|
+
/** Alert type */
|
|
84
|
+
export type AlertType = 'critical_error' | 'error_spike' | 'slow_degradation' | 'anomaly_detected' | 'service_down' | 'threshold_exceeded';
|
|
85
|
+
/** Alert payload */
|
|
86
|
+
export interface Alert {
|
|
87
|
+
id: string;
|
|
88
|
+
type: AlertType;
|
|
89
|
+
severity: AlertSeverity;
|
|
90
|
+
title: string;
|
|
91
|
+
message: string;
|
|
92
|
+
timestamp: Date;
|
|
93
|
+
traceId?: string;
|
|
94
|
+
endpoint?: string;
|
|
95
|
+
service?: ServiceTag;
|
|
96
|
+
metadata?: Record<string, unknown>;
|
|
97
|
+
delivered: boolean;
|
|
98
|
+
deliveredAt?: Date;
|
|
99
|
+
}
|
|
100
|
+
/** Alert rule configuration */
|
|
101
|
+
export interface AlertRule {
|
|
102
|
+
id: string;
|
|
103
|
+
name: string;
|
|
104
|
+
type: AlertType;
|
|
105
|
+
condition: string;
|
|
106
|
+
threshold: number;
|
|
107
|
+
windowMs: number;
|
|
108
|
+
severity: AlertSeverity;
|
|
109
|
+
enabled: boolean;
|
|
110
|
+
webhooks?: string[];
|
|
111
|
+
}
|
|
112
|
+
/** Anomaly detection result */
|
|
113
|
+
export interface AnomalyResult {
|
|
114
|
+
isAnomaly: boolean;
|
|
115
|
+
score: number;
|
|
116
|
+
expectedValue: number;
|
|
117
|
+
actualValue: number;
|
|
118
|
+
deviation: number;
|
|
119
|
+
metric: string;
|
|
120
|
+
timestamp: Date;
|
|
121
|
+
confidence: number;
|
|
122
|
+
}
|
|
123
|
+
/** Time series data point */
|
|
124
|
+
export interface TimeSeriesPoint {
|
|
125
|
+
timestamp: Date;
|
|
126
|
+
value: number;
|
|
127
|
+
labels?: Record<string, string>;
|
|
128
|
+
}
|
|
129
|
+
/** Trend direction */
|
|
130
|
+
export type TrendDirection = 'increasing' | 'decreasing' | 'stable';
|
|
131
|
+
/** Trend analysis result */
|
|
132
|
+
export interface TrendResult {
|
|
133
|
+
metric: string;
|
|
134
|
+
direction: TrendDirection;
|
|
135
|
+
changePercent: number;
|
|
136
|
+
currentValue: number;
|
|
137
|
+
previousValue: number;
|
|
138
|
+
startTime: Date;
|
|
139
|
+
endTime: Date;
|
|
140
|
+
dataPoints: TimeSeriesPoint[];
|
|
141
|
+
confidence: number;
|
|
142
|
+
}
|
|
143
|
+
/** Error cluster grouping similar errors */
|
|
144
|
+
export interface ErrorCluster {
|
|
145
|
+
id: string;
|
|
146
|
+
fingerprint: string;
|
|
147
|
+
message: string;
|
|
148
|
+
stackTrace?: string;
|
|
149
|
+
count: number;
|
|
150
|
+
firstSeen: Date;
|
|
151
|
+
lastSeen: Date;
|
|
152
|
+
traces: string[];
|
|
153
|
+
endpoints: string[];
|
|
154
|
+
services: ServiceTag[];
|
|
155
|
+
severity: ClassificationLevel;
|
|
156
|
+
}
|
|
157
|
+
/** Node in dependency graph */
|
|
158
|
+
export interface DependencyNode {
|
|
159
|
+
id: string;
|
|
160
|
+
name: string;
|
|
161
|
+
type: ServiceTag;
|
|
162
|
+
status: HealthState;
|
|
163
|
+
avgLatency: number;
|
|
164
|
+
errorRate: number;
|
|
165
|
+
requestCount: number;
|
|
166
|
+
}
|
|
167
|
+
/** Edge in dependency graph */
|
|
168
|
+
export interface DependencyEdge {
|
|
169
|
+
from: string;
|
|
170
|
+
to: string;
|
|
171
|
+
callCount: number;
|
|
172
|
+
avgLatency: number;
|
|
173
|
+
errorCount: number;
|
|
174
|
+
}
|
|
175
|
+
/** Complete dependency graph */
|
|
176
|
+
export interface DependencyGraph {
|
|
177
|
+
nodes: DependencyNode[];
|
|
178
|
+
edges: DependencyEdge[];
|
|
179
|
+
updatedAt: Date;
|
|
180
|
+
}
|
|
9
181
|
/** A single measured step within a trace */
|
|
10
182
|
export interface TraceStep {
|
|
11
183
|
name: string;
|
|
@@ -128,6 +300,34 @@ export interface DebuggerConfig {
|
|
|
128
300
|
captureResponseData?: boolean;
|
|
129
301
|
/** Custom logger function */
|
|
130
302
|
logger?: (...args: unknown[]) => void;
|
|
303
|
+
/** ✅ NEW: Enable distributed tracing with W3C context (default: false) */
|
|
304
|
+
enableDistributedTracing?: boolean;
|
|
305
|
+
/** ✅ NEW: Enable log correlation with traceId (default: false) */
|
|
306
|
+
enableLogCorrelation?: boolean;
|
|
307
|
+
/** ✅ NEW: Enable span nesting for hierarchy (default: false) */
|
|
308
|
+
enableSpanNesting?: boolean;
|
|
309
|
+
/** ✅ NEW: Enable anomaly detection (default: false) */
|
|
310
|
+
enableAnomalyDetection?: boolean;
|
|
311
|
+
/** ✅ NEW: Anomaly detection sensitivity (standard deviations, default: 2) */
|
|
312
|
+
anomalySensitivity?: number;
|
|
313
|
+
/** ✅ NEW: Enable trend analysis (default: false) */
|
|
314
|
+
enableTrendAnalysis?: boolean;
|
|
315
|
+
/** ✅ NEW: Trend analysis resolution in minutes (default: 60) */
|
|
316
|
+
trendResolutionMinutes?: number;
|
|
317
|
+
/** ✅ NEW: Enable real-time alerting (default: false) */
|
|
318
|
+
enableAlerting?: boolean;
|
|
319
|
+
/** ✅ NEW: Webhook URLs for alerts */
|
|
320
|
+
alertWebhooks?: string[];
|
|
321
|
+
/** ✅ NEW: Send alert on CRITICAL classification (default: true) */
|
|
322
|
+
alertOnCritical?: boolean;
|
|
323
|
+
/** ✅ NEW: Send alert on error spike (default: true) */
|
|
324
|
+
alertOnErrorSpike?: boolean;
|
|
325
|
+
/** ✅ NEW: Error spike threshold (count in 5min window, default: 5) */
|
|
326
|
+
errorSpikeThreshold?: number;
|
|
327
|
+
/** ✅ NEW: Enable error clustering (default: false) */
|
|
328
|
+
enableErrorClustering?: boolean;
|
|
329
|
+
/** ✅ NEW: Maximum error clusters to maintain (default: 50) */
|
|
330
|
+
maxClusters?: number;
|
|
131
331
|
}
|
|
132
332
|
export declare const DEFAULT_CONFIG: Required<DebuggerConfig>;
|
|
133
333
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAIA,qCAAqC;AACrC,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AAEzE,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAChB,OAAO,GACP,OAAO,GACP,UAAU,GACV,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,UAAU,GACV,UAAU,GACV,SAAS,CAAC;AAEhB,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1D,qCAAqC;AACrC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAIzD,gDAAgD;AAChD,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,8DAA8D;AAC9D,MAAM,WAAW,IAAI;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;CACrB;AAED,0BAA0B;AAC1B,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAID,kBAAkB;AAClB,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAEvE,4BAA4B;AAC5B,MAAM,WAAW,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,gDAAgD;AAChD,MAAM,WAAW,aAAc,SAAQ,MAAM;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAY,SAAQ,MAAM;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,eAAgB,SAAQ,MAAM;IAC3C,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,mCAAmC;AACnC,MAAM,WAAW,aAAc,SAAQ,MAAM;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAID,qBAAqB;AACrB,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAEtE,iBAAiB;AACjB,MAAM,MAAM,SAAS,GACf,gBAAgB,GAChB,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,oBAAoB,CAAC;AAE3B,oBAAoB;AACpB,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,+BAA+B;AAC/B,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAID,+BAA+B;AAC/B,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAID,sBAAsB;AACtB,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEpE,4BAA4B;AAC5B,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACtB;AAID,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,EAAE,mBAAmB,CAAC;CACjC;AAID,+BAA+B;AAC/B,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,+BAA+B;AAC/B,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,gCAAgC;AAChC,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;CACnB;AAID,4CAA4C;AAC5C,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,mBAAmB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IACxB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,+BAA+B;AAC/B,MAAM,WAAW,KAAK;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,mBAAmB,CAAC;IACpC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACnC,CAAC;IACF,YAAY,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAID,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,YAAY,EAAE,KAAK,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,YAAY,EAAE,KAAK,EAAE,CAAC;CACzB;AAID,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,cAAc;IAC3B,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uDAAuD;IACvD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACtC,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,kEAAkE;IAClE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uDAAuD;IACvD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,cAAc,CA6BnD,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -5,7 +5,15 @@ export { Analytics } from './core/Analytics';
|
|
|
5
5
|
export { HealthMonitor } from './core/HealthMonitor';
|
|
6
6
|
export { Sampler } from './core/Sampler';
|
|
7
7
|
export { renderTimeline, renderCompact } from './core/Timeline';
|
|
8
|
-
export
|
|
8
|
+
export { DistributedTracer, SpanManager } from './core/DistributedTracing';
|
|
9
|
+
export { MetricsRegistry, globalMetrics } from './core/Metrics';
|
|
10
|
+
export { AlertManager, formatSlackMessage } from './core/Alerting';
|
|
11
|
+
export { AnomalyDetector, CUSUMDetector } from './core/AnomalyDetection';
|
|
12
|
+
export { ErrorClusterManager, getErrorSimilarity } from './core/ErrorClustering';
|
|
13
|
+
export { TrendAnalyzer } from './core/TrendAnalysis';
|
|
14
|
+
export { LogCorrelator, CorrelatedLogger, logCorrelationMiddleware } from './core/LogCorrelation';
|
|
15
|
+
export { DependencyGraphManager, visualizeDependencyGraph } from './core/DependencyGraph';
|
|
16
|
+
export type { ClassificationLevel, ServiceTag, HealthState, StepStatus, TraceStep, StepOptions, Trace, RootCauseResult, ServiceFailureStats, EndpointStats, AnalyticsReport, HealthStatus, DebuggerConfig, TraceContext, Span, SpanEvent, Metric, CounterMetric, GaugeMetric, HistogramMetric, SummaryMetric, MetricType, TimeSeriesPoint, Alert, AlertRule, AlertType, AlertSeverity, AnomalyResult, TrendResult, TrendDirection, ErrorCluster, DependencyGraph, DependencyNode, DependencyEdge, } from './core/types';
|
|
9
17
|
export { DEFAULT_CONFIG } from './core/types';
|
|
10
18
|
export { mongoTracer, removeMongoTracer } from './integrations/mongo';
|
|
11
19
|
export { mysqlTracer } from './integrations/mysql';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAG1F,YAAY,EACR,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,KAAK,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EAEd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,MAAM,EACN,aAAa,EACb,WAAW,EACX,eAAe,EACf,aAAa,EACb,UAAU,EACV,eAAe,EACf,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EACH,gBAAgB,EAChB,WAAW,EACX,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACf,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACR,SAAS,IAAI,WAAW,EACxB,KAAK,IAAI,OAAO,EAChB,WAAW,IAAI,aAAa,EAC5B,mBAAmB,IAAI,qBAAqB,EAC/C,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { TraceEngine, RequestTracer } from '../core/TraceEngine';
|
|
2
2
|
import { Analytics } from '../core/Analytics';
|
|
3
3
|
import { DebuggerConfig } from '../core/types';
|
|
4
|
+
import { AlertManager } from '../core/Alerting';
|
|
5
|
+
import { AnomalyDetector } from '../core/AnomalyDetection';
|
|
6
|
+
import { ErrorClusterManager } from '../core/ErrorClustering';
|
|
7
|
+
import { TrendAnalyzer } from '../core/TrendAnalysis';
|
|
8
|
+
import { LogCorrelator } from '../core/LogCorrelation';
|
|
9
|
+
import { DependencyGraphManager } from '../core/DependencyGraph';
|
|
4
10
|
type Request = any;
|
|
5
11
|
type Response = any;
|
|
6
12
|
type NextFunction = any;
|
|
@@ -18,6 +24,12 @@ export interface FlowDebuggerMiddleware {
|
|
|
18
24
|
middleware: (req: Request, res: Response, next: NextFunction) => void;
|
|
19
25
|
engine: TraceEngine;
|
|
20
26
|
analytics: Analytics;
|
|
27
|
+
alertManager: AlertManager;
|
|
28
|
+
anomalyDetector: AnomalyDetector;
|
|
29
|
+
errorClusterManager: ErrorClusterManager;
|
|
30
|
+
trendAnalyzer: TrendAnalyzer;
|
|
31
|
+
dependencyGraphManager: DependencyGraphManager;
|
|
32
|
+
logCorrelator: LogCorrelator;
|
|
21
33
|
getTracer: () => RequestTracer | null;
|
|
22
34
|
}
|
|
23
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../../src/middleware/express.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../../src/middleware/express.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAkB,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAOjE,KAAK,OAAO,GAAG,GAAG,CAAC;AACnB,KAAK,QAAQ,GAAG,GAAG,CAAC;AACpB,KAAK,YAAY,GAAG,GAAG,CAAC;AAYxB,mCAAmC;AACnC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,OAAO,CAAC;QACd,UAAU,OAAO;YACb,MAAM,CAAC,EAAE,aAAa,CAAC;YACvB,OAAO,CAAC,EAAE,MAAM,CAAC;SACpB;KACJ;CACJ;AAED,MAAM,WAAW,sBAAsB;IACnC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IACxD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACtE,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,sBAAsB,CAkN5E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flow-debugger",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.9",
|
|
4
4
|
"description": "Production-safe flow-level debugging SDK. Traces requests, measures timing, classifies errors, detects root causes, and provides endpoint analytics with a live dashboard.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
"type": "git",
|
|
73
73
|
"url": "https://github.com/sannuk79/PROJECTS-AND-NPM-PACKAGES-"
|
|
74
74
|
},
|
|
75
|
-
"homepage": "https://
|
|
75
|
+
"homepage": "https://mypackagedoc.vercel.app/package/flow-debugger",
|
|
76
76
|
"bugs": {
|
|
77
|
-
"url": "https://
|
|
77
|
+
"url": "https://mypackagedoc.vercel.app/package/flow-debugger"
|
|
78
78
|
},
|
|
79
79
|
"bin": {
|
|
80
80
|
"flow-debugger": "bin/cli.js"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"numFailedTestSuites":2,"numFailedTests":5,"numPassedTestSuites":4,"numPassedTests":28,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":1,"numTodoTests":0,"numTotalTestSuites":6,"numTotalTests":33,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1772478951378,"success":false,"testResults":[{"assertionResults":[{"ancestorTitles":["RootCause"],"duration":10,"failureDetails":[],"failureMessages":[],"fullName":"RootCause returns null for empty steps","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"returns null for empty steps"},{"ancestorTitles":["RootCause"],"duration":3,"failureDetails":[{"matcherResult":{"message":"expect(received).toBeNull()\n\nReceived: {\"cause\": \"Database operation returned null (silent failure)\", \"confidence\": 75, \"contributingFactors\": [], \"service\": \"mongo\", \"step\": \"DB query\", \"suggestions\": [\"Check if document/record exists\", \"Verify query syntax and collection name\", \"Review connection pool status\", \"Check database logs for warnings\"]}","pass":false}}],"failureMessages":["Error: expect(received).toBeNull()\n\nReceived: {\"cause\": \"Database operation returned null (silent failure)\", \"confidence\": 75, \"contributingFactors\": [], \"service\": \"mongo\", \"step\": \"DB query\", \"suggestions\": [\"Check if document/record exists\", \"Verify query syntax and collection name\", \"Review connection pool status\", \"Check database logs for warnings\"]}\n at Object.<anonymous> (D:\\npmpackeges\\SmartDebuggerPackage\\tests\\RootCause.test.ts:20:53)\n at Promise.then.completed (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:298:28)\n at new Promise (<anonymous>)\n at callAsyncCircusFn (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:231:10)\n at _callCircusTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:316:40)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at _runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:252:3)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:126:9)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:121:9)\n at run (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:71:3)\n at runAndTransformResultsToJestFormat (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapterInit.js:122:21)\n at jestAdapter (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapter.js:79:19)\n at runTestInternal (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:367:16)\n at runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:444:34)\n at Object.worker (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\testWorker.js:106:12)"],"fullName":"RootCause returns null for all-healthy trace","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"status":"failed","title":"returns null for all-healthy trace"},{"ancestorTitles":["RootCause"],"duration":4,"failureDetails":[{"matcherResult":{"actual":"mongo","expected":"redis","message":"expect(received).toBe(expected) // Object.is equality\n\nExpected: \"redis\"\nReceived: \"mongo\"","name":"toBe","pass":false}}],"failureMessages":["Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: \"redis\"\nReceived: \"mongo\"\n at Object.<anonymous> (D:\\npmpackeges\\SmartDebuggerPackage\\tests\\RootCause.test.ts:30:29)\n at Promise.then.completed (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:298:28)\n at new Promise (<anonymous>)\n at callAsyncCircusFn (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:231:10)\n at _callCircusTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:316:40)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at _runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:252:3)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:126:9)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:121:9)\n at run (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:71:3)\n at runAndTransformResultsToJestFormat (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapterInit.js:122:21)\n at jestAdapter (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapter.js:79:19)\n at runTestInternal (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:367:16)\n at runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:444:34)\n at Object.worker (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\testWorker.js:106:12)"],"fullName":"RootCause detects timeout as high-confidence root cause","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"failed","title":"detects timeout as high-confidence root cause"},{"ancestorTitles":["RootCause"],"duration":2,"failureDetails":[{"matcherResult":{"actual":75,"expected":95,"message":"expect(received).toBe(expected) // Object.is equality\n\nExpected: 95\nReceived: 75","name":"toBe","pass":false}}],"failureMessages":["Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: 95\nReceived: 75\n at Object.<anonymous> (D:\\npmpackeges\\SmartDebuggerPackage\\tests\\RootCause.test.ts:44:32)\n at Promise.then.completed (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:298:28)\n at new Promise (<anonymous>)\n at callAsyncCircusFn (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:231:10)\n at _callCircusTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:316:40)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at _runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:252:3)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:126:9)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:121:9)\n at run (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:71:3)\n at runAndTransformResultsToJestFormat (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapterInit.js:122:21)\n at jestAdapter (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapter.js:79:19)\n at runTestInternal (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:367:16)\n at runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:444:34)\n at Object.worker (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\testWorker.js:106:12)"],"fullName":"RootCause detects first failed step on 500 response","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"failed","title":"detects first failed step on 500 response"},{"ancestorTitles":["RootCause"],"duration":3,"failureDetails":[{"matcherResult":{"message":"expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Slow\"\nReceived string: \"Database operation returned null (silent failure)\"","pass":false}}],"failureMessages":["Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Slow\"\nReceived string: \"Database operation returned null (silent failure)\"\n at Object.<anonymous> (D:\\npmpackeges\\SmartDebuggerPackage\\tests\\RootCause.test.ts:55:27)\n at Promise.then.completed (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:298:28)\n at new Promise (<anonymous>)\n at callAsyncCircusFn (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:231:10)\n at _callCircusTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:316:40)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at _runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:252:3)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:126:9)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:121:9)\n at run (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:71:3)\n at runAndTransformResultsToJestFormat (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapterInit.js:122:21)\n at jestAdapter (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapter.js:79:19)\n at runTestInternal (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:367:16)\n at runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:444:34)\n at Object.worker (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\testWorker.js:106:12)"],"fullName":"RootCause detects slow DB as root cause","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"failed","title":"detects slow DB as root cause"},{"ancestorTitles":["RootCause"],"duration":1,"failureDetails":[{"matcherResult":{"actual":75,"expected":70,"message":"expect(received).toBe(expected) // Object.is equality\n\nExpected: 70\nReceived: 75","name":"toBe","pass":false}}],"failureMessages":["Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: 70\nReceived: 75\n at Object.<anonymous> (D:\\npmpackeges\\SmartDebuggerPackage\\tests\\RootCause.test.ts:67:32)\n at Promise.then.completed (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:298:28)\n at new Promise (<anonymous>)\n at callAsyncCircusFn (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\utils.js:231:10)\n at _callCircusTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:316:40)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at _runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:252:3)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:126:9)\n at _runTestsForDescribeBlock (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:121:9)\n at run (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\run.js:71:3)\n at runAndTransformResultsToJestFormat (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapterInit.js:122:21)\n at jestAdapter (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-circus\\build\\legacy-code-todo-rewrite\\jestAdapter.js:79:19)\n at runTestInternal (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:367:16)\n at runTest (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\runTest.js:444:34)\n at Object.worker (D:\\npmpackeges\\SmartDebuggerPackage\\node_modules\\jest-runner\\build\\testWorker.js:106:12)"],"fullName":"RootCause medium confidence when multiple slow steps","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"failed","title":"medium confidence when multiple slow steps"}],"endTime":1772478954563,"message":" ● RootCause › returns null for all-healthy trace\n\n expect(received).toBeNull()\n\n Received: {\"cause\": \"Database operation returned null (silent failure)\", \"confidence\": 75, \"contributingFactors\": [], \"service\": \"mongo\", \"step\": \"DB query\", \"suggestions\": [\"Check if document/record exists\", \"Verify query syntax and collection name\", \"Review connection pool status\", \"Check database logs for warnings\"]}\n\n \u001b[0m \u001b[90m 18 |\u001b[39m { name\u001b[33m:\u001b[39m \u001b[32m'Redis get'\u001b[39m\u001b[33m,\u001b[39m service\u001b[33m:\u001b[39m \u001b[32m'redis'\u001b[39m\u001b[33m,\u001b[39m status\u001b[33m:\u001b[39m \u001b[32m'success'\u001b[39m\u001b[33m,\u001b[39m classification\u001b[33m:\u001b[39m \u001b[32m'INFO'\u001b[39m\u001b[33m,\u001b[39m startTime\u001b[33m:\u001b[39m \u001b[35m10\u001b[39m\u001b[33m,\u001b[39m endTime\u001b[33m:\u001b[39m \u001b[35m15\u001b[39m\u001b[33m,\u001b[39m duration\u001b[33m:\u001b[39m \u001b[35m5\u001b[39m\u001b[33m,\u001b[39m offset\u001b[33m:\u001b[39m \u001b[35m10\u001b[39m }\u001b[33m,\u001b[39m\n \u001b[90m 19 |\u001b[39m ]\u001b[33m;\u001b[39m\n \u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 20 |\u001b[39m expect(detectRootCause(steps\u001b[33m,\u001b[39m \u001b[35m200\u001b[39m\u001b[33m,\u001b[39m config))\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 21 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 22 |\u001b[39m\n \u001b[90m 23 |\u001b[39m test(\u001b[32m'detects timeout as high-confidence root cause'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\n\n at Object.<anonymous> (tests/RootCause.test.ts:20:53)\n\n ● RootCause › detects timeout as high-confidence root cause\n\n expect(received).toBe(expected) // Object.is equality\n\n Expected: \"redis\"\n Received: \"mongo\"\n\n \u001b[0m \u001b[90m 28 |\u001b[39m \u001b[36mconst\u001b[39m rc \u001b[33m=\u001b[39m detectRootCause(steps\u001b[33m,\u001b[39m \u001b[35m500\u001b[39m\u001b[33m,\u001b[39m config)\u001b[33m;\u001b[39m\n \u001b[90m 29 |\u001b[39m expect(rc)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 30 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mservice)\u001b[33m.\u001b[39mtoBe(\u001b[32m'redis'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 31 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mconfidence)\u001b[33m.\u001b[39mtoBe(\u001b[35m100\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mcause)\u001b[33m.\u001b[39mtoContain(\u001b[32m'timed out'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 33 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\n\n at Object.<anonymous> (tests/RootCause.test.ts:30:29)\n\n ● RootCause › detects first failed step on 500 response\n\n expect(received).toBe(expected) // Object.is equality\n\n Expected: 95\n Received: 75\n\n \u001b[0m \u001b[90m 42 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mstep)\u001b[33m.\u001b[39mtoBe(\u001b[32m'DB find'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 43 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mservice)\u001b[33m.\u001b[39mtoBe(\u001b[32m'mongo'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 44 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mconfidence)\u001b[33m.\u001b[39mtoBe(\u001b[35m95\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 45 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 46 |\u001b[39m\n \u001b[90m 47 |\u001b[39m test(\u001b[32m'detects slow DB as root cause'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\u001b[0m\n\n at Object.<anonymous> (tests/RootCause.test.ts:44:32)\n\n ● RootCause › detects slow DB as root cause\n\n expect(received).toContain(expected) // indexOf\n\n Expected substring: \"Slow\"\n Received string: \"Database operation returned null (silent failure)\"\n\n \u001b[0m \u001b[90m 53 |\u001b[39m expect(rc)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m 54 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mservice)\u001b[33m.\u001b[39mtoBe(\u001b[32m'postgres'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 55 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mcause)\u001b[33m.\u001b[39mtoContain(\u001b[32m'Slow'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 56 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mconfidence)\u001b[33m.\u001b[39mtoBe(\u001b[35m95\u001b[39m)\u001b[33m;\u001b[39m \u001b[90m// >50% of total\u001b[39m\n \u001b[90m 57 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 58 |\u001b[39m\u001b[0m\n\n at Object.<anonymous> (tests/RootCause.test.ts:55:27)\n\n ● RootCause › medium confidence when multiple slow steps\n\n expect(received).toBe(expected) // Object.is equality\n\n Expected: 70\n Received: 75\n\n \u001b[0m \u001b[90m 65 |\u001b[39m expect(rc)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m 66 |\u001b[39m \u001b[90m// Both are equally slow, so confidence should be medium\u001b[39m\n \u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 67 |\u001b[39m expect(rc\u001b[33m!\u001b[39m\u001b[33m.\u001b[39mconfidence)\u001b[33m.\u001b[39mtoBe(\u001b[35m70\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 68 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 69 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 70 |\u001b[39m\u001b[0m\n\n at Object.<anonymous> (tests/RootCause.test.ts:67:32)\n","name":"D:\\npmpackeges\\SmartDebuggerPackage\\tests\\RootCause.test.ts","startTime":1772478952049,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":["Flow Debugger - New Feature Tests","React Native Integration"],"duration":9,"failureDetails":[],"failureMessages":[],"fullName":"Flow Debugger - New Feature Tests React Native Integration should initialize React Native debugger","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"should initialize React Native debugger"},{"ancestorTitles":["Flow Debugger - New Feature Tests","React Native Integration"],"duration":16,"failureDetails":[],"failureMessages":[],"fullName":"Flow Debugger - New Feature Tests React Native Integration should trace async operations","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"should trace async operations"},{"ancestorTitles":["Flow Debugger - New Feature Tests","Core Engine Enhancements"],"duration":41,"failureDetails":[],"failureMessages":[],"fullName":"Flow Debugger - New Feature Tests Core Engine Enhancements should create traces with proper timing","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"should create traces with proper timing"}],"endTime":1772478954622,"message":"","name":"D:\\npmpackeges\\SmartDebuggerPackage\\tests\\new_features.test.ts","startTime":1772478952074,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Analytics"],"duration":53,"failureDetails":[],"failureMessages":[],"fullName":"Analytics should record traces","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"should record traces"},{"ancestorTitles":["Analytics"],"duration":6,"failureDetails":[],"failureMessages":[],"fullName":"Analytics should produce endpoint stats","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"status":"passed","title":"should produce endpoint stats"},{"ancestorTitles":["Analytics"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Analytics should count errors and slow requests","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"should count errors and slow requests"},{"ancestorTitles":["Analytics"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Analytics should track service failures","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"passed","title":"should track service failures"},{"ancestorTitles":["Analytics"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"Analytics should trim old traces when over max","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"should trim old traces when over max"},{"ancestorTitles":["Analytics"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Analytics should track common issues","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"should track common issues"},{"ancestorTitles":["Analytics"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Analytics should get endpoint-specific report","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"should get endpoint-specific report"},{"ancestorTitles":["Analytics"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Analytics should return health monitor data","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"passed","title":"should return health monitor data"}],"endTime":1772478954646,"message":"","name":"D:\\npmpackeges\\SmartDebuggerPackage\\tests\\Analytics.test.ts","startTime":1772478952046,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["Classifier","classify (single step)"],"duration":7,"failureDetails":[],"failureMessages":[],"fullName":"Classifier classify (single step) INFO for fast success","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"INFO for fast success"},{"ancestorTitles":["Classifier","classify (single step)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"Classifier classify (single step) WARN for slow success","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"WARN for slow success"},{"ancestorTitles":["Classifier","classify (single step)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"Classifier classify (single step) ERROR for failed step","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"ERROR for failed step"},{"ancestorTitles":["Classifier","classify (single step)"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Classifier classify (single step) CRITICAL for timeout","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"CRITICAL for timeout"},{"ancestorTitles":["Classifier","classify (single step)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"Classifier classify (single step) respects custom threshold","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"respects custom threshold"},{"ancestorTitles":["Classifier","classifyTrace"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Classifier classifyTrace inherits highest severity from steps","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"inherits highest severity from steps"},{"ancestorTitles":["Classifier","classifyTrace"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"Classifier classifyTrace WARN when total duration is slow even if steps are fast","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"WARN when total duration is slow even if steps are fast"},{"ancestorTitles":["Classifier","classifyQuery"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"Classifier classifyQuery uses slowQueryThreshold","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"uses slowQueryThreshold"}],"endTime":1772478954657,"message":"","name":"D:\\npmpackeges\\SmartDebuggerPackage\\tests\\Classifier.test.ts","startTime":1772478952070,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["TraceEngine"],"duration":11,"failureDetails":[],"failureMessages":[],"fullName":"TraceEngine should generate unique trace IDs","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"should generate unique trace IDs"},{"ancestorTitles":["TraceEngine"],"duration":29,"failureDetails":[],"failureMessages":[],"fullName":"TraceEngine should track steps with timing","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"status":"passed","title":"should track steps with timing"},{"ancestorTitles":["TraceEngine"],"duration":2,"failureDetails":[],"failureMessages":[],"fullName":"TraceEngine should return step result","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"should return step result"},{"ancestorTitles":["TraceEngine"],"duration":24,"failureDetails":[],"failureMessages":[],"fullName":"TraceEngine should catch step errors","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"status":"passed","title":"should catch step errors"},{"ancestorTitles":["TraceEngine"],"duration":67,"failureDetails":[],"failureMessages":[],"fullName":"TraceEngine should detect step timeout","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"passed","title":"should detect step timeout"},{"ancestorTitles":["TraceEngine"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"TraceEngine should track multiple steps in order","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"status":"passed","title":"should track multiple steps in order"},{"ancestorTitles":["TraceEngine"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"TraceEngine should emit trace events","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"should emit trace events"},{"ancestorTitles":["TraceEngine"],"duration":29,"failureDetails":[],"failureMessages":[],"fullName":"TraceEngine should set total duration","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"should set total duration"}],"endTime":1772478954739,"message":"","name":"D:\\npmpackeges\\SmartDebuggerPackage\\tests\\TraceEngine.test.ts","startTime":1772478952070,"status":"passed","summary":""},{"assertionResults":[],"coverage":{},"endTime":1772478955331,"message":" ● Test suite failed to run\n\n \u001b[96mtests/enhanced_observability.test.ts\u001b[0m:\u001b[93m221\u001b[0m:\u001b[93m35\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS2345: \u001b[0mArgument of type '{ traceId: string; endpoint: string; method: string; classification: \"CRITICAL\"; totalDuration: number; rootCause: { cause: string; step: string; service: \"mongo\"; confidence: number; }; steps: never[]; timestamp: Date; }' is not assignable to parameter of type 'Trace'.\n Type '{ traceId: string; endpoint: string; method: string; classification: \"CRITICAL\"; totalDuration: number; rootCause: { cause: string; step: string; service: \"mongo\"; confidence: number; }; steps: never[]; timestamp: Date; }' is missing the following properties from type 'Trace': startTime, endTime\n\n \u001b[7m221\u001b[0m alertManager.processTrace(trace);\n \u001b[7m \u001b[0m \u001b[91m ~~~~~\u001b[0m\n \u001b[96mtests/enhanced_observability.test.ts\u001b[0m:\u001b[93m241\u001b[0m:\u001b[93m35\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS2345: \u001b[0mArgument of type '{ traceId: string; endpoint: string; method: string; classification: \"CRITICAL\"; totalDuration: number; rootCause: null; steps: never[]; timestamp: Date; }' is not assignable to parameter of type 'Trace'.\n Type '{ traceId: string; endpoint: string; method: string; classification: \"CRITICAL\"; totalDuration: number; rootCause: null; steps: never[]; timestamp: Date; }' is missing the following properties from type 'Trace': startTime, endTime\n\n \u001b[7m241\u001b[0m alertManager.processTrace(trace1);\n \u001b[7m \u001b[0m \u001b[91m ~~~~~~\u001b[0m\n \u001b[96mtests/enhanced_observability.test.ts\u001b[0m:\u001b[93m242\u001b[0m:\u001b[93m35\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS2345: \u001b[0mArgument of type '{ traceId: string; endpoint: string; method: string; classification: \"CRITICAL\"; totalDuration: number; rootCause: null; steps: never[]; timestamp: Date; }' is not assignable to parameter of type 'Trace'.\n Type '{ traceId: string; endpoint: string; method: string; classification: \"CRITICAL\"; totalDuration: number; rootCause: null; steps: never[]; timestamp: Date; }' is missing the following properties from type 'Trace': startTime, endTime\n\n \u001b[7m242\u001b[0m alertManager.processTrace(trace1);\n \u001b[7m \u001b[0m \u001b[91m ~~~~~~\u001b[0m\n \u001b[96mtests/enhanced_observability.test.ts\u001b[0m:\u001b[93m341\u001b[0m:\u001b[93m37\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS2345: \u001b[0mArgument of type '{ traceId: string; endpoint: string; method: string; classification: \"ERROR\"; totalDuration: number; rootCause: null; steps: { name: string; service: \"mongo\"; status: \"error\"; error: string; stackTrace: string; ... 4 more ...; offset: number; }[]; timestamp: Date; }' is not assignable to parameter of type 'Trace'.\n Type '{ traceId: string; endpoint: string; method: string; classification: \"ERROR\"; totalDuration: number; rootCause: null; steps: { name: string; service: \"mongo\"; status: \"error\"; error: string; stackTrace: string; ... 4 more ...; offset: number; }[]; timestamp: Date; }' is missing the following properties from type 'Trace': startTime, endTime\n\n \u001b[7m341\u001b[0m clusterManager.processTrace(trace1);\n \u001b[7m \u001b[0m \u001b[91m ~~~~~~\u001b[0m\n \u001b[96mtests/enhanced_observability.test.ts\u001b[0m:\u001b[93m342\u001b[0m:\u001b[93m37\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS2345: \u001b[0mArgument of type '{ traceId: string; steps: { error: string; name: string; service: \"mongo\"; status: \"error\"; stackTrace: string; classification: \"ERROR\"; startTime: number; endTime: number; duration: number; offset: number; }[]; ... 5 more ...; timestamp: Date; }' is not assignable to parameter of type 'Trace'.\n Type '{ traceId: string; steps: { error: string; name: string; service: \"mongo\"; status: \"error\"; stackTrace: string; classification: \"ERROR\"; startTime: number; endTime: number; duration: number; offset: number; }[]; ... 5 more ...; timestamp: Date; }' is missing the following properties from type 'Trace': startTime, endTime\n\n \u001b[7m342\u001b[0m clusterManager.processTrace(trace2);\n \u001b[7m \u001b[0m \u001b[91m ~~~~~~\u001b[0m\n \u001b[96mtests/enhanced_observability.test.ts\u001b[0m:\u001b[93m382\u001b[0m:\u001b[93m37\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS2345: \u001b[0mArgument of type '{ traceId: string; endpoint: string; method: string; classification: \"ERROR\"; totalDuration: number; rootCause: null; steps: { name: string; service: \"mongo\"; status: \"error\"; error: string; stackTrace: string; ... 4 more ...; offset: number; }[]; timestamp: Date; }' is not assignable to parameter of type 'Trace'.\n Type '{ traceId: string; endpoint: string; method: string; classification: \"ERROR\"; totalDuration: number; rootCause: null; steps: { name: string; service: \"mongo\"; status: \"error\"; error: string; stackTrace: string; ... 4 more ...; offset: number; }[]; timestamp: Date; }' is missing the following properties from type 'Trace': startTime, endTime\n\n \u001b[7m382\u001b[0m clusterManager.processTrace(trace1);\n \u001b[7m \u001b[0m \u001b[91m ~~~~~~\u001b[0m\n \u001b[96mtests/enhanced_observability.test.ts\u001b[0m:\u001b[93m383\u001b[0m:\u001b[93m37\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS2345: \u001b[0mArgument of type '{ traceId: string; steps: { error: string; stackTrace: string; name: string; service: \"mongo\"; status: \"error\"; classification: \"ERROR\"; startTime: number; endTime: number; duration: number; offset: number; }[]; ... 5 more ...; timestamp: Date; }' is not assignable to parameter of type 'Trace'.\n Type '{ traceId: string; steps: { error: string; stackTrace: string; name: string; service: \"mongo\"; status: \"error\"; classification: \"ERROR\"; startTime: number; endTime: number; duration: number; offset: number; }[]; ... 5 more ...; timestamp: Date; }' is missing the following properties from type 'Trace': startTime, endTime\n\n \u001b[7m383\u001b[0m clusterManager.processTrace(trace2);\n \u001b[7m \u001b[0m \u001b[91m ~~~~~~\u001b[0m\n \u001b[96mtests/enhanced_observability.test.ts\u001b[0m:\u001b[93m482\u001b[0m:\u001b[93m35\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS2345: \u001b[0mArgument of type '{ traceId: string; endpoint: string; method: string; classification: \"INFO\"; totalDuration: number; rootCause: null; steps: ({ name: string; service: \"mongo\"; status: \"success\"; classification: \"INFO\"; startTime: number; endTime: number; duration: number; offset: number; } | { ...; })[]; timestamp: Date; }' is not assignable to parameter of type 'Trace'.\n Type '{ traceId: string; endpoint: string; method: string; classification: \"INFO\"; totalDuration: number; rootCause: null; steps: ({ name: string; service: \"mongo\"; status: \"success\"; classification: \"INFO\"; startTime: number; endTime: number; duration: number; offset: number; } | { ...; })[]; timestamp: Date; }' is missing the following properties from type 'Trace': startTime, endTime\n\n \u001b[7m482\u001b[0m graphManager.processTrace(trace);\n \u001b[7m \u001b[0m \u001b[91m ~~~~~\u001b[0m\n \u001b[96mtests/enhanced_observability.test.ts\u001b[0m:\u001b[93m512\u001b[0m:\u001b[93m39\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m TS2345: \u001b[0mArgument of type '{ traceId: string; endpoint: string; method: string; classification: \"ERROR\"; totalDuration: number; rootCause: null; steps: { name: string; service: \"mongo\"; status: \"error\"; classification: \"ERROR\"; startTime: number; endTime: number; duration: number; offset: number; }[]; timestamp: Date; }' is not assignable to parameter of type 'Trace'.\n Type '{ traceId: string; endpoint: string; method: string; classification: \"ERROR\"; totalDuration: number; rootCause: null; steps: { name: string; service: \"mongo\"; status: \"error\"; classification: \"ERROR\"; startTime: number; endTime: number; duration: number; offset: number; }[]; timestamp: Date; }' is missing the following properties from type 'Trace': startTime, endTime\n\n \u001b[7m512\u001b[0m graphManager.processTrace({ ...trace, traceId: `abc${i}` });\n \u001b[7m \u001b[0m \u001b[91m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\u001b[0m\n","name":"D:\\npmpackeges\\SmartDebuggerPackage\\tests\\enhanced_observability.test.ts","startTime":1772478955331,"status":"failed","summary":""}],"wasInterrupted":false}
|