@lage-run/reporters 0.2.43 → 0.3.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/CHANGELOG.json +43 -1
- package/CHANGELOG.md +20 -2
- package/lib/AdoReporter.js +5 -1
- package/lib/LogReporter.js +5 -1
- package/lib/ProgressReporter.d.ts +0 -3
- package/lib/ProgressReporter.js +1 -9
- package/lib/components/ProgressReporterApp.js +16 -43
- package/lib/components/ProgressStatus.d.ts +0 -1
- package/lib/components/ProgressStatus.js +1 -2
- package/lib/components/SummaryInfo.js +4 -3
- package/lib/components/ThreadItem.d.ts +0 -1
- package/lib/components/ThreadItem.js +3 -5
- package/lib/createReporter.js +5 -0
- package/lib/slowestTargetRuns.d.ts +2 -0
- package/lib/slowestTargetRuns.js +12 -0
- package/lib/types/progressBarTypes.d.ts +1 -3
- package/package.json +3 -3
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,49 @@
|
|
|
2
2
|
"name": "@lage-run/reporters",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Wed, 18 Jan 2023 18:18:13 GMT",
|
|
6
|
+
"tag": "@lage-run/reporters_v0.3.0",
|
|
7
|
+
"version": "0.3.0",
|
|
8
|
+
"comments": {
|
|
9
|
+
"minor": [
|
|
10
|
+
{
|
|
11
|
+
"author": "kchau@microsoft.com",
|
|
12
|
+
"package": "@lage-run/reporters",
|
|
13
|
+
"commit": "71b5b1452ee25148a637894d1bf99cf1cc6a80a7",
|
|
14
|
+
"comment": "Using lage for prune and clear on cache and get reporter in shape for ADO"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "beachball",
|
|
18
|
+
"package": "@lage-run/reporters",
|
|
19
|
+
"comment": "Bump @lage-run/scheduler-types to v0.3.0",
|
|
20
|
+
"commit": "71b5b1452ee25148a637894d1bf99cf1cc6a80a7"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"author": "beachball",
|
|
24
|
+
"package": "@lage-run/reporters",
|
|
25
|
+
"comment": "Bump @lage-run/format-hrtime to v0.1.4",
|
|
26
|
+
"commit": "71b5b1452ee25148a637894d1bf99cf1cc6a80a7"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"date": "Thu, 05 Jan 2023 00:40:50 GMT",
|
|
33
|
+
"tag": "@lage-run/reporters_v0.2.44",
|
|
34
|
+
"version": "0.2.44",
|
|
35
|
+
"comments": {
|
|
36
|
+
"patch": [
|
|
37
|
+
{
|
|
38
|
+
"author": "kchau@microsoft.com",
|
|
39
|
+
"package": "@lage-run/reporters",
|
|
40
|
+
"commit": "961843bef658c51312e02498554ad338e467e1a7",
|
|
41
|
+
"comment": "fixing progress bar to not be a bottleneck"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"date": "Thu, 08 Dec 2022 00:49:28 GMT",
|
|
6
48
|
"tag": "@lage-run/reporters_v0.2.43",
|
|
7
49
|
"version": "0.2.43",
|
|
8
50
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,30 @@
|
|
|
1
1
|
# Change Log - @lage-run/reporters
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Wed, 18 Jan 2023 18:18:13 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.3.0
|
|
8
|
+
|
|
9
|
+
Wed, 18 Jan 2023 18:18:13 GMT
|
|
10
|
+
|
|
11
|
+
### Minor changes
|
|
12
|
+
|
|
13
|
+
- Using lage for prune and clear on cache and get reporter in shape for ADO (kchau@microsoft.com)
|
|
14
|
+
- Bump @lage-run/scheduler-types to v0.3.0
|
|
15
|
+
- Bump @lage-run/format-hrtime to v0.1.4
|
|
16
|
+
|
|
17
|
+
## 0.2.44
|
|
18
|
+
|
|
19
|
+
Thu, 05 Jan 2023 00:40:50 GMT
|
|
20
|
+
|
|
21
|
+
### Patches
|
|
22
|
+
|
|
23
|
+
- fixing progress bar to not be a bottleneck (kchau@microsoft.com)
|
|
24
|
+
|
|
7
25
|
## 0.2.43
|
|
8
26
|
|
|
9
|
-
Thu, 08 Dec 2022 00:49:
|
|
27
|
+
Thu, 08 Dec 2022 00:49:28 GMT
|
|
10
28
|
|
|
11
29
|
### Patches
|
|
12
30
|
|
package/lib/AdoReporter.js
CHANGED
|
@@ -10,6 +10,7 @@ const _formatHrtime = require("@lage-run/format-hrtime");
|
|
|
10
10
|
const _isTargetStatusLogEntryJs = require("./isTargetStatusLogEntry.js");
|
|
11
11
|
const _logger = require("@lage-run/logger");
|
|
12
12
|
const _chalk = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
|
|
13
|
+
const _slowestTargetRunsJs = require("./slowestTargetRuns.js");
|
|
13
14
|
function _interopRequireDefault(obj) {
|
|
14
15
|
return obj && obj.__esModule ? obj : {
|
|
15
16
|
default: obj
|
|
@@ -137,7 +138,10 @@ class AdoReporter {
|
|
|
137
138
|
};
|
|
138
139
|
this.logStream.write(_chalk.default.cyanBright(`##[section]Summary\n`));
|
|
139
140
|
if (targetRuns.size > 0) {
|
|
140
|
-
|
|
141
|
+
const slowestTargets = (0, _slowestTargetRunsJs.slowestTargetRuns)([
|
|
142
|
+
...targetRuns.values()
|
|
143
|
+
]);
|
|
144
|
+
for (const wrappedTarget of slowestTargets){
|
|
141
145
|
const colorFn = statusColorFn[wrappedTarget.status];
|
|
142
146
|
const target = wrappedTarget.target;
|
|
143
147
|
this.logStream.write(format(_logger.LogLevel.info, getTaskLogPrefix(target.packageName || "[GLOBAL]", target.task), colorFn(`${wrappedTarget.status}${wrappedTarget.duration ? `, took ${(0, _formatHrtime.formatDuration)((0, _formatHrtime.hrToSeconds)(wrappedTarget.duration))}` : ""}`)));
|
package/lib/LogReporter.js
CHANGED
|
@@ -14,6 +14,7 @@ const _chalk = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
|
|
|
14
14
|
const _gradientString = /*#__PURE__*/ _interopRequireDefault(require("gradient-string"));
|
|
15
15
|
const _crypto = /*#__PURE__*/ _interopRequireDefault(require("crypto"));
|
|
16
16
|
const _formatBytesJs = require("./formatBytes.js");
|
|
17
|
+
const _slowestTargetRunsJs = require("./slowestTargetRuns.js");
|
|
17
18
|
function _interopRequireDefault(obj) {
|
|
18
19
|
return obj && obj.__esModule ? obj : {
|
|
19
20
|
default: obj
|
|
@@ -181,7 +182,10 @@ class LogReporter {
|
|
|
181
182
|
if (targetRuns.size > 0) {
|
|
182
183
|
this.print(_chalk.default.cyanBright(`\nSummary`));
|
|
183
184
|
this.hr();
|
|
184
|
-
|
|
185
|
+
const slowestTargets = (0, _slowestTargetRunsJs.slowestTargetRuns)([
|
|
186
|
+
...targetRuns.values()
|
|
187
|
+
]);
|
|
188
|
+
for (const wrappedTarget of slowestTargets){
|
|
185
189
|
if (wrappedTarget.target.hidden) {
|
|
186
190
|
continue;
|
|
187
191
|
}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
2
|
import EventEmitter from "events";
|
|
4
3
|
import type { LogEntry, Reporter } from "@lage-run/logger";
|
|
5
4
|
import type { SchedulerRunSummary } from "@lage-run/scheduler-types";
|
|
6
5
|
export declare class ProgressReporter implements Reporter {
|
|
7
|
-
timer: NodeJS.Timeout;
|
|
8
6
|
startTime: [number, number];
|
|
9
7
|
logEvent: EventEmitter;
|
|
10
8
|
logEntries: Map<string, LogEntry<import("@lage-run/logger").LogStructuredData>[]>;
|
|
11
9
|
constructor(options?: {
|
|
12
10
|
concurrency: number;
|
|
13
11
|
});
|
|
14
|
-
heartBeat: () => void;
|
|
15
12
|
log(entry: LogEntry<any>): void;
|
|
16
13
|
summarize(schedulerRunSummary: SchedulerRunSummary): void;
|
|
17
14
|
}
|
package/lib/ProgressReporter.js
CHANGED
|
@@ -70,7 +70,7 @@ class ProgressReporter {
|
|
|
70
70
|
if (entry.data && entry.data.schedulerRun) {
|
|
71
71
|
this.startTime = entry.data.schedulerRun.startTime;
|
|
72
72
|
}
|
|
73
|
-
if (entry.data && entry.data.
|
|
73
|
+
if (entry.data && entry.data.status) {
|
|
74
74
|
this.logEvent.emit("status", entry);
|
|
75
75
|
}
|
|
76
76
|
if (entry.data && entry.data.progress) {
|
|
@@ -82,7 +82,6 @@ class ProgressReporter {
|
|
|
82
82
|
schedulerRunSummary,
|
|
83
83
|
logEntries: this.logEntries
|
|
84
84
|
});
|
|
85
|
-
clearTimeout(this.timer);
|
|
86
85
|
}
|
|
87
86
|
constructor(options = {
|
|
88
87
|
concurrency: 0
|
|
@@ -93,16 +92,9 @@ class ProgressReporter {
|
|
|
93
92
|
];
|
|
94
93
|
this.logEvent = new _events.default();
|
|
95
94
|
this.logEntries = new Map();
|
|
96
|
-
this.heartBeat = ()=>{
|
|
97
|
-
this.logEvent.emit("heartbeat", {
|
|
98
|
-
currentTime: process.hrtime(this.startTime)
|
|
99
|
-
});
|
|
100
|
-
this.timer = setTimeout(this.heartBeat, 1000);
|
|
101
|
-
};
|
|
102
95
|
(0, _ink.render)(/*#__PURE__*/ _react.createElement(_progressReporterApp.ProgressReporterApp, {
|
|
103
96
|
logEvent: this.logEvent,
|
|
104
97
|
concurrency: options.concurrency
|
|
105
98
|
}));
|
|
106
|
-
this.timer = setTimeout(this.heartBeat, 1000);
|
|
107
99
|
}
|
|
108
100
|
}
|
|
@@ -50,14 +50,8 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
50
50
|
}
|
|
51
51
|
return newObj;
|
|
52
52
|
}
|
|
53
|
-
function range(len) {
|
|
54
|
-
return Array(len).fill(0).map((_, idx)=>idx + 1);
|
|
55
|
-
}
|
|
56
53
|
function ProgressReporterApp(props) {
|
|
57
|
-
const initialThreadInfo =
|
|
58
|
-
acc[threadId] = "";
|
|
59
|
-
return acc;
|
|
60
|
-
}, {});
|
|
54
|
+
const initialThreadInfo = new Set();
|
|
61
55
|
const [threadInfo, setThreadInfo] = _react.useState(initialThreadInfo);
|
|
62
56
|
const [progress, setProgress] = _react.useState({
|
|
63
57
|
waiting: 0,
|
|
@@ -65,26 +59,17 @@ function ProgressReporterApp(props) {
|
|
|
65
59
|
total: 0
|
|
66
60
|
});
|
|
67
61
|
const [summary, setSummary] = _react.useState();
|
|
68
|
-
const [currentTime, setCurrentTime] = _react.useState([
|
|
69
|
-
0,
|
|
70
|
-
0
|
|
71
|
-
]);
|
|
72
62
|
const { logEvent } = props;
|
|
73
63
|
_react.useEffect(()=>{
|
|
74
64
|
logEvent.on("status", (entry)=>{
|
|
75
65
|
const { target , threadId , status } = entry.data;
|
|
76
|
-
if (status
|
|
77
|
-
setThreadInfo((threadInfo)=>(
|
|
78
|
-
...threadInfo,
|
|
79
|
-
[threadId]: target.id
|
|
80
|
-
}));
|
|
66
|
+
if (status === "running") {
|
|
67
|
+
setThreadInfo((threadInfo)=>new Set(threadInfo).add(target.id));
|
|
81
68
|
} else if (status === "success" || status === "aborted" || status === "failed" || status === "skipped") {
|
|
82
69
|
setThreadInfo((threadInfo)=>{
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
newThreadInfo[threadId] = "";
|
|
87
|
-
return newThreadInfo;
|
|
70
|
+
const newSet = new Set(threadInfo);
|
|
71
|
+
newSet.delete(target.id);
|
|
72
|
+
return newSet;
|
|
88
73
|
});
|
|
89
74
|
}
|
|
90
75
|
});
|
|
@@ -94,39 +79,27 @@ function ProgressReporterApp(props) {
|
|
|
94
79
|
logEvent.on("summary", (summary)=>{
|
|
95
80
|
setSummary(summary);
|
|
96
81
|
});
|
|
97
|
-
logEvent.on("heartbeat", (heartbeat)=>{
|
|
98
|
-
setCurrentTime(heartbeat.currentTime);
|
|
99
|
-
});
|
|
100
82
|
}, [
|
|
101
83
|
logEvent
|
|
102
84
|
]);
|
|
103
|
-
const
|
|
104
|
-
const
|
|
85
|
+
const limit = 16;
|
|
86
|
+
const hasMore = threadInfo.size > limit;
|
|
105
87
|
return /*#__PURE__*/ _react.createElement(_ink.Box, {
|
|
106
88
|
flexDirection: "column"
|
|
107
89
|
}, /*#__PURE__*/ _react.createElement(_ink.Text, null, "Lage running tasks with ", props.concurrency, " workers"), summary ? /*#__PURE__*/ _react.createElement(_summaryInfo.SummaryInfo, {
|
|
108
90
|
summary: summary
|
|
109
91
|
}) : /*#__PURE__*/ _react.createElement(_ink.Box, {
|
|
110
92
|
flexDirection: "column"
|
|
111
|
-
}, /*#__PURE__*/ _react.createElement(
|
|
93
|
+
}, /*#__PURE__*/ _react.createElement(_progressStatus.ProgressStatus, {
|
|
94
|
+
progress: progress
|
|
95
|
+
}), /*#__PURE__*/ _react.createElement(_ink.Box, {
|
|
112
96
|
flexDirection: "column",
|
|
113
97
|
marginLeft: 2,
|
|
114
98
|
marginY: 1
|
|
115
|
-
},
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
99
|
+
}, [
|
|
100
|
+
...threadInfo
|
|
101
|
+
].slice(Math.max(0, threadInfo.size - limit)).map((targetId)=>/*#__PURE__*/ _react.createElement(_threadItem.ThreadItem, {
|
|
102
|
+
key: targetId,
|
|
119
103
|
targetId: targetId
|
|
120
|
-
});
|
|
121
|
-
}), idleWorkerDummyThreadInfo.map((_, index)=>{
|
|
122
|
-
return /*#__PURE__*/ _react.createElement(_react.Fragment, {
|
|
123
|
-
key: `idle-${index}`
|
|
124
|
-
}, /*#__PURE__*/ _react.createElement(_threadItem.ThreadItem, {
|
|
125
|
-
threadId: "?",
|
|
126
|
-
targetId: ""
|
|
127
|
-
}));
|
|
128
|
-
})), /*#__PURE__*/ _react.createElement(_progressStatus.ProgressStatus, {
|
|
129
|
-
progress: progress,
|
|
130
|
-
currentTime: currentTime
|
|
131
|
-
})));
|
|
104
|
+
})), hasMore && /*#__PURE__*/ _react.createElement(_ink.Text, null, "... (displaying most recent ", limit, ")"))));
|
|
132
105
|
}
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "ProgressStatus", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: ()=>ProgressStatus
|
|
8
8
|
});
|
|
9
|
-
const _formatHrtime = require("@lage-run/format-hrtime");
|
|
10
9
|
const _ink = require("ink");
|
|
11
10
|
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
12
11
|
function _getRequireWildcardCache(nodeInterop) {
|
|
@@ -51,6 +50,6 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
51
50
|
function ProgressStatus(props) {
|
|
52
51
|
const { waiting , completed , total } = props.progress;
|
|
53
52
|
const percentage = total > 0 ? `${(completed / total * 100).toFixed(2)}%` : "0%";
|
|
54
|
-
const status = `Waiting: ${waiting} | Completed: ${completed} | Total: ${total} | ${percentage}
|
|
53
|
+
const status = `Waiting: ${waiting} | Completed: ${completed} | Total: ${total} | ${percentage}`;
|
|
55
54
|
return /*#__PURE__*/ _react.createElement(_ink.Box, null, /*#__PURE__*/ _react.createElement(_ink.Text, null, status));
|
|
56
55
|
}
|
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "SummaryInfo", {
|
|
|
9
9
|
const _formatHrtime = require("@lage-run/format-hrtime");
|
|
10
10
|
const _ink = require("ink");
|
|
11
11
|
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
12
|
+
const _slowestTargetRuns = require("../slowestTargetRuns");
|
|
12
13
|
const _errorMessages = require("./ErrorMessages");
|
|
13
14
|
function _getRequireWildcardCache(nodeInterop) {
|
|
14
15
|
if (typeof WeakMap !== "function") return null;
|
|
@@ -53,9 +54,9 @@ function SummaryInfo(props) {
|
|
|
53
54
|
const { summary } = props;
|
|
54
55
|
const { schedulerRunSummary , logEntries } = summary;
|
|
55
56
|
const { targetRunByStatus , targetRuns , duration } = schedulerRunSummary;
|
|
56
|
-
const
|
|
57
|
+
const slowestTargets = (0, _slowestTargetRuns.slowestTargetRuns)([
|
|
57
58
|
...targetRuns.values()
|
|
58
|
-
]
|
|
59
|
+
]);
|
|
59
60
|
const { failed , aborted , skipped , success , pending } = targetRunByStatus;
|
|
60
61
|
const errors = failed && failed.length > 0 ? new Map(failed.map((targetId)=>[
|
|
61
62
|
targetId,
|
|
@@ -71,7 +72,7 @@ function SummaryInfo(props) {
|
|
|
71
72
|
flexDirection: "column",
|
|
72
73
|
marginLeft: 2,
|
|
73
74
|
marginY: 1
|
|
74
|
-
},
|
|
75
|
+
}, slowestTargets.slice(0, 10).filter((run)=>!run.target.hidden).map((targetRun)=>/*#__PURE__*/ _react.createElement(_ink.Text, {
|
|
75
76
|
key: targetRun.target.id
|
|
76
77
|
}, targetRun.target.id, " - ", (0, _formatHrtime.formatDuration)((0, _formatHrtime.hrToSeconds)(targetRun.duration))))), errors.size > 0 ? /*#__PURE__*/ _react.createElement(_errorMessages.ErrorMessages, {
|
|
77
78
|
errors: errors
|
|
@@ -48,12 +48,10 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
48
48
|
return newObj;
|
|
49
49
|
}
|
|
50
50
|
function ThreadItem(props) {
|
|
51
|
-
const { targetId
|
|
52
|
-
return
|
|
53
|
-
width: "2"
|
|
54
|
-
}, /*#__PURE__*/ _react.createElement(_ink.Text, null, threadId)), targetId ? /*#__PURE__*/ _react.createElement(_ink.Text, {
|
|
51
|
+
const { targetId } = props;
|
|
52
|
+
return targetId ? /*#__PURE__*/ _react.createElement(_ink.Text, {
|
|
55
53
|
color: "whiteBright"
|
|
56
54
|
}, targetId, " ") : /*#__PURE__*/ _react.createElement(_ink.Text, {
|
|
57
55
|
color: "gray"
|
|
58
|
-
}, "IDLE")
|
|
56
|
+
}, "IDLE");
|
|
59
57
|
}
|
package/lib/createReporter.js
CHANGED
|
@@ -23,6 +23,11 @@ function createReporter({ reporter ="npmLog" , progress =false , grouped =false
|
|
|
23
23
|
grouped,
|
|
24
24
|
logLevel: verbose ? _logger.LogLevel.verbose : logLevel
|
|
25
25
|
});
|
|
26
|
+
case "old":
|
|
27
|
+
return new _logReporterJs.LogReporter({
|
|
28
|
+
grouped,
|
|
29
|
+
logLevel: verbose ? _logger.LogLevel.verbose : logLevel
|
|
30
|
+
});
|
|
26
31
|
default:
|
|
27
32
|
return progress ? new _progressReporterJs.ProgressReporter({
|
|
28
33
|
concurrency
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "slowestTargetRuns", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>slowestTargetRuns
|
|
8
|
+
});
|
|
9
|
+
const _formatHrtime = require("@lage-run/format-hrtime");
|
|
10
|
+
function slowestTargetRuns(targetRuns) {
|
|
11
|
+
return targetRuns.sort((a, b)=>parseFloat((0, _formatHrtime.hrToSeconds)((0, _formatHrtime.hrtimeDiff)(a.duration, b.duration)))).filter((run)=>run.status !== "skipped" && !run.target.hidden);
|
|
12
|
+
}
|
|
@@ -5,9 +5,7 @@ export interface Progress {
|
|
|
5
5
|
completed: number;
|
|
6
6
|
total: number;
|
|
7
7
|
}
|
|
8
|
-
export
|
|
9
|
-
[threadId: string]: string;
|
|
10
|
-
}
|
|
8
|
+
export type ThreadInfo = Set<string>;
|
|
11
9
|
export interface SummaryWithLogs {
|
|
12
10
|
schedulerRunSummary: SchedulerRunSummary;
|
|
13
11
|
logEntries: Map<string, LogEntry[]>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lage-run/reporters",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Log reporters for Lage",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/microsoft/lage"
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@lage-run/logger": "^1.2.2",
|
|
19
|
-
"@lage-run/scheduler-types": "^0.
|
|
19
|
+
"@lage-run/scheduler-types": "^0.3.0",
|
|
20
20
|
"@lage-run/target-graph": "^0.6.1",
|
|
21
|
-
"@lage-run/format-hrtime": "^0.1.
|
|
21
|
+
"@lage-run/format-hrtime": "^0.1.4",
|
|
22
22
|
"chalk": "^4.0.0",
|
|
23
23
|
"ansi-regex": "^5.0.1",
|
|
24
24
|
"gradient-string": "^2.0.1",
|