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