codebuff 1.0.332 → 1.0.334
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/dist/__tests__/display.test.js +1 -1
- package/dist/__tests__/display.test.js.map +1 -1
- package/dist/__tests__/rage-detectors.test.d.ts +1 -0
- package/dist/__tests__/rage-detectors.test.js +127 -0
- package/dist/__tests__/rage-detectors.test.js.map +1 -0
- package/dist/checkpoints/file-manager.js +4 -1
- package/dist/checkpoints/file-manager.js.map +1 -1
- package/dist/cli.js +43 -5
- package/dist/cli.js.map +1 -1
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/constants/analytics-events.d.ts +2 -0
- package/dist/common/constants/analytics-events.d.ts.map +1 -1
- package/dist/common/constants/analytics-events.js +2 -0
- package/dist/common/constants/analytics-events.js.map +1 -1
- package/dist/common/json-config/__tests__/__snapshots__/stringify-schema.test.js.snap +144 -0
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/rage-detectors.d.ts +15 -0
- package/dist/rage-detectors.js +55 -0
- package/dist/rage-detectors.js.map +1 -0
- package/dist/utils/__tests__/background-process-manager.test.js +21 -22
- package/dist/utils/__tests__/background-process-manager.test.js.map +1 -1
- package/dist/utils/__tests__/rage-detector.test.d.ts +1 -0
- package/dist/utils/__tests__/rage-detector.test.js +450 -0
- package/dist/utils/__tests__/rage-detector.test.js.map +1 -0
- package/dist/utils/analytics.js +13 -7
- package/dist/utils/analytics.js.map +1 -1
- package/dist/utils/rage-detector.d.ts +32 -0
- package/dist/utils/rage-detector.js +143 -0
- package/dist/utils/rage-detector.js.map +1 -0
- package/dist/utils/spinner.d.ts +1 -0
- package/dist/utils/spinner.js +9 -0
- package/dist/utils/spinner.js.map +1 -1
- package/dist/utils/with-hang-detection.d.ts +1 -0
- package/dist/utils/with-hang-detection.js +18 -0
- package/dist/utils/with-hang-detection.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rage-detector.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/rage-detector.test.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/analytics.js
CHANGED
|
@@ -22,13 +22,19 @@ const originalConsoleWarn = console.warn;
|
|
|
22
22
|
// Wrap console methods to suppress PostHog errors
|
|
23
23
|
function wrapConsoleMethod(originalMethod) {
|
|
24
24
|
return function (...args) {
|
|
25
|
-
// Check
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
// Check for error name in any of the arguments
|
|
26
|
+
let errorName = '';
|
|
27
|
+
for (const arg of args) {
|
|
28
|
+
if (arg instanceof Error) {
|
|
29
|
+
errorName = arg.name;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
else if (arg && typeof arg === 'object' && arg.constructor) {
|
|
33
|
+
errorName = arg.constructor.name;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (errorName.toLowerCase().includes('posthog')) {
|
|
32
38
|
return;
|
|
33
39
|
}
|
|
34
40
|
// For non-PostHog errors, use the original method
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
interface BaseDetectorOptions {
|
|
2
|
+
reason: string;
|
|
3
|
+
debounceMs?: number;
|
|
4
|
+
}
|
|
5
|
+
interface CountDetectorOptions extends BaseDetectorOptions {
|
|
6
|
+
mode: 'COUNT';
|
|
7
|
+
threshold: number;
|
|
8
|
+
timeWindow: number;
|
|
9
|
+
historyLimit: number;
|
|
10
|
+
}
|
|
11
|
+
interface TimeBetweenDetectorOptions extends BaseDetectorOptions {
|
|
12
|
+
mode: 'TIME_BETWEEN';
|
|
13
|
+
threshold: number;
|
|
14
|
+
operator: 'lt' | 'gt' | 'eq' | 'gte' | 'lte';
|
|
15
|
+
}
|
|
16
|
+
export declare function createCountDetector(options: CountDetectorOptions): {
|
|
17
|
+
recordEvent: (value?: any) => void;
|
|
18
|
+
};
|
|
19
|
+
export declare function createTimeBetweenDetector(options: TimeBetweenDetectorOptions): {
|
|
20
|
+
start: () => void;
|
|
21
|
+
end: () => void;
|
|
22
|
+
};
|
|
23
|
+
export declare function createTimeoutDetector(options: {
|
|
24
|
+
reason: string;
|
|
25
|
+
timeoutMs: number;
|
|
26
|
+
onHang?: () => void;
|
|
27
|
+
context?: Record<string, any>;
|
|
28
|
+
}): {
|
|
29
|
+
start: (context?: Record<string, any>) => void;
|
|
30
|
+
stop: () => void;
|
|
31
|
+
};
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCountDetector = createCountDetector;
|
|
4
|
+
exports.createTimeBetweenDetector = createTimeBetweenDetector;
|
|
5
|
+
exports.createTimeoutDetector = createTimeoutDetector;
|
|
6
|
+
const analytics_events_1 = require("../common/constants/analytics-events");
|
|
7
|
+
const analytics_1 = require("./analytics");
|
|
8
|
+
// Factory function for COUNT-based detectors
|
|
9
|
+
function createCountDetector(options) {
|
|
10
|
+
let history = [];
|
|
11
|
+
let debounceTimer = null;
|
|
12
|
+
const recordEvent = (value) => {
|
|
13
|
+
const now = Date.now();
|
|
14
|
+
history.push({ timestamp: now, value });
|
|
15
|
+
// Trim history to prevent memory leaks
|
|
16
|
+
if (history.length > options.historyLimit) {
|
|
17
|
+
history.shift();
|
|
18
|
+
}
|
|
19
|
+
checkForRage();
|
|
20
|
+
};
|
|
21
|
+
const checkForRage = () => {
|
|
22
|
+
const now = Date.now();
|
|
23
|
+
const recentEvents = history.filter((event) => now - event.timestamp <= options.timeWindow);
|
|
24
|
+
if (recentEvents.length < options.threshold) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// Check for consecutive repeats of the same value
|
|
28
|
+
let repeatCount = 1;
|
|
29
|
+
let lastValue = null;
|
|
30
|
+
let repeatedEvents = [];
|
|
31
|
+
for (const event of recentEvents) {
|
|
32
|
+
if (event.value === lastValue) {
|
|
33
|
+
repeatCount++;
|
|
34
|
+
repeatedEvents.push(event);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
repeatCount = 1;
|
|
38
|
+
repeatedEvents = [event];
|
|
39
|
+
}
|
|
40
|
+
if (repeatCount >= options.threshold) {
|
|
41
|
+
fireEvent(repeatedEvents);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
lastValue = event.value;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const fireEvent = (events) => {
|
|
48
|
+
if (debounceTimer)
|
|
49
|
+
return; // Debounce active
|
|
50
|
+
(0, analytics_1.trackEvent)(analytics_events_1.AnalyticsEvent.RAGE, {
|
|
51
|
+
reason: options.reason,
|
|
52
|
+
count: events.length,
|
|
53
|
+
timeWindow: options.timeWindow,
|
|
54
|
+
repeatedKey: events[0]?.value,
|
|
55
|
+
});
|
|
56
|
+
history = []; // Clear history to prevent immediate re-firing
|
|
57
|
+
if (options.debounceMs) {
|
|
58
|
+
debounceTimer = setTimeout(() => {
|
|
59
|
+
debounceTimer = null;
|
|
60
|
+
}, options.debounceMs);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return { recordEvent };
|
|
64
|
+
}
|
|
65
|
+
// Factory function for TIME_BETWEEN-based detectors
|
|
66
|
+
function createTimeBetweenDetector(options) {
|
|
67
|
+
let startEvent = null;
|
|
68
|
+
let coolDownTimer = null;
|
|
69
|
+
const start = () => {
|
|
70
|
+
startEvent = { timestamp: Date.now(), value: null };
|
|
71
|
+
};
|
|
72
|
+
const end = () => {
|
|
73
|
+
if (!startEvent || coolDownTimer)
|
|
74
|
+
return;
|
|
75
|
+
const duration = Date.now() - startEvent.timestamp;
|
|
76
|
+
const operator = options.operator || 'lt'; // Default to lt for backward compatibility
|
|
77
|
+
let shouldFire = false;
|
|
78
|
+
switch (operator) {
|
|
79
|
+
case 'lt':
|
|
80
|
+
shouldFire = duration < options.threshold;
|
|
81
|
+
break;
|
|
82
|
+
case 'gt':
|
|
83
|
+
shouldFire = duration > options.threshold;
|
|
84
|
+
break;
|
|
85
|
+
case 'eq':
|
|
86
|
+
shouldFire = duration === options.threshold;
|
|
87
|
+
break;
|
|
88
|
+
case 'gte':
|
|
89
|
+
shouldFire = duration >= options.threshold;
|
|
90
|
+
break;
|
|
91
|
+
case 'lte':
|
|
92
|
+
shouldFire = duration <= options.threshold;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
if (shouldFire) {
|
|
96
|
+
fireEvent(duration);
|
|
97
|
+
}
|
|
98
|
+
startEvent = null;
|
|
99
|
+
};
|
|
100
|
+
const fireEvent = (duration) => {
|
|
101
|
+
(0, analytics_1.trackEvent)(analytics_events_1.AnalyticsEvent.RAGE, {
|
|
102
|
+
reason: options.reason,
|
|
103
|
+
duration,
|
|
104
|
+
threshold: options.threshold,
|
|
105
|
+
operator: options.operator,
|
|
106
|
+
});
|
|
107
|
+
if (options.debounceMs) {
|
|
108
|
+
coolDownTimer = setTimeout(() => {
|
|
109
|
+
coolDownTimer = null;
|
|
110
|
+
}, options.debounceMs);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
return { start, end };
|
|
114
|
+
}
|
|
115
|
+
// Factory function for TIMEOUT-based detectors
|
|
116
|
+
function createTimeoutDetector(options) {
|
|
117
|
+
let timeoutHandle = null;
|
|
118
|
+
const start = (context) => {
|
|
119
|
+
stop(); // Clear any existing timeout
|
|
120
|
+
const startTime = Date.now();
|
|
121
|
+
timeoutHandle = setTimeout(() => {
|
|
122
|
+
const duration = Date.now() - startTime;
|
|
123
|
+
(0, analytics_1.trackEvent)(analytics_events_1.AnalyticsEvent.RAGE, {
|
|
124
|
+
reason: options.reason,
|
|
125
|
+
durationMs: duration,
|
|
126
|
+
timeoutMs: options.timeoutMs,
|
|
127
|
+
...options.context,
|
|
128
|
+
...context,
|
|
129
|
+
});
|
|
130
|
+
if (options.onHang) {
|
|
131
|
+
options.onHang();
|
|
132
|
+
}
|
|
133
|
+
}, options.timeoutMs);
|
|
134
|
+
};
|
|
135
|
+
const stop = () => {
|
|
136
|
+
if (timeoutHandle) {
|
|
137
|
+
clearTimeout(timeoutHandle);
|
|
138
|
+
timeoutHandle = null;
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
return { start, stop };
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=rage-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rage-detector.js","sourceRoot":"","sources":["../../src/utils/rage-detector.ts"],"names":[],"mappings":";;AA+CA,kDAsEC;AAGD,8DAuDC;AAGD,sDAmCC;AArND,wEAAkE;AAElE,2CAAwC;AA4CxC,6CAA6C;AAC7C,SAAgB,mBAAmB,CAAC,OAA6B;IAC/D,IAAI,OAAO,GAAkB,EAAE,CAAA;IAC/B,IAAI,aAAa,GAA0B,IAAI,CAAA;IAE/C,MAAM,WAAW,GAAG,CAAC,KAAW,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QAEvC,uCAAuC;QACvC,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,EAAE,CAAA;QACjB,CAAC;QAED,YAAY,EAAE,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CACvD,CAAA;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5C,OAAM;QACR,CAAC;QAED,kDAAkD;QAClD,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,IAAI,SAAS,GAAG,IAAI,CAAA;QACpB,IAAI,cAAc,GAAkB,EAAE,CAAA;QAEtC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,WAAW,EAAE,CAAA;gBACb,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5B,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,CAAC,CAAA;gBACf,cAAc,GAAG,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;YAED,IAAI,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACrC,SAAS,CAAC,cAAc,CAAC,CAAA;gBACzB,OAAM;YACR,CAAC;YAED,SAAS,GAAG,KAAK,CAAC,KAAK,CAAA;QACzB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,MAAqB,EAAE,EAAE;QAC1C,IAAI,aAAa;YAAE,OAAM,CAAC,kBAAkB;QAE5C,IAAA,sBAAU,EAAC,iCAAc,CAAC,IAAI,EAAE;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK;SAC9B,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE,CAAA,CAAC,+CAA+C;QAE5D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,aAAa,GAAG,IAAI,CAAA;YACtB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,WAAW,EAAE,CAAA;AACxB,CAAC;AAED,oDAAoD;AACpD,SAAgB,yBAAyB,CAAC,OAAmC;IAC3E,IAAI,UAAU,GAAuB,IAAI,CAAA;IACzC,IAAI,aAAa,GAA0B,IAAI,CAAA;IAE/C,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,UAAU,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IACrD,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,IAAI,CAAC,UAAU,IAAI,aAAa;YAAE,OAAM;QAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS,CAAA;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAA,CAAC,2CAA2C;QAErF,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,IAAI;gBACP,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAA;gBACzC,MAAK;YACP,KAAK,IAAI;gBACP,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAA;gBACzC,MAAK;YACP,KAAK,IAAI;gBACP,UAAU,GAAG,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAA;gBAC3C,MAAK;YACP,KAAK,KAAK;gBACR,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAA;gBAC1C,MAAK;YACP,KAAK,KAAK;gBACR,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAA;gBAC1C,MAAK;QACT,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,CAAC,QAAQ,CAAC,CAAA;QACrB,CAAC;QACD,UAAU,GAAG,IAAI,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE;QACrC,IAAA,sBAAU,EAAC,iCAAc,CAAC,IAAI,EAAE;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ;YACR,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAA;QAEF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,aAAa,GAAG,IAAI,CAAA;YACtB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACvB,CAAC;AAED,+CAA+C;AAC/C,SAAgB,qBAAqB,CAAC,OAKrC;IACC,IAAI,aAAa,GAA0B,IAAI,CAAA;IAE/C,MAAM,KAAK,GAAG,CAAC,OAA6B,EAAE,EAAE;QAC9C,IAAI,EAAE,CAAA,CAAC,6BAA6B;QAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;YACvC,IAAA,sBAAU,EAAC,iCAAc,CAAC,IAAI,EAAE;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,QAAQ;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,GAAG,OAAO,CAAC,OAAO;gBAClB,GAAG,OAAO;aACX,CAAC,CAAA;YACF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,MAAM,EAAE,CAAA;YAClB,CAAC;QACH,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACvB,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,CAAC,aAAa,CAAC,CAAA;YAC3B,aAAa,GAAG,IAAI,CAAA;QACtB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC"}
|
package/dist/utils/spinner.d.ts
CHANGED
package/dist/utils/spinner.js
CHANGED
|
@@ -27,10 +27,15 @@ exports.Spinner = void 0;
|
|
|
27
27
|
const readline = __importStar(require("readline"));
|
|
28
28
|
const picocolors_1 = require("picocolors");
|
|
29
29
|
const display_1 = require("../display");
|
|
30
|
+
const rage_detector_1 = require("./rage-detector");
|
|
30
31
|
const chars = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
31
32
|
class Spinner {
|
|
32
33
|
static instance = null;
|
|
33
34
|
loadingInterval = null;
|
|
35
|
+
hangDetector = (0, rage_detector_1.createTimeoutDetector)({
|
|
36
|
+
reason: 'spinner_hung',
|
|
37
|
+
timeoutMs: 60_000,
|
|
38
|
+
});
|
|
34
39
|
previous = null;
|
|
35
40
|
text = 'Thinking';
|
|
36
41
|
constructor() { }
|
|
@@ -46,6 +51,8 @@ class Spinner {
|
|
|
46
51
|
return;
|
|
47
52
|
}
|
|
48
53
|
this.previous = (0, display_1.getPrevious)();
|
|
54
|
+
// Set up hang detection
|
|
55
|
+
this.hangDetector.start({ spinnerText: this.text });
|
|
49
56
|
let i = 0;
|
|
50
57
|
// Hide cursor while spinner is active
|
|
51
58
|
process.stdout.write('\u001B[?25l');
|
|
@@ -55,6 +62,8 @@ class Spinner {
|
|
|
55
62
|
}, 100);
|
|
56
63
|
}
|
|
57
64
|
stop() {
|
|
65
|
+
// Clear hang detection
|
|
66
|
+
this.hangDetector.stop();
|
|
58
67
|
if (!this.loadingInterval) {
|
|
59
68
|
return;
|
|
60
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/utils/spinner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AAEpC,2CAAkC;AAElC,wCAAqD;
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/utils/spinner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AAEpC,2CAAkC;AAElC,wCAAqD;AACrD,mDAAuD;AAEvD,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEhE,MAAa,OAAO;IACV,MAAM,CAAC,QAAQ,GAAmB,IAAI,CAAA;IACtC,eAAe,GAA0B,IAAI,CAAA;IAC7C,YAAY,GAAG,IAAA,qCAAqB,EAAC;QAC3C,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE,MAAM;KAClB,CAAC,CAAA;IACM,QAAQ,GAAkB,IAAI,CAAA;IAC9B,IAAI,GAAW,UAAU,CAAA;IAEjC,gBAAuB,CAAC;IAEjB,MAAM,CAAC,GAAG;QACf,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAA;QAClC,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAA,qBAAW,GAAE,CAAA;QAE7B,wBAAwB;QACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAEnD,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,sCAAsC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,IAAA,kBAAK,EAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACnD,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAA;QAC5B,CAAC,EAAE,GAAG,CAAC,CAAA;IACT,CAAC;IAED,IAAI;QACF,uBAAuB;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;QAExB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAE3B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA,CAAC,yBAAyB;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAA,CAAC,kCAAkC;QACvD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAA,qBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5B,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,aAAa;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACrC,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACrC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;;AAtEH,0BAuEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function withHangDetection<T>(commandName: string, commandFn: () => Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withHangDetection = withHangDetection;
|
|
4
|
+
const rage_detector_1 = require("./rage-detector");
|
|
5
|
+
async function withHangDetection(commandName, commandFn) {
|
|
6
|
+
const hangDetector = (0, rage_detector_1.createTimeoutDetector)({
|
|
7
|
+
reason: 'command_hung',
|
|
8
|
+
timeoutMs: 60_000,
|
|
9
|
+
});
|
|
10
|
+
hangDetector.start({ commandName });
|
|
11
|
+
try {
|
|
12
|
+
return await commandFn();
|
|
13
|
+
}
|
|
14
|
+
finally {
|
|
15
|
+
hangDetector.stop();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=with-hang-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-hang-detection.js","sourceRoot":"","sources":["../../src/utils/with-hang-detection.ts"],"names":[],"mappings":";;AAEA,8CAeC;AAjBD,mDAAuD;AAEhD,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,SAA2B;IAE3B,MAAM,YAAY,GAAG,IAAA,qCAAqB,EAAC;QACzC,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE,MAAM;KAClB,CAAC,CAAA;IACF,YAAY,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IAEnC,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAA;IAC1B,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,IAAI,EAAE,CAAA;IACrB,CAAC;AACH,CAAC"}
|