@localstack/appinspector-ui 1.0.114 → 1.0.116
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 +760 -685
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +712 -637
- 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,43 +15720,31 @@ 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
|
-
|
|
15561
|
-
|
|
15562
|
-
|
|
15563
|
-
|
|
15564
|
-
|
|
15565
|
-
|
|
15566
|
-
|
|
15567
|
-
|
|
15568
|
-
|
|
15569
|
-
|
|
15570
|
-
|
|
15571
|
-
|
|
15572
|
-
|
|
15573
|
-
|
|
15574
|
-
|
|
15575
|
-
{
|
|
15576
|
-
"aria-label": "Check if App Inspector is enabled",
|
|
15577
|
-
disabled: enabling,
|
|
15578
|
-
onClick: onRetry,
|
|
15579
|
-
variant: "outlined",
|
|
15580
|
-
children: "Check Again"
|
|
15581
|
-
}
|
|
15582
|
-
)
|
|
15583
|
-
] }),
|
|
15584
|
-
/* @__PURE__ */ jsx129(Typography4, { sx: { mb: 1 }, variant: "body2", children: "If you'd prefer to automatically enable App Inspector at start up, use:" }),
|
|
15585
|
-
/* @__PURE__ */ jsx129(
|
|
15586
|
-
Box6,
|
|
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__ */ jsx130(Box7, { sx: { display: "flex", gap: 1, mb: 2 }, children: onEnable && /* @__PURE__ */ jsx130(
|
|
15733
|
+
Button4,
|
|
15734
|
+
{
|
|
15735
|
+
"aria-label": "Enable App Inspector Now",
|
|
15736
|
+
disabled: enabling,
|
|
15737
|
+
onClick: () => {
|
|
15738
|
+
void handleEnable();
|
|
15739
|
+
},
|
|
15740
|
+
startIcon: enabling ? /* @__PURE__ */ jsx130(CircularProgress2, { size: 16 }) : void 0,
|
|
15741
|
+
variant: "contained",
|
|
15742
|
+
children: "Enable App Inspector Now"
|
|
15743
|
+
}
|
|
15744
|
+
) }),
|
|
15745
|
+
/* @__PURE__ */ jsx130(Typography5, { sx: { mb: 1 }, variant: "body2", children: "If you'd prefer to automatically enable App Inspector at start up, use:" }),
|
|
15746
|
+
/* @__PURE__ */ jsx130(
|
|
15747
|
+
Box7,
|
|
15587
15748
|
{
|
|
15588
15749
|
component: "pre",
|
|
15589
15750
|
sx: {
|
|
@@ -15595,7 +15756,7 @@ var StatusMessage = ({
|
|
|
15595
15756
|
children: "LOCALSTACK_APP_INSPECTOR=1 localstack start"
|
|
15596
15757
|
}
|
|
15597
15758
|
),
|
|
15598
|
-
Boolean(enableError) && /* @__PURE__ */
|
|
15759
|
+
Boolean(enableError) && /* @__PURE__ */ jsx130(Typography5, { color: "error", sx: { mt: 1 }, variant: "body2", children: enableError })
|
|
15599
15760
|
]
|
|
15600
15761
|
}
|
|
15601
15762
|
)
|
|
@@ -15603,8 +15764,8 @@ var StatusMessage = ({
|
|
|
15603
15764
|
);
|
|
15604
15765
|
}
|
|
15605
15766
|
if (error) {
|
|
15606
|
-
return /* @__PURE__ */
|
|
15607
|
-
|
|
15767
|
+
return /* @__PURE__ */ jsx130(
|
|
15768
|
+
Box7,
|
|
15608
15769
|
{
|
|
15609
15770
|
sx: {
|
|
15610
15771
|
alignItems: "center",
|
|
@@ -15614,16 +15775,16 @@ var StatusMessage = ({
|
|
|
15614
15775
|
justifyContent: "center",
|
|
15615
15776
|
p: 4
|
|
15616
15777
|
},
|
|
15617
|
-
children: /* @__PURE__ */
|
|
15778
|
+
children: /* @__PURE__ */ jsxs124(
|
|
15618
15779
|
Alert3,
|
|
15619
15780
|
{
|
|
15620
|
-
icon: /* @__PURE__ */
|
|
15781
|
+
icon: /* @__PURE__ */ jsx130(ErrorOutline, { fontSize: "large" }),
|
|
15621
15782
|
severity: "error",
|
|
15622
15783
|
sx: { maxWidth: 600, width: "100%" },
|
|
15623
15784
|
children: [
|
|
15624
|
-
/* @__PURE__ */
|
|
15625
|
-
/* @__PURE__ */
|
|
15626
|
-
onRetry && /* @__PURE__ */
|
|
15785
|
+
/* @__PURE__ */ jsx130(AlertTitle, { sx: { fontWeight: "bold" }, children: "Error" }),
|
|
15786
|
+
/* @__PURE__ */ jsx130(Typography5, { sx: { mb: 2 }, variant: "body2", children: error.message }),
|
|
15787
|
+
onRetry && /* @__PURE__ */ jsx130(Box7, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ jsx130(
|
|
15627
15788
|
Button4,
|
|
15628
15789
|
{
|
|
15629
15790
|
"aria-label": "Retry operation",
|
|
@@ -15638,7 +15799,7 @@ var StatusMessage = ({
|
|
|
15638
15799
|
}
|
|
15639
15800
|
);
|
|
15640
15801
|
}
|
|
15641
|
-
return /* @__PURE__ */
|
|
15802
|
+
return /* @__PURE__ */ jsx130(Fragment7, {});
|
|
15642
15803
|
};
|
|
15643
15804
|
|
|
15644
15805
|
// src/hooks/status-provider.tsx
|
|
@@ -15687,7 +15848,7 @@ var useStatus = () => {
|
|
|
15687
15848
|
};
|
|
15688
15849
|
|
|
15689
15850
|
// src/hooks/status-provider.tsx
|
|
15690
|
-
import { jsx as
|
|
15851
|
+
import { jsx as jsx131 } from "react/jsx-runtime";
|
|
15691
15852
|
var AppInspectorStatusContext = createContext8(void 0);
|
|
15692
15853
|
var StatusProvider = ({ children }) => {
|
|
15693
15854
|
const { checking, checkStatus, error, status } = useStatus();
|
|
@@ -15698,7 +15859,7 @@ var StatusProvider = ({ children }) => {
|
|
|
15698
15859
|
() => ({ checking, checkStatus, reportDisabled, status, statusError: error }),
|
|
15699
15860
|
[checking, checkStatus, reportDisabled, status, error]
|
|
15700
15861
|
);
|
|
15701
|
-
return /* @__PURE__ */
|
|
15862
|
+
return /* @__PURE__ */ jsx131(AppInspectorStatusContext.Provider, { value, children });
|
|
15702
15863
|
};
|
|
15703
15864
|
var useAppInspectorStatus = () => {
|
|
15704
15865
|
const value = useContext15(AppInspectorStatusContext);
|
|
@@ -18117,7 +18278,7 @@ var useAppInspectorOpenAnalytics = () => {
|
|
|
18117
18278
|
};
|
|
18118
18279
|
|
|
18119
18280
|
// src/context.tsx
|
|
18120
|
-
import { Fragment as
|
|
18281
|
+
import { Fragment as Fragment8, jsx as jsx132 } from "react/jsx-runtime";
|
|
18121
18282
|
var AppInspectorContext = createContext9(void 0);
|
|
18122
18283
|
var useAppInspector = () => {
|
|
18123
18284
|
const context = useContext16(AppInspectorContext);
|
|
@@ -18128,7 +18289,7 @@ var useAppInspector = () => {
|
|
|
18128
18289
|
};
|
|
18129
18290
|
var AppInspectorAnalyticsBoundary = ({ children }) => {
|
|
18130
18291
|
useAppInspectorOpenAnalytics();
|
|
18131
|
-
return /* @__PURE__ */
|
|
18292
|
+
return /* @__PURE__ */ jsx132(Fragment8, { children });
|
|
18132
18293
|
};
|
|
18133
18294
|
var AppInspectorContextProvider = (props) => {
|
|
18134
18295
|
const api = useMemo7(
|
|
@@ -18160,7 +18321,7 @@ var AppInspectorContextProvider = (props) => {
|
|
|
18160
18321
|
}),
|
|
18161
18322
|
[deploymentContainer, props.linkComponent, props.localstackEndpoint, resolveLink]
|
|
18162
18323
|
);
|
|
18163
|
-
return /* @__PURE__ */
|
|
18324
|
+
return /* @__PURE__ */ jsx132(ApiProvider, { api, children: /* @__PURE__ */ jsx132(StatusProvider, { children: /* @__PURE__ */ jsx132(AppInspectorContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx132(AppInspectorAnalyticsBoundary, { children: props.children }) }) }) });
|
|
18164
18325
|
};
|
|
18165
18326
|
|
|
18166
18327
|
// src/hooks/use-spans-ws.tsx
|
|
@@ -18447,102 +18608,16 @@ var useSpans = () => {
|
|
|
18447
18608
|
|
|
18448
18609
|
// src/pages/trace-graph-page.tsx
|
|
18449
18610
|
import { ArrowBack } from "@mui/icons-material";
|
|
18450
|
-
import { Box as
|
|
18611
|
+
import { Box as Box20, Button as Button6, Drawer, Paper as Paper3 } from "@mui/material";
|
|
18451
18612
|
import { styled } from "@mui/material/styles";
|
|
18452
18613
|
import { ReactFlowProvider } from "@xyflow/react";
|
|
18453
18614
|
import { useCallback as useCallback11, useEffect as useEffect21, useRef as useRef17, useState as useState17 } from "react";
|
|
18454
18615
|
|
|
18455
18616
|
// src/components/event-details/event-details.tsx
|
|
18456
18617
|
import { Close as Close2 } from "@mui/icons-material";
|
|
18457
|
-
import { Alert as Alert4, Box as
|
|
18618
|
+
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
18619
|
import { useMemo as useMemo12, useState as useState16 } from "react";
|
|
18459
18620
|
|
|
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
18621
|
// src/utils/event-utils.ts
|
|
18547
18622
|
var iamEventParser = (eventName, attributes) => {
|
|
18548
18623
|
if (attributes?.payload && typeof attributes.payload === "string") {
|
|
@@ -18653,69 +18728,69 @@ var getEventGroupsByType = (events) => {
|
|
|
18653
18728
|
|
|
18654
18729
|
// src/components/event-details/event-detail.tsx
|
|
18655
18730
|
import { KeyboardArrowDown as KeyboardArrowDown2, KeyboardArrowRight as KeyboardArrowRight2 } from "@mui/icons-material";
|
|
18656
|
-
import { Box as
|
|
18731
|
+
import { Box as Box13, IconButton as IconButton3, Typography as Typography8 } from "@mui/material";
|
|
18657
18732
|
import { useEffect as useEffect18, useMemo as useMemo10, useRef as useRef15, useState as useState13 } from "react";
|
|
18658
18733
|
|
|
18659
18734
|
// src/components/status-icon.tsx
|
|
18660
|
-
import { Cancel, CheckCircle, Error as
|
|
18661
|
-
import { Box as
|
|
18662
|
-
import { jsx as
|
|
18663
|
-
var
|
|
18735
|
+
import { Cancel as Cancel2, CheckCircle, Error as Error3, Info, RemoveCircle } from "@mui/icons-material";
|
|
18736
|
+
import { Box as Box8 } from "@mui/material";
|
|
18737
|
+
import { jsx as jsx133 } from "react/jsx-runtime";
|
|
18738
|
+
var StatusIcon2 = ({ errorLevel }) => {
|
|
18664
18739
|
switch (errorLevel) {
|
|
18665
18740
|
case EventLevel.LevelError: {
|
|
18666
|
-
return /* @__PURE__ */
|
|
18741
|
+
return /* @__PURE__ */ jsx133(Cancel2, { sx: { color: "red" } });
|
|
18667
18742
|
}
|
|
18668
18743
|
case EventLevel.LevelInfo: {
|
|
18669
|
-
return /* @__PURE__ */
|
|
18744
|
+
return /* @__PURE__ */ jsx133(Info, { sx: { color: "gray" } });
|
|
18670
18745
|
}
|
|
18671
18746
|
case EventLevel.LevelPermission: {
|
|
18672
|
-
return /* @__PURE__ */
|
|
18747
|
+
return /* @__PURE__ */ jsx133(RemoveCircle, { sx: { color: "blue" } });
|
|
18673
18748
|
}
|
|
18674
18749
|
case EventLevel.LevelWarning: {
|
|
18675
|
-
return /* @__PURE__ */
|
|
18750
|
+
return /* @__PURE__ */ jsx133(Error3, { sx: { color: "orange" } });
|
|
18676
18751
|
}
|
|
18677
18752
|
default: {
|
|
18678
|
-
return /* @__PURE__ */
|
|
18753
|
+
return /* @__PURE__ */ jsx133(CheckCircle, { sx: { color: "lightgray" } });
|
|
18679
18754
|
}
|
|
18680
18755
|
}
|
|
18681
18756
|
};
|
|
18682
18757
|
|
|
18683
18758
|
// src/components/event-details/iam-event-detail.tsx
|
|
18684
18759
|
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__ */
|
|
18760
|
+
import { Box as Box9, Chip, Typography as Typography6 } from "@mui/material";
|
|
18761
|
+
import { jsx as jsx134, jsxs as jsxs125 } from "react/jsx-runtime";
|
|
18762
|
+
var DetailRow = ({ content, label }) => /* @__PURE__ */ jsxs125(Box9, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
18763
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
|
|
18764
|
+
/* @__PURE__ */ jsx134(Box9, { children: typeof content === "string" ? /* @__PURE__ */ jsx134(Typography6, { sx: { color: "text.primary", wordBreak: "break-word" }, variant: "caption", children: content }) : content })
|
|
18690
18765
|
] });
|
|
18691
18766
|
var PermissionIcon = ({ status }) => {
|
|
18692
18767
|
switch (status) {
|
|
18693
18768
|
case "explicitly_allowed":
|
|
18694
18769
|
case "implicitly_allowed": {
|
|
18695
|
-
return /* @__PURE__ */
|
|
18770
|
+
return /* @__PURE__ */ jsx134(CheckCircle2, { sx: { color: "success.main", fontSize: "1rem" } });
|
|
18696
18771
|
}
|
|
18697
18772
|
case "explicitly_denied": {
|
|
18698
|
-
return /* @__PURE__ */
|
|
18773
|
+
return /* @__PURE__ */ jsx134(ErrorIcon, { sx: { color: "error.main", fontSize: "1rem" } });
|
|
18699
18774
|
}
|
|
18700
18775
|
case "implicitly_denied": {
|
|
18701
|
-
return /* @__PURE__ */
|
|
18776
|
+
return /* @__PURE__ */ jsx134(Warning, { sx: { color: "warning.main", fontSize: "1rem" } });
|
|
18702
18777
|
}
|
|
18703
18778
|
}
|
|
18704
18779
|
};
|
|
18705
18780
|
var IAMEventDetail = ({ event }) => {
|
|
18706
18781
|
const payloadString = event.attributes?.payload;
|
|
18707
18782
|
if (!payloadString) {
|
|
18708
|
-
return /* @__PURE__ */
|
|
18783
|
+
return /* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "No IAM policy evaluation data available" });
|
|
18709
18784
|
}
|
|
18710
18785
|
const parsedIAM = parseIAMEvent(payloadString);
|
|
18711
18786
|
if (!parsedIAM) {
|
|
18712
|
-
return /* @__PURE__ */
|
|
18787
|
+
return /* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "Failed to parse IAM event data" });
|
|
18713
18788
|
}
|
|
18714
|
-
return /* @__PURE__ */
|
|
18715
|
-
/* @__PURE__ */
|
|
18789
|
+
return /* @__PURE__ */ jsxs125(Box9, { children: [
|
|
18790
|
+
/* @__PURE__ */ jsx134(Box9, { sx: { mb: 1.5 }, children: /* @__PURE__ */ jsx134(
|
|
18716
18791
|
Chip,
|
|
18717
18792
|
{
|
|
18718
|
-
icon: /* @__PURE__ */
|
|
18793
|
+
icon: /* @__PURE__ */ jsx134(PermissionIcon, { status: parsedIAM.permission }),
|
|
18719
18794
|
label: formatPermissionStatus(parsedIAM.permission),
|
|
18720
18795
|
size: "small",
|
|
18721
18796
|
sx: {
|
|
@@ -18725,36 +18800,36 @@ var IAMEventDetail = ({ event }) => {
|
|
|
18725
18800
|
variant: "outlined"
|
|
18726
18801
|
}
|
|
18727
18802
|
) }),
|
|
18728
|
-
/* @__PURE__ */
|
|
18729
|
-
/* @__PURE__ */
|
|
18730
|
-
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */
|
|
18803
|
+
/* @__PURE__ */ jsx134(DetailRow, { content: `${parsedIAM.service}:${parsedIAM.operation}`, label: "Operation" }),
|
|
18804
|
+
/* @__PURE__ */ jsx134(DetailRow, { content: parsedIAM.principal, label: "Principal" }),
|
|
18805
|
+
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ jsx134(
|
|
18731
18806
|
DetailRow,
|
|
18732
18807
|
{
|
|
18733
|
-
content: /* @__PURE__ */
|
|
18808
|
+
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
18809
|
label: "Actions"
|
|
18735
18810
|
}
|
|
18736
18811
|
),
|
|
18737
|
-
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */
|
|
18812
|
+
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ jsx134(
|
|
18738
18813
|
DetailRow,
|
|
18739
18814
|
{
|
|
18740
|
-
content: /* @__PURE__ */
|
|
18815
|
+
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
18816
|
label: "Resources"
|
|
18742
18817
|
}
|
|
18743
18818
|
),
|
|
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__ */
|
|
18819
|
+
(parsedIAM.details.explicitAllows !== void 0 || parsedIAM.details.explicitDenies !== void 0 || parsedIAM.details.implicitDenies !== void 0) && /* @__PURE__ */ jsxs125(Box9, { sx: { mt: 1.5 }, children: [
|
|
18820
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", sx: { display: "block", fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Policy Evaluation" }),
|
|
18821
|
+
/* @__PURE__ */ jsxs125(Box9, { sx: { display: "grid", gap: 1, gridTemplateColumns: "repeat(3, 1fr)" }, children: [
|
|
18822
|
+
parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */ jsxs125(Box9, { sx: { textAlign: "center" }, children: [
|
|
18823
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "success.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitAllows }),
|
|
18824
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "Explicit Allows" })
|
|
18750
18825
|
] }),
|
|
18751
|
-
parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */
|
|
18752
|
-
/* @__PURE__ */
|
|
18753
|
-
/* @__PURE__ */
|
|
18826
|
+
parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */ jsxs125(Box9, { sx: { textAlign: "center" }, children: [
|
|
18827
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "error.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitDenies }),
|
|
18828
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "Explicit Denies" })
|
|
18754
18829
|
] }),
|
|
18755
|
-
parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */
|
|
18756
|
-
/* @__PURE__ */
|
|
18757
|
-
/* @__PURE__ */
|
|
18830
|
+
parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */ jsxs125(Box9, { sx: { textAlign: "center" }, children: [
|
|
18831
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "warning.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.implicitDenies }),
|
|
18832
|
+
/* @__PURE__ */ jsx134(Typography6, { color: "text.secondary", variant: "caption", children: "Implicit Denies" })
|
|
18758
18833
|
] })
|
|
18759
18834
|
] })
|
|
18760
18835
|
] })
|
|
@@ -18763,16 +18838,16 @@ var IAMEventDetail = ({ event }) => {
|
|
|
18763
18838
|
|
|
18764
18839
|
// src/components/event-details/iam-permission-detail.tsx
|
|
18765
18840
|
import { KeyboardArrowDown, KeyboardArrowRight } from "@mui/icons-material";
|
|
18766
|
-
import { Box as
|
|
18841
|
+
import { Box as Box10, Chip as Chip2, IconButton as IconButton2, Typography as Typography7 } from "@mui/material";
|
|
18767
18842
|
import { useMemo as useMemo8, useState as useState11 } from "react";
|
|
18768
|
-
import { jsx as
|
|
18843
|
+
import { jsx as jsx135, jsxs as jsxs126 } from "react/jsx-runtime";
|
|
18769
18844
|
var getChipColors = (status) => ({
|
|
18770
18845
|
backgroundColor: getPermissionStatusColor(status),
|
|
18771
18846
|
color: "white"
|
|
18772
18847
|
});
|
|
18773
|
-
var LabelValue = ({ label, value }) => /* @__PURE__ */
|
|
18774
|
-
/* @__PURE__ */
|
|
18775
|
-
/* @__PURE__ */
|
|
18848
|
+
var LabelValue = ({ label, value }) => /* @__PURE__ */ jsxs126(Box10, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
18849
|
+
/* @__PURE__ */ jsx135(Typography7, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
|
|
18850
|
+
/* @__PURE__ */ jsx135(Typography7, { sx: { wordBreak: "break-all" }, variant: "caption", children: value })
|
|
18776
18851
|
] });
|
|
18777
18852
|
var IAMPermissionItem = ({ event }) => {
|
|
18778
18853
|
const [isOpen, setIsOpen] = useState11(false);
|
|
@@ -18787,40 +18862,40 @@ var IAMPermissionItem = ({ event }) => {
|
|
|
18787
18862
|
return null;
|
|
18788
18863
|
}
|
|
18789
18864
|
const { chipColors, parsedIAM } = parsedData;
|
|
18790
|
-
return /* @__PURE__ */
|
|
18791
|
-
/* @__PURE__ */
|
|
18792
|
-
/* @__PURE__ */
|
|
18865
|
+
return /* @__PURE__ */ jsxs126(Box10, { sx: { mb: 0.5 }, children: [
|
|
18866
|
+
/* @__PURE__ */ jsxs126(Box10, { sx: { alignItems: "center", display: "flex", gap: 1 }, children: [
|
|
18867
|
+
/* @__PURE__ */ jsx135(IconButton2, { onClick: () => {
|
|
18793
18868
|
setIsOpen(!isOpen);
|
|
18794
|
-
}, size: "small", sx: { p: 0 }, children: isOpen ? /* @__PURE__ */
|
|
18795
|
-
/* @__PURE__ */
|
|
18796
|
-
/* @__PURE__ */
|
|
18869
|
+
}, size: "small", sx: { p: 0 }, children: isOpen ? /* @__PURE__ */ jsx135(KeyboardArrowDown, { sx: { fontSize: 16 } }) : /* @__PURE__ */ jsx135(KeyboardArrowRight, { sx: { fontSize: 16 } }) }),
|
|
18870
|
+
/* @__PURE__ */ jsx135(Chip2, { label: formatPermissionStatus(parsedIAM.permission), size: "small", sx: { ...chipColors, fontWeight: 500 } }),
|
|
18871
|
+
/* @__PURE__ */ jsxs126(Typography7, { color: "text.secondary", noWrap: true, sx: { flex: 1, overflow: "hidden", textOverflow: "ellipsis" }, variant: "caption", children: [
|
|
18797
18872
|
parsedIAM.service,
|
|
18798
18873
|
":",
|
|
18799
18874
|
parsedIAM.operation
|
|
18800
18875
|
] })
|
|
18801
18876
|
] }),
|
|
18802
|
-
isOpen && /* @__PURE__ */
|
|
18803
|
-
/* @__PURE__ */
|
|
18804
|
-
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */
|
|
18805
|
-
/* @__PURE__ */
|
|
18806
|
-
/* @__PURE__ */
|
|
18877
|
+
isOpen && /* @__PURE__ */ jsxs126(Box10, { sx: { borderColor: "divider", borderLeft: "2px solid", ml: 1, mt: 0.5, pl: 1.5, py: 0.5 }, children: [
|
|
18878
|
+
/* @__PURE__ */ jsx135(LabelValue, { label: "Principal", value: parsedIAM.principal }),
|
|
18879
|
+
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ jsxs126(Box10, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
18880
|
+
/* @__PURE__ */ jsx135(Typography7, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Actions" }),
|
|
18881
|
+
/* @__PURE__ */ jsx135(Box10, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ jsx135(Typography7, { sx: { display: "block" }, variant: "caption", children: action }, action)) })
|
|
18807
18882
|
] }),
|
|
18808
|
-
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */
|
|
18809
|
-
/* @__PURE__ */
|
|
18810
|
-
/* @__PURE__ */
|
|
18883
|
+
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ jsxs126(Box10, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr" }, children: [
|
|
18884
|
+
/* @__PURE__ */ jsx135(Typography7, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Resources" }),
|
|
18885
|
+
/* @__PURE__ */ jsx135(Box10, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ jsx135(Typography7, { sx: { display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) })
|
|
18811
18886
|
] })
|
|
18812
18887
|
] })
|
|
18813
18888
|
] });
|
|
18814
18889
|
};
|
|
18815
|
-
var IAMPermissionDetail = ({ events }) => /* @__PURE__ */
|
|
18890
|
+
var IAMPermissionDetail = ({ events }) => /* @__PURE__ */ jsx135(Box10, { children: events.map((event) => /* @__PURE__ */ jsx135(IAMPermissionItem, { event }, `${event.span_id}-${event.event_id}`)) });
|
|
18816
18891
|
|
|
18817
18892
|
// src/components/event-details/payload-viewer.tsx
|
|
18818
|
-
import { Box as
|
|
18893
|
+
import { Box as Box12, useTheme as useTheme3 } from "@mui/material";
|
|
18819
18894
|
|
|
18820
18895
|
// node_modules/@textea/json-viewer/dist/index.mjs
|
|
18821
18896
|
var import_copy_to_clipboard = __toESM(require_copy_to_clipboard(), 1);
|
|
18822
|
-
import { jsx as
|
|
18823
|
-
import { Box as
|
|
18897
|
+
import { jsx as jsx136, jsxs as jsxs127, Fragment as Fragment9 } from "react/jsx-runtime";
|
|
18898
|
+
import { Box as Box11, InputBase, NoSsr, SvgIcon, createTheme, ThemeProvider, Paper as Paper2 } from "@mui/material";
|
|
18824
18899
|
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
18900
|
import { create, useStore, createStore } from "zustand";
|
|
18826
18901
|
function r(e2) {
|
|
@@ -19174,7 +19249,7 @@ function useInspect(path, value, nestedIndex) {
|
|
|
19174
19249
|
setInspect
|
|
19175
19250
|
];
|
|
19176
19251
|
}
|
|
19177
|
-
var DataBox = (props) => /* @__PURE__ */
|
|
19252
|
+
var DataBox = (props) => /* @__PURE__ */ jsx136(Box11, {
|
|
19178
19253
|
component: "div",
|
|
19179
19254
|
...props,
|
|
19180
19255
|
sx: {
|
|
@@ -19185,7 +19260,7 @@ var DataBox = (props) => /* @__PURE__ */ jsx135(Box10, {
|
|
|
19185
19260
|
var DataTypeLabel = (param) => {
|
|
19186
19261
|
let { dataType, enable = true } = param;
|
|
19187
19262
|
if (!enable) return null;
|
|
19188
|
-
return /* @__PURE__ */
|
|
19263
|
+
return /* @__PURE__ */ jsx136(DataBox, {
|
|
19189
19264
|
className: "data-type-label",
|
|
19190
19265
|
sx: {
|
|
19191
19266
|
mx: 0.5,
|
|
@@ -19203,18 +19278,18 @@ function defineEasyType(param) {
|
|
|
19203
19278
|
const storeDisplayDataTypes = useJsonViewerStore((store) => store.displayDataTypes);
|
|
19204
19279
|
const color2 = useJsonViewerStore((store) => store.colorspace[colorKey]);
|
|
19205
19280
|
const onSelect = useJsonViewerStore((store) => store.onSelect);
|
|
19206
|
-
return /* @__PURE__ */
|
|
19281
|
+
return /* @__PURE__ */ jsxs127(DataBox, {
|
|
19207
19282
|
onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(props.path, props.value),
|
|
19208
19283
|
sx: {
|
|
19209
19284
|
color: color2
|
|
19210
19285
|
},
|
|
19211
19286
|
children: [
|
|
19212
|
-
displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */
|
|
19287
|
+
displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */ jsx136(DataTypeLabel, {
|
|
19213
19288
|
dataType: type
|
|
19214
19289
|
}),
|
|
19215
|
-
/* @__PURE__ */
|
|
19290
|
+
/* @__PURE__ */ jsx136(DataBox, {
|
|
19216
19291
|
className: "".concat(type, "-value"),
|
|
19217
|
-
children: /* @__PURE__ */
|
|
19292
|
+
children: /* @__PURE__ */ jsx136(Render, {
|
|
19218
19293
|
path: props.path,
|
|
19219
19294
|
inspect: props.inspect,
|
|
19220
19295
|
setInspect: props.setInspect,
|
|
@@ -19254,7 +19329,7 @@ function defineEasyType(param) {
|
|
|
19254
19329
|
}, [
|
|
19255
19330
|
setValue
|
|
19256
19331
|
]);
|
|
19257
|
-
return /* @__PURE__ */
|
|
19332
|
+
return /* @__PURE__ */ jsx136(InputBase, {
|
|
19258
19333
|
autoFocus: true,
|
|
19259
19334
|
value,
|
|
19260
19335
|
onChange: handleChange,
|
|
@@ -19294,7 +19369,7 @@ var booleanType = defineEasyType({
|
|
|
19294
19369
|
},
|
|
19295
19370
|
Renderer: (param) => {
|
|
19296
19371
|
let { value } = param;
|
|
19297
|
-
return /* @__PURE__ */
|
|
19372
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19298
19373
|
children: value ? "true" : "false"
|
|
19299
19374
|
});
|
|
19300
19375
|
}
|
|
@@ -19313,7 +19388,7 @@ var dateType = defineEasyType({
|
|
|
19313
19388
|
colorKey: "base0D",
|
|
19314
19389
|
Renderer: (param) => {
|
|
19315
19390
|
let { value } = param;
|
|
19316
|
-
return /* @__PURE__ */
|
|
19391
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19317
19392
|
children: value.toLocaleTimeString("en-us", displayOptions)
|
|
19318
19393
|
});
|
|
19319
19394
|
}
|
|
@@ -19342,12 +19417,12 @@ var functionName = (func) => {
|
|
|
19342
19417
|
var lb = "{";
|
|
19343
19418
|
var rb = "}";
|
|
19344
19419
|
var PreFunctionType = (props) => {
|
|
19345
|
-
return /* @__PURE__ */
|
|
19420
|
+
return /* @__PURE__ */ jsxs127(NoSsr, {
|
|
19346
19421
|
children: [
|
|
19347
|
-
/* @__PURE__ */
|
|
19422
|
+
/* @__PURE__ */ jsx136(DataTypeLabel, {
|
|
19348
19423
|
dataType: "function"
|
|
19349
19424
|
}),
|
|
19350
|
-
/* @__PURE__ */
|
|
19425
|
+
/* @__PURE__ */ jsxs127(Box11, {
|
|
19351
19426
|
component: "span",
|
|
19352
19427
|
className: "data-function-start",
|
|
19353
19428
|
sx: {
|
|
@@ -19363,8 +19438,8 @@ var PreFunctionType = (props) => {
|
|
|
19363
19438
|
});
|
|
19364
19439
|
};
|
|
19365
19440
|
var PostFunctionType = () => {
|
|
19366
|
-
return /* @__PURE__ */
|
|
19367
|
-
children: /* @__PURE__ */
|
|
19441
|
+
return /* @__PURE__ */ jsx136(NoSsr, {
|
|
19442
|
+
children: /* @__PURE__ */ jsx136(Box11, {
|
|
19368
19443
|
component: "span",
|
|
19369
19444
|
className: "data-function-end",
|
|
19370
19445
|
children: rb
|
|
@@ -19373,15 +19448,15 @@ var PostFunctionType = () => {
|
|
|
19373
19448
|
};
|
|
19374
19449
|
var FunctionType = (props) => {
|
|
19375
19450
|
const functionColor = useJsonViewerStore((store) => store.colorspace.base05);
|
|
19376
|
-
return /* @__PURE__ */
|
|
19377
|
-
children: /* @__PURE__ */
|
|
19451
|
+
return /* @__PURE__ */ jsx136(NoSsr, {
|
|
19452
|
+
children: /* @__PURE__ */ jsx136(Box11, {
|
|
19378
19453
|
className: "data-function",
|
|
19379
19454
|
sx: {
|
|
19380
19455
|
display: props.inspect ? "block" : "inline-block",
|
|
19381
19456
|
pl: props.inspect ? 2 : 0,
|
|
19382
19457
|
color: functionColor
|
|
19383
19458
|
},
|
|
19384
|
-
children: props.inspect ? functionBody(props.value) : /* @__PURE__ */
|
|
19459
|
+
children: props.inspect ? functionBody(props.value) : /* @__PURE__ */ jsx136(Box11, {
|
|
19385
19460
|
component: "span",
|
|
19386
19461
|
className: "data-function-body",
|
|
19387
19462
|
onClick: () => props.setInspect(true),
|
|
@@ -19409,7 +19484,7 @@ var nullType = defineEasyType({
|
|
|
19409
19484
|
displayTypeLabel: false,
|
|
19410
19485
|
Renderer: () => {
|
|
19411
19486
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
19412
|
-
return /* @__PURE__ */
|
|
19487
|
+
return /* @__PURE__ */ jsx136(Box11, {
|
|
19413
19488
|
sx: {
|
|
19414
19489
|
fontSize: "0.8rem",
|
|
19415
19490
|
backgroundColor,
|
|
@@ -19432,7 +19507,7 @@ var nanType = defineEasyType({
|
|
|
19432
19507
|
deserialize: (value) => parseFloat(value),
|
|
19433
19508
|
Renderer: () => {
|
|
19434
19509
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
19435
|
-
return /* @__PURE__ */
|
|
19510
|
+
return /* @__PURE__ */ jsx136(Box11, {
|
|
19436
19511
|
sx: {
|
|
19437
19512
|
backgroundColor,
|
|
19438
19513
|
fontSize: "0.8rem",
|
|
@@ -19452,7 +19527,7 @@ var floatType = defineEasyType({
|
|
|
19452
19527
|
deserialize: (value) => parseFloat(value),
|
|
19453
19528
|
Renderer: (param) => {
|
|
19454
19529
|
let { value } = param;
|
|
19455
|
-
return /* @__PURE__ */
|
|
19530
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19456
19531
|
children: value
|
|
19457
19532
|
});
|
|
19458
19533
|
}
|
|
@@ -19466,7 +19541,7 @@ var intType = defineEasyType({
|
|
|
19466
19541
|
deserialize: (value) => parseFloat(value),
|
|
19467
19542
|
Renderer: (param) => {
|
|
19468
19543
|
let { value } = param;
|
|
19469
|
-
return /* @__PURE__ */
|
|
19544
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19470
19545
|
children: value
|
|
19471
19546
|
});
|
|
19472
19547
|
}
|
|
@@ -19479,16 +19554,16 @@ var bigIntType = defineEasyType({
|
|
|
19479
19554
|
deserialize: (value) => BigInt(value.replace(/\D/g, "")),
|
|
19480
19555
|
Renderer: (param) => {
|
|
19481
19556
|
let { value } = param;
|
|
19482
|
-
return /* @__PURE__ */
|
|
19557
|
+
return /* @__PURE__ */ jsx136(Fragment9, {
|
|
19483
19558
|
children: "".concat(value, "n")
|
|
19484
19559
|
});
|
|
19485
19560
|
}
|
|
19486
19561
|
});
|
|
19487
19562
|
var BaseIcon = (param) => {
|
|
19488
19563
|
let { d: d2, ...props } = param;
|
|
19489
|
-
return /* @__PURE__ */
|
|
19564
|
+
return /* @__PURE__ */ jsx136(SvgIcon, {
|
|
19490
19565
|
...props,
|
|
19491
|
-
children: /* @__PURE__ */
|
|
19566
|
+
children: /* @__PURE__ */ jsx136("path", {
|
|
19492
19567
|
d: d2
|
|
19493
19568
|
})
|
|
19494
19569
|
});
|
|
@@ -19503,55 +19578,55 @@ var Edit = "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.3
|
|
|
19503
19578
|
var ExpandMore = "M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z";
|
|
19504
19579
|
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
19580
|
var AddBoxIcon = (props) => {
|
|
19506
|
-
return /* @__PURE__ */
|
|
19581
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19507
19582
|
d: AddBox,
|
|
19508
19583
|
...props
|
|
19509
19584
|
});
|
|
19510
19585
|
};
|
|
19511
19586
|
var CheckIcon = (props) => {
|
|
19512
|
-
return /* @__PURE__ */
|
|
19587
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19513
19588
|
d: Check,
|
|
19514
19589
|
...props
|
|
19515
19590
|
});
|
|
19516
19591
|
};
|
|
19517
19592
|
var ChevronRightIcon = (props) => {
|
|
19518
|
-
return /* @__PURE__ */
|
|
19593
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19519
19594
|
d: ChevronRight,
|
|
19520
19595
|
...props
|
|
19521
19596
|
});
|
|
19522
19597
|
};
|
|
19523
19598
|
var CircularArrowsIcon = (props) => {
|
|
19524
|
-
return /* @__PURE__ */
|
|
19599
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19525
19600
|
d: CircularArrows,
|
|
19526
19601
|
...props
|
|
19527
19602
|
});
|
|
19528
19603
|
};
|
|
19529
19604
|
var CloseIcon = (props) => {
|
|
19530
|
-
return /* @__PURE__ */
|
|
19605
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19531
19606
|
d: Close,
|
|
19532
19607
|
...props
|
|
19533
19608
|
});
|
|
19534
19609
|
};
|
|
19535
19610
|
var ContentCopyIcon = (props) => {
|
|
19536
|
-
return /* @__PURE__ */
|
|
19611
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19537
19612
|
d: ContentCopy,
|
|
19538
19613
|
...props
|
|
19539
19614
|
});
|
|
19540
19615
|
};
|
|
19541
19616
|
var EditIcon = (props) => {
|
|
19542
|
-
return /* @__PURE__ */
|
|
19617
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19543
19618
|
d: Edit,
|
|
19544
19619
|
...props
|
|
19545
19620
|
});
|
|
19546
19621
|
};
|
|
19547
19622
|
var ExpandMoreIcon = (props) => {
|
|
19548
|
-
return /* @__PURE__ */
|
|
19623
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19549
19624
|
d: ExpandMore,
|
|
19550
19625
|
...props
|
|
19551
19626
|
});
|
|
19552
19627
|
};
|
|
19553
19628
|
var DeleteIcon = (props) => {
|
|
19554
|
-
return /* @__PURE__ */
|
|
19629
|
+
return /* @__PURE__ */ jsx136(BaseIcon, {
|
|
19555
19630
|
d: Delete,
|
|
19556
19631
|
...props
|
|
19557
19632
|
});
|
|
@@ -19590,7 +19665,7 @@ var PreObjectType = (props) => {
|
|
|
19590
19665
|
props.value
|
|
19591
19666
|
]);
|
|
19592
19667
|
const isTrap = useIsCycleReference(props.path, props.value);
|
|
19593
|
-
return /* @__PURE__ */
|
|
19668
|
+
return /* @__PURE__ */ jsxs127(Box11, {
|
|
19594
19669
|
component: "span",
|
|
19595
19670
|
className: "data-object-start",
|
|
19596
19671
|
sx: {
|
|
@@ -19598,7 +19673,7 @@ var PreObjectType = (props) => {
|
|
|
19598
19673
|
},
|
|
19599
19674
|
children: [
|
|
19600
19675
|
isArrayLike ? arrayLb : objectLb,
|
|
19601
|
-
shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */
|
|
19676
|
+
shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */ jsx136(Box11, {
|
|
19602
19677
|
component: "span",
|
|
19603
19678
|
sx: {
|
|
19604
19679
|
pl: 0.5,
|
|
@@ -19608,16 +19683,16 @@ var PreObjectType = (props) => {
|
|
|
19608
19683
|
},
|
|
19609
19684
|
children: sizeOfValue
|
|
19610
19685
|
}),
|
|
19611
|
-
isTrap && !props.inspect && /* @__PURE__ */
|
|
19686
|
+
isTrap && !props.inspect && /* @__PURE__ */ jsxs127(Fragment9, {
|
|
19612
19687
|
children: [
|
|
19613
|
-
/* @__PURE__ */
|
|
19688
|
+
/* @__PURE__ */ jsx136(CircularArrowsIcon, {
|
|
19614
19689
|
sx: {
|
|
19615
19690
|
fontSize: 12,
|
|
19616
19691
|
color: textColor,
|
|
19617
19692
|
mx: 0.5
|
|
19618
19693
|
}
|
|
19619
19694
|
}),
|
|
19620
|
-
/* @__PURE__ */
|
|
19695
|
+
/* @__PURE__ */ jsx136(DataBox, {
|
|
19621
19696
|
sx: {
|
|
19622
19697
|
cursor: "pointer",
|
|
19623
19698
|
userSelect: "none"
|
|
@@ -19647,7 +19722,7 @@ var PostObjectType = (props) => {
|
|
|
19647
19722
|
props.path,
|
|
19648
19723
|
props.value
|
|
19649
19724
|
]);
|
|
19650
|
-
return /* @__PURE__ */
|
|
19725
|
+
return /* @__PURE__ */ jsxs127(Box11, {
|
|
19651
19726
|
component: "span",
|
|
19652
19727
|
className: "data-object-end",
|
|
19653
19728
|
sx: {
|
|
@@ -19658,7 +19733,7 @@ var PostObjectType = (props) => {
|
|
|
19658
19733
|
},
|
|
19659
19734
|
children: [
|
|
19660
19735
|
isArrayLike ? arrayRb : objectRb,
|
|
19661
|
-
shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */
|
|
19736
|
+
shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */ jsx136(Box11, {
|
|
19662
19737
|
component: "span",
|
|
19663
19738
|
sx: {
|
|
19664
19739
|
pl: 0.5,
|
|
@@ -19698,7 +19773,7 @@ var ObjectType = (props) => {
|
|
|
19698
19773
|
...props.path,
|
|
19699
19774
|
key
|
|
19700
19775
|
];
|
|
19701
|
-
elements3.push(/* @__PURE__ */
|
|
19776
|
+
elements3.push(/* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19702
19777
|
path,
|
|
19703
19778
|
value: value2,
|
|
19704
19779
|
prevValue: props.prevValue instanceof Map ? props.prevValue.get(k2) : void 0,
|
|
@@ -19714,7 +19789,7 @@ var ObjectType = (props) => {
|
|
|
19714
19789
|
while (true) {
|
|
19715
19790
|
const nextResult = iterator2.next();
|
|
19716
19791
|
var _nextResult_done;
|
|
19717
|
-
elements3.push(/* @__PURE__ */
|
|
19792
|
+
elements3.push(/* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19718
19793
|
path: [
|
|
19719
19794
|
...props.path,
|
|
19720
19795
|
"iterator:".concat(count2)
|
|
@@ -19742,7 +19817,7 @@ var ObjectType = (props) => {
|
|
|
19742
19817
|
...props.path,
|
|
19743
19818
|
index
|
|
19744
19819
|
];
|
|
19745
|
-
return /* @__PURE__ */
|
|
19820
|
+
return /* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19746
19821
|
path,
|
|
19747
19822
|
value: value2,
|
|
19748
19823
|
prevValue: Array.isArray(props.prevValue) ? props.prevValue[index] : void 0,
|
|
@@ -19751,7 +19826,7 @@ var ObjectType = (props) => {
|
|
|
19751
19826
|
});
|
|
19752
19827
|
if (value.length > displayLength) {
|
|
19753
19828
|
const rest = value.length - displayLength;
|
|
19754
|
-
elements4.push(/* @__PURE__ */
|
|
19829
|
+
elements4.push(/* @__PURE__ */ jsxs127(DataBox, {
|
|
19755
19830
|
sx: {
|
|
19756
19831
|
cursor: "pointer",
|
|
19757
19832
|
lineHeight: 1.5,
|
|
@@ -19774,7 +19849,7 @@ var ObjectType = (props) => {
|
|
|
19774
19849
|
const prevElements = Array.isArray(props.prevValue) ? segmentArray(props.prevValue, groupArraysAfterLength) : void 0;
|
|
19775
19850
|
const elementsLastIndex = elements3.length - 1;
|
|
19776
19851
|
return elements3.map((list, index) => {
|
|
19777
|
-
return /* @__PURE__ */
|
|
19852
|
+
return /* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19778
19853
|
path: props.path,
|
|
19779
19854
|
value: list,
|
|
19780
19855
|
nestedIndex: index,
|
|
@@ -19801,7 +19876,7 @@ var ObjectType = (props) => {
|
|
|
19801
19876
|
...props.path,
|
|
19802
19877
|
key
|
|
19803
19878
|
];
|
|
19804
|
-
return /* @__PURE__ */
|
|
19879
|
+
return /* @__PURE__ */ jsx136(DataKeyPair, {
|
|
19805
19880
|
path,
|
|
19806
19881
|
value: value2,
|
|
19807
19882
|
prevValue: (_props_prevValue = props.prevValue) === null || _props_prevValue === void 0 ? void 0 : _props_prevValue[key],
|
|
@@ -19810,7 +19885,7 @@ var ObjectType = (props) => {
|
|
|
19810
19885
|
});
|
|
19811
19886
|
if (entries.length > displayLength) {
|
|
19812
19887
|
const rest = entries.length - displayLength;
|
|
19813
|
-
elements2.push(/* @__PURE__ */
|
|
19888
|
+
elements2.push(/* @__PURE__ */ jsxs127(DataBox, {
|
|
19814
19889
|
sx: {
|
|
19815
19890
|
cursor: "pointer",
|
|
19816
19891
|
lineHeight: 1.5,
|
|
@@ -19848,7 +19923,7 @@ var ObjectType = (props) => {
|
|
|
19848
19923
|
if (isEmptyValue) {
|
|
19849
19924
|
return null;
|
|
19850
19925
|
}
|
|
19851
|
-
return /* @__PURE__ */
|
|
19926
|
+
return /* @__PURE__ */ jsx136(Box11, {
|
|
19852
19927
|
className: "data-object",
|
|
19853
19928
|
sx: {
|
|
19854
19929
|
display: props.inspect ? "block" : "inline-block",
|
|
@@ -19857,7 +19932,7 @@ var ObjectType = (props) => {
|
|
|
19857
19932
|
color: keyColor,
|
|
19858
19933
|
borderLeft: props.inspect ? "1px solid ".concat(borderColor) : "none"
|
|
19859
19934
|
},
|
|
19860
|
-
children: props.inspect ? elements : !isTrap && /* @__PURE__ */
|
|
19935
|
+
children: props.inspect ? elements : !isTrap && /* @__PURE__ */ jsx136(Box11, {
|
|
19861
19936
|
component: "span",
|
|
19862
19937
|
className: "data-object-body",
|
|
19863
19938
|
onClick: () => props.setInspect(true),
|
|
@@ -19889,7 +19964,7 @@ var stringType = defineEasyType({
|
|
|
19889
19964
|
const collapseStringsAfterLength = useJsonViewerStore((store) => store.collapseStringsAfterLength);
|
|
19890
19965
|
const value = showRest ? props.value : props.value.slice(0, collapseStringsAfterLength);
|
|
19891
19966
|
const hasRest = props.value.length > collapseStringsAfterLength;
|
|
19892
|
-
return /* @__PURE__ */
|
|
19967
|
+
return /* @__PURE__ */ jsxs127(Box11, {
|
|
19893
19968
|
component: "span",
|
|
19894
19969
|
sx: {
|
|
19895
19970
|
overflowWrap: "anywhere",
|
|
@@ -19907,7 +19982,7 @@ var stringType = defineEasyType({
|
|
|
19907
19982
|
children: [
|
|
19908
19983
|
'"',
|
|
19909
19984
|
value,
|
|
19910
|
-
hasRest && !showRest && /* @__PURE__ */
|
|
19985
|
+
hasRest && !showRest && /* @__PURE__ */ jsx136(Box11, {
|
|
19911
19986
|
component: "span",
|
|
19912
19987
|
sx: {
|
|
19913
19988
|
padding: 0.5
|
|
@@ -19926,7 +20001,7 @@ var undefinedType = defineEasyType({
|
|
|
19926
20001
|
displayTypeLabel: false,
|
|
19927
20002
|
Renderer: () => {
|
|
19928
20003
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
19929
|
-
return /* @__PURE__ */
|
|
20004
|
+
return /* @__PURE__ */ jsx136(Box11, {
|
|
19930
20005
|
sx: {
|
|
19931
20006
|
fontSize: "0.7rem",
|
|
19932
20007
|
backgroundColor,
|
|
@@ -20007,7 +20082,7 @@ function useTypeComponents(value, path) {
|
|
|
20007
20082
|
registry
|
|
20008
20083
|
]);
|
|
20009
20084
|
}
|
|
20010
|
-
var IconBox = (props) => /* @__PURE__ */
|
|
20085
|
+
var IconBox = (props) => /* @__PURE__ */ jsx136(Box11, {
|
|
20011
20086
|
component: "span",
|
|
20012
20087
|
...props,
|
|
20013
20088
|
sx: {
|
|
@@ -20193,18 +20268,18 @@ var DataKeyPair = (props) => {
|
|
|
20193
20268
|
]);
|
|
20194
20269
|
const actionIcons = useMemo9(() => {
|
|
20195
20270
|
if (editing) {
|
|
20196
|
-
return /* @__PURE__ */
|
|
20271
|
+
return /* @__PURE__ */ jsxs127(Fragment9, {
|
|
20197
20272
|
children: [
|
|
20198
|
-
/* @__PURE__ */
|
|
20199
|
-
children: /* @__PURE__ */
|
|
20273
|
+
/* @__PURE__ */ jsx136(IconBox, {
|
|
20274
|
+
children: /* @__PURE__ */ jsx136(CloseIcon, {
|
|
20200
20275
|
sx: {
|
|
20201
20276
|
fontSize: ".8rem"
|
|
20202
20277
|
},
|
|
20203
20278
|
onClick: abortEditing
|
|
20204
20279
|
})
|
|
20205
20280
|
}),
|
|
20206
|
-
/* @__PURE__ */
|
|
20207
|
-
children: /* @__PURE__ */
|
|
20281
|
+
/* @__PURE__ */ jsx136(IconBox, {
|
|
20282
|
+
children: /* @__PURE__ */ jsx136(CheckIcon, {
|
|
20208
20283
|
sx: {
|
|
20209
20284
|
fontSize: ".8rem"
|
|
20210
20285
|
},
|
|
@@ -20214,9 +20289,9 @@ var DataKeyPair = (props) => {
|
|
|
20214
20289
|
]
|
|
20215
20290
|
});
|
|
20216
20291
|
}
|
|
20217
|
-
return /* @__PURE__ */
|
|
20292
|
+
return /* @__PURE__ */ jsxs127(Fragment9, {
|
|
20218
20293
|
children: [
|
|
20219
|
-
enableClipboard && /* @__PURE__ */
|
|
20294
|
+
enableClipboard && /* @__PURE__ */ jsx136(IconBox, {
|
|
20220
20295
|
onClick: (event) => {
|
|
20221
20296
|
event.preventDefault();
|
|
20222
20297
|
try {
|
|
@@ -20225,41 +20300,41 @@ var DataKeyPair = (props) => {
|
|
|
20225
20300
|
console.error(e2);
|
|
20226
20301
|
}
|
|
20227
20302
|
},
|
|
20228
|
-
children: copied ? /* @__PURE__ */
|
|
20303
|
+
children: copied ? /* @__PURE__ */ jsx136(CheckIcon, {
|
|
20229
20304
|
sx: {
|
|
20230
20305
|
fontSize: ".8rem"
|
|
20231
20306
|
}
|
|
20232
|
-
}) : /* @__PURE__ */
|
|
20307
|
+
}) : /* @__PURE__ */ jsx136(ContentCopyIcon, {
|
|
20233
20308
|
sx: {
|
|
20234
20309
|
fontSize: ".8rem"
|
|
20235
20310
|
}
|
|
20236
20311
|
})
|
|
20237
20312
|
}),
|
|
20238
|
-
Editor && editable && serialize && deserialize && /* @__PURE__ */
|
|
20313
|
+
Editor && editable && serialize && deserialize && /* @__PURE__ */ jsx136(IconBox, {
|
|
20239
20314
|
onClick: startEditing,
|
|
20240
|
-
children: /* @__PURE__ */
|
|
20315
|
+
children: /* @__PURE__ */ jsx136(EditIcon, {
|
|
20241
20316
|
sx: {
|
|
20242
20317
|
fontSize: ".8rem"
|
|
20243
20318
|
}
|
|
20244
20319
|
})
|
|
20245
20320
|
}),
|
|
20246
|
-
enableAdd && /* @__PURE__ */
|
|
20321
|
+
enableAdd && /* @__PURE__ */ jsx136(IconBox, {
|
|
20247
20322
|
onClick: (event) => {
|
|
20248
20323
|
event.preventDefault();
|
|
20249
20324
|
onAdd === null || onAdd === void 0 ? void 0 : onAdd(path);
|
|
20250
20325
|
},
|
|
20251
|
-
children: /* @__PURE__ */
|
|
20326
|
+
children: /* @__PURE__ */ jsx136(AddBoxIcon, {
|
|
20252
20327
|
sx: {
|
|
20253
20328
|
fontSize: ".8rem"
|
|
20254
20329
|
}
|
|
20255
20330
|
})
|
|
20256
20331
|
}),
|
|
20257
|
-
enableDelete && /* @__PURE__ */
|
|
20332
|
+
enableDelete && /* @__PURE__ */ jsx136(IconBox, {
|
|
20258
20333
|
onClick: (event) => {
|
|
20259
20334
|
event.preventDefault();
|
|
20260
20335
|
onDelete === null || onDelete === void 0 ? void 0 : onDelete(path, value);
|
|
20261
20336
|
},
|
|
20262
|
-
children: /* @__PURE__ */
|
|
20337
|
+
children: /* @__PURE__ */ jsx136(DeleteIcon, {
|
|
20263
20338
|
sx: {
|
|
20264
20339
|
fontSize: ".9rem"
|
|
20265
20340
|
}
|
|
@@ -20307,7 +20382,7 @@ var DataKeyPair = (props) => {
|
|
|
20307
20382
|
prevValue,
|
|
20308
20383
|
nestedIndex
|
|
20309
20384
|
]);
|
|
20310
|
-
return /* @__PURE__ */
|
|
20385
|
+
return /* @__PURE__ */ jsxs127(Box11, {
|
|
20311
20386
|
className: "data-key-pair",
|
|
20312
20387
|
"data-testid": "data-key-pair" + path.join("."),
|
|
20313
20388
|
sx: {
|
|
@@ -20319,7 +20394,7 @@ var DataKeyPair = (props) => {
|
|
|
20319
20394
|
nestedIndex
|
|
20320
20395
|
]),
|
|
20321
20396
|
children: [
|
|
20322
|
-
/* @__PURE__ */
|
|
20397
|
+
/* @__PURE__ */ jsxs127(DataBox, {
|
|
20323
20398
|
component: "span",
|
|
20324
20399
|
className: "data-key",
|
|
20325
20400
|
sx: {
|
|
@@ -20340,7 +20415,7 @@ var DataKeyPair = (props) => {
|
|
|
20340
20415
|
setInspect
|
|
20341
20416
|
]),
|
|
20342
20417
|
children: [
|
|
20343
|
-
expandable ? inspect ? /* @__PURE__ */
|
|
20418
|
+
expandable ? inspect ? /* @__PURE__ */ jsx136(ExpandMoreIcon, {
|
|
20344
20419
|
className: "data-key-toggle-expanded",
|
|
20345
20420
|
sx: {
|
|
20346
20421
|
fontSize: ".8rem",
|
|
@@ -20348,7 +20423,7 @@ var DataKeyPair = (props) => {
|
|
|
20348
20423
|
cursor: "pointer"
|
|
20349
20424
|
}
|
|
20350
20425
|
}
|
|
20351
|
-
}) : /* @__PURE__ */
|
|
20426
|
+
}) : /* @__PURE__ */ jsx136(ChevronRightIcon, {
|
|
20352
20427
|
className: "data-key-toggle-collapsed",
|
|
20353
20428
|
sx: {
|
|
20354
20429
|
fontSize: ".8rem",
|
|
@@ -20357,44 +20432,44 @@ var DataKeyPair = (props) => {
|
|
|
20357
20432
|
}
|
|
20358
20433
|
}
|
|
20359
20434
|
}) : null,
|
|
20360
|
-
/* @__PURE__ */
|
|
20435
|
+
/* @__PURE__ */ jsx136(Box11, {
|
|
20361
20436
|
ref: highlightContainer,
|
|
20362
20437
|
className: "data-key-key",
|
|
20363
20438
|
component: "span",
|
|
20364
|
-
children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */
|
|
20439
|
+
children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */ jsxs127(Fragment9, {
|
|
20365
20440
|
children: [
|
|
20366
20441
|
'"',
|
|
20367
20442
|
rootName,
|
|
20368
20443
|
'"'
|
|
20369
20444
|
]
|
|
20370
|
-
}) : /* @__PURE__ */
|
|
20445
|
+
}) : /* @__PURE__ */ jsx136(Fragment9, {
|
|
20371
20446
|
children: rootName
|
|
20372
|
-
}) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */
|
|
20447
|
+
}) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */ jsx136(KeyRenderer, {
|
|
20373
20448
|
...downstreamProps
|
|
20374
|
-
}) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */
|
|
20449
|
+
}) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */ jsx136(Box11, {
|
|
20375
20450
|
component: "span",
|
|
20376
20451
|
style: {
|
|
20377
20452
|
color: numberKeyColor,
|
|
20378
20453
|
userSelect: isNumberKey ? "none" : "auto"
|
|
20379
20454
|
},
|
|
20380
20455
|
children: key
|
|
20381
|
-
}) : quotesOnKeys ? /* @__PURE__ */
|
|
20456
|
+
}) : quotesOnKeys ? /* @__PURE__ */ jsxs127(Fragment9, {
|
|
20382
20457
|
children: [
|
|
20383
20458
|
'"',
|
|
20384
20459
|
key,
|
|
20385
20460
|
'"'
|
|
20386
20461
|
]
|
|
20387
|
-
}) : /* @__PURE__ */
|
|
20462
|
+
}) : /* @__PURE__ */ jsx136(Fragment9, {
|
|
20388
20463
|
children: key
|
|
20389
20464
|
}))
|
|
20390
20465
|
}),
|
|
20391
|
-
isRoot ? rootName !== false && /* @__PURE__ */
|
|
20466
|
+
isRoot ? rootName !== false && /* @__PURE__ */ jsx136(DataBox, {
|
|
20392
20467
|
className: "data-key-colon",
|
|
20393
20468
|
sx: {
|
|
20394
20469
|
mr: 0.5
|
|
20395
20470
|
},
|
|
20396
20471
|
children: ":"
|
|
20397
|
-
}) : nestedIndex === void 0 && /* @__PURE__ */
|
|
20472
|
+
}) : nestedIndex === void 0 && /* @__PURE__ */ jsx136(DataBox, {
|
|
20398
20473
|
className: "data-key-colon",
|
|
20399
20474
|
sx: {
|
|
20400
20475
|
mr: 0.5,
|
|
@@ -20405,29 +20480,29 @@ var DataKeyPair = (props) => {
|
|
|
20405
20480
|
},
|
|
20406
20481
|
children: ":"
|
|
20407
20482
|
}),
|
|
20408
|
-
PreComponent && /* @__PURE__ */
|
|
20483
|
+
PreComponent && /* @__PURE__ */ jsx136(PreComponent, {
|
|
20409
20484
|
...downstreamProps
|
|
20410
20485
|
}),
|
|
20411
20486
|
isHover && expandable && inspect && actionIcons
|
|
20412
20487
|
]
|
|
20413
20488
|
}),
|
|
20414
|
-
editing && editable ? Editor && /* @__PURE__ */
|
|
20489
|
+
editing && editable ? Editor && /* @__PURE__ */ jsx136(Editor, {
|
|
20415
20490
|
path,
|
|
20416
20491
|
value: tempValue,
|
|
20417
20492
|
setValue: setTempValue,
|
|
20418
20493
|
abortEditing,
|
|
20419
20494
|
commitEditing
|
|
20420
|
-
}) : Component ? /* @__PURE__ */
|
|
20495
|
+
}) : Component ? /* @__PURE__ */ jsx136(Component, {
|
|
20421
20496
|
...downstreamProps
|
|
20422
|
-
}) : /* @__PURE__ */
|
|
20497
|
+
}) : /* @__PURE__ */ jsx136(Box11, {
|
|
20423
20498
|
component: "span",
|
|
20424
20499
|
className: "data-value-fallback",
|
|
20425
20500
|
children: "fallback: ".concat(value)
|
|
20426
20501
|
}),
|
|
20427
|
-
PostComponent && /* @__PURE__ */
|
|
20502
|
+
PostComponent && /* @__PURE__ */ jsx136(PostComponent, {
|
|
20428
20503
|
...downstreamProps
|
|
20429
20504
|
}),
|
|
20430
|
-
!last && displayComma && /* @__PURE__ */
|
|
20505
|
+
!last && displayComma && /* @__PURE__ */ jsx136(DataBox, {
|
|
20431
20506
|
children: ","
|
|
20432
20507
|
}),
|
|
20433
20508
|
isHover && expandable && !inspect && actionIcons,
|
|
@@ -20547,7 +20622,7 @@ var JsonViewerInner = (props) => {
|
|
|
20547
20622
|
const onMouseLeave = useCallback10(() => setHover(null), [
|
|
20548
20623
|
setHover
|
|
20549
20624
|
]);
|
|
20550
|
-
return /* @__PURE__ */
|
|
20625
|
+
return /* @__PURE__ */ jsx136(Paper2, {
|
|
20551
20626
|
elevation: 0,
|
|
20552
20627
|
className: clsx(themeCls, props.className),
|
|
20553
20628
|
style: props.style,
|
|
@@ -20558,7 +20633,7 @@ var JsonViewerInner = (props) => {
|
|
|
20558
20633
|
...props.sx
|
|
20559
20634
|
},
|
|
20560
20635
|
onMouseLeave,
|
|
20561
|
-
children: /* @__PURE__ */
|
|
20636
|
+
children: /* @__PURE__ */ jsx136(DataKeyPair, {
|
|
20562
20637
|
value,
|
|
20563
20638
|
prevValue,
|
|
20564
20639
|
path: emptyPath,
|
|
@@ -20610,13 +20685,13 @@ var JsonViewer = function JsonViewer2(props) {
|
|
|
20610
20685
|
};
|
|
20611
20686
|
const jsonViewerStore = useMemo9(() => createJsonViewerStore(props), []);
|
|
20612
20687
|
const typeRegistryStore = useMemo9(() => createTypeRegistryStore(), []);
|
|
20613
|
-
return /* @__PURE__ */
|
|
20688
|
+
return /* @__PURE__ */ jsx136(ThemeProvider, {
|
|
20614
20689
|
theme,
|
|
20615
|
-
children: /* @__PURE__ */
|
|
20690
|
+
children: /* @__PURE__ */ jsx136(TypeRegistryStoreContext.Provider, {
|
|
20616
20691
|
value: typeRegistryStore,
|
|
20617
|
-
children: /* @__PURE__ */
|
|
20692
|
+
children: /* @__PURE__ */ jsx136(JsonViewerStoreContext.Provider, {
|
|
20618
20693
|
value: jsonViewerStore,
|
|
20619
|
-
children: /* @__PURE__ */
|
|
20694
|
+
children: /* @__PURE__ */ jsx136(JsonViewerInner, {
|
|
20620
20695
|
...mixedProps
|
|
20621
20696
|
})
|
|
20622
20697
|
})
|
|
@@ -20626,7 +20701,7 @@ var JsonViewer = function JsonViewer2(props) {
|
|
|
20626
20701
|
|
|
20627
20702
|
// src/components/event-details/payload-viewer.tsx
|
|
20628
20703
|
import { memo as memo10 } from "react";
|
|
20629
|
-
import { jsx as
|
|
20704
|
+
import { jsx as jsx137 } from "react/jsx-runtime";
|
|
20630
20705
|
function tryParseJson(value) {
|
|
20631
20706
|
if (typeof value !== "string") {
|
|
20632
20707
|
return value;
|
|
@@ -20639,7 +20714,7 @@ function tryParseJson(value) {
|
|
|
20639
20714
|
}
|
|
20640
20715
|
var PayloadViewer = memo10(({ sx, testId, value }) => {
|
|
20641
20716
|
const theme = useTheme3();
|
|
20642
|
-
return /* @__PURE__ */
|
|
20717
|
+
return /* @__PURE__ */ jsx137(Box12, { "data-testid": testId, sx: { backgroundColor: "background.default", borderRadius: 1, fontSize: 12, overflow: "auto", p: 1, ...sx }, children: /* @__PURE__ */ jsx137(
|
|
20643
20718
|
JsonViewer,
|
|
20644
20719
|
{
|
|
20645
20720
|
displayDataTypes: false,
|
|
@@ -20653,10 +20728,10 @@ var PayloadViewer = memo10(({ sx, testId, value }) => {
|
|
|
20653
20728
|
});
|
|
20654
20729
|
|
|
20655
20730
|
// src/components/event-details/event-detail.tsx
|
|
20656
|
-
import { Fragment as
|
|
20657
|
-
var DetailRow2 = ({ content, label }) => /* @__PURE__ */
|
|
20658
|
-
/* @__PURE__ */
|
|
20659
|
-
/* @__PURE__ */
|
|
20731
|
+
import { Fragment as Fragment10, jsx as jsx138, jsxs as jsxs128 } from "react/jsx-runtime";
|
|
20732
|
+
var DetailRow2 = ({ content, label }) => /* @__PURE__ */ jsxs128(Box13, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
20733
|
+
/* @__PURE__ */ jsx138(Typography8, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
|
|
20734
|
+
/* @__PURE__ */ jsx138(Box13, { children: typeof content === "string" ? /* @__PURE__ */ jsx138(Typography8, { sx: { color: "text.primary", whiteSpace: "pre-wrap" }, variant: "caption", children: content }) : content })
|
|
20660
20735
|
] });
|
|
20661
20736
|
var EventMessage = ({ event }) => {
|
|
20662
20737
|
const [isOpen, setIsOpen] = useState13(false);
|
|
@@ -20688,9 +20763,9 @@ var EventMessage = ({ event }) => {
|
|
|
20688
20763
|
() => isOverflowing || hasAdditionalContent,
|
|
20689
20764
|
[isOverflowing, hasAdditionalContent]
|
|
20690
20765
|
);
|
|
20691
|
-
return /* @__PURE__ */
|
|
20692
|
-
/* @__PURE__ */
|
|
20693
|
-
Boolean(shouldShowToggle) && /* @__PURE__ */
|
|
20766
|
+
return /* @__PURE__ */ jsxs128(Box13, { sx: { display: "flex", flexDirection: "column" }, children: [
|
|
20767
|
+
/* @__PURE__ */ jsxs128(Box13, { sx: { alignItems: "center", display: "flex" }, children: [
|
|
20768
|
+
Boolean(shouldShowToggle) && /* @__PURE__ */ jsx138(
|
|
20694
20769
|
IconButton3,
|
|
20695
20770
|
{
|
|
20696
20771
|
onClick: () => {
|
|
@@ -20698,11 +20773,11 @@ var EventMessage = ({ event }) => {
|
|
|
20698
20773
|
},
|
|
20699
20774
|
size: "small",
|
|
20700
20775
|
sx: { mr: 1, p: 0 },
|
|
20701
|
-
children: isOpen ? /* @__PURE__ */
|
|
20776
|
+
children: isOpen ? /* @__PURE__ */ jsx138(KeyboardArrowDown2, { sx: { fontSize: 16 } }) : /* @__PURE__ */ jsx138(KeyboardArrowRight2, { sx: { fontSize: 16 } })
|
|
20702
20777
|
}
|
|
20703
20778
|
),
|
|
20704
|
-
/* @__PURE__ */
|
|
20705
|
-
|
|
20779
|
+
/* @__PURE__ */ jsx138(
|
|
20780
|
+
Typography8,
|
|
20706
20781
|
{
|
|
20707
20782
|
ref: textReference,
|
|
20708
20783
|
sx: {
|
|
@@ -20719,12 +20794,12 @@ var EventMessage = ({ event }) => {
|
|
|
20719
20794
|
}
|
|
20720
20795
|
)
|
|
20721
20796
|
] }),
|
|
20722
|
-
isOpen && /* @__PURE__ */
|
|
20723
|
-
Boolean(parsedMessage.message) && /* @__PURE__ */
|
|
20724
|
-
Boolean(parsedMessage.details) && /* @__PURE__ */
|
|
20797
|
+
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: [
|
|
20798
|
+
Boolean(parsedMessage.message) && /* @__PURE__ */ jsx138(DetailRow2, { content: parsedMessage.message, label: "Message" }),
|
|
20799
|
+
Boolean(parsedMessage.details) && /* @__PURE__ */ jsx138(
|
|
20725
20800
|
DetailRow2,
|
|
20726
20801
|
{
|
|
20727
|
-
content: /* @__PURE__ */
|
|
20802
|
+
content: /* @__PURE__ */ jsx138(PayloadViewer, { sx: { px: 0 }, value: tryParseJson(parsedMessage.details) }),
|
|
20728
20803
|
label: "Details"
|
|
20729
20804
|
}
|
|
20730
20805
|
)
|
|
@@ -20756,15 +20831,15 @@ var EventDetail = ({
|
|
|
20756
20831
|
type
|
|
20757
20832
|
}) => {
|
|
20758
20833
|
if (type === "permission") {
|
|
20759
|
-
return /* @__PURE__ */
|
|
20834
|
+
return /* @__PURE__ */ jsx138(IAMPermissionDetail, { events });
|
|
20760
20835
|
}
|
|
20761
20836
|
const eventLevel = getEventLevelFromGroup(type);
|
|
20762
|
-
return /* @__PURE__ */
|
|
20763
|
-
/* @__PURE__ */
|
|
20764
|
-
/* @__PURE__ */
|
|
20765
|
-
/* @__PURE__ */
|
|
20837
|
+
return /* @__PURE__ */ jsxs128(Box13, { children: [
|
|
20838
|
+
/* @__PURE__ */ jsxs128(Box13, { sx: { alignItems: "center", display: "flex", mb: 0.5 }, children: [
|
|
20839
|
+
/* @__PURE__ */ jsx138(StatusIcon2, { errorLevel: eventLevel }),
|
|
20840
|
+
/* @__PURE__ */ jsx138(Typography8, { color: "text.secondary", sx: { fontWeight: 600, ml: 0.5 }, variant: "caption", children: displayText })
|
|
20766
20841
|
] }),
|
|
20767
|
-
/* @__PURE__ */
|
|
20842
|
+
/* @__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
20843
|
] });
|
|
20769
20844
|
};
|
|
20770
20845
|
|
|
@@ -25146,16 +25221,16 @@ var ProtocolLib = class {
|
|
|
25146
25221
|
if (output !== void 0 && queryErrorHeader != null) {
|
|
25147
25222
|
const [Code, Type] = queryErrorHeader.split(";");
|
|
25148
25223
|
const entries = Object.entries(output);
|
|
25149
|
-
const
|
|
25224
|
+
const Error4 = {
|
|
25150
25225
|
Code,
|
|
25151
25226
|
Type
|
|
25152
25227
|
};
|
|
25153
|
-
Object.assign(output,
|
|
25228
|
+
Object.assign(output, Error4);
|
|
25154
25229
|
for (const [k2, v2] of entries) {
|
|
25155
|
-
|
|
25230
|
+
Error4[k2 === "message" ? "Message" : k2] = v2;
|
|
25156
25231
|
}
|
|
25157
|
-
delete
|
|
25158
|
-
output.Error =
|
|
25232
|
+
delete Error4.__type;
|
|
25233
|
+
output.Error = Error4;
|
|
25159
25234
|
}
|
|
25160
25235
|
}
|
|
25161
25236
|
queryCompatOutput(queryCompatErrorData, errorData) {
|
|
@@ -30455,9 +30530,9 @@ var QueryStatus = {
|
|
|
30455
30530
|
};
|
|
30456
30531
|
|
|
30457
30532
|
// src/components/event-details/lambda-invoke-logs-section.tsx
|
|
30458
|
-
import { Box as
|
|
30533
|
+
import { Box as Box14, CircularProgress as CircularProgress3, Stack, Typography as Typography9 } from "@mui/material";
|
|
30459
30534
|
import { useEffect as useEffect19, useMemo as useMemo11, useRef as useRef16, useState as useState14 } from "react";
|
|
30460
|
-
import { jsx as
|
|
30535
|
+
import { jsx as jsx139, jsxs as jsxs129 } from "react/jsx-runtime";
|
|
30461
30536
|
var POLL_INTERVAL_MS = 1e3;
|
|
30462
30537
|
async function pollQueryResults(client, queryId) {
|
|
30463
30538
|
return client.send(new GetQueryResultsCommand({ queryId }));
|
|
@@ -30547,30 +30622,30 @@ function useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, en
|
|
|
30547
30622
|
var LambdaInvokeLogsSection = ({ endTimeNano, functionName: functionName2, region, requestId, startTimeNano }) => {
|
|
30548
30623
|
const { error, loading, logs } = useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, endTimeNano);
|
|
30549
30624
|
if (loading) {
|
|
30550
|
-
return /* @__PURE__ */
|
|
30551
|
-
/* @__PURE__ */
|
|
30552
|
-
/* @__PURE__ */
|
|
30625
|
+
return /* @__PURE__ */ jsxs129(Stack, { alignItems: "center", direction: "row", spacing: 1, children: [
|
|
30626
|
+
/* @__PURE__ */ jsx139(CircularProgress3, { size: 14 }),
|
|
30627
|
+
/* @__PURE__ */ jsx139(Typography9, { color: "text.secondary", variant: "body2", children: "Loading logs\u2026" })
|
|
30553
30628
|
] });
|
|
30554
30629
|
}
|
|
30555
30630
|
if (error !== void 0) {
|
|
30556
|
-
return /* @__PURE__ */
|
|
30631
|
+
return /* @__PURE__ */ jsx139(Typography9, { color: "error", variant: "body2", children: error.message });
|
|
30557
30632
|
}
|
|
30558
30633
|
if (logs.length === 0) {
|
|
30559
|
-
return /* @__PURE__ */
|
|
30634
|
+
return /* @__PURE__ */ jsx139(Typography9, { color: "text.secondary", variant: "body2", children: "No logs found for this invocation." });
|
|
30560
30635
|
}
|
|
30561
|
-
return /* @__PURE__ */
|
|
30636
|
+
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
30637
|
};
|
|
30563
30638
|
|
|
30564
30639
|
// src/components/event-details/toggle-section.tsx
|
|
30565
30640
|
import { KeyboardArrowDown as KeyboardArrowDown3, KeyboardArrowRight as KeyboardArrowRight3 } from "@mui/icons-material";
|
|
30566
|
-
import { Box as
|
|
30641
|
+
import { Box as Box15, Typography as Typography10 } from "@mui/material";
|
|
30567
30642
|
import { useState as useState15 } from "react";
|
|
30568
|
-
import { jsx as
|
|
30643
|
+
import { jsx as jsx140, jsxs as jsxs130 } from "react/jsx-runtime";
|
|
30569
30644
|
var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
30570
30645
|
const [isOpen, setIsOpen] = useState15(initialOpen);
|
|
30571
|
-
return /* @__PURE__ */
|
|
30572
|
-
/* @__PURE__ */
|
|
30573
|
-
|
|
30646
|
+
return /* @__PURE__ */ jsxs130(Box15, { sx: { mt: 4 }, children: [
|
|
30647
|
+
/* @__PURE__ */ jsxs130(
|
|
30648
|
+
Box15,
|
|
30574
30649
|
{
|
|
30575
30650
|
onClick: () => {
|
|
30576
30651
|
setIsOpen(!isOpen);
|
|
@@ -30583,8 +30658,8 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
|
30583
30658
|
mb: 1
|
|
30584
30659
|
},
|
|
30585
30660
|
children: [
|
|
30586
|
-
/* @__PURE__ */
|
|
30587
|
-
|
|
30661
|
+
/* @__PURE__ */ jsxs130(
|
|
30662
|
+
Box15,
|
|
30588
30663
|
{
|
|
30589
30664
|
role: "button",
|
|
30590
30665
|
sx: {
|
|
@@ -30593,23 +30668,23 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
|
30593
30668
|
gap: 1
|
|
30594
30669
|
},
|
|
30595
30670
|
children: [
|
|
30596
|
-
/* @__PURE__ */
|
|
30597
|
-
isOpen ? /* @__PURE__ */
|
|
30671
|
+
/* @__PURE__ */ jsx140(Typography10, { sx: { fontWeight: 600 }, variant: "subtitle2", children: headline }),
|
|
30672
|
+
isOpen ? /* @__PURE__ */ jsx140(KeyboardArrowDown3, { sx: { color: "text.secondary", height: 20, width: 20 } }) : /* @__PURE__ */ jsx140(KeyboardArrowRight3, { sx: { color: "text.secondary", height: 20, width: 20 } })
|
|
30598
30673
|
]
|
|
30599
30674
|
}
|
|
30600
30675
|
),
|
|
30601
|
-
action !== false && /* @__PURE__ */
|
|
30676
|
+
action !== false && /* @__PURE__ */ jsx140(Box15, { onClick: (event) => {
|
|
30602
30677
|
event.stopPropagation();
|
|
30603
30678
|
}, children: action })
|
|
30604
30679
|
]
|
|
30605
30680
|
}
|
|
30606
30681
|
),
|
|
30607
|
-
isOpen && /* @__PURE__ */
|
|
30682
|
+
isOpen && /* @__PURE__ */ jsx140(Box15, { children })
|
|
30608
30683
|
] });
|
|
30609
30684
|
};
|
|
30610
30685
|
|
|
30611
30686
|
// src/components/event-details/event-details.tsx
|
|
30612
|
-
import { Fragment as
|
|
30687
|
+
import { Fragment as Fragment11, jsx as jsx141, jsxs as jsxs131 } from "react/jsx-runtime";
|
|
30613
30688
|
var checkIsLambdaInvoke = (span) => {
|
|
30614
30689
|
if (span.service_name !== "lambda") {
|
|
30615
30690
|
return false;
|
|
@@ -30630,7 +30705,7 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30630
30705
|
);
|
|
30631
30706
|
const [parseNestedJson, setParseNestedJson] = useState16(true);
|
|
30632
30707
|
if (!selectedEvent) {
|
|
30633
|
-
return /* @__PURE__ */
|
|
30708
|
+
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
30709
|
}
|
|
30635
30710
|
const isLambdaInvoke = checkIsLambdaInvoke(selectedEvent);
|
|
30636
30711
|
const isSqsSendMessage = checkIsSqsSendMessage(selectedEvent);
|
|
@@ -30653,9 +30728,9 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30653
30728
|
const exceptionPayload = tryParseJson(selectedEvent.attributes?.["localstack.aws.service.exception"]);
|
|
30654
30729
|
const hasPayloads = requestPayload !== void 0 || responsePayload !== void 0 || exceptionPayload !== void 0 || isResponseSuppressed;
|
|
30655
30730
|
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
|
-
|
|
30731
|
+
return /* @__PURE__ */ jsxs131(Box16, { "data-testid": EVENT_DETAILS_TEST_ID, sx: { display: "flex", flexDirection: "column", height: "100%" }, children: [
|
|
30732
|
+
/* @__PURE__ */ jsxs131(
|
|
30733
|
+
Box16,
|
|
30659
30734
|
{
|
|
30660
30735
|
sx: {
|
|
30661
30736
|
alignItems: "center",
|
|
@@ -30667,63 +30742,63 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30667
30742
|
py: 1
|
|
30668
30743
|
},
|
|
30669
30744
|
children: [
|
|
30670
|
-
/* @__PURE__ */
|
|
30671
|
-
onClose && /* @__PURE__ */
|
|
30745
|
+
/* @__PURE__ */ jsx141(Box16, { children: /* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "h6", children: "Operation Details" }) }),
|
|
30746
|
+
onClose && /* @__PURE__ */ jsx141(IconButton4, { "data-testid": EVENT_DETAILS_CLOSE_BUTTON_TEST_ID, onClick: onClose, size: "small", children: /* @__PURE__ */ jsx141(Close2, {}) })
|
|
30672
30747
|
]
|
|
30673
30748
|
}
|
|
30674
30749
|
),
|
|
30675
|
-
/* @__PURE__ */
|
|
30676
|
-
/* @__PURE__ */
|
|
30677
|
-
/* @__PURE__ */
|
|
30678
|
-
/* @__PURE__ */
|
|
30679
|
-
/* @__PURE__ */
|
|
30680
|
-
/* @__PURE__ */
|
|
30750
|
+
/* @__PURE__ */ jsx141(Box16, { sx: { flexGrow: 1, overflow: "auto", p: 2 }, children: /* @__PURE__ */ jsxs131(Stack2, { spacing: 2, children: [
|
|
30751
|
+
/* @__PURE__ */ jsx141(ToggleSection, { headline: "Basic Information", children: /* @__PURE__ */ jsxs131(Stack2, { "data-testid": EVENT_DETAILS_SECTION_BASIC_INFORMATION_TEST_ID, spacing: 1, children: [
|
|
30752
|
+
/* @__PURE__ */ jsxs131(Box16, { sx: { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" }, children: [
|
|
30753
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30754
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Service" }),
|
|
30755
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_SERVICE_NAME_TEST_ID, variant: "body2", children: getServiceDisplayName(selectedEvent.service_name) })
|
|
30681
30756
|
] }),
|
|
30682
|
-
/* @__PURE__ */
|
|
30683
|
-
/* @__PURE__ */
|
|
30684
|
-
/* @__PURE__ */
|
|
30757
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30758
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Action" }),
|
|
30759
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_OPERATION_NAME_TEST_ID, variant: "body2", children: selectedEvent.operation_name })
|
|
30685
30760
|
] })
|
|
30686
30761
|
] }),
|
|
30687
|
-
/* @__PURE__ */
|
|
30688
|
-
/* @__PURE__ */
|
|
30689
|
-
/* @__PURE__ */
|
|
30690
|
-
/* @__PURE__ */
|
|
30762
|
+
/* @__PURE__ */ jsxs131(Box16, { sx: cfnResourceType ? { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" } : void 0, children: [
|
|
30763
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30764
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource" }),
|
|
30765
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_RESOURCE_NAME_TEST_ID, variant: "body2", children: selectedEvent.resource_name })
|
|
30691
30766
|
] }),
|
|
30692
|
-
Boolean(cfnResourceType) && /* @__PURE__ */
|
|
30693
|
-
/* @__PURE__ */
|
|
30694
|
-
/* @__PURE__ */
|
|
30767
|
+
Boolean(cfnResourceType) && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30768
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource Type" }),
|
|
30769
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_CFN_RESOURCE_TYPE_TEST_ID, variant: "body2", children: cfnResourceType })
|
|
30695
30770
|
] })
|
|
30696
30771
|
] }),
|
|
30697
|
-
Boolean(resourceArn) && /* @__PURE__ */
|
|
30698
|
-
/* @__PURE__ */
|
|
30699
|
-
/* @__PURE__ */
|
|
30772
|
+
Boolean(resourceArn) && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30773
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource ARN" }),
|
|
30774
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_RESOURCE_ARN_TEST_ID, variant: "body2", children: resourceArn })
|
|
30700
30775
|
] }),
|
|
30701
|
-
/* @__PURE__ */
|
|
30702
|
-
/* @__PURE__ */
|
|
30703
|
-
/* @__PURE__ */
|
|
30704
|
-
/* @__PURE__ */
|
|
30776
|
+
/* @__PURE__ */ jsxs131(Box16, { sx: { display: "grid", gap: 1, gridTemplateColumns: "1.3fr 1fr" }, children: [
|
|
30777
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30778
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Account" }),
|
|
30779
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_ACCOUNT_TEST_ID, variant: "body2", children: selectedEvent.account_id })
|
|
30705
30780
|
] }),
|
|
30706
|
-
/* @__PURE__ */
|
|
30707
|
-
/* @__PURE__ */
|
|
30708
|
-
/* @__PURE__ */
|
|
30781
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30782
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Region" }),
|
|
30783
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_REGION_TEST_ID, variant: "body2", children: selectedEvent.region })
|
|
30709
30784
|
] })
|
|
30710
30785
|
] }),
|
|
30711
|
-
/* @__PURE__ */
|
|
30712
|
-
/* @__PURE__ */
|
|
30713
|
-
/* @__PURE__ */
|
|
30714
|
-
/* @__PURE__ */
|
|
30786
|
+
/* @__PURE__ */ jsxs131(Box16, { sx: { display: "grid", gap: 1, gridTemplateColumns: duration === void 0 ? "1fr" : "1.3fr 1fr" }, children: [
|
|
30787
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30788
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Start Time" }),
|
|
30789
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_START_TIME_TEST_ID, variant: "body2", children: unixNanoToDate(selectedEvent.start_time_unix_nano)?.toISOString() })
|
|
30715
30790
|
] }),
|
|
30716
|
-
duration !== void 0 && /* @__PURE__ */
|
|
30717
|
-
/* @__PURE__ */
|
|
30718
|
-
/* @__PURE__ */
|
|
30791
|
+
duration !== void 0 && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30792
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Duration" }),
|
|
30793
|
+
/* @__PURE__ */ jsxs131(Typography11, { "data-testid": EVENT_DETAILS_DURATION_TEST_ID, variant: "body2", children: [
|
|
30719
30794
|
duration,
|
|
30720
30795
|
"ms"
|
|
30721
30796
|
] })
|
|
30722
30797
|
] })
|
|
30723
30798
|
] }),
|
|
30724
|
-
/* @__PURE__ */
|
|
30725
|
-
/* @__PURE__ */
|
|
30726
|
-
/* @__PURE__ */
|
|
30799
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30800
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Status" }),
|
|
30801
|
+
/* @__PURE__ */ jsx141(Stack2, { alignItems: "center", direction: "row", flexWrap: "wrap", gap: 1, sx: { mb: eventGroups.errors || eventGroups.warnings ? 1 : 0 }, children: /* @__PURE__ */ jsx141(
|
|
30727
30802
|
Chip3,
|
|
30728
30803
|
{
|
|
30729
30804
|
color: selectedEvent.status_code === 2 ? "error" : selectedEvent.status_code === 1 ? "success" : "default",
|
|
@@ -30734,50 +30809,50 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30734
30809
|
) })
|
|
30735
30810
|
] })
|
|
30736
30811
|
] }) }),
|
|
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__ */
|
|
30812
|
+
/* @__PURE__ */ jsx141(Divider4, {}),
|
|
30813
|
+
/* @__PURE__ */ jsxs131(ToggleSection, { headline: "Permissions", children: [
|
|
30814
|
+
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" }),
|
|
30815
|
+
!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." }),
|
|
30816
|
+
eventGroups.permissions && /* @__PURE__ */ jsx141(EventDetail, { displayText: "Permissions", events: eventGroups.permissions, type: "permission" }),
|
|
30817
|
+
eventGroups.errors && /* @__PURE__ */ jsx141(EventDetail, { displayText: "Error", events: eventGroups.errors, type: "error" }),
|
|
30818
|
+
eventGroups.warnings && /* @__PURE__ */ jsx141(EventDetail, { displayText: "Warning", events: eventGroups.warnings, type: "warning" })
|
|
30744
30819
|
] }),
|
|
30745
|
-
hasPayloads && /* @__PURE__ */
|
|
30746
|
-
/* @__PURE__ */
|
|
30747
|
-
/* @__PURE__ */
|
|
30820
|
+
hasPayloads && /* @__PURE__ */ jsxs131(Fragment11, { children: [
|
|
30821
|
+
/* @__PURE__ */ jsx141(Divider4, {}),
|
|
30822
|
+
/* @__PURE__ */ jsx141(
|
|
30748
30823
|
ToggleSection,
|
|
30749
30824
|
{
|
|
30750
|
-
action: /* @__PURE__ */
|
|
30825
|
+
action: /* @__PURE__ */ jsx141(
|
|
30751
30826
|
FormControlLabel2,
|
|
30752
30827
|
{
|
|
30753
|
-
control: /* @__PURE__ */
|
|
30828
|
+
control: /* @__PURE__ */ jsx141(Switch, { checked: !parseNestedJson, onChange: (event) => {
|
|
30754
30829
|
setParseNestedJson(!event.target.checked);
|
|
30755
30830
|
}, size: "small" }),
|
|
30756
|
-
label: /* @__PURE__ */
|
|
30831
|
+
label: /* @__PURE__ */ jsx141(Typography11, { variant: "caption", children: "View raw data" }),
|
|
30757
30832
|
sx: { mr: 0 }
|
|
30758
30833
|
}
|
|
30759
30834
|
),
|
|
30760
30835
|
headline: "Payloads",
|
|
30761
|
-
children: /* @__PURE__ */
|
|
30762
|
-
requestPayload !== void 0 && /* @__PURE__ */
|
|
30763
|
-
/* @__PURE__ */
|
|
30764
|
-
/* @__PURE__ */
|
|
30836
|
+
children: /* @__PURE__ */ jsxs131(Stack2, { spacing: 2, children: [
|
|
30837
|
+
requestPayload !== void 0 && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30838
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Request" }),
|
|
30839
|
+
/* @__PURE__ */ jsx141(PayloadViewer, { testId: EVENT_DETAILS_REQUEST_PAYLOAD, value: requestPayload })
|
|
30765
30840
|
] }),
|
|
30766
|
-
(responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */
|
|
30767
|
-
/* @__PURE__ */
|
|
30768
|
-
isResponseSuppressed ? /* @__PURE__ */
|
|
30841
|
+
(responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30842
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Response" }),
|
|
30843
|
+
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
30844
|
] }),
|
|
30770
|
-
exceptionPayload !== void 0 && /* @__PURE__ */
|
|
30771
|
-
/* @__PURE__ */
|
|
30772
|
-
/* @__PURE__ */
|
|
30845
|
+
exceptionPayload !== void 0 && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30846
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Exception" }),
|
|
30847
|
+
/* @__PURE__ */ jsx141(PayloadViewer, { testId: EVENT_DETAILS_EXCEPTION_PAYLOAD_TEST_ID, value: exceptionPayload })
|
|
30773
30848
|
] })
|
|
30774
30849
|
] })
|
|
30775
30850
|
}
|
|
30776
30851
|
)
|
|
30777
30852
|
] }),
|
|
30778
|
-
isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */
|
|
30779
|
-
/* @__PURE__ */
|
|
30780
|
-
/* @__PURE__ */
|
|
30853
|
+
isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */ jsxs131(Fragment11, { children: [
|
|
30854
|
+
/* @__PURE__ */ jsx141(Divider4, {}),
|
|
30855
|
+
/* @__PURE__ */ jsx141(ToggleSection, { headline: "Lambda Logs", children: /* @__PURE__ */ jsx141(
|
|
30781
30856
|
LambdaInvokeLogsSection,
|
|
30782
30857
|
{
|
|
30783
30858
|
endTimeNano: selectedEvent.end_time_unix_nano ?? selectedEvent.start_time_unix_nano,
|
|
@@ -30788,21 +30863,21 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30788
30863
|
}
|
|
30789
30864
|
) })
|
|
30790
30865
|
] }),
|
|
30791
|
-
/* @__PURE__ */
|
|
30792
|
-
/* @__PURE__ */
|
|
30793
|
-
/* @__PURE__ */
|
|
30794
|
-
/* @__PURE__ */
|
|
30795
|
-
/* @__PURE__ */
|
|
30866
|
+
/* @__PURE__ */ jsx141(Divider4, {}),
|
|
30867
|
+
/* @__PURE__ */ jsx141(ToggleSection, { headline: "Advanced Information", initialOpen: false, children: /* @__PURE__ */ jsxs131(Stack2, { spacing: 1, children: [
|
|
30868
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30869
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Span ID" }),
|
|
30870
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_SPAN_ID_TEST_ID, variant: "body2", children: selectedEvent.span_id })
|
|
30796
30871
|
] }),
|
|
30797
|
-
/* @__PURE__ */
|
|
30798
|
-
/* @__PURE__ */
|
|
30799
|
-
/* @__PURE__ */
|
|
30872
|
+
/* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30873
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Trace ID" }),
|
|
30874
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_TRACE_ID_TEST_ID, variant: "body2", children: selectedEvent.trace_id })
|
|
30800
30875
|
] }),
|
|
30801
|
-
requestId !== void 0 && /* @__PURE__ */
|
|
30802
|
-
/* @__PURE__ */
|
|
30803
|
-
/* @__PURE__ */
|
|
30876
|
+
requestId !== void 0 && /* @__PURE__ */ jsxs131(Box16, { children: [
|
|
30877
|
+
/* @__PURE__ */ jsx141(Typography11, { sx: { fontWeight: 600 }, variant: "caption", children: "Request ID" }),
|
|
30878
|
+
/* @__PURE__ */ jsx141(Typography11, { "data-testid": EVENT_DETAILS_REQUEST_ID_TEST_ID, variant: "body2", children: requestId })
|
|
30804
30879
|
] }),
|
|
30805
|
-
eventGroups.info && /* @__PURE__ */
|
|
30880
|
+
eventGroups.info && /* @__PURE__ */ jsx141(EventDetail, { displayText: "Info", events: eventGroups.info, type: "info" })
|
|
30806
30881
|
] }) })
|
|
30807
30882
|
] }) })
|
|
30808
30883
|
] });
|
|
@@ -30815,27 +30890,27 @@ import { Background, MarkerType, Position as Position2, ReactFlow, useEdgesState
|
|
|
30815
30890
|
import { useEffect as useEffect20 } from "react";
|
|
30816
30891
|
|
|
30817
30892
|
// src/components/trace-graph/service-node.tsx
|
|
30818
|
-
import { Box as
|
|
30893
|
+
import { Box as Box18, Divider as Divider5, Stack as Stack3, Typography as Typography12, useTheme as useTheme4 } from "@mui/material";
|
|
30819
30894
|
import "@xyflow/react/dist/style.css";
|
|
30820
30895
|
import { Handle, Position } from "@xyflow/react";
|
|
30821
30896
|
import { memo as memo11 } from "react";
|
|
30822
30897
|
|
|
30823
30898
|
// src/components/trace-graph/problem-indicator.tsx
|
|
30824
30899
|
import { Error as ErrorIcon2, Info as Info2, Warning as Warning2 } from "@mui/icons-material";
|
|
30825
|
-
import { Box as
|
|
30900
|
+
import { Box as Box17, Tooltip as Tooltip5 } from "@mui/material";
|
|
30826
30901
|
import { useMemo as useMemo13 } from "react";
|
|
30827
|
-
import { jsx as
|
|
30902
|
+
import { jsx as jsx142 } from "react/jsx-runtime";
|
|
30828
30903
|
var ProblemIndicator = ({ error }) => {
|
|
30829
30904
|
const icon = useMemo13(() => {
|
|
30830
30905
|
switch (error.level) {
|
|
30831
30906
|
case "error": {
|
|
30832
|
-
return /* @__PURE__ */
|
|
30907
|
+
return /* @__PURE__ */ jsx142(ErrorIcon2, { sx: { color: "#d32f2f", fontSize: "14px" } });
|
|
30833
30908
|
}
|
|
30834
30909
|
case "warning": {
|
|
30835
|
-
return /* @__PURE__ */
|
|
30910
|
+
return /* @__PURE__ */ jsx142(Warning2, { sx: { color: "#ff9800", fontSize: "14px" } });
|
|
30836
30911
|
}
|
|
30837
30912
|
default: {
|
|
30838
|
-
return /* @__PURE__ */
|
|
30913
|
+
return /* @__PURE__ */ jsx142(Info2, { sx: { color: "#2196f3", fontSize: "14px" } });
|
|
30839
30914
|
}
|
|
30840
30915
|
}
|
|
30841
30916
|
}, [error.level]);
|
|
@@ -30852,8 +30927,8 @@ var ProblemIndicator = ({ error }) => {
|
|
|
30852
30927
|
}
|
|
30853
30928
|
}
|
|
30854
30929
|
}, [error.level]);
|
|
30855
|
-
return /* @__PURE__ */
|
|
30856
|
-
|
|
30930
|
+
return /* @__PURE__ */ jsx142(Tooltip5, { arrow: true, title: error.message ?? "Issue detected", children: /* @__PURE__ */ jsx142(
|
|
30931
|
+
Box17,
|
|
30857
30932
|
{
|
|
30858
30933
|
sx: {
|
|
30859
30934
|
alignItems: "center",
|
|
@@ -30872,7 +30947,7 @@ var ProblemIndicator = ({ error }) => {
|
|
|
30872
30947
|
};
|
|
30873
30948
|
|
|
30874
30949
|
// src/components/trace-graph/service-node.tsx
|
|
30875
|
-
import { jsx as
|
|
30950
|
+
import { jsx as jsx143, jsxs as jsxs132 } from "react/jsx-runtime";
|
|
30876
30951
|
var handleStyle = {
|
|
30877
30952
|
backgroundColor: "white",
|
|
30878
30953
|
borderColor: "lightgray",
|
|
@@ -30881,8 +30956,8 @@ var handleStyle = {
|
|
|
30881
30956
|
var ServiceNode = memo11(({ data, selected }) => {
|
|
30882
30957
|
const theme = useTheme4();
|
|
30883
30958
|
const hasErrors = (data.event.errors && data.event.errors.length > 0) ?? false;
|
|
30884
|
-
return /* @__PURE__ */
|
|
30885
|
-
|
|
30959
|
+
return /* @__PURE__ */ jsxs132(
|
|
30960
|
+
Box18,
|
|
30886
30961
|
{
|
|
30887
30962
|
"data-testid": SERVICE_NODE_TEST_ID,
|
|
30888
30963
|
role: "button",
|
|
@@ -30904,19 +30979,19 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
30904
30979
|
},
|
|
30905
30980
|
tabIndex: 0,
|
|
30906
30981
|
children: [
|
|
30907
|
-
/* @__PURE__ */
|
|
30908
|
-
/* @__PURE__ */
|
|
30909
|
-
/* @__PURE__ */
|
|
30982
|
+
/* @__PURE__ */ jsx143(Handle, { position: Position.Left, style: handleStyle, type: "target" }),
|
|
30983
|
+
/* @__PURE__ */ jsx143(Handle, { position: Position.Right, style: handleStyle, type: "source" }),
|
|
30984
|
+
/* @__PURE__ */ jsxs132(
|
|
30910
30985
|
Stack3,
|
|
30911
30986
|
{
|
|
30912
30987
|
alignItems: "center",
|
|
30913
30988
|
direction: "row",
|
|
30914
30989
|
sx: { gap: "8px", pb: "2px", pt: "6px", px: "8px" },
|
|
30915
30990
|
children: [
|
|
30916
|
-
/* @__PURE__ */
|
|
30917
|
-
/* @__PURE__ */
|
|
30918
|
-
/* @__PURE__ */
|
|
30919
|
-
|
|
30991
|
+
/* @__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" }) }),
|
|
30992
|
+
/* @__PURE__ */ jsxs132(Stack3, { sx: { minWidth: 0 }, children: [
|
|
30993
|
+
/* @__PURE__ */ jsx143(
|
|
30994
|
+
Typography12,
|
|
30920
30995
|
{
|
|
30921
30996
|
noWrap: true,
|
|
30922
30997
|
sx: { fontWeight: 700, lineHeight: 1.25 },
|
|
@@ -30924,8 +30999,8 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
30924
30999
|
children: getServiceDisplayName(data.event.service_name)
|
|
30925
31000
|
}
|
|
30926
31001
|
),
|
|
30927
|
-
data.event.resource_name != "" && /* @__PURE__ */
|
|
30928
|
-
|
|
31002
|
+
data.event.resource_name != "" && /* @__PURE__ */ jsx143(
|
|
31003
|
+
Typography12,
|
|
30929
31004
|
{
|
|
30930
31005
|
color: "text.secondary",
|
|
30931
31006
|
noWrap: true,
|
|
@@ -30938,16 +31013,16 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
30938
31013
|
]
|
|
30939
31014
|
}
|
|
30940
31015
|
),
|
|
30941
|
-
/* @__PURE__ */
|
|
30942
|
-
/* @__PURE__ */
|
|
31016
|
+
/* @__PURE__ */ jsx143(Divider5, { sx: { ml: "38px", mr: "8px", my: "5px" } }),
|
|
31017
|
+
/* @__PURE__ */ jsxs132(
|
|
30943
31018
|
Stack3,
|
|
30944
31019
|
{
|
|
30945
31020
|
alignItems: "center",
|
|
30946
31021
|
direction: "row",
|
|
30947
31022
|
sx: { minWidth: 0, pb: "5px", pr: "8px", pt: "1px" },
|
|
30948
31023
|
children: [
|
|
30949
|
-
/* @__PURE__ */
|
|
30950
|
-
|
|
31024
|
+
/* @__PURE__ */ jsx143(
|
|
31025
|
+
Box18,
|
|
30951
31026
|
{
|
|
30952
31027
|
sx: {
|
|
30953
31028
|
alignItems: "center",
|
|
@@ -30956,11 +31031,11 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
30956
31031
|
justifyContent: "center",
|
|
30957
31032
|
width: "38px"
|
|
30958
31033
|
},
|
|
30959
|
-
children: hasErrors && data.event.errors?.map((error) => /* @__PURE__ */
|
|
31034
|
+
children: hasErrors && data.event.errors?.map((error) => /* @__PURE__ */ jsx143(ProblemIndicator, { error }, error.span_id))
|
|
30960
31035
|
}
|
|
30961
31036
|
),
|
|
30962
|
-
/* @__PURE__ */
|
|
30963
|
-
|
|
31037
|
+
/* @__PURE__ */ jsx143(
|
|
31038
|
+
Typography12,
|
|
30964
31039
|
{
|
|
30965
31040
|
"data-testid": SERVICE_NODE_OPERATION_NAME_TEST_ID,
|
|
30966
31041
|
noWrap: true,
|
|
@@ -31033,11 +31108,11 @@ var getLayoutedNodesAndEdges = (inputNodes, inputEdges) => {
|
|
|
31033
31108
|
|
|
31034
31109
|
// src/components/trace-graph/xyflow/controls.tsx
|
|
31035
31110
|
import { Add, FitScreen, Remove } from "@mui/icons-material";
|
|
31036
|
-
import { Box as
|
|
31111
|
+
import { Box as Box19, IconButton as IconButton5 } from "@mui/material";
|
|
31037
31112
|
import { useReactFlow, useStore as useStore2 } from "@xyflow/react";
|
|
31038
31113
|
import { memo as memo12 } from "react";
|
|
31039
31114
|
import { shallow } from "zustand/shallow";
|
|
31040
|
-
import { jsx as
|
|
31115
|
+
import { jsx as jsx144, jsxs as jsxs133 } from "react/jsx-runtime";
|
|
31041
31116
|
var selector = (s2) => ({
|
|
31042
31117
|
isInteractive: s2.nodesDraggable || s2.nodesConnectable || s2.elementsSelectable,
|
|
31043
31118
|
maxZoomReached: s2.transform[2] >= s2.maxZoom,
|
|
@@ -31055,8 +31130,8 @@ var Controls = memo12(() => {
|
|
|
31055
31130
|
const onFitViewHandler = () => {
|
|
31056
31131
|
void fitView();
|
|
31057
31132
|
};
|
|
31058
|
-
return /* @__PURE__ */
|
|
31059
|
-
|
|
31133
|
+
return /* @__PURE__ */ jsxs133(
|
|
31134
|
+
Box19,
|
|
31060
31135
|
{
|
|
31061
31136
|
sx: {
|
|
31062
31137
|
bottom: 0,
|
|
@@ -31069,33 +31144,33 @@ var Controls = memo12(() => {
|
|
|
31069
31144
|
zIndex: 5
|
|
31070
31145
|
},
|
|
31071
31146
|
children: [
|
|
31072
|
-
/* @__PURE__ */
|
|
31147
|
+
/* @__PURE__ */ jsx144(
|
|
31073
31148
|
IconButton5,
|
|
31074
31149
|
{
|
|
31075
31150
|
className: "react-flow__controls-zoomin",
|
|
31076
31151
|
disabled: maxZoomReached,
|
|
31077
31152
|
onClick: onZoomInHandler,
|
|
31078
31153
|
size: "small",
|
|
31079
|
-
children: /* @__PURE__ */
|
|
31154
|
+
children: /* @__PURE__ */ jsx144(Add, {})
|
|
31080
31155
|
}
|
|
31081
31156
|
),
|
|
31082
|
-
/* @__PURE__ */
|
|
31157
|
+
/* @__PURE__ */ jsx144(
|
|
31083
31158
|
IconButton5,
|
|
31084
31159
|
{
|
|
31085
31160
|
className: "react-flow__controls-zoomout",
|
|
31086
31161
|
disabled: minZoomReached,
|
|
31087
31162
|
onClick: onZoomOutHandler,
|
|
31088
31163
|
size: "small",
|
|
31089
|
-
children: /* @__PURE__ */
|
|
31164
|
+
children: /* @__PURE__ */ jsx144(Remove, {})
|
|
31090
31165
|
}
|
|
31091
31166
|
),
|
|
31092
|
-
/* @__PURE__ */
|
|
31167
|
+
/* @__PURE__ */ jsx144(
|
|
31093
31168
|
IconButton5,
|
|
31094
31169
|
{
|
|
31095
31170
|
className: "react-flow__controls-fitview",
|
|
31096
31171
|
onClick: onFitViewHandler,
|
|
31097
31172
|
size: "small",
|
|
31098
|
-
children: /* @__PURE__ */
|
|
31173
|
+
children: /* @__PURE__ */ jsx144(FitScreen, {})
|
|
31099
31174
|
}
|
|
31100
31175
|
)
|
|
31101
31176
|
]
|
|
@@ -31104,7 +31179,7 @@ var Controls = memo12(() => {
|
|
|
31104
31179
|
});
|
|
31105
31180
|
|
|
31106
31181
|
// src/components/trace-graph/trace-graph.tsx
|
|
31107
|
-
import { Fragment as
|
|
31182
|
+
import { Fragment as Fragment12, jsx as jsx145, jsxs as jsxs134 } from "react/jsx-runtime";
|
|
31108
31183
|
var nodeTypes = {
|
|
31109
31184
|
service: ServiceNode
|
|
31110
31185
|
};
|
|
@@ -31167,11 +31242,11 @@ var TraceGraph = ({
|
|
|
31167
31242
|
setEdges(layoutedEdges);
|
|
31168
31243
|
}, [spans.data, initialFocusEventId, setNodes, setEdges]);
|
|
31169
31244
|
const theme = useTheme5();
|
|
31170
|
-
return /* @__PURE__ */
|
|
31171
|
-
spans.error && /* @__PURE__ */
|
|
31245
|
+
return /* @__PURE__ */ jsxs134(Fragment12, { children: [
|
|
31246
|
+
spans.error && /* @__PURE__ */ jsxs134(
|
|
31172
31247
|
Alert5,
|
|
31173
31248
|
{
|
|
31174
|
-
action: /* @__PURE__ */
|
|
31249
|
+
action: /* @__PURE__ */ jsx145(Button5, { onClick: () => {
|
|
31175
31250
|
onRefresh();
|
|
31176
31251
|
}, children: "Retry" }),
|
|
31177
31252
|
severity: "error",
|
|
@@ -31182,7 +31257,7 @@ var TraceGraph = ({
|
|
|
31182
31257
|
]
|
|
31183
31258
|
}
|
|
31184
31259
|
),
|
|
31185
|
-
/* @__PURE__ */
|
|
31260
|
+
/* @__PURE__ */ jsxs134(
|
|
31186
31261
|
ReactFlow,
|
|
31187
31262
|
{
|
|
31188
31263
|
"data-testid": TRACE_GRAPH_TEST_ID,
|
|
@@ -31200,8 +31275,8 @@ var TraceGraph = ({
|
|
|
31200
31275
|
onNodesChange,
|
|
31201
31276
|
selectNodesOnDrag: false,
|
|
31202
31277
|
children: [
|
|
31203
|
-
/* @__PURE__ */
|
|
31204
|
-
/* @__PURE__ */
|
|
31278
|
+
/* @__PURE__ */ jsx145(Controls, {}),
|
|
31279
|
+
/* @__PURE__ */ jsx145(
|
|
31205
31280
|
Background,
|
|
31206
31281
|
{
|
|
31207
31282
|
bgColor: theme.palette.background.default,
|
|
@@ -31215,7 +31290,7 @@ var TraceGraph = ({
|
|
|
31215
31290
|
};
|
|
31216
31291
|
|
|
31217
31292
|
// src/pages/trace-graph-page.tsx
|
|
31218
|
-
import { Fragment as
|
|
31293
|
+
import { Fragment as Fragment13, jsx as jsx146, jsxs as jsxs135 } from "react/jsx-runtime";
|
|
31219
31294
|
var HEADER_HEIGHT = 56;
|
|
31220
31295
|
var DRAWER_WIDTH = "35%";
|
|
31221
31296
|
var Main = styled("main", { shouldForwardProp: (property) => property !== "open" })(({ open, theme }) => ({
|
|
@@ -31264,8 +31339,8 @@ var TraceGraphView = ({
|
|
|
31264
31339
|
traceId
|
|
31265
31340
|
}) => {
|
|
31266
31341
|
const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
|
|
31267
|
-
return /* @__PURE__ */
|
|
31268
|
-
|
|
31342
|
+
return /* @__PURE__ */ jsxs135(
|
|
31343
|
+
Box20,
|
|
31269
31344
|
{
|
|
31270
31345
|
"data-testid": TRACE_GRAPH_PAGE_TEST_ID,
|
|
31271
31346
|
sx: {
|
|
@@ -31277,13 +31352,13 @@ var TraceGraphView = ({
|
|
|
31277
31352
|
overflow: "hidden"
|
|
31278
31353
|
},
|
|
31279
31354
|
children: [
|
|
31280
|
-
/* @__PURE__ */
|
|
31281
|
-
/* @__PURE__ */
|
|
31355
|
+
/* @__PURE__ */ jsxs135(Box20, { sx: { display: "flex", width: "100%" }, children: [
|
|
31356
|
+
/* @__PURE__ */ jsx146(Button6, { onClick: () => {
|
|
31282
31357
|
navigateToSpansList();
|
|
31283
|
-
}, startIcon: /* @__PURE__ */
|
|
31284
|
-
/* @__PURE__ */
|
|
31358
|
+
}, startIcon: /* @__PURE__ */ jsx146(ArrowBack, {}), children: "Go back" }),
|
|
31359
|
+
/* @__PURE__ */ jsx146(Box20, { sx: { flexGrow: 1 } })
|
|
31285
31360
|
] }),
|
|
31286
|
-
/* @__PURE__ */
|
|
31361
|
+
/* @__PURE__ */ jsx146(
|
|
31287
31362
|
Paper3,
|
|
31288
31363
|
{
|
|
31289
31364
|
sx: {
|
|
@@ -31293,7 +31368,7 @@ var TraceGraphView = ({
|
|
|
31293
31368
|
position: "relative",
|
|
31294
31369
|
width: "100%"
|
|
31295
31370
|
},
|
|
31296
|
-
children: shouldShowStatusMessage ? /* @__PURE__ */
|
|
31371
|
+
children: shouldShowStatusMessage ? /* @__PURE__ */ jsx146(
|
|
31297
31372
|
StatusMessage,
|
|
31298
31373
|
{
|
|
31299
31374
|
error: statusError,
|
|
@@ -31301,15 +31376,15 @@ var TraceGraphView = ({
|
|
|
31301
31376
|
onRetry: handleRetry,
|
|
31302
31377
|
status
|
|
31303
31378
|
}
|
|
31304
|
-
) : /* @__PURE__ */
|
|
31305
|
-
/* @__PURE__ */
|
|
31306
|
-
|
|
31379
|
+
) : /* @__PURE__ */ jsxs135(Fragment13, { children: [
|
|
31380
|
+
/* @__PURE__ */ jsx146(Main, { open, children: /* @__PURE__ */ jsx146(
|
|
31381
|
+
Box20,
|
|
31307
31382
|
{
|
|
31308
31383
|
sx: {
|
|
31309
31384
|
height: "100%",
|
|
31310
31385
|
overflow: "auto"
|
|
31311
31386
|
},
|
|
31312
|
-
children: traceId !== void 0 && /* @__PURE__ */
|
|
31387
|
+
children: traceId !== void 0 && /* @__PURE__ */ jsx146(ReactFlowProvider, { children: /* @__PURE__ */ jsx146(
|
|
31313
31388
|
TraceGraph,
|
|
31314
31389
|
{
|
|
31315
31390
|
initialFocusEventId: spanId,
|
|
@@ -31326,7 +31401,7 @@ var TraceGraphView = ({
|
|
|
31326
31401
|
) })
|
|
31327
31402
|
}
|
|
31328
31403
|
) }),
|
|
31329
|
-
/* @__PURE__ */
|
|
31404
|
+
/* @__PURE__ */ jsx146(StyledDrawer, { anchor: "right", open, variant: "persistent", children: /* @__PURE__ */ jsx146(EventDetails, { onClose: handleClose, selectedEvent }) })
|
|
31330
31405
|
] })
|
|
31331
31406
|
}
|
|
31332
31407
|
)
|
|
@@ -31419,7 +31494,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
31419
31494
|
const navigateToSpansList = useCallback11(() => {
|
|
31420
31495
|
onClose?.();
|
|
31421
31496
|
}, [onClose]);
|
|
31422
|
-
return /* @__PURE__ */
|
|
31497
|
+
return /* @__PURE__ */ jsx146(
|
|
31423
31498
|
TraceGraphView,
|
|
31424
31499
|
{
|
|
31425
31500
|
fetchError,
|
|
@@ -31444,7 +31519,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
31444
31519
|
};
|
|
31445
31520
|
|
|
31446
31521
|
// src/pages/spans-list-page.tsx
|
|
31447
|
-
import { Fragment as
|
|
31522
|
+
import { Fragment as Fragment14, jsx as jsx147, jsxs as jsxs136 } from "react/jsx-runtime";
|
|
31448
31523
|
var SpansListPage = () => {
|
|
31449
31524
|
const api = useAppInspectorApi();
|
|
31450
31525
|
const {
|
|
@@ -31491,9 +31566,9 @@ var SpansListPage = () => {
|
|
|
31491
31566
|
void checkStatus();
|
|
31492
31567
|
}, [api, checkStatus, clearFetchError]);
|
|
31493
31568
|
const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
|
|
31494
|
-
return /* @__PURE__ */
|
|
31495
|
-
/* @__PURE__ */
|
|
31496
|
-
|
|
31569
|
+
return /* @__PURE__ */ jsxs136(Fragment14, { children: [
|
|
31570
|
+
/* @__PURE__ */ jsxs136(
|
|
31571
|
+
Box21,
|
|
31497
31572
|
{
|
|
31498
31573
|
"data-testid": SPANS_LIST_PAGE_TEST_ID,
|
|
31499
31574
|
sx: {
|
|
@@ -31508,7 +31583,7 @@ var SpansListPage = () => {
|
|
|
31508
31583
|
width: "100%"
|
|
31509
31584
|
},
|
|
31510
31585
|
children: [
|
|
31511
|
-
!checking && !shouldShowStatusMessage && /* @__PURE__ */
|
|
31586
|
+
!checking && !shouldShowStatusMessage && /* @__PURE__ */ jsx147(
|
|
31512
31587
|
EmulatorVersionBanner,
|
|
31513
31588
|
{
|
|
31514
31589
|
compatibility: bannerDismissed && versionCompatibility === "warning" ? "ok" : versionCompatibility,
|
|
@@ -31518,7 +31593,7 @@ var SpansListPage = () => {
|
|
|
31518
31593
|
} : void 0
|
|
31519
31594
|
}
|
|
31520
31595
|
),
|
|
31521
|
-
shouldShowStatusMessage ? /* @__PURE__ */
|
|
31596
|
+
shouldShowStatusMessage ? /* @__PURE__ */ jsx147(
|
|
31522
31597
|
StatusMessage,
|
|
31523
31598
|
{
|
|
31524
31599
|
error: statusError,
|
|
@@ -31527,7 +31602,7 @@ var SpansListPage = () => {
|
|
|
31527
31602
|
onRetry: handleRetry,
|
|
31528
31603
|
status
|
|
31529
31604
|
}
|
|
31530
|
-
) : /* @__PURE__ */
|
|
31605
|
+
) : /* @__PURE__ */ jsx147(
|
|
31531
31606
|
SpansList,
|
|
31532
31607
|
{
|
|
31533
31608
|
clearingSpans,
|
|
@@ -31555,7 +31630,7 @@ var SpansListPage = () => {
|
|
|
31555
31630
|
]
|
|
31556
31631
|
}
|
|
31557
31632
|
),
|
|
31558
|
-
selectedTraceId !== void 0 && /* @__PURE__ */
|
|
31633
|
+
selectedTraceId !== void 0 && /* @__PURE__ */ jsx147(TraceGraphPage, { onClose: () => {
|
|
31559
31634
|
setSelectedTraceId(void 0);
|
|
31560
31635
|
}, spanId: selectedSpanId, traceId: selectedTraceId })
|
|
31561
31636
|
] });
|