@64mb/freelens-power 1.2.2 → 1.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/README.md +3 -1
- package/out/main/common/store/monitoring-preferences-store.js +5 -0
- package/out/main/common/store/monitoring-preferences-store.js.map +1 -1
- package/out/renderer/ai-diagnostic-handoff.js +52 -0
- package/out/renderer/ai-diagnostic-handoff.js.map +1 -0
- package/out/renderer/ai-extras.js +40 -4
- package/out/renderer/ai-extras.js.map +1 -1
- package/out/renderer/ai.js +48 -56
- package/out/renderer/ai.js.map +1 -1
- package/out/renderer/details/hpa-diagnostics-details.js +46 -0
- package/out/renderer/details/hpa-diagnostics-details.js.map +1 -0
- package/out/renderer/details/namespace-health-details.js +91 -0
- package/out/renderer/details/namespace-health-details.js.map +1 -0
- package/out/renderer/details/resource-health-details.js +131 -0
- package/out/renderer/details/resource-health-details.js.map +1 -0
- package/out/renderer/details/service-diagnostics-details.js +163 -0
- package/out/renderer/details/service-diagnostics-details.js.map +1 -0
- package/out/renderer/diagnostic-explain-button.js +16 -0
- package/out/renderer/diagnostic-explain-button.js.map +1 -0
- package/out/renderer/diagnostics-state.js +51 -0
- package/out/renderer/diagnostics-state.js.map +1 -0
- package/out/renderer/diagnostics.css.js +9 -0
- package/out/renderer/diagnostics.css.js.map +1 -1
- package/out/renderer/diagnostics.js +369 -73
- package/out/renderer/diagnostics.js.map +1 -1
- package/out/renderer/incident-copy-button.js +50 -0
- package/out/renderer/incident-copy-button.js.map +1 -0
- package/out/renderer/index.js +91 -19
- package/out/renderer/index.js.map +1 -1
- package/out/renderer/monitoring-history-collection.js +1 -1
- package/out/renderer/preferences/monitoring-preferences.js +10 -0
- package/out/renderer/preferences/monitoring-preferences.js.map +1 -1
- package/out/renderer/preferences/preferences.js +88 -0
- package/out/renderer/preferences/preferences.js.map +1 -1
- package/out/renderer/resource-relationships.css.js +7 -0
- package/out/renderer/resource-relationships.css.js.map +1 -0
- package/out/renderer/resource-relationships.js +556 -0
- package/out/renderer/resource-relationships.js.map +1 -0
- package/out/renderer/resource-search-distance.js +24 -0
- package/out/renderer/resource-search-distance.js.map +1 -0
- package/out/renderer/resource-search-fields.js +55 -0
- package/out/renderer/resource-search-fields.js.map +1 -0
- package/out/renderer/resource-search-model.js +193 -0
- package/out/renderer/resource-search-model.js.map +1 -0
- package/out/renderer/resource-search.js +365 -0
- package/out/renderer/resource-search.js.map +1 -0
- package/out/renderer/src/common/hpa-diagnostics.js +24 -0
- package/out/renderer/src/common/hpa-diagnostics.js.map +1 -0
- package/out/renderer/src/common/incident-summary.js +73 -0
- package/out/renderer/src/common/incident-summary.js.map +1 -0
- package/out/renderer/src/common/resource-health.js +92 -0
- package/out/renderer/src/common/resource-health.js.map +1 -0
- package/out/renderer/src/common/resource-relationships.js +155 -0
- package/out/renderer/src/common/resource-relationships.js.map +1 -0
- package/out/renderer/src/common/service-diagnostics.js +50 -0
- package/out/renderer/src/common/service-diagnostics.js.map +1 -0
- package/out/renderer/src/common/store/monitoring-preferences-store.js +5 -0
- package/out/renderer/src/common/store/monitoring-preferences-store.js.map +1 -1
- package/out/renderer/src/common/timeline-groups.js +36 -0
- package/out/renderer/src/common/timeline-groups.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//#region src/common/timeline-groups.ts
|
|
2
|
+
function groupTimelineEntries(entries, identity, resource) {
|
|
3
|
+
const groups = /* @__PURE__ */ new Map();
|
|
4
|
+
for (const entry of entries) {
|
|
5
|
+
const key = JSON.stringify([
|
|
6
|
+
entry.reason,
|
|
7
|
+
identity(entry),
|
|
8
|
+
entry.message.trim().replace(/\s+/g, " ")
|
|
9
|
+
]);
|
|
10
|
+
let group = groups.get(key);
|
|
11
|
+
if (!group) {
|
|
12
|
+
group = {
|
|
13
|
+
key,
|
|
14
|
+
latest: entry,
|
|
15
|
+
entries: [],
|
|
16
|
+
affected: [],
|
|
17
|
+
count: 0
|
|
18
|
+
};
|
|
19
|
+
groups.set(key, group);
|
|
20
|
+
}
|
|
21
|
+
group.entries.push(entry);
|
|
22
|
+
const name = resource(entry);
|
|
23
|
+
if (!group.affected.includes(name)) group.affected.push(name);
|
|
24
|
+
if ((Date.parse(entry.time ?? "") || 0) > (Date.parse(group.latest.time ?? "") || 0)) group.latest = entry;
|
|
25
|
+
}
|
|
26
|
+
for (const group of groups.values()) {
|
|
27
|
+
const counts = /* @__PURE__ */ new Map();
|
|
28
|
+
for (const entry of group.entries) counts.set(entry.id, Math.max(counts.get(entry.id) ?? 0, entry.count));
|
|
29
|
+
group.count = [...counts.values()].reduce((total, count) => total + count, 0);
|
|
30
|
+
}
|
|
31
|
+
return [...groups.values()].sort((a, b) => (Date.parse(b.latest.time ?? "") || 0) - (Date.parse(a.latest.time ?? "") || 0));
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
exports.groupTimelineEntries = groupTimelineEntries;
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=timeline-groups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-groups.js","names":[],"sources":["../../../../src/common/timeline-groups.ts"],"sourcesContent":["import type { TimelineEntry } from \"./resource-diagnostics\";\n\nexport interface TimelineGroup {\n key: string;\n latest: TimelineEntry;\n entries: TimelineEntry[];\n affected: string[];\n count: number;\n}\n\nexport function groupTimelineEntries(\n entries: TimelineEntry[],\n identity: (entry: TimelineEntry) => string,\n resource: (entry: TimelineEntry) => string,\n): TimelineGroup[] {\n const groups = new Map<string, TimelineGroup>();\n for (const entry of entries) {\n const key = JSON.stringify([entry.reason, identity(entry), entry.message.trim().replace(/\\s+/g, \" \")]);\n let group = groups.get(key);\n if (!group) {\n group = { key, latest: entry, entries: [], affected: [], count: 0 };\n groups.set(key, group);\n }\n group.entries.push(entry);\n const name = resource(entry);\n if (!group.affected.includes(name)) group.affected.push(name);\n if ((Date.parse(entry.time ?? \"\") || 0) > (Date.parse(group.latest.time ?? \"\") || 0)) group.latest = entry;\n }\n for (const group of groups.values()) {\n // each event identity reports a cumulative count, so repeated snapshots use its maximum\n const counts = new Map<string, number>();\n for (const entry of group.entries) counts.set(entry.id, Math.max(counts.get(entry.id) ?? 0, entry.count));\n group.count = [...counts.values()].reduce((total, count) => total + count, 0);\n }\n return [...groups.values()].sort(\n (a, b) => (Date.parse(b.latest.time ?? \"\") || 0) - (Date.parse(a.latest.time ?? \"\") || 0),\n );\n}\n"],"mappings":";AAUA,SAAgB,qBACd,SACA,UACA,UACiB;CACjB,MAAM,yBAAS,IAAI,IAA2B;CAC9C,KAAK,MAAM,SAAS,SAAS;EAC3B,MAAM,MAAM,KAAK,UAAU;GAAC,MAAM;GAAQ,SAAS,KAAK;GAAG,MAAM,QAAQ,KAAK,CAAC,CAAC,QAAQ,QAAQ,GAAG;EAAC,CAAC;EACrG,IAAI,QAAQ,OAAO,IAAI,GAAG;EAC1B,IAAI,CAAC,OAAO;GACV,QAAQ;IAAE;IAAK,QAAQ;IAAO,SAAS,CAAC;IAAG,UAAU,CAAC;IAAG,OAAO;GAAE;GAClE,OAAO,IAAI,KAAK,KAAK;EACvB;EACA,MAAM,QAAQ,KAAK,KAAK;EACxB,MAAM,OAAO,SAAS,KAAK;EAC3B,IAAI,CAAC,MAAM,SAAS,SAAS,IAAI,GAAG,MAAM,SAAS,KAAK,IAAI;EAC5D,KAAK,KAAK,MAAM,MAAM,QAAQ,EAAE,KAAK,MAAM,KAAK,MAAM,MAAM,OAAO,QAAQ,EAAE,KAAK,IAAI,MAAM,SAAS;CACvG;CACA,KAAK,MAAM,SAAS,OAAO,OAAO,GAAG;EAEnC,MAAM,yBAAS,IAAI,IAAoB;EACvC,KAAK,MAAM,SAAS,MAAM,SAAS,OAAO,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,IAAI,MAAM,EAAE,KAAK,GAAG,MAAM,KAAK,CAAC;EACxG,MAAM,QAAQ,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,OAAO,UAAU,QAAQ,OAAO,CAAC;CAC9E;CACA,OAAO,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,CAAC,MACzB,GAAG,OAAO,KAAK,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,KAAK,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,EACzF;AACF"}
|