@localstack/appinspector-ui 1.0.114 → 1.0.115
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/index.cjs +753 -666
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +703 -616
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2413,7 +2413,7 @@ var init_event_streams = __esm({
|
|
|
2413
2413
|
});
|
|
2414
2414
|
|
|
2415
2415
|
// src/pages/spans-list-page.tsx
|
|
2416
|
-
import { Box as
|
|
2416
|
+
import { Box as Box21 } from "@mui/material";
|
|
2417
2417
|
import { useCallback as useCallback12, useState as useState18 } from "react";
|
|
2418
2418
|
|
|
2419
2419
|
// src/api/errors.ts
|
|
@@ -2572,12 +2572,12 @@ var EmulatorVersionBanner = ({
|
|
|
2572
2572
|
};
|
|
2573
2573
|
|
|
2574
2574
|
// src/components/spans-list/spans-list.tsx
|
|
2575
|
-
import { Alert as Alert2, Box as
|
|
2575
|
+
import { Alert as Alert2, Box as Box6, Button as Button3 } from "@mui/material";
|
|
2576
2576
|
|
|
2577
2577
|
// src/components/spans-list/spans-data-grid.tsx
|
|
2578
2578
|
import { DeleteForeverOutlined, PauseOutlined, PlayArrowOutlined } from "@mui/icons-material";
|
|
2579
2579
|
import {
|
|
2580
|
-
Box as
|
|
2580
|
+
Box as Box5,
|
|
2581
2581
|
Button as Button2,
|
|
2582
2582
|
CircularProgress,
|
|
2583
2583
|
FormControlLabel,
|
|
@@ -2590,8 +2590,8 @@ import {
|
|
|
2590
2590
|
TableHead,
|
|
2591
2591
|
TableRow,
|
|
2592
2592
|
TableSortLabel,
|
|
2593
|
-
Tooltip as
|
|
2594
|
-
Typography as
|
|
2593
|
+
Tooltip as Tooltip4,
|
|
2594
|
+
Typography as Typography4,
|
|
2595
2595
|
useTheme as useTheme2
|
|
2596
2596
|
} from "@mui/material";
|
|
2597
2597
|
|
|
@@ -14881,11 +14881,182 @@ var ServiceCell = memo7(({
|
|
|
14881
14881
|
});
|
|
14882
14882
|
ServiceCell.displayName = "ServiceCell";
|
|
14883
14883
|
|
|
14884
|
+
// src/components/cells/status-cell.tsx
|
|
14885
|
+
import { Cancel, Error as Error2, GppBad } from "@mui/icons-material";
|
|
14886
|
+
import { Box as Box3, Divider as Divider2, Tooltip as Tooltip2, Typography as Typography2 } from "@mui/material";
|
|
14887
|
+
|
|
14888
|
+
// src/types/error-levels.ts
|
|
14889
|
+
var ErrorLevel = {
|
|
14890
|
+
ERROR: 3,
|
|
14891
|
+
// General error
|
|
14892
|
+
IAM_PERMISSION: 5,
|
|
14893
|
+
// IAM permission issues
|
|
14894
|
+
OK: 2,
|
|
14895
|
+
// OK
|
|
14896
|
+
// Standard OTEL status codes
|
|
14897
|
+
UNSET: 1,
|
|
14898
|
+
// Unset
|
|
14899
|
+
// Extended custom levels
|
|
14900
|
+
WARNING: 4
|
|
14901
|
+
// Warning
|
|
14902
|
+
};
|
|
14903
|
+
|
|
14904
|
+
// src/utils/iam-utils.ts
|
|
14905
|
+
function determinePermissionStatus(payload) {
|
|
14906
|
+
if (payload.explicit_deny_count && payload.explicit_deny_count > 0) {
|
|
14907
|
+
return "explicitly_denied";
|
|
14908
|
+
}
|
|
14909
|
+
if (payload.is_allowed && payload.explicit_allow_count && payload.explicit_allow_count > 0) {
|
|
14910
|
+
return "explicitly_allowed";
|
|
14911
|
+
}
|
|
14912
|
+
if (payload.is_allowed) {
|
|
14913
|
+
return "implicitly_allowed";
|
|
14914
|
+
}
|
|
14915
|
+
return "implicitly_denied";
|
|
14916
|
+
}
|
|
14917
|
+
function formatPermissionStatus(status) {
|
|
14918
|
+
switch (status) {
|
|
14919
|
+
case "explicitly_allowed": {
|
|
14920
|
+
return "Explicitly Allowed";
|
|
14921
|
+
}
|
|
14922
|
+
case "explicitly_denied": {
|
|
14923
|
+
return "Explicitly Denied";
|
|
14924
|
+
}
|
|
14925
|
+
case "implicitly_allowed": {
|
|
14926
|
+
return "Implicitly Allowed";
|
|
14927
|
+
}
|
|
14928
|
+
case "implicitly_denied": {
|
|
14929
|
+
return "Implicitly Denied";
|
|
14930
|
+
}
|
|
14931
|
+
}
|
|
14932
|
+
}
|
|
14933
|
+
function getPermissionStatusColor(status) {
|
|
14934
|
+
switch (status) {
|
|
14935
|
+
case "explicitly_allowed":
|
|
14936
|
+
case "implicitly_allowed": {
|
|
14937
|
+
return "success.main";
|
|
14938
|
+
}
|
|
14939
|
+
case "explicitly_denied": {
|
|
14940
|
+
return "error.main";
|
|
14941
|
+
}
|
|
14942
|
+
case "implicitly_denied": {
|
|
14943
|
+
return "warning.main";
|
|
14944
|
+
}
|
|
14945
|
+
}
|
|
14946
|
+
}
|
|
14947
|
+
function parseIAMEvent(payloadString) {
|
|
14948
|
+
try {
|
|
14949
|
+
const payload = JSON.parse(payloadString);
|
|
14950
|
+
const permission = determinePermissionStatus(payload);
|
|
14951
|
+
const actions = [];
|
|
14952
|
+
const resources = [];
|
|
14953
|
+
if (payload.explicit_allows) {
|
|
14954
|
+
for (const allow of payload.explicit_allows) {
|
|
14955
|
+
if (!actions.includes(allow.action)) actions.push(allow.action);
|
|
14956
|
+
if (!resources.includes(allow.resource)) resources.push(allow.resource);
|
|
14957
|
+
}
|
|
14958
|
+
}
|
|
14959
|
+
if (payload.explicit_denies) {
|
|
14960
|
+
for (const deny of payload.explicit_denies) {
|
|
14961
|
+
if (!actions.includes(deny.action)) actions.push(deny.action);
|
|
14962
|
+
if (!resources.includes(deny.resource)) resources.push(deny.resource);
|
|
14963
|
+
}
|
|
14964
|
+
}
|
|
14965
|
+
if (payload.implicit_denies) {
|
|
14966
|
+
for (const deny of payload.implicit_denies) {
|
|
14967
|
+
if (!actions.includes(deny.action)) actions.push(deny.action);
|
|
14968
|
+
if (!resources.includes(deny.resource)) resources.push(deny.resource);
|
|
14969
|
+
}
|
|
14970
|
+
}
|
|
14971
|
+
return {
|
|
14972
|
+
details: {
|
|
14973
|
+
actions,
|
|
14974
|
+
explicitAllows: payload.explicit_allow_count,
|
|
14975
|
+
explicitDenies: payload.explicit_deny_count,
|
|
14976
|
+
implicitDenies: payload.implicit_deny_count,
|
|
14977
|
+
resources
|
|
14978
|
+
},
|
|
14979
|
+
operation: payload.operation,
|
|
14980
|
+
permission,
|
|
14981
|
+
principal: payload.principal_arn,
|
|
14982
|
+
service: payload.service
|
|
14983
|
+
};
|
|
14984
|
+
} catch (error) {
|
|
14985
|
+
console.error("Error parsing IAM event payload:", error);
|
|
14986
|
+
return void 0;
|
|
14987
|
+
}
|
|
14988
|
+
}
|
|
14989
|
+
|
|
14990
|
+
// src/components/cells/status-cell.tsx
|
|
14991
|
+
import { Fragment as Fragment4, jsx as jsx126, jsxs as jsxs120 } from "react/jsx-runtime";
|
|
14992
|
+
var StatusIcon = ({ errorLevel, spanStatusCode }) => {
|
|
14993
|
+
switch (errorLevel) {
|
|
14994
|
+
case ErrorLevel.ERROR: {
|
|
14995
|
+
return /* @__PURE__ */ jsx126(Cancel, { sx: { color: "red" } });
|
|
14996
|
+
}
|
|
14997
|
+
case ErrorLevel.IAM_PERMISSION: {
|
|
14998
|
+
return /* @__PURE__ */ jsx126(GppBad, { sx: { color: spanStatusCode === 2 ? "red" : "warning.main" } });
|
|
14999
|
+
}
|
|
15000
|
+
case ErrorLevel.WARNING: {
|
|
15001
|
+
return /* @__PURE__ */ jsx126(Error2, { sx: { color: "orange" } });
|
|
15002
|
+
}
|
|
15003
|
+
default: {
|
|
15004
|
+
return /* @__PURE__ */ jsx126(Fragment4, {});
|
|
15005
|
+
}
|
|
15006
|
+
}
|
|
15007
|
+
};
|
|
15008
|
+
var calculateHighestErrorLevel = (span) => {
|
|
15009
|
+
const hasIamDenial = span.events.some((event) => {
|
|
15010
|
+
if (!event.event_type?.toLowerCase().includes("iam")) return false;
|
|
15011
|
+
if (typeof event.attributes?.payload !== "string") return false;
|
|
15012
|
+
const parsed = parseIAMEvent(event.attributes.payload);
|
|
15013
|
+
return parsed?.permission === "explicitly_denied" || parsed?.permission === "implicitly_denied";
|
|
15014
|
+
});
|
|
15015
|
+
if (hasIamDenial) return ErrorLevel.IAM_PERMISSION;
|
|
15016
|
+
if (span.status_code === 2) return ErrorLevel.ERROR;
|
|
15017
|
+
const hasErrorInErrors = span.errors?.some((error) => error.level === "error");
|
|
15018
|
+
if (hasErrorInErrors) return ErrorLevel.ERROR;
|
|
15019
|
+
const hasWarning = span.errors?.some((error) => error.level === "warning");
|
|
15020
|
+
if (hasWarning) return ErrorLevel.WARNING;
|
|
15021
|
+
return span.status_code || ErrorLevel.UNSET;
|
|
15022
|
+
};
|
|
15023
|
+
var SPAN_STATUS_LABELS = {
|
|
15024
|
+
0: "Unset",
|
|
15025
|
+
1: "OK",
|
|
15026
|
+
2: "Error"
|
|
15027
|
+
};
|
|
15028
|
+
var buildTooltipContent = (span) => {
|
|
15029
|
+
const messages = [];
|
|
15030
|
+
if (span.status_message) messages.push(span.status_message);
|
|
15031
|
+
for (const error of span.errors ?? []) {
|
|
15032
|
+
if (error.message) messages.push(error.message);
|
|
15033
|
+
}
|
|
15034
|
+
const spanStatusLabel = SPAN_STATUS_LABELS[span.status_code] ?? `Unknown (${span.status_code.toString()})`;
|
|
15035
|
+
const iamDenials = span.events.filter((event) => event.event_type?.toLowerCase().includes("iam") && typeof event.attributes?.payload === "string").map((event) => parseIAMEvent(event.attributes.payload)).filter((parsed) => parsed?.permission === "explicitly_denied" || parsed?.permission === "implicitly_denied").filter(Boolean);
|
|
15036
|
+
return /* @__PURE__ */ jsxs120(Box3, { children: [
|
|
15037
|
+
/* @__PURE__ */ jsxs120(Typography2, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: [
|
|
15038
|
+
"Status: ",
|
|
15039
|
+
spanStatusLabel
|
|
15040
|
+
] }),
|
|
15041
|
+
messages.map((message, index) => /* @__PURE__ */ jsx126(Typography2, { color: "inherit", display: "block", variant: "caption", children: message }, index)),
|
|
15042
|
+
iamDenials.length > 0 && /* @__PURE__ */ jsxs120(Fragment4, { children: [
|
|
15043
|
+
/* @__PURE__ */ jsx126(Divider2, { sx: { borderColor: "rgba(255,255,255,0.2)", my: 0.5 } }),
|
|
15044
|
+
/* @__PURE__ */ jsx126(Typography2, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: "Permissions" }),
|
|
15045
|
+
iamDenials.map((denial, index) => denial !== void 0 && /* @__PURE__ */ jsx126(Typography2, { color: "inherit", display: "block", variant: "caption", children: `${formatPermissionStatus(denial.permission)}: ${denial.service}.${denial.operation}` }, index))
|
|
15046
|
+
] })
|
|
15047
|
+
] });
|
|
15048
|
+
};
|
|
15049
|
+
var StatusIconWithTooltip = ({ span }) => {
|
|
15050
|
+
const errorLevel = calculateHighestErrorLevel(span);
|
|
15051
|
+
if (errorLevel !== ErrorLevel.ERROR && errorLevel !== ErrorLevel.IAM_PERMISSION) return /* @__PURE__ */ jsx126(Fragment4, {});
|
|
15052
|
+
return /* @__PURE__ */ jsx126(Tooltip2, { title: buildTooltipContent(span), children: /* @__PURE__ */ jsx126(Box3, { sx: { alignItems: "center", cursor: "default", display: "flex" }, children: /* @__PURE__ */ jsx126(StatusIcon, { errorLevel, spanStatusCode: span.status_code }) }) });
|
|
15053
|
+
};
|
|
15054
|
+
|
|
14884
15055
|
// src/components/spans-list/span-count-badge.tsx
|
|
14885
15056
|
import { InfoOutlined, WarningAmberOutlined } from "@mui/icons-material";
|
|
14886
|
-
import { Box as
|
|
15057
|
+
import { Box as Box4, Button, Divider as Divider3, IconButton, Popover, Skeleton, Tooltip as Tooltip3, Typography as Typography3 } from "@mui/material";
|
|
14887
15058
|
import { useState as useState4 } from "react";
|
|
14888
|
-
import { Fragment as
|
|
15059
|
+
import { Fragment as Fragment5, jsx as jsx127, jsxs as jsxs121 } from "react/jsx-runtime";
|
|
14889
15060
|
var resolveBindingLimit = (systemLimit, licenseLimit) => {
|
|
14890
15061
|
const numericLimits = [systemLimit, licenseLimit].filter((l2) => typeof l2 === "number");
|
|
14891
15062
|
if (numericLimits.length > 0) return Math.min(...numericLimits);
|
|
@@ -14898,28 +15069,28 @@ var fmtLimit = (value) => {
|
|
|
14898
15069
|
if (value === "unlimited") return "Unlimited";
|
|
14899
15070
|
return fmt(value);
|
|
14900
15071
|
};
|
|
14901
|
-
var StatRow = ({ label, value }) => /* @__PURE__ */
|
|
14902
|
-
/* @__PURE__ */
|
|
14903
|
-
/* @__PURE__ */
|
|
15072
|
+
var StatRow = ({ label, value }) => /* @__PURE__ */ jsxs121(Box4, { sx: { alignItems: "baseline", display: "flex", justifyContent: "space-between", minWidth: 220 }, children: [
|
|
15073
|
+
/* @__PURE__ */ jsx127(Typography3, { color: "text.secondary", sx: { mr: 4 }, variant: "caption", children: label }),
|
|
15074
|
+
/* @__PURE__ */ jsx127(Typography3, { fontWeight: 600, variant: "body2", children: fmtLimit(value) })
|
|
14904
15075
|
] });
|
|
14905
15076
|
var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) => {
|
|
14906
15077
|
const [anchorElement, setAnchorElement] = useState4();
|
|
14907
15078
|
const bindingLimit = resolveBindingLimit(systemLimit, licenseLimit);
|
|
14908
15079
|
if (totalCount === void 0 && bindingLimit === void 0) {
|
|
14909
|
-
return /* @__PURE__ */
|
|
15080
|
+
return /* @__PURE__ */ jsx127(Fragment5, {});
|
|
14910
15081
|
}
|
|
14911
15082
|
if (visibleCount !== void 0) totalCount = Math.max(totalCount ?? 0, visibleCount);
|
|
14912
15083
|
const isLoading = totalCount === void 0;
|
|
14913
15084
|
const isOpen = anchorElement !== void 0;
|
|
14914
15085
|
const systemLimitReached = typeof systemLimit === "number" && totalCount !== void 0 && totalCount >= systemLimit;
|
|
14915
15086
|
const licenseLimitReached = typeof licenseLimit === "number" && totalCount !== void 0 && totalCount >= licenseLimit;
|
|
14916
|
-
return /* @__PURE__ */
|
|
14917
|
-
isLoading ? /* @__PURE__ */
|
|
14918
|
-
/* @__PURE__ */
|
|
14919
|
-
/* @__PURE__ */
|
|
14920
|
-
/* @__PURE__ */
|
|
15087
|
+
return /* @__PURE__ */ jsxs121(Box4, { sx: { alignItems: "center", display: "flex", gap: 0.25 }, children: [
|
|
15088
|
+
isLoading ? /* @__PURE__ */ jsx127(Skeleton, { sx: { minWidth: 120 } }) : /* @__PURE__ */ jsxs121(Box4, { sx: { alignItems: "baseline", display: "flex", gap: 0.5 }, children: [
|
|
15089
|
+
/* @__PURE__ */ jsx127(Typography3, { color: "text.secondary", variant: "caption", children: "Showing" }),
|
|
15090
|
+
/* @__PURE__ */ jsx127(Typography3, { variant: "body2", children: visibleCount === void 0 ? "\u2014" : fmt(visibleCount) }),
|
|
15091
|
+
/* @__PURE__ */ jsx127(Typography3, { color: "text.secondary", variant: "caption", children: `of ${totalCount === void 0 ? "-" : fmt(totalCount)} operations` })
|
|
14921
15092
|
] }),
|
|
14922
|
-
/* @__PURE__ */
|
|
15093
|
+
/* @__PURE__ */ jsx127(Tooltip3, { title: "Operation count details", children: /* @__PURE__ */ jsx127(
|
|
14923
15094
|
IconButton,
|
|
14924
15095
|
{
|
|
14925
15096
|
"aria-describedby": isOpen ? "operation-count-popover" : void 0,
|
|
@@ -14928,10 +15099,10 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
|
|
|
14928
15099
|
},
|
|
14929
15100
|
size: "small",
|
|
14930
15101
|
sx: { color: systemLimitReached || licenseLimitReached ? "warning.main" : "text.disabled" },
|
|
14931
|
-
children: systemLimitReached || licenseLimitReached ? /* @__PURE__ */
|
|
15102
|
+
children: systemLimitReached || licenseLimitReached ? /* @__PURE__ */ jsx127(WarningAmberOutlined, { sx: { fontSize: 14 } }) : /* @__PURE__ */ jsx127(InfoOutlined, { sx: { fontSize: 14 } })
|
|
14932
15103
|
}
|
|
14933
15104
|
) }),
|
|
14934
|
-
/* @__PURE__ */
|
|
15105
|
+
/* @__PURE__ */ jsx127(
|
|
14935
15106
|
Popover,
|
|
14936
15107
|
{
|
|
14937
15108
|
anchorEl: anchorElement,
|
|
@@ -14942,54 +15113,54 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
|
|
|
14942
15113
|
},
|
|
14943
15114
|
open: isOpen,
|
|
14944
15115
|
transformOrigin: { horizontal: "right", vertical: "top" },
|
|
14945
|
-
children: /* @__PURE__ */
|
|
14946
|
-
/* @__PURE__ */
|
|
14947
|
-
/* @__PURE__ */
|
|
14948
|
-
/* @__PURE__ */
|
|
14949
|
-
/* @__PURE__ */
|
|
15116
|
+
children: /* @__PURE__ */ jsxs121(Box4, { sx: { minWidth: 240, p: 2 }, children: [
|
|
15117
|
+
/* @__PURE__ */ jsx127(Typography3, { fontWeight: 700, variant: "body2", children: "Storage" }),
|
|
15118
|
+
/* @__PURE__ */ jsx127(Typography3, { color: "text.secondary", sx: { mt: 0.25 }, variant: "caption", children: "How many operations are currently stored." }),
|
|
15119
|
+
/* @__PURE__ */ jsxs121(Box4, { sx: { display: "flex", flexDirection: "column", gap: 0.75, mt: 1.5 }, children: [
|
|
15120
|
+
/* @__PURE__ */ jsx127(
|
|
14950
15121
|
StatRow,
|
|
14951
15122
|
{
|
|
14952
|
-
label: /* @__PURE__ */
|
|
15123
|
+
label: /* @__PURE__ */ jsx127(Tooltip3, { placement: "left", title: "The number of operations currently loaded in the UI.", children: /* @__PURE__ */ jsx127(Box4, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Currently visible" }) }),
|
|
14953
15124
|
value: visibleCount
|
|
14954
15125
|
}
|
|
14955
15126
|
),
|
|
14956
|
-
/* @__PURE__ */
|
|
15127
|
+
/* @__PURE__ */ jsx127(
|
|
14957
15128
|
StatRow,
|
|
14958
15129
|
{
|
|
14959
|
-
label: /* @__PURE__ */
|
|
15130
|
+
label: /* @__PURE__ */ jsx127(Tooltip3, { placement: "left", title: "The total number of operations stored on the server.", children: /* @__PURE__ */ jsx127(Box4, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Total stored" }) }),
|
|
14960
15131
|
value: totalCount
|
|
14961
15132
|
}
|
|
14962
15133
|
)
|
|
14963
15134
|
] }),
|
|
14964
|
-
(systemLimit !== void 0 || licenseLimit !== void 0) && /* @__PURE__ */
|
|
14965
|
-
/* @__PURE__ */
|
|
14966
|
-
/* @__PURE__ */
|
|
14967
|
-
/* @__PURE__ */
|
|
14968
|
-
/* @__PURE__ */
|
|
14969
|
-
licenseLimit !== void 0 && /* @__PURE__ */
|
|
15135
|
+
(systemLimit !== void 0 || licenseLimit !== void 0) && /* @__PURE__ */ jsxs121(Fragment5, { children: [
|
|
15136
|
+
/* @__PURE__ */ jsx127(Divider3, { sx: { my: 1.5 } }),
|
|
15137
|
+
/* @__PURE__ */ jsx127(Typography3, { color: "text.secondary", fontWeight: 600, variant: "caption", children: "Limits" }),
|
|
15138
|
+
/* @__PURE__ */ jsx127(Typography3, { color: "text.secondary", sx: { display: "block", mb: 1.5, mt: 0.25 }, variant: "caption", children: "Limits restrict the total number of operations that can be stored." }),
|
|
15139
|
+
/* @__PURE__ */ jsxs121(Box4, { sx: { display: "flex", flexDirection: "column", gap: 0.75 }, children: [
|
|
15140
|
+
licenseLimit !== void 0 && /* @__PURE__ */ jsx127(
|
|
14970
15141
|
StatRow,
|
|
14971
15142
|
{
|
|
14972
|
-
label: /* @__PURE__ */
|
|
15143
|
+
label: /* @__PURE__ */ jsx127(Tooltip3, { placement: "left", title: "The maximum number of operations allowed by your current license.", children: /* @__PURE__ */ jsx127(Box4, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "License limit" }) }),
|
|
14973
15144
|
value: licenseLimit
|
|
14974
15145
|
}
|
|
14975
15146
|
),
|
|
14976
|
-
systemLimit !== void 0 && /* @__PURE__ */
|
|
15147
|
+
systemLimit !== void 0 && /* @__PURE__ */ jsx127(
|
|
14977
15148
|
StatRow,
|
|
14978
15149
|
{
|
|
14979
|
-
label: /* @__PURE__ */
|
|
15150
|
+
label: /* @__PURE__ */ jsx127(Tooltip3, { placement: "left", title: "The maximum number of operations that can be stored in the system.", children: /* @__PURE__ */ jsx127(Box4, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "System limit" }) }),
|
|
14980
15151
|
value: systemLimit
|
|
14981
15152
|
}
|
|
14982
15153
|
)
|
|
14983
15154
|
] })
|
|
14984
15155
|
] }),
|
|
14985
|
-
(systemLimitReached || licenseLimitReached) && /* @__PURE__ */
|
|
14986
|
-
licenseLimitReached && /* @__PURE__ */
|
|
14987
|
-
/* @__PURE__ */
|
|
14988
|
-
/* @__PURE__ */
|
|
14989
|
-
/* @__PURE__ */
|
|
15156
|
+
(systemLimitReached || licenseLimitReached) && /* @__PURE__ */ jsxs121(Box4, { sx: { display: "flex", flexDirection: "column", gap: 1, mt: 1.5 }, children: [
|
|
15157
|
+
licenseLimitReached && /* @__PURE__ */ jsxs121(Box4, { sx: { backgroundColor: "warning.main", borderRadius: 1, p: 1.5 }, children: [
|
|
15158
|
+
/* @__PURE__ */ jsxs121(Box4, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75, mb: 0.75 }, children: [
|
|
15159
|
+
/* @__PURE__ */ jsx127(WarningAmberOutlined, { sx: { color: "warning.contrastText", fontSize: 14, mt: "1px" } }),
|
|
15160
|
+
/* @__PURE__ */ jsx127(Typography3, { color: "warning.contrastText", fontWeight: 600, variant: "caption", children: "License limit reached" })
|
|
14990
15161
|
] }),
|
|
14991
|
-
/* @__PURE__ */
|
|
14992
|
-
/* @__PURE__ */
|
|
15162
|
+
/* @__PURE__ */ jsx127(Typography3, { color: "warning.contrastText", sx: { display: "block", mb: 1 }, variant: "caption", children: "Newer operations are being dropped. Upgrade your license to increase the retention limit." }),
|
|
15163
|
+
/* @__PURE__ */ jsx127(
|
|
14993
15164
|
Button,
|
|
14994
15165
|
{
|
|
14995
15166
|
color: "inherit",
|
|
@@ -15002,9 +15173,9 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
|
|
|
15002
15173
|
}
|
|
15003
15174
|
)
|
|
15004
15175
|
] }),
|
|
15005
|
-
systemLimitReached && !licenseLimitReached && /* @__PURE__ */
|
|
15006
|
-
/* @__PURE__ */
|
|
15007
|
-
/* @__PURE__ */
|
|
15176
|
+
systemLimitReached && !licenseLimitReached && /* @__PURE__ */ jsxs121(Box4, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75 }, children: [
|
|
15177
|
+
/* @__PURE__ */ jsx127(WarningAmberOutlined, { color: "warning", sx: { fontSize: 14, mt: "1px" } }),
|
|
15178
|
+
/* @__PURE__ */ jsx127(Typography3, { color: "warning.main", variant: "caption", children: "System limit reached \u2014 newer operations are being dropped." })
|
|
15008
15179
|
] })
|
|
15009
15180
|
] })
|
|
15010
15181
|
] })
|
|
@@ -15014,7 +15185,7 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
|
|
|
15014
15185
|
};
|
|
15015
15186
|
|
|
15016
15187
|
// src/components/spans-list/spans-data-grid.tsx
|
|
15017
|
-
import { Fragment as
|
|
15188
|
+
import { Fragment as Fragment6, jsx as jsx128, jsxs as jsxs122 } from "react/jsx-runtime";
|
|
15018
15189
|
var columnHelper = createColumnHelper();
|
|
15019
15190
|
var newSpanBackgroundColor = {
|
|
15020
15191
|
dark: { from: "rgba(136, 123, 2, 1)", to: "rgba(136, 123, 2, 0)" },
|
|
@@ -15026,15 +15197,15 @@ var LABEL_NO_SPANS = "There are no operations";
|
|
|
15026
15197
|
var LABEL_LOAD_OLDER = "Load older operations";
|
|
15027
15198
|
var LABEL_LOAD_NEWER = "Load newer operations";
|
|
15028
15199
|
var STICK_TO_EDGE_THRESHOLD_PX = 4;
|
|
15029
|
-
var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */
|
|
15030
|
-
var LoadSpansRow = ({ colSpan, fetching, label, onFetch }) => /* @__PURE__ */
|
|
15031
|
-
!fetching && /* @__PURE__ */
|
|
15032
|
-
fetching && /* @__PURE__ */
|
|
15200
|
+
var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */ jsx128(TableRow, { children: /* @__PURE__ */ jsx128(TableCell, { colSpan, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ jsx128("span", { children: label }) }) });
|
|
15201
|
+
var LoadSpansRow = ({ colSpan, fetching, label, onFetch }) => /* @__PURE__ */ jsx128(TableRow, { children: /* @__PURE__ */ jsxs122(TableCell, { colSpan, sx: { textAlign: "center" }, children: [
|
|
15202
|
+
!fetching && /* @__PURE__ */ jsx128(Button2, { onClick: onFetch, sx: { my: 1 }, children: label }),
|
|
15203
|
+
fetching && /* @__PURE__ */ jsx128(CircularProgress, { size: 24, sx: { m: 2 } })
|
|
15033
15204
|
] }) });
|
|
15034
15205
|
var SpansDataGridRow = memo8(
|
|
15035
15206
|
({ onSpanClick, row }) => {
|
|
15036
15207
|
const theme = useTheme2();
|
|
15037
|
-
return /* @__PURE__ */
|
|
15208
|
+
return /* @__PURE__ */ jsx128(
|
|
15038
15209
|
TableRow,
|
|
15039
15210
|
{
|
|
15040
15211
|
animate: {
|
|
@@ -15053,7 +15224,7 @@ var SpansDataGridRow = memo8(
|
|
|
15053
15224
|
transition: "background-color 1200ms ease-in"
|
|
15054
15225
|
},
|
|
15055
15226
|
children: row.getVisibleCells().map((cell) => {
|
|
15056
|
-
return /* @__PURE__ */
|
|
15227
|
+
return /* @__PURE__ */ jsx128(
|
|
15057
15228
|
TableCell,
|
|
15058
15229
|
{
|
|
15059
15230
|
sx: {
|
|
@@ -15061,8 +15232,8 @@ var SpansDataGridRow = memo8(
|
|
|
15061
15232
|
maxWidth: `${cell.column.getSize().toString()}px`,
|
|
15062
15233
|
minWidth: `${cell.column.getSize().toString()}px`
|
|
15063
15234
|
},
|
|
15064
|
-
children: /* @__PURE__ */
|
|
15065
|
-
|
|
15235
|
+
children: /* @__PURE__ */ jsx128(
|
|
15236
|
+
Box5,
|
|
15066
15237
|
{
|
|
15067
15238
|
sx: {
|
|
15068
15239
|
"alignItems": "center",
|
|
@@ -15074,7 +15245,7 @@ var SpansDataGridRow = memo8(
|
|
|
15074
15245
|
},
|
|
15075
15246
|
"width": "100%"
|
|
15076
15247
|
},
|
|
15077
|
-
children: /* @__PURE__ */
|
|
15248
|
+
children: /* @__PURE__ */ jsx128(Box5, { sx: { px: 1, width: "100%" }, children: flexRender(cell.column.columnDef.cell, cell.getContext()) })
|
|
15078
15249
|
}
|
|
15079
15250
|
)
|
|
15080
15251
|
},
|
|
@@ -15111,8 +15282,8 @@ var SpansDataGrid = ({
|
|
|
15111
15282
|
}) => {
|
|
15112
15283
|
const columns = useMemo5(() => [
|
|
15113
15284
|
columnHelper.accessor("startTime", {
|
|
15114
|
-
cell: (props) => /* @__PURE__ */
|
|
15115
|
-
header: () => /* @__PURE__ */
|
|
15285
|
+
cell: (props) => /* @__PURE__ */ jsx128(ResponsiveTimestampCell, { date: props.getValue() }),
|
|
15286
|
+
header: () => /* @__PURE__ */ jsx128(
|
|
15116
15287
|
TableSortLabel,
|
|
15117
15288
|
{
|
|
15118
15289
|
active: true,
|
|
@@ -15129,23 +15300,23 @@ var SpansDataGrid = ({
|
|
|
15129
15300
|
columnHelper.display({
|
|
15130
15301
|
cell: (props) => {
|
|
15131
15302
|
if (!props.row.original.parent_service_name || !props.row.original.parent_resource_name) {
|
|
15132
|
-
return /* @__PURE__ */
|
|
15303
|
+
return /* @__PURE__ */ jsx128(Typography4, { sx: { fontStyle: "italic" }, variant: "body2", children: "External producer" });
|
|
15133
15304
|
}
|
|
15134
|
-
return /* @__PURE__ */
|
|
15305
|
+
return /* @__PURE__ */ jsx128(ServiceCell, { resource: props.row.original.parent_resource_name, service: props.row.original.parent_service_name });
|
|
15135
15306
|
},
|
|
15136
15307
|
header: "Producer",
|
|
15137
15308
|
id: "producer",
|
|
15138
15309
|
size: 180
|
|
15139
15310
|
}),
|
|
15140
15311
|
columnHelper.accessor("operation_name", {
|
|
15141
|
-
cell: (props) => /* @__PURE__ */
|
|
15142
|
-
|
|
15312
|
+
cell: (props) => /* @__PURE__ */ jsx128(
|
|
15313
|
+
Box5,
|
|
15143
15314
|
{
|
|
15144
15315
|
sx: {
|
|
15145
15316
|
overflow: "hidden",
|
|
15146
15317
|
textOverflow: "ellipsis"
|
|
15147
15318
|
},
|
|
15148
|
-
children: /* @__PURE__ */
|
|
15319
|
+
children: /* @__PURE__ */ jsx128("span", { title: props.getValue(), children: props.getValue() })
|
|
15149
15320
|
}
|
|
15150
15321
|
),
|
|
15151
15322
|
header: "Action",
|
|
@@ -15154,7 +15325,7 @@ var SpansDataGrid = ({
|
|
|
15154
15325
|
}),
|
|
15155
15326
|
columnHelper.display({
|
|
15156
15327
|
cell: (props) => {
|
|
15157
|
-
return /* @__PURE__ */
|
|
15328
|
+
return /* @__PURE__ */ jsx128(ServiceCell, { resource: props.row.original.resource_name, service: props.row.original.service_name });
|
|
15158
15329
|
},
|
|
15159
15330
|
header: "Consumer",
|
|
15160
15331
|
id: "consumer",
|
|
@@ -15162,24 +15333,26 @@ var SpansDataGrid = ({
|
|
|
15162
15333
|
}),
|
|
15163
15334
|
columnHelper.display({
|
|
15164
15335
|
cell: (props) => {
|
|
15165
|
-
return /* @__PURE__ */
|
|
15166
|
-
|
|
15167
|
-
|
|
15168
|
-
|
|
15169
|
-
|
|
15170
|
-
|
|
15171
|
-
|
|
15172
|
-
|
|
15173
|
-
|
|
15174
|
-
|
|
15175
|
-
|
|
15176
|
-
|
|
15177
|
-
|
|
15178
|
-
|
|
15336
|
+
return /* @__PURE__ */ jsxs122(Box5, { sx: { alignItems: "center", display: "flex", gap: 0.5, justifyContent: "flex-end" }, children: [
|
|
15337
|
+
/* @__PURE__ */ jsx128(StatusIconWithTooltip, { span: props.row.original }),
|
|
15338
|
+
/* @__PURE__ */ jsx128(
|
|
15339
|
+
Button2,
|
|
15340
|
+
{
|
|
15341
|
+
"data-testid": VIEW_SPAN_DETAILS_TEST_ID,
|
|
15342
|
+
onClick: (event) => {
|
|
15343
|
+
event.stopPropagation();
|
|
15344
|
+
onSpanClick(props.row.original);
|
|
15345
|
+
},
|
|
15346
|
+
size: "small",
|
|
15347
|
+
sx: { px: 1 },
|
|
15348
|
+
variant: "text",
|
|
15349
|
+
children: "View Details"
|
|
15350
|
+
}
|
|
15351
|
+
)
|
|
15352
|
+
] });
|
|
15179
15353
|
},
|
|
15180
15354
|
id: "actions",
|
|
15181
|
-
|
|
15182
|
-
size: 96
|
|
15355
|
+
size: 128
|
|
15183
15356
|
})
|
|
15184
15357
|
], [onSpanClick, onOrderChange, order2]);
|
|
15185
15358
|
const table = useReactTable({
|
|
@@ -15212,46 +15385,46 @@ var SpansDataGrid = ({
|
|
|
15212
15385
|
if (!element || !isAtLiveEdgeRef.current) return;
|
|
15213
15386
|
element.scrollTop = element.scrollHeight;
|
|
15214
15387
|
}, [order2, spans?.length, lastSpanId]);
|
|
15215
|
-
return /* @__PURE__ */
|
|
15216
|
-
/* @__PURE__ */
|
|
15217
|
-
/* @__PURE__ */
|
|
15218
|
-
errorCount !== void 0 && errorCount > 0 && /* @__PURE__ */
|
|
15219
|
-
/* @__PURE__ */
|
|
15220
|
-
/* @__PURE__ */
|
|
15221
|
-
|
|
15388
|
+
return /* @__PURE__ */ jsxs122(Fragment6, { children: [
|
|
15389
|
+
/* @__PURE__ */ jsx128(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxs122(Box5, { sx: { alignItems: "center", display: "flex", gap: "0.5rem" }, children: [
|
|
15390
|
+
/* @__PURE__ */ jsx128(SpanCountBadge, { licenseLimit, systemLimit, totalCount, visibleCount: spans?.length }),
|
|
15391
|
+
errorCount !== void 0 && errorCount > 0 && /* @__PURE__ */ jsxs122(Fragment6, { children: [
|
|
15392
|
+
/* @__PURE__ */ jsx128(Typography4, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
|
|
15393
|
+
/* @__PURE__ */ jsx128(Tooltip4, { title: "Number of errors detected across all operations", children: /* @__PURE__ */ jsxs122(
|
|
15394
|
+
Box5,
|
|
15222
15395
|
{
|
|
15223
15396
|
"data-testid": ERROR_COUNT_TEST_ID,
|
|
15224
15397
|
sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "error.main", cursor: "default", display: "flex", gap: 0.5, mb: "-1px" },
|
|
15225
15398
|
children: [
|
|
15226
|
-
/* @__PURE__ */
|
|
15227
|
-
/* @__PURE__ */
|
|
15399
|
+
/* @__PURE__ */ jsx128(Typography4, { color: "error", variant: "body2", children: errorCount.toLocaleString() }),
|
|
15400
|
+
/* @__PURE__ */ jsx128(Typography4, { color: "error", variant: "caption", children: errorCount === 1 ? "error" : "errors" })
|
|
15228
15401
|
]
|
|
15229
15402
|
}
|
|
15230
15403
|
) })
|
|
15231
15404
|
] }),
|
|
15232
|
-
warningCount !== void 0 && warningCount > 0 && /* @__PURE__ */
|
|
15233
|
-
/* @__PURE__ */
|
|
15234
|
-
/* @__PURE__ */
|
|
15235
|
-
|
|
15405
|
+
warningCount !== void 0 && warningCount > 0 && /* @__PURE__ */ jsxs122(Fragment6, { children: [
|
|
15406
|
+
/* @__PURE__ */ jsx128(Typography4, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
|
|
15407
|
+
/* @__PURE__ */ jsx128(Tooltip4, { title: "Number of warnings detected across all operations", children: /* @__PURE__ */ jsxs122(
|
|
15408
|
+
Box5,
|
|
15236
15409
|
{
|
|
15237
15410
|
"data-testid": WARNING_COUNT_TEST_ID,
|
|
15238
15411
|
sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "warning.main", cursor: "default", display: "flex", gap: 0.5, mb: "-1px" },
|
|
15239
15412
|
children: [
|
|
15240
|
-
/* @__PURE__ */
|
|
15241
|
-
/* @__PURE__ */
|
|
15413
|
+
/* @__PURE__ */ jsx128(Typography4, { color: "warning.main", variant: "body2", children: warningCount.toLocaleString() }),
|
|
15414
|
+
/* @__PURE__ */ jsx128(Typography4, { color: "warning.main", variant: "caption", children: warningCount === 1 ? "warning" : "warnings" })
|
|
15242
15415
|
]
|
|
15243
15416
|
}
|
|
15244
15417
|
) })
|
|
15245
15418
|
] }),
|
|
15246
|
-
/* @__PURE__ */
|
|
15247
|
-
/* @__PURE__ */
|
|
15419
|
+
/* @__PURE__ */ jsx128(Box5, { sx: { flexGrow: 1 } }),
|
|
15420
|
+
/* @__PURE__ */ jsx128(
|
|
15248
15421
|
FormControlLabel,
|
|
15249
15422
|
{
|
|
15250
|
-
control: /* @__PURE__ */
|
|
15423
|
+
control: /* @__PURE__ */ jsx128(
|
|
15251
15424
|
Button2,
|
|
15252
15425
|
{
|
|
15253
15426
|
onClick: onToggleStream,
|
|
15254
|
-
startIcon: streamPaused ? /* @__PURE__ */
|
|
15427
|
+
startIcon: streamPaused ? /* @__PURE__ */ jsx128(PlayArrowOutlined, {}) : /* @__PURE__ */ jsx128(PauseOutlined, {}),
|
|
15255
15428
|
variant: "text",
|
|
15256
15429
|
children: streamPaused ? "Resume Stream" : "Pause Stream"
|
|
15257
15430
|
}
|
|
@@ -15259,15 +15432,15 @@ var SpansDataGrid = ({
|
|
|
15259
15432
|
label: ""
|
|
15260
15433
|
}
|
|
15261
15434
|
),
|
|
15262
|
-
/* @__PURE__ */
|
|
15435
|
+
/* @__PURE__ */ jsx128(
|
|
15263
15436
|
FormControlLabel,
|
|
15264
15437
|
{
|
|
15265
|
-
control: /* @__PURE__ */
|
|
15438
|
+
control: /* @__PURE__ */ jsx128(
|
|
15266
15439
|
Button2,
|
|
15267
15440
|
{
|
|
15268
15441
|
"data-testid": CLEAR_SPANS_TEST_ID,
|
|
15269
15442
|
onClick: onClearSpans,
|
|
15270
|
-
startIcon: /* @__PURE__ */
|
|
15443
|
+
startIcon: /* @__PURE__ */ jsx128(DeleteForeverOutlined, {}),
|
|
15271
15444
|
children: "Clear Operations"
|
|
15272
15445
|
}
|
|
15273
15446
|
),
|
|
@@ -15276,7 +15449,7 @@ var SpansDataGrid = ({
|
|
|
15276
15449
|
}
|
|
15277
15450
|
)
|
|
15278
15451
|
] }) }),
|
|
15279
|
-
/* @__PURE__ */
|
|
15452
|
+
/* @__PURE__ */ jsx128(Paper, { sx: { flexGrow: 1, overflow: "hidden", position: "relative", width: "100%" }, children: /* @__PURE__ */ jsx128(
|
|
15280
15453
|
TableContainer,
|
|
15281
15454
|
{
|
|
15282
15455
|
onScroll: handleScroll,
|
|
@@ -15289,7 +15462,7 @@ var SpansDataGrid = ({
|
|
|
15289
15462
|
right: 0,
|
|
15290
15463
|
top: 0
|
|
15291
15464
|
},
|
|
15292
|
-
children: /* @__PURE__ */
|
|
15465
|
+
children: /* @__PURE__ */ jsxs122(
|
|
15293
15466
|
Table,
|
|
15294
15467
|
{
|
|
15295
15468
|
stickyHeader: true,
|
|
@@ -15301,8 +15474,8 @@ var SpansDataGrid = ({
|
|
|
15301
15474
|
"th+th": { pl: "8px !important" }
|
|
15302
15475
|
},
|
|
15303
15476
|
children: [
|
|
15304
|
-
/* @__PURE__ */
|
|
15305
|
-
return /* @__PURE__ */
|
|
15477
|
+
/* @__PURE__ */ jsx128(TableHead, { children: table.getHeaderGroups().map((headerGroup) => {
|
|
15478
|
+
return /* @__PURE__ */ jsx128(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx128(
|
|
15306
15479
|
TableCell,
|
|
15307
15480
|
{
|
|
15308
15481
|
colSpan: header.colSpan,
|
|
@@ -15317,31 +15490,31 @@ var SpansDataGrid = ({
|
|
|
15317
15490
|
header.id
|
|
15318
15491
|
)) }, headerGroup.id);
|
|
15319
15492
|
}) }),
|
|
15320
|
-
/* @__PURE__ */
|
|
15321
|
-
(spans === void 0 || clearingSpans) && /* @__PURE__ */
|
|
15322
|
-
!clearingSpans && spans?.length === 0 && /* @__PURE__ */
|
|
15323
|
-
!clearingSpans && order2 === "newest_first" && /* @__PURE__ */
|
|
15324
|
-
hasRows && hasMoreForward && /* @__PURE__ */
|
|
15325
|
-
hasRows && !hasMoreForward && /* @__PURE__ */
|
|
15326
|
-
hasRows && /* @__PURE__ */
|
|
15493
|
+
/* @__PURE__ */ jsxs122(TableBody, { children: [
|
|
15494
|
+
(spans === void 0 || clearingSpans) && /* @__PURE__ */ jsx128(TableRow, { children: /* @__PURE__ */ jsx128(TableCell, { colSpan: columnCount, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ jsx128(CircularProgress, { size: 48, sx: { m: 4 } }) }) }),
|
|
15495
|
+
!clearingSpans && spans?.length === 0 && /* @__PURE__ */ jsx128(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_NO_SPANS }),
|
|
15496
|
+
!clearingSpans && order2 === "newest_first" && /* @__PURE__ */ jsxs122(Fragment6, { children: [
|
|
15497
|
+
hasRows && hasMoreForward && /* @__PURE__ */ jsx128(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
|
|
15498
|
+
hasRows && !hasMoreForward && /* @__PURE__ */ jsx128(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM }),
|
|
15499
|
+
hasRows && /* @__PURE__ */ jsx128(AnimatePresence, { initial: false, children: (() => {
|
|
15327
15500
|
const reversed = [];
|
|
15328
15501
|
for (let index = rows.length - 1; index >= 0; index--) {
|
|
15329
15502
|
const row = rows.at(index);
|
|
15330
15503
|
reversed.push(
|
|
15331
|
-
/* @__PURE__ */
|
|
15504
|
+
/* @__PURE__ */ jsx128(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)
|
|
15332
15505
|
);
|
|
15333
15506
|
}
|
|
15334
15507
|
return reversed;
|
|
15335
15508
|
})() }),
|
|
15336
|
-
hasRows && hasMoreBackward && /* @__PURE__ */
|
|
15337
|
-
hasRows && !hasMoreBackward && /* @__PURE__ */
|
|
15509
|
+
hasRows && hasMoreBackward && /* @__PURE__ */ jsx128(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
|
|
15510
|
+
hasRows && !hasMoreBackward && /* @__PURE__ */ jsx128(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM })
|
|
15338
15511
|
] }),
|
|
15339
|
-
!clearingSpans && order2 === "oldest_first" && /* @__PURE__ */
|
|
15340
|
-
hasRows && !hasMoreBackward && /* @__PURE__ */
|
|
15341
|
-
hasRows && hasMoreBackward && /* @__PURE__ */
|
|
15342
|
-
hasRows && /* @__PURE__ */
|
|
15343
|
-
hasRows && hasMoreForward && /* @__PURE__ */
|
|
15344
|
-
hasRows && !hasMoreForward && /* @__PURE__ */
|
|
15512
|
+
!clearingSpans && order2 === "oldest_first" && /* @__PURE__ */ jsxs122(Fragment6, { children: [
|
|
15513
|
+
hasRows && !hasMoreBackward && /* @__PURE__ */ jsx128(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM }),
|
|
15514
|
+
hasRows && hasMoreBackward && /* @__PURE__ */ jsx128(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
|
|
15515
|
+
hasRows && /* @__PURE__ */ jsx128(AnimatePresence, { initial: false, children: rows.map((row) => /* @__PURE__ */ jsx128(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)) }),
|
|
15516
|
+
hasRows && hasMoreForward && /* @__PURE__ */ jsx128(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
|
|
15517
|
+
hasRows && !hasMoreForward && /* @__PURE__ */ jsx128(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM })
|
|
15345
15518
|
] })
|
|
15346
15519
|
] })
|
|
15347
15520
|
]
|
|
@@ -15353,13 +15526,13 @@ var SpansDataGrid = ({
|
|
|
15353
15526
|
};
|
|
15354
15527
|
|
|
15355
15528
|
// src/components/spans-list/spans-list.tsx
|
|
15356
|
-
import { jsx as
|
|
15529
|
+
import { jsx as jsx129, jsxs as jsxs123 } from "react/jsx-runtime";
|
|
15357
15530
|
var SpansList = (props) => {
|
|
15358
|
-
return /* @__PURE__ */
|
|
15359
|
-
props.fetchError && /* @__PURE__ */
|
|
15531
|
+
return /* @__PURE__ */ jsxs123(Box6, { "data-testid": SPANS_DATA_GRID_TEST_ID, sx: { display: "flex", flexDirection: "column", flexGrow: 1, gap: 2, width: "100%" }, children: [
|
|
15532
|
+
props.fetchError && /* @__PURE__ */ jsxs123(
|
|
15360
15533
|
Alert2,
|
|
15361
15534
|
{
|
|
15362
|
-
action: /* @__PURE__ */
|
|
15535
|
+
action: /* @__PURE__ */ jsx129(Button3, { onClick: props.onFetchForward, children: "Retry" }),
|
|
15363
15536
|
severity: "error",
|
|
15364
15537
|
children: [
|
|
15365
15538
|
"Unexpected error:",
|
|
@@ -15368,7 +15541,7 @@ var SpansList = (props) => {
|
|
|
15368
15541
|
]
|
|
15369
15542
|
}
|
|
15370
15543
|
),
|
|
15371
|
-
/* @__PURE__ */
|
|
15544
|
+
/* @__PURE__ */ jsx129(
|
|
15372
15545
|
SpansDataGrid,
|
|
15373
15546
|
{
|
|
15374
15547
|
clearingSpans: props.clearingSpans,
|
|
@@ -15397,9 +15570,9 @@ var SpansList = (props) => {
|
|
|
15397
15570
|
|
|
15398
15571
|
// src/components/status-message/status-message.tsx
|
|
15399
15572
|
import { ErrorOutline, InfoOutlined as InfoOutlined2 } from "@mui/icons-material";
|
|
15400
|
-
import { Alert as Alert3, AlertTitle, Box as
|
|
15573
|
+
import { Alert as Alert3, AlertTitle, Box as Box7, Button as Button4, CircularProgress as CircularProgress2, Link, Typography as Typography5 } from "@mui/material";
|
|
15401
15574
|
import { useState as useState5 } from "react";
|
|
15402
|
-
import { Fragment as
|
|
15575
|
+
import { Fragment as Fragment7, jsx as jsx130, jsxs as jsxs124 } from "react/jsx-runtime";
|
|
15403
15576
|
var StatusMessage = ({
|
|
15404
15577
|
error,
|
|
15405
15578
|
localstackVersion,
|
|
@@ -15423,8 +15596,8 @@ var StatusMessage = ({
|
|
|
15423
15596
|
};
|
|
15424
15597
|
if (error instanceof AppInspectorNotFoundError) {
|
|
15425
15598
|
const isBelowMinimum = localstackVersion !== void 0 && checkEmulatorVersion(localstackVersion) === "below-minimum";
|
|
15426
|
-
return /* @__PURE__ */
|
|
15427
|
-
|
|
15599
|
+
return /* @__PURE__ */ jsx130(
|
|
15600
|
+
Box7,
|
|
15428
15601
|
{
|
|
15429
15602
|
sx: {
|
|
15430
15603
|
alignItems: "center",
|
|
@@ -15434,18 +15607,18 @@ var StatusMessage = ({
|
|
|
15434
15607
|
justifyContent: "center",
|
|
15435
15608
|
p: 4
|
|
15436
15609
|
},
|
|
15437
|
-
children: /* @__PURE__ */
|
|
15610
|
+
children: /* @__PURE__ */ jsxs124(
|
|
15438
15611
|
Alert3,
|
|
15439
15612
|
{
|
|
15440
|
-
icon: /* @__PURE__ */
|
|
15613
|
+
icon: /* @__PURE__ */ jsx130(ErrorOutline, { fontSize: "large" }),
|
|
15441
15614
|
severity: "error",
|
|
15442
15615
|
sx: { maxWidth: 600, width: "100%" },
|
|
15443
15616
|
children: [
|
|
15444
|
-
/* @__PURE__ */
|
|
15445
|
-
/* @__PURE__ */
|
|
15446
|
-
/* @__PURE__ */
|
|
15447
|
-
/* @__PURE__ */
|
|
15448
|
-
|
|
15617
|
+
/* @__PURE__ */ jsx130(AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Not Available" }),
|
|
15618
|
+
/* @__PURE__ */ jsx130(Typography5, { sx: { mb: 2 }, variant: "body2", children: isBelowMinimum ? `App Inspector requires LocalStack ${MINIMUM_EMULATOR_VERSION} or later. You are running version ${localstackVersion}. Please update LocalStack.` : "App Inspector is not available in LocalStack. Ensure LocalStack is up-to-date." }),
|
|
15619
|
+
/* @__PURE__ */ jsx130(Typography5, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ jsx130("strong", { children: "Update LocalStack:" }) }),
|
|
15620
|
+
/* @__PURE__ */ jsx130(
|
|
15621
|
+
Box7,
|
|
15449
15622
|
{
|
|
15450
15623
|
component: "pre",
|
|
15451
15624
|
sx: {
|
|
@@ -15457,7 +15630,7 @@ var StatusMessage = ({
|
|
|
15457
15630
|
children: "localstack update docker-images"
|
|
15458
15631
|
}
|
|
15459
15632
|
),
|
|
15460
|
-
/* @__PURE__ */
|
|
15633
|
+
/* @__PURE__ */ jsx130(Box7, { sx: { display: "flex", gap: 1, mt: 2 }, children: onRetry && /* @__PURE__ */ jsx130(
|
|
15461
15634
|
Button4,
|
|
15462
15635
|
{
|
|
15463
15636
|
"aria-label": "Check App Inspector status again",
|
|
@@ -15474,8 +15647,8 @@ var StatusMessage = ({
|
|
|
15474
15647
|
);
|
|
15475
15648
|
}
|
|
15476
15649
|
if (error instanceof ConnectionError) {
|
|
15477
|
-
return /* @__PURE__ */
|
|
15478
|
-
|
|
15650
|
+
return /* @__PURE__ */ jsx130(
|
|
15651
|
+
Box7,
|
|
15479
15652
|
{
|
|
15480
15653
|
sx: {
|
|
15481
15654
|
alignItems: "center",
|
|
@@ -15485,17 +15658,17 @@ var StatusMessage = ({
|
|
|
15485
15658
|
justifyContent: "center",
|
|
15486
15659
|
p: 4
|
|
15487
15660
|
},
|
|
15488
|
-
children: /* @__PURE__ */
|
|
15661
|
+
children: /* @__PURE__ */ jsxs124(
|
|
15489
15662
|
Alert3,
|
|
15490
15663
|
{
|
|
15491
|
-
icon: /* @__PURE__ */
|
|
15664
|
+
icon: /* @__PURE__ */ jsx130(ErrorOutline, { fontSize: "large" }),
|
|
15492
15665
|
severity: "error",
|
|
15493
15666
|
sx: { maxWidth: 600, width: "100%" },
|
|
15494
15667
|
children: [
|
|
15495
|
-
/* @__PURE__ */
|
|
15496
|
-
/* @__PURE__ */
|
|
15668
|
+
/* @__PURE__ */ jsx130(AlertTitle, { sx: { fontWeight: "bold" }, children: "Connection Error" }),
|
|
15669
|
+
/* @__PURE__ */ jsxs124(Typography5, { sx: { mb: 2 }, variant: "body2", children: [
|
|
15497
15670
|
"Failed to connect to LocalStack. Ensure ",
|
|
15498
|
-
/* @__PURE__ */
|
|
15671
|
+
/* @__PURE__ */ jsx130(
|
|
15499
15672
|
Link,
|
|
15500
15673
|
{
|
|
15501
15674
|
href: "https://docs.localstack.cloud/aws/getting-started/installation/",
|
|
@@ -15506,9 +15679,9 @@ var StatusMessage = ({
|
|
|
15506
15679
|
),
|
|
15507
15680
|
" is running and accessible."
|
|
15508
15681
|
] }),
|
|
15509
|
-
/* @__PURE__ */
|
|
15510
|
-
/* @__PURE__ */
|
|
15511
|
-
|
|
15682
|
+
/* @__PURE__ */ jsx130(Typography5, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ jsx130("strong", { children: "Start LocalStack:" }) }),
|
|
15683
|
+
/* @__PURE__ */ jsx130(
|
|
15684
|
+
Box7,
|
|
15512
15685
|
{
|
|
15513
15686
|
component: "pre",
|
|
15514
15687
|
sx: {
|
|
@@ -15520,7 +15693,7 @@ var StatusMessage = ({
|
|
|
15520
15693
|
children: "localstack start"
|
|
15521
15694
|
}
|
|
15522
15695
|
),
|
|
15523
|
-
onRetry && /* @__PURE__ */
|
|
15696
|
+
onRetry && /* @__PURE__ */ jsx130(Box7, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ jsx130(
|
|
15524
15697
|
Button4,
|
|
15525
15698
|
{
|
|
15526
15699
|
"aria-label": "Retry connection to LocalStack",
|
|
@@ -15536,8 +15709,8 @@ var StatusMessage = ({
|
|
|
15536
15709
|
);
|
|
15537
15710
|
}
|
|
15538
15711
|
if (error instanceof AppInspectorDisabledError || status?.status === "DISABLED") {
|
|
15539
|
-
return /* @__PURE__ */
|
|
15540
|
-
|
|
15712
|
+
return /* @__PURE__ */ jsx130(
|
|
15713
|
+
Box7,
|
|
15541
15714
|
{
|
|
15542
15715
|
sx: {
|
|
15543
15716
|
alignItems: "center",
|
|
@@ -15547,17 +15720,17 @@ var StatusMessage = ({
|
|
|
15547
15720
|
justifyContent: "center",
|
|
15548
15721
|
p: 4
|
|
15549
15722
|
},
|
|
15550
|
-
children: /* @__PURE__ */
|
|
15723
|
+
children: /* @__PURE__ */ jsxs124(
|
|
15551
15724
|
Alert3,
|
|
15552
15725
|
{
|
|
15553
|
-
icon: /* @__PURE__ */
|
|
15726
|
+
icon: /* @__PURE__ */ jsx130(InfoOutlined2, { fontSize: "large" }),
|
|
15554
15727
|
severity: "warning",
|
|
15555
15728
|
sx: { maxWidth: 600, width: "100%" },
|
|
15556
15729
|
children: [
|
|
15557
|
-
/* @__PURE__ */
|
|
15558
|
-
/* @__PURE__ */
|
|
15559
|
-
/* @__PURE__ */
|
|
15560
|
-
onEnable && /* @__PURE__ */
|
|
15730
|
+
/* @__PURE__ */ jsx130(AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Is Not Enabled" }),
|
|
15731
|
+
/* @__PURE__ */ jsx130(Typography5, { sx: { mb: 2 }, variant: "body2", children: "App Inspector is not currently enabled in LocalStack. You can enable it now, or at startup." }),
|
|
15732
|
+
/* @__PURE__ */ jsxs124(Box7, { sx: { display: "flex", gap: 1, mb: 2 }, children: [
|
|
15733
|
+
onEnable && /* @__PURE__ */ jsx130(
|
|
15561
15734
|
Button4,
|
|
15562
15735
|
{
|
|
15563
15736
|
"aria-label": "Enable App Inspector Now",
|
|
@@ -15565,12 +15738,12 @@ var StatusMessage = ({
|
|
|
15565
15738
|
onClick: () => {
|
|
15566
15739
|
void handleEnable();
|
|
15567
15740
|
},
|
|
15568
|
-
startIcon: enabling ? /* @__PURE__ */
|
|
15741
|
+
startIcon: enabling ? /* @__PURE__ */ jsx130(CircularProgress2, { size: 16 }) : void 0,
|
|
15569
15742
|
variant: "contained",
|
|
15570
15743
|
children: "Enable App Inspector Now"
|
|
15571
15744
|
}
|
|
15572
15745
|
),
|
|
15573
|
-
onRetry && /* @__PURE__ */
|
|
15746
|
+
onRetry && /* @__PURE__ */ jsx130(
|
|
15574
15747
|
Button4,
|
|
15575
15748
|
{
|
|
15576
15749
|
"aria-label": "Check if App Inspector is enabled",
|
|
@@ -15581,9 +15754,9 @@ var StatusMessage = ({
|
|
|
15581
15754
|
}
|
|
15582
15755
|
)
|
|
15583
15756
|
] }),
|
|
15584
|
-
/* @__PURE__ */
|
|
15585
|
-
/* @__PURE__ */
|
|
15586
|
-
|
|
15757
|
+
/* @__PURE__ */ jsx130(Typography5, { sx: { mb: 1 }, variant: "body2", children: "If you'd prefer to automatically enable App Inspector at start up, use:" }),
|
|
15758
|
+
/* @__PURE__ */ jsx130(
|
|
15759
|
+
Box7,
|
|
15587
15760
|
{
|
|
15588
15761
|
component: "pre",
|
|
15589
15762
|
sx: {
|
|
@@ -15595,7 +15768,7 @@ var StatusMessage = ({
|
|
|
15595
15768
|
children: "LOCALSTACK_APP_INSPECTOR=1 localstack start"
|
|
15596
15769
|
}
|
|
15597
15770
|
),
|
|
15598
|
-
Boolean(enableError) && /* @__PURE__ */
|
|
15771
|
+
Boolean(enableError) && /* @__PURE__ */ jsx130(Typography5, { color: "error", sx: { mt: 1 }, variant: "body2", children: enableError })
|
|
15599
15772
|
]
|
|
15600
15773
|
}
|
|
15601
15774
|
)
|
|
@@ -15603,8 +15776,8 @@ var StatusMessage = ({
|
|
|
15603
15776
|
);
|
|
15604
15777
|
}
|
|
15605
15778
|
if (error) {
|
|
15606
|
-
return /* @__PURE__ */
|
|
15607
|
-
|
|
15779
|
+
return /* @__PURE__ */ jsx130(
|
|
15780
|
+
Box7,
|
|
15608
15781
|
{
|
|
15609
15782
|
sx: {
|
|
15610
15783
|
alignItems: "center",
|
|
@@ -15614,16 +15787,16 @@ var StatusMessage = ({
|
|
|
15614
15787
|
justifyContent: "center",
|
|
15615
15788
|
p: 4
|
|
15616
15789
|
},
|
|
15617
|
-
children: /* @__PURE__ */
|
|
15790
|
+
children: /* @__PURE__ */ jsxs124(
|
|
15618
15791
|
Alert3,
|
|
15619
15792
|
{
|
|
15620
|
-
icon: /* @__PURE__ */
|
|
15793
|
+
icon: /* @__PURE__ */ jsx130(ErrorOutline, { fontSize: "large" }),
|
|
15621
15794
|
severity: "error",
|
|
15622
15795
|
sx: { maxWidth: 600, width: "100%" },
|
|
15623
15796
|
children: [
|
|
15624
|
-
/* @__PURE__ */
|
|
15625
|
-
/* @__PURE__ */
|
|
15626
|
-
onRetry && /* @__PURE__ */
|
|
15797
|
+
/* @__PURE__ */ jsx130(AlertTitle, { sx: { fontWeight: "bold" }, children: "Error" }),
|
|
15798
|
+
/* @__PURE__ */ jsx130(Typography5, { sx: { mb: 2 }, variant: "body2", children: error.message }),
|
|
15799
|
+
onRetry && /* @__PURE__ */ jsx130(Box7, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ jsx130(
|
|
15627
15800
|
Button4,
|
|
15628
15801
|
{
|
|
15629
15802
|
"aria-label": "Retry operation",
|
|
@@ -15638,7 +15811,7 @@ var StatusMessage = ({
|
|
|
15638
15811
|
}
|
|
15639
15812
|
);
|
|
15640
15813
|
}
|
|
15641
|
-
return /* @__PURE__ */
|
|
15814
|
+
return /* @__PURE__ */ jsx130(Fragment7, {});
|
|
15642
15815
|
};
|
|
15643
15816
|
|
|
15644
15817
|
// src/hooks/status-provider.tsx
|
|
@@ -15687,7 +15860,7 @@ var useStatus = () => {
|
|
|
15687
15860
|
};
|
|
15688
15861
|
|
|
15689
15862
|
// src/hooks/status-provider.tsx
|
|
15690
|
-
import { jsx as
|
|
15863
|
+
import { jsx as jsx131 } from "react/jsx-runtime";
|
|
15691
15864
|
var AppInspectorStatusContext = createContext8(void 0);
|
|
15692
15865
|
var StatusProvider = ({ children }) => {
|
|
15693
15866
|
const { checking, checkStatus, error, status } = useStatus();
|
|
@@ -15698,7 +15871,7 @@ var StatusProvider = ({ children }) => {
|
|
|
15698
15871
|
() => ({ checking, checkStatus, reportDisabled, status, statusError: error }),
|
|
15699
15872
|
[checking, checkStatus, reportDisabled, status, error]
|
|
15700
15873
|
);
|
|
15701
|
-
return /* @__PURE__ */
|
|
15874
|
+
return /* @__PURE__ */ jsx131(AppInspectorStatusContext.Provider, { value, children });
|
|
15702
15875
|
};
|
|
15703
15876
|
var useAppInspectorStatus = () => {
|
|
15704
15877
|
const value = useContext15(AppInspectorStatusContext);
|
|
@@ -18117,7 +18290,7 @@ var useAppInspectorOpenAnalytics = () => {
|
|
|
18117
18290
|
};
|
|
18118
18291
|
|
|
18119
18292
|
// src/context.tsx
|
|
18120
|
-
import { Fragment as
|
|
18293
|
+
import { Fragment as Fragment8, jsx as jsx132 } from "react/jsx-runtime";
|
|
18121
18294
|
var AppInspectorContext = createContext9(void 0);
|
|
18122
18295
|
var useAppInspector = () => {
|
|
18123
18296
|
const context = useContext16(AppInspectorContext);
|
|
@@ -18128,7 +18301,7 @@ var useAppInspector = () => {
|
|
|
18128
18301
|
};
|
|
18129
18302
|
var AppInspectorAnalyticsBoundary = ({ children }) => {
|
|
18130
18303
|
useAppInspectorOpenAnalytics();
|
|
18131
|
-
return /* @__PURE__ */
|
|
18304
|
+
return /* @__PURE__ */ jsx132(Fragment8, { children });
|
|
18132
18305
|
};
|
|
18133
18306
|
var AppInspectorContextProvider = (props) => {
|
|
18134
18307
|
const api = useMemo7(
|
|
@@ -18160,7 +18333,7 @@ var AppInspectorContextProvider = (props) => {
|
|
|
18160
18333
|
}),
|
|
18161
18334
|
[deploymentContainer, props.linkComponent, props.localstackEndpoint, resolveLink]
|
|
18162
18335
|
);
|
|
18163
|
-
return /* @__PURE__ */
|
|
18336
|
+
return /* @__PURE__ */ jsx132(ApiProvider, { api, children: /* @__PURE__ */ jsx132(StatusProvider, { children: /* @__PURE__ */ jsx132(AppInspectorContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx132(AppInspectorAnalyticsBoundary, { children: props.children }) }) }) });
|
|
18164
18337
|
};
|
|
18165
18338
|
|
|
18166
18339
|
// src/hooks/use-spans-ws.tsx
|
|
@@ -18447,102 +18620,16 @@ var useSpans = () => {
|
|
|
18447
18620
|
|
|
18448
18621
|
// src/pages/trace-graph-page.tsx
|
|
18449
18622
|
import { ArrowBack } from "@mui/icons-material";
|
|
18450
|
-
import { Box as
|
|
18623
|
+
import { Box as Box20, Button as Button6, Drawer, Paper as Paper3 } from "@mui/material";
|
|
18451
18624
|
import { styled } from "@mui/material/styles";
|
|
18452
18625
|
import { ReactFlowProvider } from "@xyflow/react";
|
|
18453
18626
|
import { useCallback as useCallback11, useEffect as useEffect21, useRef as useRef17, useState as useState17 } from "react";
|
|
18454
18627
|
|
|
18455
18628
|
// src/components/event-details/event-details.tsx
|
|
18456
18629
|
import { Close as Close2 } from "@mui/icons-material";
|
|
18457
|
-
import { Alert as Alert4, Box as
|
|
18630
|
+
import { Alert as Alert4, Box as Box16, Chip as Chip3, Divider as Divider4, FormControlLabel as FormControlLabel2, IconButton as IconButton4, Stack as Stack2, Switch, Typography as Typography11 } from "@mui/material";
|
|
18458
18631
|
import { useMemo as useMemo12, useState as useState16 } from "react";
|
|
18459
18632
|
|
|
18460
|
-
// src/utils/iam-utils.ts
|
|
18461
|
-
function determinePermissionStatus(payload) {
|
|
18462
|
-
if (payload.explicit_deny_count && payload.explicit_deny_count > 0) {
|
|
18463
|
-
return "explicitly_denied";
|
|
18464
|
-
}
|
|
18465
|
-
if (payload.is_allowed && payload.explicit_allow_count && payload.explicit_allow_count > 0) {
|
|
18466
|
-
return "explicitly_allowed";
|
|
18467
|
-
}
|
|
18468
|
-
if (payload.is_allowed) {
|
|
18469
|
-
return "implicitly_allowed";
|
|
18470
|
-
}
|
|
18471
|
-
return "implicitly_denied";
|
|
18472
|
-
}
|
|
18473
|
-
function formatPermissionStatus(status) {
|
|
18474
|
-
switch (status) {
|
|
18475
|
-
case "explicitly_allowed": {
|
|
18476
|
-
return "Explicitly Allowed";
|
|
18477
|
-
}
|
|
18478
|
-
case "explicitly_denied": {
|
|
18479
|
-
return "Explicitly Denied";
|
|
18480
|
-
}
|
|
18481
|
-
case "implicitly_allowed": {
|
|
18482
|
-
return "Implicitly Allowed";
|
|
18483
|
-
}
|
|
18484
|
-
case "implicitly_denied": {
|
|
18485
|
-
return "Implicitly Denied";
|
|
18486
|
-
}
|
|
18487
|
-
}
|
|
18488
|
-
}
|
|
18489
|
-
function getPermissionStatusColor(status) {
|
|
18490
|
-
switch (status) {
|
|
18491
|
-
case "explicitly_allowed":
|
|
18492
|
-
case "implicitly_allowed": {
|
|
18493
|
-
return "success.main";
|
|
18494
|
-
}
|
|
18495
|
-
case "explicitly_denied": {
|
|
18496
|
-
return "error.main";
|
|
18497
|
-
}
|
|
18498
|
-
case "implicitly_denied": {
|
|
18499
|
-
return "warning.main";
|
|
18500
|
-
}
|
|
18501
|
-
}
|
|
18502
|
-
}
|
|
18503
|
-
function parseIAMEvent(payloadString) {
|
|
18504
|
-
try {
|
|
18505
|
-
const payload = JSON.parse(payloadString);
|
|
18506
|
-
const permission = determinePermissionStatus(payload);
|
|
18507
|
-
const actions = [];
|
|
18508
|
-
const resources = [];
|
|
18509
|
-
if (payload.explicit_allows) {
|
|
18510
|
-
for (const allow of payload.explicit_allows) {
|
|
18511
|
-
if (!actions.includes(allow.action)) actions.push(allow.action);
|
|
18512
|
-
if (!resources.includes(allow.resource)) resources.push(allow.resource);
|
|
18513
|
-
}
|
|
18514
|
-
}
|
|
18515
|
-
if (payload.explicit_denies) {
|
|
18516
|
-
for (const deny of payload.explicit_denies) {
|
|
18517
|
-
if (!actions.includes(deny.action)) actions.push(deny.action);
|
|
18518
|
-
if (!resources.includes(deny.resource)) resources.push(deny.resource);
|
|
18519
|
-
}
|
|
18520
|
-
}
|
|
18521
|
-
if (payload.implicit_denies) {
|
|
18522
|
-
for (const deny of payload.implicit_denies) {
|
|
18523
|
-
if (!actions.includes(deny.action)) actions.push(deny.action);
|
|
18524
|
-
if (!resources.includes(deny.resource)) resources.push(deny.resource);
|
|
18525
|
-
}
|
|
18526
|
-
}
|
|
18527
|
-
return {
|
|
18528
|
-
details: {
|
|
18529
|
-
actions,
|
|
18530
|
-
explicitAllows: payload.explicit_allow_count,
|
|
18531
|
-
explicitDenies: payload.explicit_deny_count,
|
|
18532
|
-
implicitDenies: payload.implicit_deny_count,
|
|
18533
|
-
resources
|
|
18534
|
-
},
|
|
18535
|
-
operation: payload.operation,
|
|
18536
|
-
permission,
|
|
18537
|
-
principal: payload.principal_arn,
|
|
18538
|
-
service: payload.service
|
|
18539
|
-
};
|
|
18540
|
-
} catch (error) {
|
|
18541
|
-
console.error("Error parsing IAM event payload:", error);
|
|
18542
|
-
return void 0;
|
|
18543
|
-
}
|
|
18544
|
-
}
|
|
18545
|
-
|
|
18546
18633
|
// src/utils/event-utils.ts
|
|
18547
18634
|
var iamEventParser = (eventName, attributes) => {
|
|
18548
18635
|
if (attributes?.payload && typeof attributes.payload === "string") {
|
|
@@ -18653,69 +18740,69 @@ var getEventGroupsByType = (events) => {
|
|
|
18653
18740
|
|
|
18654
18741
|
// src/components/event-details/event-detail.tsx
|
|
18655
18742
|
import { KeyboardArrowDown as KeyboardArrowDown2, KeyboardArrowRight as KeyboardArrowRight2 } from "@mui/icons-material";
|
|
18656
|
-
import { Box as
|
|
18743
|
+
import { Box as Box13, IconButton as IconButton3, Typography as Typography8 } from "@mui/material";
|
|
18657
18744
|
import { useEffect as useEffect18, useMemo as useMemo10, useRef as useRef15, useState as useState13 } from "react";
|
|
18658
18745
|
|
|
18659
18746
|
// src/components/status-icon.tsx
|
|
18660
|
-
import { Cancel, CheckCircle, Error as
|
|
18661
|
-
import { Box as
|
|
18662
|
-
import { jsx as
|
|
18663
|
-
var
|
|
18747
|
+
import { Cancel as Cancel2, CheckCircle, Error as Error3, Info, RemoveCircle } from "@mui/icons-material";
|
|
18748
|
+
import { Box as Box8 } from "@mui/material";
|
|
18749
|
+
import { jsx as jsx133 } from "react/jsx-runtime";
|
|
18750
|
+
var StatusIcon2 = ({ errorLevel }) => {
|
|
18664
18751
|
switch (errorLevel) {
|
|
18665
18752
|
case EventLevel.LevelError: {
|
|
18666
|
-
return /* @__PURE__ */
|
|
18753
|
+
return /* @__PURE__ */ jsx133(Cancel2, { sx: { color: "red" } });
|
|
18667
18754
|
}
|
|
18668
18755
|
case EventLevel.LevelInfo: {
|
|
18669
|
-
return /* @__PURE__ */
|
|
18756
|
+
return /* @__PURE__ */ jsx133(Info, { sx: { color: "gray" } });
|
|
18670
18757
|
}
|
|
18671
18758
|
case EventLevel.LevelPermission: {
|
|
18672
|
-
return /* @__PURE__ */
|
|
18759
|
+
return /* @__PURE__ */ jsx133(RemoveCircle, { sx: { color: "blue" } });
|
|
18673
18760
|
}
|
|
18674
18761
|
case EventLevel.LevelWarning: {
|
|
18675
|
-
return /* @__PURE__ */
|
|
18762
|
+
return /* @__PURE__ */ jsx133(Error3, { sx: { color: "orange" } });
|
|
18676
18763
|
}
|
|
18677
18764
|
default: {
|
|
18678
|
-
return /* @__PURE__ */
|
|
18765
|
+
return /* @__PURE__ */ jsx133(CheckCircle, { sx: { color: "lightgray" } });
|
|
18679
18766
|
}
|
|
18680
18767
|
}
|
|
18681
18768
|
};
|
|
18682
18769
|
|
|
18683
18770
|
// src/components/event-details/iam-event-detail.tsx
|
|
18684
18771
|
import { CheckCircle as CheckCircle2, Error as ErrorIcon, Warning } from "@mui/icons-material";
|
|
18685
|
-
import { Box as
|
|
18686
|
-
import { jsx as
|
|
18687
|
-
var DetailRow = ({ content, label }) => /* @__PURE__ */
|
|
18688
|
-
/* @__PURE__ */
|
|
18689
|
-
/* @__PURE__ */
|
|
18772
|
+
import { Box as Box9, Chip, Typography as Typography6 } from "@mui/material";
|
|
18773
|
+
import { jsx as jsx134, jsxs as jsxs125 } from "react/jsx-runtime";
|
|
18774
|
+
var DetailRow = ({ content, label }) => /* @__PURE__ */ jsxs125(Box9, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
18775
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
|
|
18776
|
+
/* @__PURE__ */ jsx134(Box9, { children: typeof content === "string" ? /* @__PURE__ */ jsx134(Typography6, { sx: { color: "text.primary", wordBreak: "break-word" }, variant: "caption", children: content }) : content })
|
|
18690
18777
|
] });
|
|
18691
18778
|
var PermissionIcon = ({ status }) => {
|
|
18692
18779
|
switch (status) {
|
|
18693
18780
|
case "explicitly_allowed":
|
|
18694
18781
|
case "implicitly_allowed": {
|
|
18695
|
-
return /* @__PURE__ */
|
|
18782
|
+
return /* @__PURE__ */ jsx134(CheckCircle2, { sx: { color: "success.main", fontSize: "1rem" } });
|
|
18696
18783
|
}
|
|
18697
18784
|
case "explicitly_denied": {
|
|
18698
|
-
return /* @__PURE__ */
|
|
18785
|
+
return /* @__PURE__ */ jsx134(ErrorIcon, { sx: { color: "error.main", fontSize: "1rem" } });
|
|
18699
18786
|
}
|
|
18700
18787
|
case "implicitly_denied": {
|
|
18701
|
-
return /* @__PURE__ */
|
|
18788
|
+
return /* @__PURE__ */ jsx134(Warning, { sx: { color: "warning.main", fontSize: "1rem" } });
|
|
18702
18789
|
}
|
|
18703
18790
|
}
|
|
18704
18791
|
};
|
|
18705
18792
|
var IAMEventDetail = ({ event }) => {
|
|
18706
18793
|
const payloadString = event.attributes?.payload;
|
|
18707
18794
|
if (!payloadString) {
|
|
18708
|
-
return /* @__PURE__ */
|
|
18795
|
+
return /* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "No IAM policy evaluation data available" });
|
|
18709
18796
|
}
|
|
18710
18797
|
const parsedIAM = parseIAMEvent(payloadString);
|
|
18711
18798
|
if (!parsedIAM) {
|
|
18712
|
-
return /* @__PURE__ */
|
|
18799
|
+
return /* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "Failed to parse IAM event data" });
|
|
18713
18800
|
}
|
|
18714
|
-
return /* @__PURE__ */
|
|
18715
|
-
/* @__PURE__ */
|
|
18801
|
+
return /* @__PURE__ */ jsxs125(Box9, { children: [
|
|
18802
|
+
/* @__PURE__ */ jsx134(Box9, { sx: { mb: 1.5 }, children: /* @__PURE__ */ jsx134(
|
|
18716
18803
|
Chip,
|
|
18717
18804
|
{
|
|
18718
|
-
icon: /* @__PURE__ */
|
|
18805
|
+
icon: /* @__PURE__ */ jsx134(PermissionIcon, { status: parsedIAM.permission }),
|
|
18719
18806
|
label: formatPermissionStatus(parsedIAM.permission),
|
|
18720
18807
|
size: "small",
|
|
18721
18808
|
sx: {
|
|
@@ -18725,36 +18812,36 @@ var IAMEventDetail = ({ event }) => {
|
|
|
18725
18812
|
variant: "outlined"
|
|
18726
18813
|
}
|
|
18727
18814
|
) }),
|
|
18728
|
-
/* @__PURE__ */
|
|
18729
|
-
/* @__PURE__ */
|
|
18730
|
-
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */
|
|
18815
|
+
/* @__PURE__ */ jsx134(DetailRow, { content: `${parsedIAM.service}:${parsedIAM.operation}`, label: "Operation" }),
|
|
18816
|
+
/* @__PURE__ */ jsx134(DetailRow, { content: parsedIAM.principal, label: "Principal" }),
|
|
18817
|
+
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ jsx134(
|
|
18731
18818
|
DetailRow,
|
|
18732
18819
|
{
|
|
18733
|
-
content: /* @__PURE__ */
|
|
18820
|
+
content: /* @__PURE__ */ jsx134(Box9, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ jsx134(Typography6, { sx: { color: "text.primary", display: "block" }, variant: "caption", children: action }, action)) }),
|
|
18734
18821
|
label: "Actions"
|
|
18735
18822
|
}
|
|
18736
18823
|
),
|
|
18737
|
-
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */
|
|
18824
|
+
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ jsx134(
|
|
18738
18825
|
DetailRow,
|
|
18739
18826
|
{
|
|
18740
|
-
content: /* @__PURE__ */
|
|
18827
|
+
content: /* @__PURE__ */ jsx134(Box9, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ jsx134(Typography6, { sx: { color: "text.primary", display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) }),
|
|
18741
18828
|
label: "Resources"
|
|
18742
18829
|
}
|
|
18743
18830
|
),
|
|
18744
|
-
(parsedIAM.details.explicitAllows !== void 0 || parsedIAM.details.explicitDenies !== void 0 || parsedIAM.details.implicitDenies !== void 0) && /* @__PURE__ */
|
|
18745
|
-
/* @__PURE__ */
|
|
18746
|
-
/* @__PURE__ */
|
|
18747
|
-
parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */
|
|
18748
|
-
/* @__PURE__ */
|
|
18749
|
-
/* @__PURE__ */
|
|
18831
|
+
(parsedIAM.details.explicitAllows !== void 0 || parsedIAM.details.explicitDenies !== void 0 || parsedIAM.details.implicitDenies !== void 0) && /* @__PURE__ */ jsxs125(Box9, { sx: { mt: 1.5 }, children: [
|
|
18832
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", sx: { display: "block", fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Policy Evaluation" }),
|
|
18833
|
+
/* @__PURE__ */ jsxs125(Box9, { sx: { display: "grid", gap: 1, gridTemplateColumns: "repeat(3, 1fr)" }, children: [
|
|
18834
|
+
parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */ jsxs125(Box9, { sx: { textAlign: "center" }, children: [
|
|
18835
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "success.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitAllows }),
|
|
18836
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "Explicit Allows" })
|
|
18750
18837
|
] }),
|
|
18751
|
-
parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */
|
|
18752
|
-
/* @__PURE__ */
|
|
18753
|
-
/* @__PURE__ */
|
|
18838
|
+
parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */ jsxs125(Box9, { sx: { textAlign: "center" }, children: [
|
|
18839
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "error.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitDenies }),
|
|
18840
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "Explicit Denies" })
|
|
18754
18841
|
] }),
|
|
18755
|
-
parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */
|
|
18756
|
-
/* @__PURE__ */
|
|
18757
|
-
/* @__PURE__ */
|
|
18842
|
+
parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */ jsxs125(Box9, { sx: { textAlign: "center" }, children: [
|
|
18843
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "warning.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.implicitDenies }),
|
|
18844
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "Implicit Denies" })
|
|
18758
18845
|
] })
|
|
18759
18846
|
] })
|
|
18760
18847
|
] })
|
|
@@ -18763,16 +18850,16 @@ var IAMEventDetail = ({ event }) => {
|
|
|
18763
18850
|
|
|
18764
18851
|
// src/components/event-details/iam-permission-detail.tsx
|
|
18765
18852
|
import { KeyboardArrowDown, KeyboardArrowRight } from "@mui/icons-material";
|
|
18766
|
-
import { Box as
|
|
18853
|
+
import { Box as Box10, Chip as Chip2, IconButton as IconButton2, Typography as Typography7 } from "@mui/material";
|
|
18767
18854
|
import { useMemo as useMemo8, useState as useState11 } from "react";
|
|
18768
|
-
import { jsx as
|
|
18855
|
+
import { jsx as jsx135, jsxs as jsxs126 } from "react/jsx-runtime";
|
|
18769
18856
|
var getChipColors = (status) => ({
|
|
18770
18857
|
backgroundColor: getPermissionStatusColor(status),
|
|
18771
18858
|
color: "white"
|
|
18772
18859
|
});
|
|
18773
|
-
var LabelValue = ({ label, value }) => /* @__PURE__ */
|
|
18774
|
-
/* @__PURE__ */
|
|
18775
|
-
/* @__PURE__ */
|
|
18860
|
+
var LabelValue = ({ label, value }) => /* @__PURE__ */ jsxs126(Box10, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
18861
|
+
/* @__PURE__ */ jsx135(Typography7, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
|
|
18862
|
+
/* @__PURE__ */ jsx135(Typography7, { sx: { wordBreak: "break-all" }, variant: "caption", children: value })
|
|
18776
18863
|
] });
|
|
18777
18864
|
var IAMPermissionItem = ({ event }) => {
|
|
18778
18865
|
const [isOpen, setIsOpen] = useState11(false);
|
|
@@ -18787,40 +18874,40 @@ var IAMPermissionItem = ({ event }) => {
|
|
|
18787
18874
|
return null;
|
|
18788
18875
|
}
|
|
18789
18876
|
const { chipColors, parsedIAM } = parsedData;
|
|
18790
|
-
return /* @__PURE__ */
|
|
18791
|
-
/* @__PURE__ */
|
|
18792
|
-
/* @__PURE__ */
|
|
18877
|
+
return /* @__PURE__ */ jsxs126(Box10, { sx: { mb: 0.5 }, children: [
|
|
18878
|
+
/* @__PURE__ */ jsxs126(Box10, { sx: { alignItems: "center", display: "flex", gap: 1 }, children: [
|
|
18879
|
+
/* @__PURE__ */ jsx135(IconButton2, { onClick: () => {
|
|
18793
18880
|
setIsOpen(!isOpen);
|
|
18794
|
-
}, size: "small", sx: { p: 0 }, children: isOpen ? /* @__PURE__ */
|
|
18795
|
-
/* @__PURE__ */
|
|
18796
|
-
/* @__PURE__ */
|
|
18881
|
+
}, size: "small", sx: { p: 0 }, children: isOpen ? /* @__PURE__ */ jsx135(KeyboardArrowDown, { sx: { fontSize: 16 } }) : /* @__PURE__ */ jsx135(KeyboardArrowRight, { sx: { fontSize: 16 } }) }),
|
|
18882
|
+
/* @__PURE__ */ jsx135(Chip2, { label: formatPermissionStatus(parsedIAM.permission), size: "small", sx: { ...chipColors, fontWeight: 500 } }),
|
|
18883
|
+
/* @__PURE__ */ jsxs126(Typography7, { color: "text.secondary", noWrap: true, sx: { flex: 1, overflow: "hidden", textOverflow: "ellipsis" }, variant: "caption", children: [
|
|
18797
18884
|
parsedIAM.service,
|
|
18798
18885
|
":",
|
|
18799
18886
|
parsedIAM.operation
|
|
18800
18887
|
] })
|
|
18801
18888
|
] }),
|
|
18802
|
-
isOpen && /* @__PURE__ */
|
|
18803
|
-
/* @__PURE__ */
|
|
18804
|
-
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */
|
|
18805
|
-
/* @__PURE__ */
|
|
18806
|
-
/* @__PURE__ */
|
|
18889
|
+
isOpen && /* @__PURE__ */ jsxs126(Box10, { sx: { borderColor: "divider", borderLeft: "2px solid", ml: 1, mt: 0.5, pl: 1.5, py: 0.5 }, children: [
|
|
18890
|
+
/* @__PURE__ */ jsx135(LabelValue, { label: "Principal", value: parsedIAM.principal }),
|
|
18891
|
+
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ jsxs126(Box10, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
18892
|
+
/* @__PURE__ */ jsx135(Typography7, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Actions" }),
|
|
18893
|
+
/* @__PURE__ */ jsx135(Box10, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ jsx135(Typography7, { sx: { display: "block" }, variant: "caption", children: action }, action)) })
|
|
18807
18894
|
] }),
|
|
18808
|
-
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */
|
|
18809
|
-
/* @__PURE__ */
|
|
18810
|
-
/* @__PURE__ */
|
|
18895
|
+
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ jsxs126(Box10, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr" }, children: [
|
|
18896
|
+
/* @__PURE__ */ jsx135(Typography7, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Resources" }),
|
|
18897
|
+
/* @__PURE__ */ jsx135(Box10, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ jsx135(Typography7, { sx: { display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) })
|
|
18811
18898
|
] })
|
|
18812
18899
|
] })
|
|
18813
18900
|
] });
|
|
18814
18901
|
};
|
|
18815
|
-
var IAMPermissionDetail = ({ events }) => /* @__PURE__ */
|
|
18902
|
+
var IAMPermissionDetail = ({ events }) => /* @__PURE__ */ jsx135(Box10, { children: events.map((event) => /* @__PURE__ */ jsx135(IAMPermissionItem, { event }, `${event.span_id}-${event.event_id}`)) });
|
|
18816
18903
|
|
|
18817
18904
|
// src/components/event-details/payload-viewer.tsx
|
|
18818
|
-
import { Box as
|
|
18905
|
+
import { Box as Box12, useTheme as useTheme3 } from "@mui/material";
|
|
18819
18906
|
|
|
18820
18907
|
// node_modules/@textea/json-viewer/dist/index.mjs
|
|
18821
18908
|
var import_copy_to_clipboard = __toESM(require_copy_to_clipboard(), 1);
|
|
18822
|
-
import { jsx as
|
|
18823
|
-
import { Box as
|
|
18909
|
+
import { jsx as jsx136, jsxs as jsxs127, Fragment as Fragment9 } from "react/jsx-runtime";
|
|
18910
|
+
import { Box as Box11, InputBase, NoSsr, SvgIcon, createTheme, ThemeProvider, Paper as Paper2 } from "@mui/material";
|
|
18824
18911
|
import { createContext as createContext10, useContext as useContext17, useState as useState12, useRef as useRef14, useCallback as useCallback10, useMemo as useMemo9, useEffect as useEffect17, memo as memo9 } from "react";
|
|
18825
18912
|
import { create, useStore, createStore } from "zustand";
|
|
18826
18913
|
function r(e2) {
|
|
@@ -19174,7 +19261,7 @@ function useInspect(path, value, nestedIndex) {
|
|
|
19174
19261
|
setInspect
|
|
19175
19262
|
];
|
|
19176
19263
|
}
|
|
19177
|
-
var DataBox = (props) => /* @__PURE__ */
|
|
19264
|
+
var DataBox = (props) => /* @__PURE__ */ jsx136(Box11, {
|
|
19178
19265
|
component: "div",
|
|
19179
19266
|
...props,
|
|
19180
19267
|
sx: {
|
|
@@ -19185,7 +19272,7 @@ var DataBox = (props) => /* @__PURE__ */ jsx135(Box10, {
|
|
|
19185
19272
|
var DataTypeLabel = (param) => {
|
|
19186
19273
|
let { dataType, enable = true } = param;
|
|
19187
19274
|
if (!enable) return null;
|
|
19188
|
-
return /* @__PURE__ */
|
|
19275
|
+
return /* @__PURE__ */ jsx136(DataBox, {
|
|
19189
19276
|
className: "data-type-label",
|
|
19190
19277
|
sx: {
|
|
19191
19278
|
mx: 0.5,
|
|
@@ -19203,18 +19290,18 @@ function defineEasyType(param) {
|
|
|
19203
19290
|
const storeDisplayDataTypes = useJsonViewerStore((store) => store.displayDataTypes);
|
|
19204
19291
|
const color2 = useJsonViewerStore((store) => store.colorspace[colorKey]);
|
|
19205
19292
|
const onSelect = useJsonViewerStore((store) => store.onSelect);
|
|
19206
|
-
return /* @__PURE__ */
|
|
19293
|
+
return /* @__PURE__ */ jsxs127(DataBox, {
|
|
19207
19294
|
onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(props.path, props.value),
|
|
19208
19295
|
sx: {
|
|
19209
19296
|
color: color2
|
|
19210
19297
|
},
|
|
19211
19298
|
children: [
|
|
19212
|
-
displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */
|
|
19299
|
+
displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */ jsx136(DataTypeLabel, {
|
|
19213
19300
|
dataType: type
|
|
19214
19301
|
}),
|
|
19215
|
-
/* @__PURE__ */
|
|
19302
|
+
/* @__PURE__ */ jsx136(DataBox, {
|
|
19216
19303
|
className: "".concat(type, "-value"),
|
|
19217
|
-
children: /* @__PURE__ */
|
|
19304
|
+
children: /* @__PURE__ */ jsx136(Render, {
|
|
19218
19305
|
path: props.path,
|
|
19219
19306
|
inspect: props.inspect,
|
|
19220
19307
|
setInspect: props.setInspect,
|
|
@@ -19254,7 +19341,7 @@ function defineEasyType(param) {
|
|
|
19254
19341
|
}, [
|
|
19255
19342
|
setValue
|
|
19256
19343
|
]);
|
|
19257
|
-
return /* @__PURE__ */
|
|
19344
|
+
return /* @__PURE__ */ jsx136(InputBase, {
|
|
19258
19345
|
autoFocus: true,
|
|
19259
19346
|
value,
|
|
19260
19347
|
onChange: handleChange,
|
|
@@ -19294,7 +19381,7 @@ var booleanType = defineEasyType({
|
|
|
19294
19381
|
},
|
|
19295
19382
|
Renderer: (param) => {
|
|
19296
19383
|
let { value } = param;
|
|
19297
|
-
return /* @__PURE__ */
|
|
19384
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19298
19385
|
children: value ? "true" : "false"
|
|
19299
19386
|
});
|
|
19300
19387
|
}
|
|
@@ -19313,7 +19400,7 @@ var dateType = defineEasyType({
|
|
|
19313
19400
|
colorKey: "base0D",
|
|
19314
19401
|
Renderer: (param) => {
|
|
19315
19402
|
let { value } = param;
|
|
19316
|
-
return /* @__PURE__ */
|
|
19403
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19317
19404
|
children: value.toLocaleTimeString("en-us", displayOptions)
|
|
19318
19405
|
});
|
|
19319
19406
|
}
|
|
@@ -19342,12 +19429,12 @@ var functionName = (func) => {
|
|
|
19342
19429
|
var lb = "{";
|
|
19343
19430
|
var rb = "}";
|
|
19344
19431
|
var PreFunctionType = (props) => {
|
|
19345
|
-
return /* @__PURE__ */
|
|
19432
|
+
return /* @__PURE__ */ jsxs127(NoSsr, {
|
|
19346
19433
|
children: [
|
|
19347
|
-
/* @__PURE__ */
|
|
19434
|
+
/* @__PURE__ */ jsx136(DataTypeLabel, {
|
|
19348
19435
|
dataType: "function"
|
|
19349
19436
|
}),
|
|
19350
|
-
/* @__PURE__ */
|
|
19437
|
+
/* @__PURE__ */ jsxs127(Box11, {
|
|
19351
19438
|
component: "span",
|
|
19352
19439
|
className: "data-function-start",
|
|
19353
19440
|
sx: {
|
|
@@ -19363,8 +19450,8 @@ var PreFunctionType = (props) => {
|
|
|
19363
19450
|
});
|
|
19364
19451
|
};
|
|
19365
19452
|
var PostFunctionType = () => {
|
|
19366
|
-
return /* @__PURE__ */
|
|
19367
|
-
children: /* @__PURE__ */
|
|
19453
|
+
return /* @__PURE__ */ jsx136(NoSsr, {
|
|
19454
|
+
children: /* @__PURE__ */ jsx136(Box11, {
|
|
19368
19455
|
component: "span",
|
|
19369
19456
|
className: "data-function-end",
|
|
19370
19457
|
children: rb
|
|
@@ -19373,15 +19460,15 @@ var PostFunctionType = () => {
|
|
|
19373
19460
|
};
|
|
19374
19461
|
var FunctionType = (props) => {
|
|
19375
19462
|
const functionColor = useJsonViewerStore((store) => store.colorspace.base05);
|
|
19376
|
-
return /* @__PURE__ */
|
|
19377
|
-
children: /* @__PURE__ */
|
|
19463
|
+
return /* @__PURE__ */ jsx136(NoSsr, {
|
|
19464
|
+
children: /* @__PURE__ */ jsx136(Box11, {
|
|
19378
19465
|
className: "data-function",
|
|
19379
19466
|
sx: {
|
|
19380
19467
|
display: props.inspect ? "block" : "inline-block",
|
|
19381
19468
|
pl: props.inspect ? 2 : 0,
|
|
19382
19469
|
color: functionColor
|
|
19383
19470
|
},
|
|
19384
|
-
children: props.inspect ? functionBody(props.value) : /* @__PURE__ */
|
|
19471
|
+
children: props.inspect ? functionBody(props.value) : /* @__PURE__ */ jsx136(Box11, {
|
|
19385
19472
|
component: "span",
|
|
19386
19473
|
className: "data-function-body",
|
|
19387
19474
|
onClick: () => props.setInspect(true),
|
|
@@ -19409,7 +19496,7 @@ var nullType = defineEasyType({
|
|
|
19409
19496
|
displayTypeLabel: false,
|
|
19410
19497
|
Renderer: () => {
|
|
19411
19498
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
19412
|
-
return /* @__PURE__ */
|
|
19499
|
+
return /* @__PURE__ */ jsx136(Box11, {
|
|
19413
19500
|
sx: {
|
|
19414
19501
|
fontSize: "0.8rem",
|
|
19415
19502
|
backgroundColor,
|
|
@@ -19432,7 +19519,7 @@ var nanType = defineEasyType({
|
|
|
19432
19519
|
deserialize: (value) => parseFloat(value),
|
|
19433
19520
|
Renderer: () => {
|
|
19434
19521
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
19435
|
-
return /* @__PURE__ */
|
|
19522
|
+
return /* @__PURE__ */ jsx136(Box11, {
|
|
19436
19523
|
sx: {
|
|
19437
19524
|
backgroundColor,
|
|
19438
19525
|
fontSize: "0.8rem",
|
|
@@ -19452,7 +19539,7 @@ var floatType = defineEasyType({
|
|
|
19452
19539
|
deserialize: (value) => parseFloat(value),
|
|
19453
19540
|
Renderer: (param) => {
|
|
19454
19541
|
let { value } = param;
|
|
19455
|
-
return /* @__PURE__ */
|
|
19542
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19456
19543
|
children: value
|
|
19457
19544
|
});
|
|
19458
19545
|
}
|
|
@@ -19466,7 +19553,7 @@ var intType = defineEasyType({
|
|
|
19466
19553
|
deserialize: (value) => parseFloat(value),
|
|
19467
19554
|
Renderer: (param) => {
|
|
19468
19555
|
let { value } = param;
|
|
19469
|
-
return /* @__PURE__ */
|
|
19556
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19470
19557
|
children: value
|
|
19471
19558
|
});
|
|
19472
19559
|
}
|
|
@@ -19479,16 +19566,16 @@ var bigIntType = defineEasyType({
|
|
|
19479
19566
|
deserialize: (value) => BigInt(value.replace(/\D/g, "")),
|
|
19480
19567
|
Renderer: (param) => {
|
|
19481
19568
|
let { value } = param;
|
|
19482
|
-
return /* @__PURE__ */
|
|
19569
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19483
19570
|
children: "".concat(value, "n")
|
|
19484
19571
|
});
|
|
19485
19572
|
}
|
|
19486
19573
|
});
|
|
19487
19574
|
var BaseIcon = (param) => {
|
|
19488
19575
|
let { d: d2, ...props } = param;
|
|
19489
|
-
return /* @__PURE__ */
|
|
19576
|
+
return /* @__PURE__ */ jsx136(SvgIcon, {
|
|
19490
19577
|
...props,
|
|
19491
|
-
children: /* @__PURE__ */
|
|
19578
|
+
children: /* @__PURE__ */ jsx136("path", {
|
|
19492
19579
|
d: d2
|
|
19493
19580
|
})
|
|
19494
19581
|
});
|
|
@@ -19503,55 +19590,55 @@ var Edit = "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.3
|
|
|
19503
19590
|
var ExpandMore = "M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z";
|
|
19504
19591
|
var Delete = "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5l-1-1h-5l-1 1H5v2h14V4z";
|
|
19505
19592
|
var AddBoxIcon = (props) => {
|
|
19506
|
-
return /* @__PURE__ */
|
|
19593
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19507
19594
|
d: AddBox,
|
|
19508
19595
|
...props
|
|
19509
19596
|
});
|
|
19510
19597
|
};
|
|
19511
19598
|
var CheckIcon = (props) => {
|
|
19512
|
-
return /* @__PURE__ */
|
|
19599
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19513
19600
|
d: Check,
|
|
19514
19601
|
...props
|
|
19515
19602
|
});
|
|
19516
19603
|
};
|
|
19517
19604
|
var ChevronRightIcon = (props) => {
|
|
19518
|
-
return /* @__PURE__ */
|
|
19605
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19519
19606
|
d: ChevronRight,
|
|
19520
19607
|
...props
|
|
19521
19608
|
});
|
|
19522
19609
|
};
|
|
19523
19610
|
var CircularArrowsIcon = (props) => {
|
|
19524
|
-
return /* @__PURE__ */
|
|
19611
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19525
19612
|
d: CircularArrows,
|
|
19526
19613
|
...props
|
|
19527
19614
|
});
|
|
19528
19615
|
};
|
|
19529
19616
|
var CloseIcon = (props) => {
|
|
19530
|
-
return /* @__PURE__ */
|
|
19617
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19531
19618
|
d: Close,
|
|
19532
19619
|
...props
|
|
19533
19620
|
});
|
|
19534
19621
|
};
|
|
19535
19622
|
var ContentCopyIcon = (props) => {
|
|
19536
|
-
return /* @__PURE__ */
|
|
19623
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19537
19624
|
d: ContentCopy,
|
|
19538
19625
|
...props
|
|
19539
19626
|
});
|
|
19540
19627
|
};
|
|
19541
19628
|
var EditIcon = (props) => {
|
|
19542
|
-
return /* @__PURE__ */
|
|
19629
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19543
19630
|
d: Edit,
|
|
19544
19631
|
...props
|
|
19545
19632
|
});
|
|
19546
19633
|
};
|
|
19547
19634
|
var ExpandMoreIcon = (props) => {
|
|
19548
|
-
return /* @__PURE__ */
|
|
19635
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19549
19636
|
d: ExpandMore,
|
|
19550
19637
|
...props
|
|
19551
19638
|
});
|
|
19552
19639
|
};
|
|
19553
19640
|
var DeleteIcon = (props) => {
|
|
19554
|
-
return /* @__PURE__ */
|
|
19641
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19555
19642
|
d: Delete,
|
|
19556
19643
|
...props
|
|
19557
19644
|
});
|
|
@@ -19590,7 +19677,7 @@ var PreObjectType = (props) => {
|
|
|
19590
19677
|
props.value
|
|
19591
19678
|
]);
|
|
19592
19679
|
const isTrap = useIsCycleReference(props.path, props.value);
|
|
19593
|
-
return /* @__PURE__ */
|
|
19680
|
+
return /* @__PURE__ */ jsxs127(Box11, {
|
|
19594
19681
|
component: "span",
|
|
19595
19682
|
className: "data-object-start",
|
|
19596
19683
|
sx: {
|
|
@@ -19598,7 +19685,7 @@ var PreObjectType = (props) => {
|
|
|
19598
19685
|
},
|
|
19599
19686
|
children: [
|
|
19600
19687
|
isArrayLike ? arrayLb : objectLb,
|
|
19601
|
-
shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */
|
|
19688
|
+
shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */ jsx136(Box11, {
|
|
19602
19689
|
component: "span",
|
|
19603
19690
|
sx: {
|
|
19604
19691
|
pl: 0.5,
|
|
@@ -19608,16 +19695,16 @@ var PreObjectType = (props) => {
|
|
|
19608
19695
|
},
|
|
19609
19696
|
children: sizeOfValue
|
|
19610
19697
|
}),
|
|
19611
|
-
isTrap && !props.inspect && /* @__PURE__ */
|
|
19698
|
+
isTrap && !props.inspect && /* @__PURE__ */ jsxs127(Fragment9, {
|
|
19612
19699
|
children: [
|
|
19613
|
-
/* @__PURE__ */
|
|
19700
|
+
/* @__PURE__ */ jsx136(CircularArrowsIcon, {
|
|
19614
19701
|
sx: {
|
|
19615
19702
|
fontSize: 12,
|
|
19616
19703
|
color: textColor,
|
|
19617
19704
|
mx: 0.5
|
|
19618
19705
|
}
|
|
19619
19706
|
}),
|
|
19620
|
-
/* @__PURE__ */
|
|
19707
|
+
/* @__PURE__ */ jsx136(DataBox, {
|
|
19621
19708
|
sx: {
|
|
19622
19709
|
cursor: "pointer",
|
|
19623
19710
|
userSelect: "none"
|
|
@@ -19647,7 +19734,7 @@ var PostObjectType = (props) => {
|
|
|
19647
19734
|
props.path,
|
|
19648
19735
|
props.value
|
|
19649
19736
|
]);
|
|
19650
|
-
return /* @__PURE__ */
|
|
19737
|
+
return /* @__PURE__ */ jsxs127(Box11, {
|
|
19651
19738
|
component: "span",
|
|
19652
19739
|
className: "data-object-end",
|
|
19653
19740
|
sx: {
|
|
@@ -19658,7 +19745,7 @@ var PostObjectType = (props) => {
|
|
|
19658
19745
|
},
|
|
19659
19746
|
children: [
|
|
19660
19747
|
isArrayLike ? arrayRb : objectRb,
|
|
19661
|
-
shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */
|
|
19748
|
+
shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */ jsx136(Box11, {
|
|
19662
19749
|
component: "span",
|
|
19663
19750
|
sx: {
|
|
19664
19751
|
pl: 0.5,
|
|
@@ -19698,7 +19785,7 @@ var ObjectType = (props) => {
|
|
|
19698
19785
|
...props.path,
|
|
19699
19786
|
key
|
|
19700
19787
|
];
|
|
19701
|
-
elements3.push(/* @__PURE__ */
|
|
19788
|
+
elements3.push(/* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19702
19789
|
path,
|
|
19703
19790
|
value: value2,
|
|
19704
19791
|
prevValue: props.prevValue instanceof Map ? props.prevValue.get(k2) : void 0,
|
|
@@ -19714,7 +19801,7 @@ var ObjectType = (props) => {
|
|
|
19714
19801
|
while (true) {
|
|
19715
19802
|
const nextResult = iterator2.next();
|
|
19716
19803
|
var _nextResult_done;
|
|
19717
|
-
elements3.push(/* @__PURE__ */
|
|
19804
|
+
elements3.push(/* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19718
19805
|
path: [
|
|
19719
19806
|
...props.path,
|
|
19720
19807
|
"iterator:".concat(count2)
|
|
@@ -19742,7 +19829,7 @@ var ObjectType = (props) => {
|
|
|
19742
19829
|
...props.path,
|
|
19743
19830
|
index
|
|
19744
19831
|
];
|
|
19745
|
-
return /* @__PURE__ */
|
|
19832
|
+
return /* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19746
19833
|
path,
|
|
19747
19834
|
value: value2,
|
|
19748
19835
|
prevValue: Array.isArray(props.prevValue) ? props.prevValue[index] : void 0,
|
|
@@ -19751,7 +19838,7 @@ var ObjectType = (props) => {
|
|
|
19751
19838
|
});
|
|
19752
19839
|
if (value.length > displayLength) {
|
|
19753
19840
|
const rest = value.length - displayLength;
|
|
19754
|
-
elements4.push(/* @__PURE__ */
|
|
19841
|
+
elements4.push(/* @__PURE__ */ jsxs127(DataBox, {
|
|
19755
19842
|
sx: {
|
|
19756
19843
|
cursor: "pointer",
|
|
19757
19844
|
lineHeight: 1.5,
|
|
@@ -19774,7 +19861,7 @@ var ObjectType = (props) => {
|
|
|
19774
19861
|
const prevElements = Array.isArray(props.prevValue) ? segmentArray(props.prevValue, groupArraysAfterLength) : void 0;
|
|
19775
19862
|
const elementsLastIndex = elements3.length - 1;
|
|
19776
19863
|
return elements3.map((list, index) => {
|
|
19777
|
-
return /* @__PURE__ */
|
|
19864
|
+
return /* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19778
19865
|
path: props.path,
|
|
19779
19866
|
value: list,
|
|
19780
19867
|
nestedIndex: index,
|
|
@@ -19801,7 +19888,7 @@ var ObjectType = (props) => {
|
|
|
19801
19888
|
...props.path,
|
|
19802
19889
|
key
|
|
19803
19890
|
];
|
|
19804
|
-
return /* @__PURE__ */
|
|
19891
|
+
return /* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19805
19892
|
path,
|
|
19806
19893
|
value: value2,
|
|
19807
19894
|
prevValue: (_props_prevValue = props.prevValue) === null || _props_prevValue === void 0 ? void 0 : _props_prevValue[key],
|
|
@@ -19810,7 +19897,7 @@ var ObjectType = (props) => {
|
|
|
19810
19897
|
});
|
|
19811
19898
|
if (entries.length > displayLength) {
|
|
19812
19899
|
const rest = entries.length - displayLength;
|
|
19813
|
-
elements2.push(/* @__PURE__ */
|
|
19900
|
+
elements2.push(/* @__PURE__ */ jsxs127(DataBox, {
|
|
19814
19901
|
sx: {
|
|
19815
19902
|
cursor: "pointer",
|
|
19816
19903
|
lineHeight: 1.5,
|
|
@@ -19848,7 +19935,7 @@ var ObjectType = (props) => {
|
|
|
19848
19935
|
if (isEmptyValue) {
|
|
19849
19936
|
return null;
|
|
19850
19937
|
}
|
|
19851
|
-
return /* @__PURE__ */
|
|
19938
|
+
return /* @__PURE__ */ jsx136(Box11, {
|
|
19852
19939
|
className: "data-object",
|
|
19853
19940
|
sx: {
|
|
19854
19941
|
display: props.inspect ? "block" : "inline-block",
|
|
@@ -19857,7 +19944,7 @@ var ObjectType = (props) => {
|
|
|
19857
19944
|
color: keyColor,
|
|
19858
19945
|
borderLeft: props.inspect ? "1px solid ".concat(borderColor) : "none"
|
|
19859
19946
|
},
|
|
19860
|
-
children: props.inspect ? elements : !isTrap && /* @__PURE__ */
|
|
19947
|
+
children: props.inspect ? elements : !isTrap && /* @__PURE__ */ jsx136(Box11, {
|
|
19861
19948
|
component: "span",
|
|
19862
19949
|
className: "data-object-body",
|
|
19863
19950
|
onClick: () => props.setInspect(true),
|
|
@@ -19889,7 +19976,7 @@ var stringType = defineEasyType({
|
|
|
19889
19976
|
const collapseStringsAfterLength = useJsonViewerStore((store) => store.collapseStringsAfterLength);
|
|
19890
19977
|
const value = showRest ? props.value : props.value.slice(0, collapseStringsAfterLength);
|
|
19891
19978
|
const hasRest = props.value.length > collapseStringsAfterLength;
|
|
19892
|
-
return /* @__PURE__ */
|
|
19979
|
+
return /* @__PURE__ */ jsxs127(Box11, {
|
|
19893
19980
|
component: "span",
|
|
19894
19981
|
sx: {
|
|
19895
19982
|
overflowWrap: "anywhere",
|
|
@@ -19907,7 +19994,7 @@ var stringType = defineEasyType({
|
|
|
19907
19994
|
children: [
|
|
19908
19995
|
'"',
|
|
19909
19996
|
value,
|
|
19910
|
-
hasRest && !showRest && /* @__PURE__ */
|
|
19997
|
+
hasRest && !showRest && /* @__PURE__ */ jsx136(Box11, {
|
|
19911
19998
|
component: "span",
|
|
19912
19999
|
sx: {
|
|
19913
20000
|
padding: 0.5
|
|
@@ -19926,7 +20013,7 @@ var undefinedType = defineEasyType({
|
|
|
19926
20013
|
displayTypeLabel: false,
|
|
19927
20014
|
Renderer: () => {
|
|
19928
20015
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
19929
|
-
return /* @__PURE__ */
|
|
20016
|
+
return /* @__PURE__ */ jsx136(Box11, {
|
|
19930
20017
|
sx: {
|
|
19931
20018
|
fontSize: "0.7rem",
|
|
19932
20019
|
backgroundColor,
|
|
@@ -20007,7 +20094,7 @@ function useTypeComponents(value, path) {
|
|
|
20007
20094
|
registry
|
|
20008
20095
|
]);
|
|
20009
20096
|
}
|
|
20010
|
-
var IconBox = (props) => /* @__PURE__ */
|
|
20097
|
+
var IconBox = (props) => /* @__PURE__ */ jsx136(Box11, {
|
|
20011
20098
|
component: "span",
|
|
20012
20099
|
...props,
|
|
20013
20100
|
sx: {
|
|
@@ -20193,18 +20280,18 @@ var DataKeyPair = (props) => {
|
|
|
20193
20280
|
]);
|
|
20194
20281
|
const actionIcons = useMemo9(() => {
|
|
20195
20282
|
if (editing) {
|
|
20196
|
-
return /* @__PURE__ */
|
|
20283
|
+
return /* @__PURE__ */ jsxs127(Fragment9, {
|
|
20197
20284
|
children: [
|
|
20198
|
-
/* @__PURE__ */
|
|
20199
|
-
children: /* @__PURE__ */
|
|
20285
|
+
/* @__PURE__ */ jsx136(IconBox, {
|
|
20286
|
+
children: /* @__PURE__ */ jsx136(CloseIcon, {
|
|
20200
20287
|
sx: {
|
|
20201
20288
|
fontSize: ".8rem"
|
|
20202
20289
|
},
|
|
20203
20290
|
onClick: abortEditing
|
|
20204
20291
|
})
|
|
20205
20292
|
}),
|
|
20206
|
-
/* @__PURE__ */
|
|
20207
|
-
children: /* @__PURE__ */
|
|
20293
|
+
/* @__PURE__ */ jsx136(IconBox, {
|
|
20294
|
+
children: /* @__PURE__ */ jsx136(CheckIcon, {
|
|
20208
20295
|
sx: {
|
|
20209
20296
|
fontSize: ".8rem"
|
|
20210
20297
|
},
|
|
@@ -20214,9 +20301,9 @@ var DataKeyPair = (props) => {
|
|
|
20214
20301
|
]
|
|
20215
20302
|
});
|
|
20216
20303
|
}
|
|
20217
|
-
return /* @__PURE__ */
|
|
20304
|
+
return /* @__PURE__ */ jsxs127(Fragment9, {
|
|
20218
20305
|
children: [
|
|
20219
|
-
enableClipboard && /* @__PURE__ */
|
|
20306
|
+
enableClipboard && /* @__PURE__ */ jsx136(IconBox, {
|
|
20220
20307
|
onClick: (event) => {
|
|
20221
20308
|
event.preventDefault();
|
|
20222
20309
|
try {
|
|
@@ -20225,41 +20312,41 @@ var DataKeyPair = (props) => {
|
|
|
20225
20312
|
console.error(e2);
|
|
20226
20313
|
}
|
|
20227
20314
|
},
|
|
20228
|
-
children: copied ? /* @__PURE__ */
|
|
20315
|
+
children: copied ? /* @__PURE__ */ jsx136(CheckIcon, {
|
|
20229
20316
|
sx: {
|
|
20230
20317
|
fontSize: ".8rem"
|
|
20231
20318
|
}
|
|
20232
|
-
}) : /* @__PURE__ */
|
|
20319
|
+
}) : /* @__PURE__ */ jsx136(ContentCopyIcon, {
|
|
20233
20320
|
sx: {
|
|
20234
20321
|
fontSize: ".8rem"
|
|
20235
20322
|
}
|
|
20236
20323
|
})
|
|
20237
20324
|
}),
|
|
20238
|
-
Editor && editable && serialize && deserialize && /* @__PURE__ */
|
|
20325
|
+
Editor && editable && serialize && deserialize && /* @__PURE__ */ jsx136(IconBox, {
|
|
20239
20326
|
onClick: startEditing,
|
|
20240
|
-
children: /* @__PURE__ */
|
|
20327
|
+
children: /* @__PURE__ */ jsx136(EditIcon, {
|
|
20241
20328
|
sx: {
|
|
20242
20329
|
fontSize: ".8rem"
|
|
20243
20330
|
}
|
|
20244
20331
|
})
|
|
20245
20332
|
}),
|
|
20246
|
-
enableAdd && /* @__PURE__ */
|
|
20333
|
+
enableAdd && /* @__PURE__ */ jsx136(IconBox, {
|
|
20247
20334
|
onClick: (event) => {
|
|
20248
20335
|
event.preventDefault();
|
|
20249
20336
|
onAdd === null || onAdd === void 0 ? void 0 : onAdd(path);
|
|
20250
20337
|
},
|
|
20251
|
-
children: /* @__PURE__ */
|
|
20338
|
+
children: /* @__PURE__ */ jsx136(AddBoxIcon, {
|
|
20252
20339
|
sx: {
|
|
20253
20340
|
fontSize: ".8rem"
|
|
20254
20341
|
}
|
|
20255
20342
|
})
|
|
20256
20343
|
}),
|
|
20257
|
-
enableDelete && /* @__PURE__ */
|
|
20344
|
+
enableDelete && /* @__PURE__ */ jsx136(IconBox, {
|
|
20258
20345
|
onClick: (event) => {
|
|
20259
20346
|
event.preventDefault();
|
|
20260
20347
|
onDelete === null || onDelete === void 0 ? void 0 : onDelete(path, value);
|
|
20261
20348
|
},
|
|
20262
|
-
children: /* @__PURE__ */
|
|
20349
|
+
children: /* @__PURE__ */ jsx136(DeleteIcon, {
|
|
20263
20350
|
sx: {
|
|
20264
20351
|
fontSize: ".9rem"
|
|
20265
20352
|
}
|
|
@@ -20307,7 +20394,7 @@ var DataKeyPair = (props) => {
|
|
|
20307
20394
|
prevValue,
|
|
20308
20395
|
nestedIndex
|
|
20309
20396
|
]);
|
|
20310
|
-
return /* @__PURE__ */
|
|
20397
|
+
return /* @__PURE__ */ jsxs127(Box11, {
|
|
20311
20398
|
className: "data-key-pair",
|
|
20312
20399
|
"data-testid": "data-key-pair" + path.join("."),
|
|
20313
20400
|
sx: {
|
|
@@ -20319,7 +20406,7 @@ var DataKeyPair = (props) => {
|
|
|
20319
20406
|
nestedIndex
|
|
20320
20407
|
]),
|
|
20321
20408
|
children: [
|
|
20322
|
-
/* @__PURE__ */
|
|
20409
|
+
/* @__PURE__ */ jsxs127(DataBox, {
|
|
20323
20410
|
component: "span",
|
|
20324
20411
|
className: "data-key",
|
|
20325
20412
|
sx: {
|
|
@@ -20340,7 +20427,7 @@ var DataKeyPair = (props) => {
|
|
|
20340
20427
|
setInspect
|
|
20341
20428
|
]),
|
|
20342
20429
|
children: [
|
|
20343
|
-
expandable ? inspect ? /* @__PURE__ */
|
|
20430
|
+
expandable ? inspect ? /* @__PURE__ */ jsx136(ExpandMoreIcon, {
|
|
20344
20431
|
className: "data-key-toggle-expanded",
|
|
20345
20432
|
sx: {
|
|
20346
20433
|
fontSize: ".8rem",
|
|
@@ -20348,7 +20435,7 @@ var DataKeyPair = (props) => {
|
|
|
20348
20435
|
cursor: "pointer"
|
|
20349
20436
|
}
|
|
20350
20437
|
}
|
|
20351
|
-
}) : /* @__PURE__ */
|
|
20438
|
+
}) : /* @__PURE__ */ jsx136(ChevronRightIcon, {
|
|
20352
20439
|
className: "data-key-toggle-collapsed",
|
|
20353
20440
|
sx: {
|
|
20354
20441
|
fontSize: ".8rem",
|
|
@@ -20357,44 +20444,44 @@ var DataKeyPair = (props) => {
|
|
|
20357
20444
|
}
|
|
20358
20445
|
}
|
|
20359
20446
|
}) : null,
|
|
20360
|
-
/* @__PURE__ */
|
|
20447
|
+
/* @__PURE__ */ jsx136(Box11, {
|
|
20361
20448
|
ref: highlightContainer,
|
|
20362
20449
|
className: "data-key-key",
|
|
20363
20450
|
component: "span",
|
|
20364
|
-
children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */
|
|
20451
|
+
children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */ jsxs127(Fragment9, {
|
|
20365
20452
|
children: [
|
|
20366
20453
|
'"',
|
|
20367
20454
|
rootName,
|
|
20368
20455
|
'"'
|
|
20369
20456
|
]
|
|
20370
|
-
}) : /* @__PURE__ */
|
|
20457
|
+
}) : /* @__PURE__ */ jsx136(Fragment9, {
|
|
20371
20458
|
children: rootName
|
|
20372
|
-
}) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */
|
|
20459
|
+
}) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */ jsx136(KeyRenderer, {
|
|
20373
20460
|
...downstreamProps
|
|
20374
|
-
}) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */
|
|
20461
|
+
}) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */ jsx136(Box11, {
|
|
20375
20462
|
component: "span",
|
|
20376
20463
|
style: {
|
|
20377
20464
|
color: numberKeyColor,
|
|
20378
20465
|
userSelect: isNumberKey ? "none" : "auto"
|
|
20379
20466
|
},
|
|
20380
20467
|
children: key
|
|
20381
|
-
}) : quotesOnKeys ? /* @__PURE__ */
|
|
20468
|
+
}) : quotesOnKeys ? /* @__PURE__ */ jsxs127(Fragment9, {
|
|
20382
20469
|
children: [
|
|
20383
20470
|
'"',
|
|
20384
20471
|
key,
|
|
20385
20472
|
'"'
|
|
20386
20473
|
]
|
|
20387
|
-
}) : /* @__PURE__ */
|
|
20474
|
+
}) : /* @__PURE__ */ jsx136(Fragment9, {
|
|
20388
20475
|
children: key
|
|
20389
20476
|
}))
|
|
20390
20477
|
}),
|
|
20391
|
-
isRoot ? rootName !== false && /* @__PURE__ */
|
|
20478
|
+
isRoot ? rootName !== false && /* @__PURE__ */ jsx136(DataBox, {
|
|
20392
20479
|
className: "data-key-colon",
|
|
20393
20480
|
sx: {
|
|
20394
20481
|
mr: 0.5
|
|
20395
20482
|
},
|
|
20396
20483
|
children: ":"
|
|
20397
|
-
}) : nestedIndex === void 0 && /* @__PURE__ */
|
|
20484
|
+
}) : nestedIndex === void 0 && /* @__PURE__ */ jsx136(DataBox, {
|
|
20398
20485
|
className: "data-key-colon",
|
|
20399
20486
|
sx: {
|
|
20400
20487
|
mr: 0.5,
|
|
@@ -20405,29 +20492,29 @@ var DataKeyPair = (props) => {
|
|
|
20405
20492
|
},
|
|
20406
20493
|
children: ":"
|
|
20407
20494
|
}),
|
|
20408
|
-
PreComponent && /* @__PURE__ */
|
|
20495
|
+
PreComponent && /* @__PURE__ */ jsx136(PreComponent, {
|
|
20409
20496
|
...downstreamProps
|
|
20410
20497
|
}),
|
|
20411
20498
|
isHover && expandable && inspect && actionIcons
|
|
20412
20499
|
]
|
|
20413
20500
|
}),
|
|
20414
|
-
editing && editable ? Editor && /* @__PURE__ */
|
|
20501
|
+
editing && editable ? Editor && /* @__PURE__ */ jsx136(Editor, {
|
|
20415
20502
|
path,
|
|
20416
20503
|
value: tempValue,
|
|
20417
20504
|
setValue: setTempValue,
|
|
20418
20505
|
abortEditing,
|
|
20419
20506
|
commitEditing
|
|
20420
|
-
}) : Component ? /* @__PURE__ */
|
|
20507
|
+
}) : Component ? /* @__PURE__ */ jsx136(Component, {
|
|
20421
20508
|
...downstreamProps
|
|
20422
|
-
}) : /* @__PURE__ */
|
|
20509
|
+
}) : /* @__PURE__ */ jsx136(Box11, {
|
|
20423
20510
|
component: "span",
|
|
20424
20511
|
className: "data-value-fallback",
|
|
20425
20512
|
children: "fallback: ".concat(value)
|
|
20426
20513
|
}),
|
|
20427
|
-
PostComponent && /* @__PURE__ */
|
|
20514
|
+
PostComponent && /* @__PURE__ */ jsx136(PostComponent, {
|
|
20428
20515
|
...downstreamProps
|
|
20429
20516
|
}),
|
|
20430
|
-
!last && displayComma && /* @__PURE__ */
|
|
20517
|
+
!last && displayComma && /* @__PURE__ */ jsx136(DataBox, {
|
|
20431
20518
|
children: ","
|
|
20432
20519
|
}),
|
|
20433
20520
|
isHover && expandable && !inspect && actionIcons,
|
|
@@ -20547,7 +20634,7 @@ var JsonViewerInner = (props) => {
|
|
|
20547
20634
|
const onMouseLeave = useCallback10(() => setHover(null), [
|
|
20548
20635
|
setHover
|
|
20549
20636
|
]);
|
|
20550
|
-
return /* @__PURE__ */
|
|
20637
|
+
return /* @__PURE__ */ jsx136(Paper2, {
|
|
20551
20638
|
elevation: 0,
|
|
20552
20639
|
className: clsx(themeCls, props.className),
|
|
20553
20640
|
style: props.style,
|
|
@@ -20558,7 +20645,7 @@ var JsonViewerInner = (props) => {
|
|
|
20558
20645
|
...props.sx
|
|
20559
20646
|
},
|
|
20560
20647
|
onMouseLeave,
|
|
20561
|
-
children: /* @__PURE__ */
|
|
20648
|
+
children: /* @__PURE__ */ jsx136(DataKeyPair, {
|
|
20562
20649
|
value,
|
|
20563
20650
|
prevValue,
|
|
20564
20651
|
path: emptyPath,
|
|
@@ -20610,13 +20697,13 @@ var JsonViewer = function JsonViewer2(props) {
|
|
|
20610
20697
|
};
|
|
20611
20698
|
const jsonViewerStore = useMemo9(() => createJsonViewerStore(props), []);
|
|
20612
20699
|
const typeRegistryStore = useMemo9(() => createTypeRegistryStore(), []);
|
|
20613
|
-
return /* @__PURE__ */
|
|
20700
|
+
return /* @__PURE__ */ jsx136(ThemeProvider, {
|
|
20614
20701
|
theme,
|
|
20615
|
-
children: /* @__PURE__ */
|
|
20702
|
+
children: /* @__PURE__ */ jsx136(TypeRegistryStoreContext.Provider, {
|
|
20616
20703
|
value: typeRegistryStore,
|
|
20617
|
-
children: /* @__PURE__ */
|
|
20704
|
+
children: /* @__PURE__ */ jsx136(JsonViewerStoreContext.Provider, {
|
|
20618
20705
|
value: jsonViewerStore,
|
|
20619
|
-
children: /* @__PURE__ */
|
|
20706
|
+
children: /* @__PURE__ */ jsx136(JsonViewerInner, {
|
|
20620
20707
|
...mixedProps
|
|
20621
20708
|
})
|
|
20622
20709
|
})
|
|
@@ -20626,7 +20713,7 @@ var JsonViewer = function JsonViewer2(props) {
|
|
|
20626
20713
|
|
|
20627
20714
|
// src/components/event-details/payload-viewer.tsx
|
|
20628
20715
|
import { memo as memo10 } from "react";
|
|
20629
|
-
import { jsx as
|
|
20716
|
+
import { jsx as jsx137 } from "react/jsx-runtime";
|
|
20630
20717
|
function tryParseJson(value) {
|
|
20631
20718
|
if (typeof value !== "string") {
|
|
20632
20719
|
return value;
|
|
@@ -20639,7 +20726,7 @@ function tryParseJson(value) {
|
|
|
20639
20726
|
}
|
|
20640
20727
|
var PayloadViewer = memo10(({ sx, testId, value }) => {
|
|
20641
20728
|
const theme = useTheme3();
|
|
20642
|
-
return /* @__PURE__ */
|
|
20729
|
+
return /* @__PURE__ */ jsx137(Box12, { "data-testid": testId, sx: { backgroundColor: "background.default", borderRadius: 1, fontSize: 12, overflow: "auto", p: 1, ...sx }, children: /* @__PURE__ */ jsx137(
|
|
20643
20730
|
JsonViewer,
|
|
20644
20731
|
{
|
|
20645
20732
|
displayDataTypes: false,
|
|
@@ -20653,10 +20740,10 @@ var PayloadViewer = memo10(({ sx, testId, value }) => {
|
|
|
20653
20740
|
});
|
|
20654
20741
|
|
|
20655
20742
|
// src/components/event-details/event-detail.tsx
|
|
20656
|
-
import { Fragment as
|
|
20657
|
-
var DetailRow2 = ({ content, label }) => /* @__PURE__ */
|
|
20658
|
-
/* @__PURE__ */
|
|
20659
|
-
/* @__PURE__ */
|
|
20743
|
+
import { Fragment as Fragment10, jsx as jsx138, jsxs as jsxs128 } from "react/jsx-runtime";
|
|
20744
|
+
var DetailRow2 = ({ content, label }) => /* @__PURE__ */ jsxs128(Box13, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
20745
|
+
/* @__PURE__ */ jsx138(Typography8, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
|
|
20746
|
+
/* @__PURE__ */ jsx138(Box13, { children: typeof content === "string" ? /* @__PURE__ */ jsx138(Typography8, { sx: { color: "text.primary", whiteSpace: "pre-wrap" }, variant: "caption", children: content }) : content })
|
|
20660
20747
|
] });
|
|
20661
20748
|
var EventMessage = ({ event }) => {
|
|
20662
20749
|
const [isOpen, setIsOpen] = useState13(false);
|
|
@@ -20688,9 +20775,9 @@ var EventMessage = ({ event }) => {
|
|
|
20688
20775
|
() => isOverflowing || hasAdditionalContent,
|
|
20689
20776
|
[isOverflowing, hasAdditionalContent]
|
|
20690
20777
|
);
|
|
20691
|
-
return /* @__PURE__ */
|
|
20692
|
-
/* @__PURE__ */
|
|
20693
|
-
Boolean(shouldShowToggle) && /* @__PURE__ */
|
|
20778
|
+
return /* @__PURE__ */ jsxs128(Box13, { sx: { display: "flex", flexDirection: "column" }, children: [
|
|
20779
|
+
/* @__PURE__ */ jsxs128(Box13, { sx: { alignItems: "center", display: "flex" }, children: [
|
|
20780
|
+
Boolean(shouldShowToggle) && /* @__PURE__ */ jsx138(
|
|
20694
20781
|
IconButton3,
|
|
20695
20782
|
{
|
|
20696
20783
|
onClick: () => {
|
|
@@ -20698,11 +20785,11 @@ var EventMessage = ({ event }) => {
|
|
|
20698
20785
|
},
|
|
20699
20786
|
size: "small",
|
|
20700
20787
|
sx: { mr: 1, p: 0 },
|
|
20701
|
-
children: isOpen ? /* @__PURE__ */
|
|
20788
|
+
children: isOpen ? /* @__PURE__ */ jsx138(KeyboardArrowDown2, { sx: { fontSize: 16 } }) : /* @__PURE__ */ jsx138(KeyboardArrowRight2, { sx: { fontSize: 16 } })
|
|
20702
20789
|
}
|
|
20703
20790
|
),
|
|
20704
|
-
/* @__PURE__ */
|
|
20705
|
-
|
|
20791
|
+
/* @__PURE__ */ jsx138(
|
|
20792
|
+
Typography8,
|
|
20706
20793
|
{
|
|
20707
20794
|
ref: textReference,
|
|
20708
20795
|
sx: {
|
|
@@ -20719,12 +20806,12 @@ var EventMessage = ({ event }) => {
|
|
|
20719
20806
|
}
|
|
20720
20807
|
)
|
|
20721
20808
|
] }),
|
|
20722
|
-
isOpen && /* @__PURE__ */
|
|
20723
|
-
Boolean(parsedMessage.message) && /* @__PURE__ */
|
|
20724
|
-
Boolean(parsedMessage.details) && /* @__PURE__ */
|
|
20809
|
+
isOpen && /* @__PURE__ */ jsx138(Box13, { sx: { borderColor: "divider", borderLeft: "2px solid", ml: 1, mt: 0.5, pl: 1.5, py: 0.5 }, children: isIAMPolicyEvent ? /* @__PURE__ */ jsx138(IAMEventDetail, { event }) : /* @__PURE__ */ jsxs128(Fragment10, { children: [
|
|
20810
|
+
Boolean(parsedMessage.message) && /* @__PURE__ */ jsx138(DetailRow2, { content: parsedMessage.message, label: "Message" }),
|
|
20811
|
+
Boolean(parsedMessage.details) && /* @__PURE__ */ jsx138(
|
|
20725
20812
|
DetailRow2,
|
|
20726
20813
|
{
|
|
20727
|
-
content: /* @__PURE__ */
|
|
20814
|
+
content: /* @__PURE__ */ jsx138(PayloadViewer, { sx: { px: 0 }, value: tryParseJson(parsedMessage.details) }),
|
|
20728
20815
|
label: "Details"
|
|
20729
20816
|
}
|
|
20730
20817
|
)
|
|
@@ -20756,15 +20843,15 @@ var EventDetail = ({
|
|
|
20756
20843
|
type
|
|
20757
20844
|
}) => {
|
|
20758
20845
|
if (type === "permission") {
|
|
20759
|
-
return /* @__PURE__ */
|
|
20846
|
+
return /* @__PURE__ */ jsx138(IAMPermissionDetail, { events });
|
|
20760
20847
|
}
|
|
20761
20848
|
const eventLevel = getEventLevelFromGroup(type);
|
|
20762
|
-
return /* @__PURE__ */
|
|
20763
|
-
/* @__PURE__ */
|
|
20764
|
-
/* @__PURE__ */
|
|
20765
|
-
/* @__PURE__ */
|
|
20849
|
+
return /* @__PURE__ */ jsxs128(Box13, { children: [
|
|
20850
|
+
/* @__PURE__ */ jsxs128(Box13, { sx: { alignItems: "center", display: "flex", mb: 0.5 }, children: [
|
|
20851
|
+
/* @__PURE__ */ jsx138(StatusIcon2, { errorLevel: eventLevel }),
|
|
20852
|
+
/* @__PURE__ */ jsx138(Typography8, { color: "text.secondary", sx: { fontWeight: 600, ml: 0.5 }, variant: "caption", children: displayText })
|
|
20766
20853
|
] }),
|
|
20767
|
-
/* @__PURE__ */
|
|
20854
|
+
/* @__PURE__ */ jsx138(Box13, { children: events.map((event) => /* @__PURE__ */ jsx138(Box13, { sx: { maxWidth: "100%", mb: 0.5 }, children: /* @__PURE__ */ jsx138(EventMessage, { event }) }, `${event.span_id}-${event.event_id}`)) })
|
|
20768
20855
|
] });
|
|
20769
20856
|
};
|
|
20770
20857
|
|
|
@@ -25146,16 +25233,16 @@ var ProtocolLib = class {
|
|
|
25146
25233
|
if (output !== void 0 && queryErrorHeader != null) {
|
|
25147
25234
|
const [Code, Type] = queryErrorHeader.split(";");
|
|
25148
25235
|
const entries = Object.entries(output);
|
|
25149
|
-
const
|
|
25236
|
+
const Error4 = {
|
|
25150
25237
|
Code,
|
|
25151
25238
|
Type
|
|
25152
25239
|
};
|
|
25153
|
-
Object.assign(output,
|
|
25240
|
+
Object.assign(output, Error4);
|
|
25154
25241
|
for (const [k2, v2] of entries) {
|
|
25155
|
-
|
|
25242
|
+
Error4[k2 === "message" ? "Message" : k2] = v2;
|
|
25156
25243
|
}
|
|
25157
|
-
delete
|
|
25158
|
-
output.Error =
|
|
25244
|
+
delete Error4.__type;
|
|
25245
|
+
output.Error = Error4;
|
|
25159
25246
|
}
|
|
25160
25247
|
}
|
|
25161
25248
|
queryCompatOutput(queryCompatErrorData, errorData) {
|
|
@@ -30455,9 +30542,9 @@ var QueryStatus = {
|
|
|
30455
30542
|
};
|
|
30456
30543
|
|
|
30457
30544
|
// src/components/event-details/lambda-invoke-logs-section.tsx
|
|
30458
|
-
import { Box as
|
|
30545
|
+
import { Box as Box14, CircularProgress as CircularProgress3, Stack, Typography as Typography9 } from "@mui/material";
|
|
30459
30546
|
import { useEffect as useEffect19, useMemo as useMemo11, useRef as useRef16, useState as useState14 } from "react";
|
|
30460
|
-
import { jsx as
|
|
30547
|
+
import { jsx as jsx139, jsxs as jsxs129 } from "react/jsx-runtime";
|
|
30461
30548
|
var POLL_INTERVAL_MS = 1e3;
|
|
30462
30549
|
async function pollQueryResults(client, queryId) {
|
|
30463
30550
|
return client.send(new GetQueryResultsCommand({ queryId }));
|
|
@@ -30547,30 +30634,30 @@ function useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, en
|
|
|
30547
30634
|
var LambdaInvokeLogsSection = ({ endTimeNano, functionName: functionName2, region, requestId, startTimeNano }) => {
|
|
30548
30635
|
const { error, loading, logs } = useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, endTimeNano);
|
|
30549
30636
|
if (loading) {
|
|
30550
|
-
return /* @__PURE__ */
|
|
30551
|
-
/* @__PURE__ */
|
|
30552
|
-
/* @__PURE__ */
|
|
30637
|
+
return /* @__PURE__ */ jsxs129(Stack, { alignItems: "center", direction: "row", spacing: 1, children: [
|
|
30638
|
+
/* @__PURE__ */ jsx139(CircularProgress3, { size: 14 }),
|
|
30639
|
+
/* @__PURE__ */ jsx139(Typography9, { color: "text.secondary", variant: "body2", children: "Loading logs\u2026" })
|
|
30553
30640
|
] });
|
|
30554
30641
|
}
|
|
30555
30642
|
if (error !== void 0) {
|
|
30556
|
-
return /* @__PURE__ */
|
|
30643
|
+
return /* @__PURE__ */ jsx139(Typography9, { color: "error", variant: "body2", children: error.message });
|
|
30557
30644
|
}
|
|
30558
30645
|
if (logs.length === 0) {
|
|
30559
|
-
return /* @__PURE__ */
|
|
30646
|
+
return /* @__PURE__ */ jsx139(Typography9, { color: "text.secondary", variant: "body2", children: "No logs found for this invocation." });
|
|
30560
30647
|
}
|
|
30561
|
-
return /* @__PURE__ */
|
|
30648
|
+
return /* @__PURE__ */ jsx139(Box14, { sx: { backgroundColor: (theme) => theme.palette.background.default, borderRadius: 1, p: 1 }, children: /* @__PURE__ */ jsx139("pre", { style: { margin: 0, overflow: "auto" }, children: logs.map((log) => /* @__PURE__ */ jsx139(Typography9, { variant: "body2", children: `[${log.timestamp}] ${log.message}` }, log.ptr)) }) });
|
|
30562
30649
|
};
|
|
30563
30650
|
|
|
30564
30651
|
// src/components/event-details/toggle-section.tsx
|
|
30565
30652
|
import { KeyboardArrowDown as KeyboardArrowDown3, KeyboardArrowRight as KeyboardArrowRight3 } from "@mui/icons-material";
|
|
30566
|
-
import { Box as
|
|
30653
|
+
import { Box as Box15, Typography as Typography10 } from "@mui/material";
|
|
30567
30654
|
import { useState as useState15 } from "react";
|
|
30568
|
-
import { jsx as
|
|
30655
|
+
import { jsx as jsx140, jsxs as jsxs130 } from "react/jsx-runtime";
|
|
30569
30656
|
var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
30570
30657
|
const [isOpen, setIsOpen] = useState15(initialOpen);
|
|
30571
|
-
return /* @__PURE__ */
|
|
30572
|
-
/* @__PURE__ */
|
|
30573
|
-
|
|
30658
|
+
return /* @__PURE__ */ jsxs130(Box15, { sx: { mt: 4 }, children: [
|
|
30659
|
+
/* @__PURE__ */ jsxs130(
|
|
30660
|
+
Box15,
|
|
30574
30661
|
{
|
|
30575
30662
|
onClick: () => {
|
|
30576
30663
|
setIsOpen(!isOpen);
|
|
@@ -30583,8 +30670,8 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
|
30583
30670
|
mb: 1
|
|
30584
30671
|
},
|
|
30585
30672
|
children: [
|
|
30586
|
-
/* @__PURE__ */
|
|
30587
|
-
|
|
30673
|
+
/* @__PURE__ */ jsxs130(
|
|
30674
|
+
Box15,
|
|
30588
30675
|
{
|
|
30589
30676
|
role: "button",
|
|
30590
30677
|
sx: {
|
|
@@ -30593,23 +30680,23 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
|
30593
30680
|
gap: 1
|
|
30594
30681
|
},
|
|
30595
30682
|
children: [
|
|
30596
|
-
/* @__PURE__ */
|
|
30597
|
-
isOpen ? /* @__PURE__ */
|
|
30683
|
+
/* @__PURE__ */ jsx140(Typography10, { sx: { fontWeight: 600 }, variant: "subtitle2", children: headline }),
|
|
30684
|
+
isOpen ? /* @__PURE__ */ jsx140(KeyboardArrowDown3, { sx: { color: "text.secondary", height: 20, width: 20 } }) : /* @__PURE__ */ jsx140(KeyboardArrowRight3, { sx: { color: "text.secondary", height: 20, width: 20 } })
|
|
30598
30685
|
]
|
|
30599
30686
|
}
|
|
30600
30687
|
),
|
|
30601
|
-
action !== false && /* @__PURE__ */
|
|
30688
|
+
action !== false && /* @__PURE__ */ jsx140(Box15, { onClick: (event) => {
|
|
30602
30689
|
event.stopPropagation();
|
|
30603
30690
|
}, children: action })
|
|
30604
30691
|
]
|
|
30605
30692
|
}
|
|
30606
30693
|
),
|
|
30607
|
-
isOpen && /* @__PURE__ */
|
|
30694
|
+
isOpen && /* @__PURE__ */ jsx140(Box15, { children })
|
|
30608
30695
|
] });
|
|
30609
30696
|
};
|
|
30610
30697
|
|
|
30611
30698
|
// src/components/event-details/event-details.tsx
|
|
30612
|
-
import { Fragment as
|
|
30699
|
+
import { Fragment as Fragment11, jsx as jsx141, jsxs as jsxs131 } from "react/jsx-runtime";
|
|
30613
30700
|
var checkIsLambdaInvoke = (span) => {
|
|
30614
30701
|
if (span.service_name !== "lambda") {
|
|
30615
30702
|
return false;
|
|
@@ -30630,7 +30717,7 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30630
30717
|
);
|
|
30631
30718
|
const [parseNestedJson, setParseNestedJson] = useState16(true);
|
|
30632
30719
|
if (!selectedEvent) {
|
|
30633
|
-
return /* @__PURE__ */
|
|
30720
|
+
return /* @__PURE__ */ jsx141(Box16, { sx: { p: 3, textAlign: "center" }, children: /* @__PURE__ */ jsx141(Typography11, { color: "text.secondary", variant: "body2", children: "Select an event to view details" }) });
|
|
30634
30721
|
}
|
|
30635
30722
|
const isLambdaInvoke = checkIsLambdaInvoke(selectedEvent);
|
|
30636
30723
|
const isSqsSendMessage = checkIsSqsSendMessage(selectedEvent);
|
|
@@ -30653,9 +30740,9 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30653
30740
|
const exceptionPayload = tryParseJson(selectedEvent.attributes?.["localstack.aws.service.exception"]);
|
|
30654
30741
|
const hasPayloads = requestPayload !== void 0 || responsePayload !== void 0 || exceptionPayload !== void 0 || isResponseSuppressed;
|
|
30655
30742
|
const duration = selectedEvent.end_time_unix_nano ? ((BigInt(selectedEvent.end_time_unix_nano) - BigInt(selectedEvent.start_time_unix_nano)) / BigInt("1000000")).toString() : void 0;
|
|
30656
|
-
return /* @__PURE__ */
|
|
30657
|
-
/* @__PURE__ */
|
|
30658
|
-
|
|
30743
|
+
return /* @__PURE__ */ jsxs131(Box16, { "data-testid": EVENT_DETAILS_TEST_ID, sx: { display: "flex", flexDirection: "column", height: "100%" }, children: [
|
|
30744
|
+
/* @__PURE__ */ jsxs131(
|
|
30745
|
+
Box16,
|
|
30659
30746
|
{
|
|
30660
30747
|
sx: {
|
|
30661
30748
|
alignItems: "center",
|
|
@@ -30667,63 +30754,63 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30667
30754
|
py: 1
|
|
30668
30755
|
},
|
|
30669
30756
|
children: [
|
|
30670
|
-
/* @__PURE__ */
|
|
30671
|
-
onClose && /* @__PURE__ */
|
|
30757
|
+
/* @__PURE__ */ jsx141(Box16, { children: /* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "h6", children: "Operation Details" }) }),
|
|
30758
|
+
onClose && /* @__PURE__ */ jsx141(IconButton4, { "data-testid": EVENT_DETAILS_CLOSE_BUTTON_TEST_ID, onClick: onClose, size: "small", children: /* @__PURE__ */ jsx141(Close2, {}) })
|
|
30672
30759
|
]
|
|
30673
30760
|
}
|
|
30674
30761
|
),
|
|
30675
|
-
/* @__PURE__ */
|
|
30676
|
-
/* @__PURE__ */
|
|
30677
|
-
/* @__PURE__ */
|
|
30678
|
-
/* @__PURE__ */
|
|
30679
|
-
/* @__PURE__ */
|
|
30680
|
-
/* @__PURE__ */
|
|
30762
|
+
/* @__PURE__ */ jsx141(Box16, { sx: { flexGrow: 1, overflow: "auto", p: 2 }, children: /* @__PURE__ */ jsxs131(Stack2, { spacing: 2, children: [
|
|
30763
|
+
/* @__PURE__ */ jsx141(ToggleSection, { headline: "Basic Information", children: /* @__PURE__ */ jsxs131(Stack2, { "data-testid": EVENT_DETAILS_SECTION_BASIC_INFORMATION_TEST_ID, spacing: 1, children: [
|
|
30764
|
+
/* @__PURE__ */ jsxs131(Box16, { sx: { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" }, children: [
|
|
30765
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30766
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Service" }),
|
|
30767
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_SERVICE_NAME_TEST_ID, variant: "body2", children: getServiceDisplayName(selectedEvent.service_name) })
|
|
30681
30768
|
] }),
|
|
30682
|
-
/* @__PURE__ */
|
|
30683
|
-
/* @__PURE__ */
|
|
30684
|
-
/* @__PURE__ */
|
|
30769
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30770
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Action" }),
|
|
30771
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_OPERATION_NAME_TEST_ID, variant: "body2", children: selectedEvent.operation_name })
|
|
30685
30772
|
] })
|
|
30686
30773
|
] }),
|
|
30687
|
-
/* @__PURE__ */
|
|
30688
|
-
/* @__PURE__ */
|
|
30689
|
-
/* @__PURE__ */
|
|
30690
|
-
/* @__PURE__ */
|
|
30774
|
+
/* @__PURE__ */ jsxs131(Box16, { sx: cfnResourceType ? { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" } : void 0, children: [
|
|
30775
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30776
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource" }),
|
|
30777
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_RESOURCE_NAME_TEST_ID, variant: "body2", children: selectedEvent.resource_name })
|
|
30691
30778
|
] }),
|
|
30692
|
-
Boolean(cfnResourceType) && /* @__PURE__ */
|
|
30693
|
-
/* @__PURE__ */
|
|
30694
|
-
/* @__PURE__ */
|
|
30779
|
+
Boolean(cfnResourceType) && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30780
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource Type" }),
|
|
30781
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_CFN_RESOURCE_TYPE_TEST_ID, variant: "body2", children: cfnResourceType })
|
|
30695
30782
|
] })
|
|
30696
30783
|
] }),
|
|
30697
|
-
Boolean(resourceArn) && /* @__PURE__ */
|
|
30698
|
-
/* @__PURE__ */
|
|
30699
|
-
/* @__PURE__ */
|
|
30784
|
+
Boolean(resourceArn) && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30785
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource ARN" }),
|
|
30786
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_RESOURCE_ARN_TEST_ID, variant: "body2", children: resourceArn })
|
|
30700
30787
|
] }),
|
|
30701
|
-
/* @__PURE__ */
|
|
30702
|
-
/* @__PURE__ */
|
|
30703
|
-
/* @__PURE__ */
|
|
30704
|
-
/* @__PURE__ */
|
|
30788
|
+
/* @__PURE__ */ jsxs131(Box16, { sx: { display: "grid", gap: 1, gridTemplateColumns: "1.3fr 1fr" }, children: [
|
|
30789
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30790
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Account" }),
|
|
30791
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_ACCOUNT_TEST_ID, variant: "body2", children: selectedEvent.account_id })
|
|
30705
30792
|
] }),
|
|
30706
|
-
/* @__PURE__ */
|
|
30707
|
-
/* @__PURE__ */
|
|
30708
|
-
/* @__PURE__ */
|
|
30793
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30794
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Region" }),
|
|
30795
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_REGION_TEST_ID, variant: "body2", children: selectedEvent.region })
|
|
30709
30796
|
] })
|
|
30710
30797
|
] }),
|
|
30711
|
-
/* @__PURE__ */
|
|
30712
|
-
/* @__PURE__ */
|
|
30713
|
-
/* @__PURE__ */
|
|
30714
|
-
/* @__PURE__ */
|
|
30798
|
+
/* @__PURE__ */ jsxs131(Box16, { sx: { display: "grid", gap: 1, gridTemplateColumns: duration === void 0 ? "1fr" : "1.3fr 1fr" }, children: [
|
|
30799
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30800
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Start Time" }),
|
|
30801
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_START_TIME_TEST_ID, variant: "body2", children: unixNanoToDate(selectedEvent.start_time_unix_nano)?.toISOString() })
|
|
30715
30802
|
] }),
|
|
30716
|
-
duration !== void 0 && /* @__PURE__ */
|
|
30717
|
-
/* @__PURE__ */
|
|
30718
|
-
/* @__PURE__ */
|
|
30803
|
+
duration !== void 0 && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30804
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Duration" }),
|
|
30805
|
+
/* @__PURE__ */ jsxs131(Typography11, { "data-testid": EVENT_DETAILS_DURATION_TEST_ID, variant: "body2", children: [
|
|
30719
30806
|
duration,
|
|
30720
30807
|
"ms"
|
|
30721
30808
|
] })
|
|
30722
30809
|
] })
|
|
30723
30810
|
] }),
|
|
30724
|
-
/* @__PURE__ */
|
|
30725
|
-
/* @__PURE__ */
|
|
30726
|
-
/* @__PURE__ */
|
|
30811
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30812
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Status" }),
|
|
30813
|
+
/* @__PURE__ */ jsx141(Stack2, { alignItems: "center", direction: "row", flexWrap: "wrap", gap: 1, sx: { mb: eventGroups.errors || eventGroups.warnings ? 1 : 0 }, children: /* @__PURE__ */ jsx141(
|
|
30727
30814
|
Chip3,
|
|
30728
30815
|
{
|
|
30729
30816
|
color: selectedEvent.status_code === 2 ? "error" : selectedEvent.status_code === 1 ? "success" : "default",
|
|
@@ -30734,50 +30821,50 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30734
30821
|
) })
|
|
30735
30822
|
] })
|
|
30736
30823
|
] }) }),
|
|
30737
|
-
/* @__PURE__ */
|
|
30738
|
-
/* @__PURE__ */
|
|
30739
|
-
selectedEvent.iam_errors_suppressed && /* @__PURE__ */
|
|
30740
|
-
!selectedEvent.iam_errors_suppressed && !eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */
|
|
30741
|
-
eventGroups.permissions && /* @__PURE__ */
|
|
30742
|
-
eventGroups.errors && /* @__PURE__ */
|
|
30743
|
-
eventGroups.warnings && /* @__PURE__ */
|
|
30824
|
+
/* @__PURE__ */ jsx141(Divider4, {}),
|
|
30825
|
+
/* @__PURE__ */ jsxs131(ToggleSection, { headline: "Permissions", children: [
|
|
30826
|
+
selectedEvent.iam_errors_suppressed && /* @__PURE__ */ jsx141(Alert4, { "data-testid": EVENT_DETAILS_IAM_ERRORS_SUPPRESSED_TEST_ID, severity: "warning", sx: { mb: 1 }, children: "IAM errors are suppressed \u2014 upgrade your license to view" }),
|
|
30827
|
+
!selectedEvent.iam_errors_suppressed && !eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */ jsx141(Typography11, { color: "text.secondary", variant: "body2", children: "There is no permission information available." }),
|
|
30828
|
+
eventGroups.permissions && /* @__PURE__ */ jsx141(EventDetail, { displayText: "Permissions", events: eventGroups.permissions, type: "permission" }),
|
|
30829
|
+
eventGroups.errors && /* @__PURE__ */ jsx141(EventDetail, { displayText: "Error", events: eventGroups.errors, type: "error" }),
|
|
30830
|
+
eventGroups.warnings && /* @__PURE__ */ jsx141(EventDetail, { displayText: "Warning", events: eventGroups.warnings, type: "warning" })
|
|
30744
30831
|
] }),
|
|
30745
|
-
hasPayloads && /* @__PURE__ */
|
|
30746
|
-
/* @__PURE__ */
|
|
30747
|
-
/* @__PURE__ */
|
|
30832
|
+
hasPayloads && /* @__PURE__ */ jsxs131(Fragment11, { children: [
|
|
30833
|
+
/* @__PURE__ */ jsx141(Divider4, {}),
|
|
30834
|
+
/* @__PURE__ */ jsx141(
|
|
30748
30835
|
ToggleSection,
|
|
30749
30836
|
{
|
|
30750
|
-
action: /* @__PURE__ */
|
|
30837
|
+
action: /* @__PURE__ */ jsx141(
|
|
30751
30838
|
FormControlLabel2,
|
|
30752
30839
|
{
|
|
30753
|
-
control: /* @__PURE__ */
|
|
30840
|
+
control: /* @__PURE__ */ jsx141(Switch, { checked: !parseNestedJson, onChange: (event) => {
|
|
30754
30841
|
setParseNestedJson(!event.target.checked);
|
|
30755
30842
|
}, size: "small" }),
|
|
30756
|
-
label: /* @__PURE__ */
|
|
30843
|
+
label: /* @__PURE__ */ jsx141(Typography11, { variant: "caption", children: "View raw data" }),
|
|
30757
30844
|
sx: { mr: 0 }
|
|
30758
30845
|
}
|
|
30759
30846
|
),
|
|
30760
30847
|
headline: "Payloads",
|
|
30761
|
-
children: /* @__PURE__ */
|
|
30762
|
-
requestPayload !== void 0 && /* @__PURE__ */
|
|
30763
|
-
/* @__PURE__ */
|
|
30764
|
-
/* @__PURE__ */
|
|
30848
|
+
children: /* @__PURE__ */ jsxs131(Stack2, { spacing: 2, children: [
|
|
30849
|
+
requestPayload !== void 0 && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30850
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Request" }),
|
|
30851
|
+
/* @__PURE__ */ jsx141(PayloadViewer, { testId: EVENT_DETAILS_REQUEST_PAYLOAD, value: requestPayload })
|
|
30765
30852
|
] }),
|
|
30766
|
-
(responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */
|
|
30767
|
-
/* @__PURE__ */
|
|
30768
|
-
isResponseSuppressed ? /* @__PURE__ */
|
|
30853
|
+
(responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30854
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Response" }),
|
|
30855
|
+
isResponseSuppressed ? /* @__PURE__ */ jsx141(Box16, { sx: { py: 1 }, children: /* @__PURE__ */ jsx141(Alert4, { severity: "warning", sx: { mb: 1 }, children: "Response payload is available \u2014 upgrade your license to view" }) }) : /* @__PURE__ */ jsx141(PayloadViewer, { testId: EVENT_DETAILS_RESPONSE_PAYLOAD_TEST_ID, value: responsePayload })
|
|
30769
30856
|
] }),
|
|
30770
|
-
exceptionPayload !== void 0 && /* @__PURE__ */
|
|
30771
|
-
/* @__PURE__ */
|
|
30772
|
-
/* @__PURE__ */
|
|
30857
|
+
exceptionPayload !== void 0 && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30858
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Exception" }),
|
|
30859
|
+
/* @__PURE__ */ jsx141(PayloadViewer, { testId: EVENT_DETAILS_EXCEPTION_PAYLOAD_TEST_ID, value: exceptionPayload })
|
|
30773
30860
|
] })
|
|
30774
30861
|
] })
|
|
30775
30862
|
}
|
|
30776
30863
|
)
|
|
30777
30864
|
] }),
|
|
30778
|
-
isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */
|
|
30779
|
-
/* @__PURE__ */
|
|
30780
|
-
/* @__PURE__ */
|
|
30865
|
+
isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */ jsxs131(Fragment11, { children: [
|
|
30866
|
+
/* @__PURE__ */ jsx141(Divider4, {}),
|
|
30867
|
+
/* @__PURE__ */ jsx141(ToggleSection, { headline: "Lambda Logs", children: /* @__PURE__ */ jsx141(
|
|
30781
30868
|
LambdaInvokeLogsSection,
|
|
30782
30869
|
{
|
|
30783
30870
|
endTimeNano: selectedEvent.end_time_unix_nano ?? selectedEvent.start_time_unix_nano,
|
|
@@ -30788,21 +30875,21 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30788
30875
|
}
|
|
30789
30876
|
) })
|
|
30790
30877
|
] }),
|
|
30791
|
-
/* @__PURE__ */
|
|
30792
|
-
/* @__PURE__ */
|
|
30793
|
-
/* @__PURE__ */
|
|
30794
|
-
/* @__PURE__ */
|
|
30795
|
-
/* @__PURE__ */
|
|
30878
|
+
/* @__PURE__ */ jsx141(Divider4, {}),
|
|
30879
|
+
/* @__PURE__ */ jsx141(ToggleSection, { headline: "Advanced Information", initialOpen: false, children: /* @__PURE__ */ jsxs131(Stack2, { spacing: 1, children: [
|
|
30880
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30881
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Span ID" }),
|
|
30882
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_SPAN_ID_TEST_ID, variant: "body2", children: selectedEvent.span_id })
|
|
30796
30883
|
] }),
|
|
30797
|
-
/* @__PURE__ */
|
|
30798
|
-
/* @__PURE__ */
|
|
30799
|
-
/* @__PURE__ */
|
|
30884
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30885
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Trace ID" }),
|
|
30886
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_TRACE_ID_TEST_ID, variant: "body2", children: selectedEvent.trace_id })
|
|
30800
30887
|
] }),
|
|
30801
|
-
requestId !== void 0 && /* @__PURE__ */
|
|
30802
|
-
/* @__PURE__ */
|
|
30803
|
-
/* @__PURE__ */
|
|
30888
|
+
requestId !== void 0 && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30889
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Request ID" }),
|
|
30890
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_REQUEST_ID_TEST_ID, variant: "body2", children: requestId })
|
|
30804
30891
|
] }),
|
|
30805
|
-
eventGroups.info && /* @__PURE__ */
|
|
30892
|
+
eventGroups.info && /* @__PURE__ */ jsx141(EventDetail, { displayText: "Info", events: eventGroups.info, type: "info" })
|
|
30806
30893
|
] }) })
|
|
30807
30894
|
] }) })
|
|
30808
30895
|
] });
|
|
@@ -30815,27 +30902,27 @@ import { Background, MarkerType, Position as Position2, ReactFlow, useEdgesState
|
|
|
30815
30902
|
import { useEffect as useEffect20 } from "react";
|
|
30816
30903
|
|
|
30817
30904
|
// src/components/trace-graph/service-node.tsx
|
|
30818
|
-
import { Box as
|
|
30905
|
+
import { Box as Box18, Divider as Divider5, Stack as Stack3, Typography as Typography12, useTheme as useTheme4 } from "@mui/material";
|
|
30819
30906
|
import "@xyflow/react/dist/style.css";
|
|
30820
30907
|
import { Handle, Position } from "@xyflow/react";
|
|
30821
30908
|
import { memo as memo11 } from "react";
|
|
30822
30909
|
|
|
30823
30910
|
// src/components/trace-graph/problem-indicator.tsx
|
|
30824
30911
|
import { Error as ErrorIcon2, Info as Info2, Warning as Warning2 } from "@mui/icons-material";
|
|
30825
|
-
import { Box as
|
|
30912
|
+
import { Box as Box17, Tooltip as Tooltip5 } from "@mui/material";
|
|
30826
30913
|
import { useMemo as useMemo13 } from "react";
|
|
30827
|
-
import { jsx as
|
|
30914
|
+
import { jsx as jsx142 } from "react/jsx-runtime";
|
|
30828
30915
|
var ProblemIndicator = ({ error }) => {
|
|
30829
30916
|
const icon = useMemo13(() => {
|
|
30830
30917
|
switch (error.level) {
|
|
30831
30918
|
case "error": {
|
|
30832
|
-
return /* @__PURE__ */
|
|
30919
|
+
return /* @__PURE__ */ jsx142(ErrorIcon2, { sx: { color: "#d32f2f", fontSize: "14px" } });
|
|
30833
30920
|
}
|
|
30834
30921
|
case "warning": {
|
|
30835
|
-
return /* @__PURE__ */
|
|
30922
|
+
return /* @__PURE__ */ jsx142(Warning2, { sx: { color: "#ff9800", fontSize: "14px" } });
|
|
30836
30923
|
}
|
|
30837
30924
|
default: {
|
|
30838
|
-
return /* @__PURE__ */
|
|
30925
|
+
return /* @__PURE__ */ jsx142(Info2, { sx: { color: "#2196f3", fontSize: "14px" } });
|
|
30839
30926
|
}
|
|
30840
30927
|
}
|
|
30841
30928
|
}, [error.level]);
|
|
@@ -30852,8 +30939,8 @@ var ProblemIndicator = ({ error }) => {
|
|
|
30852
30939
|
}
|
|
30853
30940
|
}
|
|
30854
30941
|
}, [error.level]);
|
|
30855
|
-
return /* @__PURE__ */
|
|
30856
|
-
|
|
30942
|
+
return /* @__PURE__ */ jsx142(Tooltip5, { arrow: true, title: error.message ?? "Issue detected", children: /* @__PURE__ */ jsx142(
|
|
30943
|
+
Box17,
|
|
30857
30944
|
{
|
|
30858
30945
|
sx: {
|
|
30859
30946
|
alignItems: "center",
|
|
@@ -30872,7 +30959,7 @@ var ProblemIndicator = ({ error }) => {
|
|
|
30872
30959
|
};
|
|
30873
30960
|
|
|
30874
30961
|
// src/components/trace-graph/service-node.tsx
|
|
30875
|
-
import { jsx as
|
|
30962
|
+
import { jsx as jsx143, jsxs as jsxs132 } from "react/jsx-runtime";
|
|
30876
30963
|
var handleStyle = {
|
|
30877
30964
|
backgroundColor: "white",
|
|
30878
30965
|
borderColor: "lightgray",
|
|
@@ -30881,8 +30968,8 @@ var handleStyle = {
|
|
|
30881
30968
|
var ServiceNode = memo11(({ data, selected }) => {
|
|
30882
30969
|
const theme = useTheme4();
|
|
30883
30970
|
const hasErrors = (data.event.errors && data.event.errors.length > 0) ?? false;
|
|
30884
|
-
return /* @__PURE__ */
|
|
30885
|
-
|
|
30971
|
+
return /* @__PURE__ */ jsxs132(
|
|
30972
|
+
Box18,
|
|
30886
30973
|
{
|
|
30887
30974
|
"data-testid": SERVICE_NODE_TEST_ID,
|
|
30888
30975
|
role: "button",
|
|
@@ -30904,19 +30991,19 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
30904
30991
|
},
|
|
30905
30992
|
tabIndex: 0,
|
|
30906
30993
|
children: [
|
|
30907
|
-
/* @__PURE__ */
|
|
30908
|
-
/* @__PURE__ */
|
|
30909
|
-
/* @__PURE__ */
|
|
30994
|
+
/* @__PURE__ */ jsx143(Handle, { position: Position.Left, style: handleStyle, type: "target" }),
|
|
30995
|
+
/* @__PURE__ */ jsx143(Handle, { position: Position.Right, style: handleStyle, type: "source" }),
|
|
30996
|
+
/* @__PURE__ */ jsxs132(
|
|
30910
30997
|
Stack3,
|
|
30911
30998
|
{
|
|
30912
30999
|
alignItems: "center",
|
|
30913
31000
|
direction: "row",
|
|
30914
31001
|
sx: { gap: "8px", pb: "2px", pt: "6px", px: "8px" },
|
|
30915
31002
|
children: [
|
|
30916
|
-
/* @__PURE__ */
|
|
30917
|
-
/* @__PURE__ */
|
|
30918
|
-
/* @__PURE__ */
|
|
30919
|
-
|
|
31003
|
+
/* @__PURE__ */ jsx143(Box18, { sx: { borderRadius: "4px", flexShrink: 0, lineHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ jsx143(AwsServiceIcon, { hideTooltip: true, service: data.event.service_name, size: "medium" }) }),
|
|
31004
|
+
/* @__PURE__ */ jsxs132(Stack3, { sx: { minWidth: 0 }, children: [
|
|
31005
|
+
/* @__PURE__ */ jsx143(
|
|
31006
|
+
Typography12,
|
|
30920
31007
|
{
|
|
30921
31008
|
noWrap: true,
|
|
30922
31009
|
sx: { fontWeight: 700, lineHeight: 1.25 },
|
|
@@ -30924,8 +31011,8 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
30924
31011
|
children: getServiceDisplayName(data.event.service_name)
|
|
30925
31012
|
}
|
|
30926
31013
|
),
|
|
30927
|
-
data.event.resource_name != "" && /* @__PURE__ */
|
|
30928
|
-
|
|
31014
|
+
data.event.resource_name != "" && /* @__PURE__ */ jsx143(
|
|
31015
|
+
Typography12,
|
|
30929
31016
|
{
|
|
30930
31017
|
color: "text.secondary",
|
|
30931
31018
|
noWrap: true,
|
|
@@ -30938,16 +31025,16 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
30938
31025
|
]
|
|
30939
31026
|
}
|
|
30940
31027
|
),
|
|
30941
|
-
/* @__PURE__ */
|
|
30942
|
-
/* @__PURE__ */
|
|
31028
|
+
/* @__PURE__ */ jsx143(Divider5, { sx: { ml: "38px", mr: "8px", my: "5px" } }),
|
|
31029
|
+
/* @__PURE__ */ jsxs132(
|
|
30943
31030
|
Stack3,
|
|
30944
31031
|
{
|
|
30945
31032
|
alignItems: "center",
|
|
30946
31033
|
direction: "row",
|
|
30947
31034
|
sx: { minWidth: 0, pb: "5px", pr: "8px", pt: "1px" },
|
|
30948
31035
|
children: [
|
|
30949
|
-
/* @__PURE__ */
|
|
30950
|
-
|
|
31036
|
+
/* @__PURE__ */ jsx143(
|
|
31037
|
+
Box18,
|
|
30951
31038
|
{
|
|
30952
31039
|
sx: {
|
|
30953
31040
|
alignItems: "center",
|
|
@@ -30956,11 +31043,11 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
30956
31043
|
justifyContent: "center",
|
|
30957
31044
|
width: "38px"
|
|
30958
31045
|
},
|
|
30959
|
-
children: hasErrors && data.event.errors?.map((error) => /* @__PURE__ */
|
|
31046
|
+
children: hasErrors && data.event.errors?.map((error) => /* @__PURE__ */ jsx143(ProblemIndicator, { error }, error.span_id))
|
|
30960
31047
|
}
|
|
30961
31048
|
),
|
|
30962
|
-
/* @__PURE__ */
|
|
30963
|
-
|
|
31049
|
+
/* @__PURE__ */ jsx143(
|
|
31050
|
+
Typography12,
|
|
30964
31051
|
{
|
|
30965
31052
|
"data-testid": SERVICE_NODE_OPERATION_NAME_TEST_ID,
|
|
30966
31053
|
noWrap: true,
|
|
@@ -31033,11 +31120,11 @@ var getLayoutedNodesAndEdges = (inputNodes, inputEdges) => {
|
|
|
31033
31120
|
|
|
31034
31121
|
// src/components/trace-graph/xyflow/controls.tsx
|
|
31035
31122
|
import { Add, FitScreen, Remove } from "@mui/icons-material";
|
|
31036
|
-
import { Box as
|
|
31123
|
+
import { Box as Box19, IconButton as IconButton5 } from "@mui/material";
|
|
31037
31124
|
import { useReactFlow, useStore as useStore2 } from "@xyflow/react";
|
|
31038
31125
|
import { memo as memo12 } from "react";
|
|
31039
31126
|
import { shallow } from "zustand/shallow";
|
|
31040
|
-
import { jsx as
|
|
31127
|
+
import { jsx as jsx144, jsxs as jsxs133 } from "react/jsx-runtime";
|
|
31041
31128
|
var selector = (s2) => ({
|
|
31042
31129
|
isInteractive: s2.nodesDraggable || s2.nodesConnectable || s2.elementsSelectable,
|
|
31043
31130
|
maxZoomReached: s2.transform[2] >= s2.maxZoom,
|
|
@@ -31055,8 +31142,8 @@ var Controls = memo12(() => {
|
|
|
31055
31142
|
const onFitViewHandler = () => {
|
|
31056
31143
|
void fitView();
|
|
31057
31144
|
};
|
|
31058
|
-
return /* @__PURE__ */
|
|
31059
|
-
|
|
31145
|
+
return /* @__PURE__ */ jsxs133(
|
|
31146
|
+
Box19,
|
|
31060
31147
|
{
|
|
31061
31148
|
sx: {
|
|
31062
31149
|
bottom: 0,
|
|
@@ -31069,33 +31156,33 @@ var Controls = memo12(() => {
|
|
|
31069
31156
|
zIndex: 5
|
|
31070
31157
|
},
|
|
31071
31158
|
children: [
|
|
31072
|
-
/* @__PURE__ */
|
|
31159
|
+
/* @__PURE__ */ jsx144(
|
|
31073
31160
|
IconButton5,
|
|
31074
31161
|
{
|
|
31075
31162
|
className: "react-flow__controls-zoomin",
|
|
31076
31163
|
disabled: maxZoomReached,
|
|
31077
31164
|
onClick: onZoomInHandler,
|
|
31078
31165
|
size: "small",
|
|
31079
|
-
children: /* @__PURE__ */
|
|
31166
|
+
children: /* @__PURE__ */ jsx144(Add, {})
|
|
31080
31167
|
}
|
|
31081
31168
|
),
|
|
31082
|
-
/* @__PURE__ */
|
|
31169
|
+
/* @__PURE__ */ jsx144(
|
|
31083
31170
|
IconButton5,
|
|
31084
31171
|
{
|
|
31085
31172
|
className: "react-flow__controls-zoomout",
|
|
31086
31173
|
disabled: minZoomReached,
|
|
31087
31174
|
onClick: onZoomOutHandler,
|
|
31088
31175
|
size: "small",
|
|
31089
|
-
children: /* @__PURE__ */
|
|
31176
|
+
children: /* @__PURE__ */ jsx144(Remove, {})
|
|
31090
31177
|
}
|
|
31091
31178
|
),
|
|
31092
|
-
/* @__PURE__ */
|
|
31179
|
+
/* @__PURE__ */ jsx144(
|
|
31093
31180
|
IconButton5,
|
|
31094
31181
|
{
|
|
31095
31182
|
className: "react-flow__controls-fitview",
|
|
31096
31183
|
onClick: onFitViewHandler,
|
|
31097
31184
|
size: "small",
|
|
31098
|
-
children: /* @__PURE__ */
|
|
31185
|
+
children: /* @__PURE__ */ jsx144(FitScreen, {})
|
|
31099
31186
|
}
|
|
31100
31187
|
)
|
|
31101
31188
|
]
|
|
@@ -31104,7 +31191,7 @@ var Controls = memo12(() => {
|
|
|
31104
31191
|
});
|
|
31105
31192
|
|
|
31106
31193
|
// src/components/trace-graph/trace-graph.tsx
|
|
31107
|
-
import { Fragment as
|
|
31194
|
+
import { Fragment as Fragment12, jsx as jsx145, jsxs as jsxs134 } from "react/jsx-runtime";
|
|
31108
31195
|
var nodeTypes = {
|
|
31109
31196
|
service: ServiceNode
|
|
31110
31197
|
};
|
|
@@ -31167,11 +31254,11 @@ var TraceGraph = ({
|
|
|
31167
31254
|
setEdges(layoutedEdges);
|
|
31168
31255
|
}, [spans.data, initialFocusEventId, setNodes, setEdges]);
|
|
31169
31256
|
const theme = useTheme5();
|
|
31170
|
-
return /* @__PURE__ */
|
|
31171
|
-
spans.error && /* @__PURE__ */
|
|
31257
|
+
return /* @__PURE__ */ jsxs134(Fragment12, { children: [
|
|
31258
|
+
spans.error && /* @__PURE__ */ jsxs134(
|
|
31172
31259
|
Alert5,
|
|
31173
31260
|
{
|
|
31174
|
-
action: /* @__PURE__ */
|
|
31261
|
+
action: /* @__PURE__ */ jsx145(Button5, { onClick: () => {
|
|
31175
31262
|
onRefresh();
|
|
31176
31263
|
}, children: "Retry" }),
|
|
31177
31264
|
severity: "error",
|
|
@@ -31182,7 +31269,7 @@ var TraceGraph = ({
|
|
|
31182
31269
|
]
|
|
31183
31270
|
}
|
|
31184
31271
|
),
|
|
31185
|
-
/* @__PURE__ */
|
|
31272
|
+
/* @__PURE__ */ jsxs134(
|
|
31186
31273
|
ReactFlow,
|
|
31187
31274
|
{
|
|
31188
31275
|
"data-testid": TRACE_GRAPH_TEST_ID,
|
|
@@ -31200,8 +31287,8 @@ var TraceGraph = ({
|
|
|
31200
31287
|
onNodesChange,
|
|
31201
31288
|
selectNodesOnDrag: false,
|
|
31202
31289
|
children: [
|
|
31203
|
-
/* @__PURE__ */
|
|
31204
|
-
/* @__PURE__ */
|
|
31290
|
+
/* @__PURE__ */ jsx145(Controls, {}),
|
|
31291
|
+
/* @__PURE__ */ jsx145(
|
|
31205
31292
|
Background,
|
|
31206
31293
|
{
|
|
31207
31294
|
bgColor: theme.palette.background.default,
|
|
@@ -31215,7 +31302,7 @@ var TraceGraph = ({
|
|
|
31215
31302
|
};
|
|
31216
31303
|
|
|
31217
31304
|
// src/pages/trace-graph-page.tsx
|
|
31218
|
-
import { Fragment as
|
|
31305
|
+
import { Fragment as Fragment13, jsx as jsx146, jsxs as jsxs135 } from "react/jsx-runtime";
|
|
31219
31306
|
var HEADER_HEIGHT = 56;
|
|
31220
31307
|
var DRAWER_WIDTH = "35%";
|
|
31221
31308
|
var Main = styled("main", { shouldForwardProp: (property) => property !== "open" })(({ open, theme }) => ({
|
|
@@ -31264,8 +31351,8 @@ var TraceGraphView = ({
|
|
|
31264
31351
|
traceId
|
|
31265
31352
|
}) => {
|
|
31266
31353
|
const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
|
|
31267
|
-
return /* @__PURE__ */
|
|
31268
|
-
|
|
31354
|
+
return /* @__PURE__ */ jsxs135(
|
|
31355
|
+
Box20,
|
|
31269
31356
|
{
|
|
31270
31357
|
"data-testid": TRACE_GRAPH_PAGE_TEST_ID,
|
|
31271
31358
|
sx: {
|
|
@@ -31277,13 +31364,13 @@ var TraceGraphView = ({
|
|
|
31277
31364
|
overflow: "hidden"
|
|
31278
31365
|
},
|
|
31279
31366
|
children: [
|
|
31280
|
-
/* @__PURE__ */
|
|
31281
|
-
/* @__PURE__ */
|
|
31367
|
+
/* @__PURE__ */ jsxs135(Box20, { sx: { display: "flex", width: "100%" }, children: [
|
|
31368
|
+
/* @__PURE__ */ jsx146(Button6, { onClick: () => {
|
|
31282
31369
|
navigateToSpansList();
|
|
31283
|
-
}, startIcon: /* @__PURE__ */
|
|
31284
|
-
/* @__PURE__ */
|
|
31370
|
+
}, startIcon: /* @__PURE__ */ jsx146(ArrowBack, {}), children: "Go back" }),
|
|
31371
|
+
/* @__PURE__ */ jsx146(Box20, { sx: { flexGrow: 1 } })
|
|
31285
31372
|
] }),
|
|
31286
|
-
/* @__PURE__ */
|
|
31373
|
+
/* @__PURE__ */ jsx146(
|
|
31287
31374
|
Paper3,
|
|
31288
31375
|
{
|
|
31289
31376
|
sx: {
|
|
@@ -31293,7 +31380,7 @@ var TraceGraphView = ({
|
|
|
31293
31380
|
position: "relative",
|
|
31294
31381
|
width: "100%"
|
|
31295
31382
|
},
|
|
31296
|
-
children: shouldShowStatusMessage ? /* @__PURE__ */
|
|
31383
|
+
children: shouldShowStatusMessage ? /* @__PURE__ */ jsx146(
|
|
31297
31384
|
StatusMessage,
|
|
31298
31385
|
{
|
|
31299
31386
|
error: statusError,
|
|
@@ -31301,15 +31388,15 @@ var TraceGraphView = ({
|
|
|
31301
31388
|
onRetry: handleRetry,
|
|
31302
31389
|
status
|
|
31303
31390
|
}
|
|
31304
|
-
) : /* @__PURE__ */
|
|
31305
|
-
/* @__PURE__ */
|
|
31306
|
-
|
|
31391
|
+
) : /* @__PURE__ */ jsxs135(Fragment13, { children: [
|
|
31392
|
+
/* @__PURE__ */ jsx146(Main, { open, children: /* @__PURE__ */ jsx146(
|
|
31393
|
+
Box20,
|
|
31307
31394
|
{
|
|
31308
31395
|
sx: {
|
|
31309
31396
|
height: "100%",
|
|
31310
31397
|
overflow: "auto"
|
|
31311
31398
|
},
|
|
31312
|
-
children: traceId !== void 0 && /* @__PURE__ */
|
|
31399
|
+
children: traceId !== void 0 && /* @__PURE__ */ jsx146(ReactFlowProvider, { children: /* @__PURE__ */ jsx146(
|
|
31313
31400
|
TraceGraph,
|
|
31314
31401
|
{
|
|
31315
31402
|
initialFocusEventId: spanId,
|
|
@@ -31326,7 +31413,7 @@ var TraceGraphView = ({
|
|
|
31326
31413
|
) })
|
|
31327
31414
|
}
|
|
31328
31415
|
) }),
|
|
31329
|
-
/* @__PURE__ */
|
|
31416
|
+
/* @__PURE__ */ jsx146(StyledDrawer, { anchor: "right", open, variant: "persistent", children: /* @__PURE__ */ jsx146(EventDetails, { onClose: handleClose, selectedEvent }) })
|
|
31330
31417
|
] })
|
|
31331
31418
|
}
|
|
31332
31419
|
)
|
|
@@ -31419,7 +31506,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
31419
31506
|
const navigateToSpansList = useCallback11(() => {
|
|
31420
31507
|
onClose?.();
|
|
31421
31508
|
}, [onClose]);
|
|
31422
|
-
return /* @__PURE__ */
|
|
31509
|
+
return /* @__PURE__ */ jsx146(
|
|
31423
31510
|
TraceGraphView,
|
|
31424
31511
|
{
|
|
31425
31512
|
fetchError,
|
|
@@ -31444,7 +31531,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
31444
31531
|
};
|
|
31445
31532
|
|
|
31446
31533
|
// src/pages/spans-list-page.tsx
|
|
31447
|
-
import { Fragment as
|
|
31534
|
+
import { Fragment as Fragment14, jsx as jsx147, jsxs as jsxs136 } from "react/jsx-runtime";
|
|
31448
31535
|
var SpansListPage = () => {
|
|
31449
31536
|
const api = useAppInspectorApi();
|
|
31450
31537
|
const {
|
|
@@ -31491,9 +31578,9 @@ var SpansListPage = () => {
|
|
|
31491
31578
|
void checkStatus();
|
|
31492
31579
|
}, [api, checkStatus, clearFetchError]);
|
|
31493
31580
|
const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
|
|
31494
|
-
return /* @__PURE__ */
|
|
31495
|
-
/* @__PURE__ */
|
|
31496
|
-
|
|
31581
|
+
return /* @__PURE__ */ jsxs136(Fragment14, { children: [
|
|
31582
|
+
/* @__PURE__ */ jsxs136(
|
|
31583
|
+
Box21,
|
|
31497
31584
|
{
|
|
31498
31585
|
"data-testid": SPANS_LIST_PAGE_TEST_ID,
|
|
31499
31586
|
sx: {
|
|
@@ -31508,7 +31595,7 @@ var SpansListPage = () => {
|
|
|
31508
31595
|
width: "100%"
|
|
31509
31596
|
},
|
|
31510
31597
|
children: [
|
|
31511
|
-
!checking && !shouldShowStatusMessage && /* @__PURE__ */
|
|
31598
|
+
!checking && !shouldShowStatusMessage && /* @__PURE__ */ jsx147(
|
|
31512
31599
|
EmulatorVersionBanner,
|
|
31513
31600
|
{
|
|
31514
31601
|
compatibility: bannerDismissed && versionCompatibility === "warning" ? "ok" : versionCompatibility,
|
|
@@ -31518,7 +31605,7 @@ var SpansListPage = () => {
|
|
|
31518
31605
|
} : void 0
|
|
31519
31606
|
}
|
|
31520
31607
|
),
|
|
31521
|
-
shouldShowStatusMessage ? /* @__PURE__ */
|
|
31608
|
+
shouldShowStatusMessage ? /* @__PURE__ */ jsx147(
|
|
31522
31609
|
StatusMessage,
|
|
31523
31610
|
{
|
|
31524
31611
|
error: statusError,
|
|
@@ -31527,7 +31614,7 @@ var SpansListPage = () => {
|
|
|
31527
31614
|
onRetry: handleRetry,
|
|
31528
31615
|
status
|
|
31529
31616
|
}
|
|
31530
|
-
) : /* @__PURE__ */
|
|
31617
|
+
) : /* @__PURE__ */ jsx147(
|
|
31531
31618
|
SpansList,
|
|
31532
31619
|
{
|
|
31533
31620
|
clearingSpans,
|
|
@@ -31555,7 +31642,7 @@ var SpansListPage = () => {
|
|
|
31555
31642
|
]
|
|
31556
31643
|
}
|
|
31557
31644
|
),
|
|
31558
|
-
selectedTraceId !== void 0 && /* @__PURE__ */
|
|
31645
|
+
selectedTraceId !== void 0 && /* @__PURE__ */ jsx147(TraceGraphPage, { onClose: () => {
|
|
31559
31646
|
setSelectedTraceId(void 0);
|
|
31560
31647
|
}, spanId: selectedSpanId, traceId: selectedTraceId })
|
|
31561
31648
|
] });
|