@localstack/appinspector-ui 1.0.114 → 1.0.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +753 -666
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +703 -616
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2417,7 +2417,7 @@ __export(index_exports, {
|
|
|
2417
2417
|
module.exports = __toCommonJS(index_exports);
|
|
2418
2418
|
|
|
2419
2419
|
// src/pages/spans-list-page.tsx
|
|
2420
|
-
var
|
|
2420
|
+
var import_material24 = require("@mui/material");
|
|
2421
2421
|
var import_react69 = require("react");
|
|
2422
2422
|
|
|
2423
2423
|
// src/api/errors.ts
|
|
@@ -2576,11 +2576,11 @@ var EmulatorVersionBanner = ({
|
|
|
2576
2576
|
};
|
|
2577
2577
|
|
|
2578
2578
|
// src/components/spans-list/spans-list.tsx
|
|
2579
|
-
var
|
|
2579
|
+
var import_material8 = require("@mui/material");
|
|
2580
2580
|
|
|
2581
2581
|
// src/components/spans-list/spans-data-grid.tsx
|
|
2582
|
-
var
|
|
2583
|
-
var
|
|
2582
|
+
var import_icons_material3 = require("@mui/icons-material");
|
|
2583
|
+
var import_material7 = require("@mui/material");
|
|
2584
2584
|
|
|
2585
2585
|
// node_modules/@tanstack/react-table/build/lib/index.mjs
|
|
2586
2586
|
var React = __toESM(require("react"), 1);
|
|
@@ -14868,11 +14868,182 @@ var ServiceCell = (0, import_react40.memo)(({
|
|
|
14868
14868
|
});
|
|
14869
14869
|
ServiceCell.displayName = "ServiceCell";
|
|
14870
14870
|
|
|
14871
|
-
// src/components/
|
|
14871
|
+
// src/components/cells/status-cell.tsx
|
|
14872
14872
|
var import_icons_material = require("@mui/icons-material");
|
|
14873
14873
|
var import_material5 = require("@mui/material");
|
|
14874
|
-
|
|
14874
|
+
|
|
14875
|
+
// src/types/error-levels.ts
|
|
14876
|
+
var ErrorLevel = {
|
|
14877
|
+
ERROR: 3,
|
|
14878
|
+
// General error
|
|
14879
|
+
IAM_PERMISSION: 5,
|
|
14880
|
+
// IAM permission issues
|
|
14881
|
+
OK: 2,
|
|
14882
|
+
// OK
|
|
14883
|
+
// Standard OTEL status codes
|
|
14884
|
+
UNSET: 1,
|
|
14885
|
+
// Unset
|
|
14886
|
+
// Extended custom levels
|
|
14887
|
+
WARNING: 4
|
|
14888
|
+
// Warning
|
|
14889
|
+
};
|
|
14890
|
+
|
|
14891
|
+
// src/utils/iam-utils.ts
|
|
14892
|
+
function determinePermissionStatus(payload) {
|
|
14893
|
+
if (payload.explicit_deny_count && payload.explicit_deny_count > 0) {
|
|
14894
|
+
return "explicitly_denied";
|
|
14895
|
+
}
|
|
14896
|
+
if (payload.is_allowed && payload.explicit_allow_count && payload.explicit_allow_count > 0) {
|
|
14897
|
+
return "explicitly_allowed";
|
|
14898
|
+
}
|
|
14899
|
+
if (payload.is_allowed) {
|
|
14900
|
+
return "implicitly_allowed";
|
|
14901
|
+
}
|
|
14902
|
+
return "implicitly_denied";
|
|
14903
|
+
}
|
|
14904
|
+
function formatPermissionStatus(status) {
|
|
14905
|
+
switch (status) {
|
|
14906
|
+
case "explicitly_allowed": {
|
|
14907
|
+
return "Explicitly Allowed";
|
|
14908
|
+
}
|
|
14909
|
+
case "explicitly_denied": {
|
|
14910
|
+
return "Explicitly Denied";
|
|
14911
|
+
}
|
|
14912
|
+
case "implicitly_allowed": {
|
|
14913
|
+
return "Implicitly Allowed";
|
|
14914
|
+
}
|
|
14915
|
+
case "implicitly_denied": {
|
|
14916
|
+
return "Implicitly Denied";
|
|
14917
|
+
}
|
|
14918
|
+
}
|
|
14919
|
+
}
|
|
14920
|
+
function getPermissionStatusColor(status) {
|
|
14921
|
+
switch (status) {
|
|
14922
|
+
case "explicitly_allowed":
|
|
14923
|
+
case "implicitly_allowed": {
|
|
14924
|
+
return "success.main";
|
|
14925
|
+
}
|
|
14926
|
+
case "explicitly_denied": {
|
|
14927
|
+
return "error.main";
|
|
14928
|
+
}
|
|
14929
|
+
case "implicitly_denied": {
|
|
14930
|
+
return "warning.main";
|
|
14931
|
+
}
|
|
14932
|
+
}
|
|
14933
|
+
}
|
|
14934
|
+
function parseIAMEvent(payloadString) {
|
|
14935
|
+
try {
|
|
14936
|
+
const payload = JSON.parse(payloadString);
|
|
14937
|
+
const permission = determinePermissionStatus(payload);
|
|
14938
|
+
const actions = [];
|
|
14939
|
+
const resources = [];
|
|
14940
|
+
if (payload.explicit_allows) {
|
|
14941
|
+
for (const allow of payload.explicit_allows) {
|
|
14942
|
+
if (!actions.includes(allow.action)) actions.push(allow.action);
|
|
14943
|
+
if (!resources.includes(allow.resource)) resources.push(allow.resource);
|
|
14944
|
+
}
|
|
14945
|
+
}
|
|
14946
|
+
if (payload.explicit_denies) {
|
|
14947
|
+
for (const deny of payload.explicit_denies) {
|
|
14948
|
+
if (!actions.includes(deny.action)) actions.push(deny.action);
|
|
14949
|
+
if (!resources.includes(deny.resource)) resources.push(deny.resource);
|
|
14950
|
+
}
|
|
14951
|
+
}
|
|
14952
|
+
if (payload.implicit_denies) {
|
|
14953
|
+
for (const deny of payload.implicit_denies) {
|
|
14954
|
+
if (!actions.includes(deny.action)) actions.push(deny.action);
|
|
14955
|
+
if (!resources.includes(deny.resource)) resources.push(deny.resource);
|
|
14956
|
+
}
|
|
14957
|
+
}
|
|
14958
|
+
return {
|
|
14959
|
+
details: {
|
|
14960
|
+
actions,
|
|
14961
|
+
explicitAllows: payload.explicit_allow_count,
|
|
14962
|
+
explicitDenies: payload.explicit_deny_count,
|
|
14963
|
+
implicitDenies: payload.implicit_deny_count,
|
|
14964
|
+
resources
|
|
14965
|
+
},
|
|
14966
|
+
operation: payload.operation,
|
|
14967
|
+
permission,
|
|
14968
|
+
principal: payload.principal_arn,
|
|
14969
|
+
service: payload.service
|
|
14970
|
+
};
|
|
14971
|
+
} catch (error) {
|
|
14972
|
+
console.error("Error parsing IAM event payload:", error);
|
|
14973
|
+
return void 0;
|
|
14974
|
+
}
|
|
14975
|
+
}
|
|
14976
|
+
|
|
14977
|
+
// src/components/cells/status-cell.tsx
|
|
14875
14978
|
var import_jsx_runtime126 = require("react/jsx-runtime");
|
|
14979
|
+
var StatusIcon = ({ errorLevel, spanStatusCode }) => {
|
|
14980
|
+
switch (errorLevel) {
|
|
14981
|
+
case ErrorLevel.ERROR: {
|
|
14982
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.Cancel, { sx: { color: "red" } });
|
|
14983
|
+
}
|
|
14984
|
+
case ErrorLevel.IAM_PERMISSION: {
|
|
14985
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.GppBad, { sx: { color: spanStatusCode === 2 ? "red" : "warning.main" } });
|
|
14986
|
+
}
|
|
14987
|
+
case ErrorLevel.WARNING: {
|
|
14988
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.Error, { sx: { color: "orange" } });
|
|
14989
|
+
}
|
|
14990
|
+
default: {
|
|
14991
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_jsx_runtime126.Fragment, {});
|
|
14992
|
+
}
|
|
14993
|
+
}
|
|
14994
|
+
};
|
|
14995
|
+
var calculateHighestErrorLevel = (span) => {
|
|
14996
|
+
const hasIamDenial = span.events.some((event) => {
|
|
14997
|
+
if (!event.event_type?.toLowerCase().includes("iam")) return false;
|
|
14998
|
+
if (typeof event.attributes?.payload !== "string") return false;
|
|
14999
|
+
const parsed = parseIAMEvent(event.attributes.payload);
|
|
15000
|
+
return parsed?.permission === "explicitly_denied" || parsed?.permission === "implicitly_denied";
|
|
15001
|
+
});
|
|
15002
|
+
if (hasIamDenial) return ErrorLevel.IAM_PERMISSION;
|
|
15003
|
+
if (span.status_code === 2) return ErrorLevel.ERROR;
|
|
15004
|
+
const hasErrorInErrors = span.errors?.some((error) => error.level === "error");
|
|
15005
|
+
if (hasErrorInErrors) return ErrorLevel.ERROR;
|
|
15006
|
+
const hasWarning = span.errors?.some((error) => error.level === "warning");
|
|
15007
|
+
if (hasWarning) return ErrorLevel.WARNING;
|
|
15008
|
+
return span.status_code || ErrorLevel.UNSET;
|
|
15009
|
+
};
|
|
15010
|
+
var SPAN_STATUS_LABELS = {
|
|
15011
|
+
0: "Unset",
|
|
15012
|
+
1: "OK",
|
|
15013
|
+
2: "Error"
|
|
15014
|
+
};
|
|
15015
|
+
var buildTooltipContent = (span) => {
|
|
15016
|
+
const messages = [];
|
|
15017
|
+
if (span.status_message) messages.push(span.status_message);
|
|
15018
|
+
for (const error of span.errors ?? []) {
|
|
15019
|
+
if (error.message) messages.push(error.message);
|
|
15020
|
+
}
|
|
15021
|
+
const spanStatusLabel = SPAN_STATUS_LABELS[span.status_code] ?? `Unknown (${span.status_code.toString()})`;
|
|
15022
|
+
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);
|
|
15023
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { children: [
|
|
15024
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Typography, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: [
|
|
15025
|
+
"Status: ",
|
|
15026
|
+
spanStatusLabel
|
|
15027
|
+
] }),
|
|
15028
|
+
messages.map((message, index) => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "inherit", display: "block", variant: "caption", children: message }, index)),
|
|
15029
|
+
iamDenials.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
|
|
15030
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Divider, { sx: { borderColor: "rgba(255,255,255,0.2)", my: 0.5 } }),
|
|
15031
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: "Permissions" }),
|
|
15032
|
+
iamDenials.map((denial, index) => denial !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "inherit", display: "block", variant: "caption", children: `${formatPermissionStatus(denial.permission)}: ${denial.service}.${denial.operation}` }, index))
|
|
15033
|
+
] })
|
|
15034
|
+
] });
|
|
15035
|
+
};
|
|
15036
|
+
var StatusIconWithTooltip = ({ span }) => {
|
|
15037
|
+
const errorLevel = calculateHighestErrorLevel(span);
|
|
15038
|
+
if (errorLevel !== ErrorLevel.ERROR && errorLevel !== ErrorLevel.IAM_PERMISSION) return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_jsx_runtime126.Fragment, {});
|
|
15039
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Tooltip, { title: buildTooltipContent(span), children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Box, { sx: { alignItems: "center", cursor: "default", display: "flex" }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StatusIcon, { errorLevel, spanStatusCode: span.status_code }) }) });
|
|
15040
|
+
};
|
|
15041
|
+
|
|
15042
|
+
// src/components/spans-list/span-count-badge.tsx
|
|
15043
|
+
var import_icons_material2 = require("@mui/icons-material");
|
|
15044
|
+
var import_material6 = require("@mui/material");
|
|
15045
|
+
var import_react41 = require("react");
|
|
15046
|
+
var import_jsx_runtime127 = require("react/jsx-runtime");
|
|
14876
15047
|
var resolveBindingLimit = (systemLimit, licenseLimit) => {
|
|
14877
15048
|
const numericLimits = [systemLimit, licenseLimit].filter((l2) => typeof l2 === "number");
|
|
14878
15049
|
if (numericLimits.length > 0) return Math.min(...numericLimits);
|
|
@@ -14885,29 +15056,29 @@ var fmtLimit = (value) => {
|
|
|
14885
15056
|
if (value === "unlimited") return "Unlimited";
|
|
14886
15057
|
return fmt(value);
|
|
14887
15058
|
};
|
|
14888
|
-
var StatRow = ({ label, value }) => /* @__PURE__ */ (0,
|
|
14889
|
-
/* @__PURE__ */ (0,
|
|
14890
|
-
/* @__PURE__ */ (0,
|
|
15059
|
+
var StatRow = ({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "baseline", display: "flex", justifyContent: "space-between", minWidth: 220 }, children: [
|
|
15060
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", sx: { mr: 4 }, variant: "caption", children: label }),
|
|
15061
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { fontWeight: 600, variant: "body2", children: fmtLimit(value) })
|
|
14891
15062
|
] });
|
|
14892
15063
|
var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) => {
|
|
14893
15064
|
const [anchorElement, setAnchorElement] = (0, import_react41.useState)();
|
|
14894
15065
|
const bindingLimit = resolveBindingLimit(systemLimit, licenseLimit);
|
|
14895
15066
|
if (totalCount === void 0 && bindingLimit === void 0) {
|
|
14896
|
-
return /* @__PURE__ */ (0,
|
|
15067
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_jsx_runtime127.Fragment, {});
|
|
14897
15068
|
}
|
|
14898
15069
|
if (visibleCount !== void 0) totalCount = Math.max(totalCount ?? 0, visibleCount);
|
|
14899
15070
|
const isLoading = totalCount === void 0;
|
|
14900
15071
|
const isOpen = anchorElement !== void 0;
|
|
14901
15072
|
const systemLimitReached = typeof systemLimit === "number" && totalCount !== void 0 && totalCount >= systemLimit;
|
|
14902
15073
|
const licenseLimitReached = typeof licenseLimit === "number" && totalCount !== void 0 && totalCount >= licenseLimit;
|
|
14903
|
-
return /* @__PURE__ */ (0,
|
|
14904
|
-
isLoading ? /* @__PURE__ */ (0,
|
|
14905
|
-
/* @__PURE__ */ (0,
|
|
14906
|
-
/* @__PURE__ */ (0,
|
|
14907
|
-
/* @__PURE__ */ (0,
|
|
15074
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "center", display: "flex", gap: 0.25 }, children: [
|
|
15075
|
+
isLoading ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Skeleton, { sx: { minWidth: 120 } }) : /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "baseline", display: "flex", gap: 0.5 }, children: [
|
|
15076
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", variant: "caption", children: "Showing" }),
|
|
15077
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { variant: "body2", children: visibleCount === void 0 ? "\u2014" : fmt(visibleCount) }),
|
|
15078
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", variant: "caption", children: `of ${totalCount === void 0 ? "-" : fmt(totalCount)} operations` })
|
|
14908
15079
|
] }),
|
|
14909
|
-
/* @__PURE__ */ (0,
|
|
14910
|
-
|
|
15080
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { title: "Operation count details", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
15081
|
+
import_material6.IconButton,
|
|
14911
15082
|
{
|
|
14912
15083
|
"aria-describedby": isOpen ? "operation-count-popover" : void 0,
|
|
14913
15084
|
onClick: (event) => {
|
|
@@ -14915,11 +15086,11 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
|
|
|
14915
15086
|
},
|
|
14916
15087
|
size: "small",
|
|
14917
15088
|
sx: { color: systemLimitReached || licenseLimitReached ? "warning.main" : "text.disabled" },
|
|
14918
|
-
children: systemLimitReached || licenseLimitReached ? /* @__PURE__ */ (0,
|
|
15089
|
+
children: systemLimitReached || licenseLimitReached ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.WarningAmberOutlined, { sx: { fontSize: 14 } }) : /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.InfoOutlined, { sx: { fontSize: 14 } })
|
|
14919
15090
|
}
|
|
14920
15091
|
) }),
|
|
14921
|
-
/* @__PURE__ */ (0,
|
|
14922
|
-
|
|
15092
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
15093
|
+
import_material6.Popover,
|
|
14923
15094
|
{
|
|
14924
15095
|
anchorEl: anchorElement,
|
|
14925
15096
|
anchorOrigin: { horizontal: "right", vertical: "bottom" },
|
|
@@ -14929,55 +15100,55 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
|
|
|
14929
15100
|
},
|
|
14930
15101
|
open: isOpen,
|
|
14931
15102
|
transformOrigin: { horizontal: "right", vertical: "top" },
|
|
14932
|
-
children: /* @__PURE__ */ (0,
|
|
14933
|
-
/* @__PURE__ */ (0,
|
|
14934
|
-
/* @__PURE__ */ (0,
|
|
14935
|
-
/* @__PURE__ */ (0,
|
|
14936
|
-
/* @__PURE__ */ (0,
|
|
15103
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { minWidth: 240, p: 2 }, children: [
|
|
15104
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { fontWeight: 700, variant: "body2", children: "Storage" }),
|
|
15105
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", sx: { mt: 0.25 }, variant: "caption", children: "How many operations are currently stored." }),
|
|
15106
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75, mt: 1.5 }, children: [
|
|
15107
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
14937
15108
|
StatRow,
|
|
14938
15109
|
{
|
|
14939
|
-
label: /* @__PURE__ */ (0,
|
|
15110
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { placement: "left", title: "The number of operations currently loaded in the UI.", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Currently visible" }) }),
|
|
14940
15111
|
value: visibleCount
|
|
14941
15112
|
}
|
|
14942
15113
|
),
|
|
14943
|
-
/* @__PURE__ */ (0,
|
|
15114
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
14944
15115
|
StatRow,
|
|
14945
15116
|
{
|
|
14946
|
-
label: /* @__PURE__ */ (0,
|
|
15117
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { placement: "left", title: "The total number of operations stored on the server.", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Total stored" }) }),
|
|
14947
15118
|
value: totalCount
|
|
14948
15119
|
}
|
|
14949
15120
|
)
|
|
14950
15121
|
] }),
|
|
14951
|
-
(systemLimit !== void 0 || licenseLimit !== void 0) && /* @__PURE__ */ (0,
|
|
14952
|
-
/* @__PURE__ */ (0,
|
|
14953
|
-
/* @__PURE__ */ (0,
|
|
14954
|
-
/* @__PURE__ */ (0,
|
|
14955
|
-
/* @__PURE__ */ (0,
|
|
14956
|
-
licenseLimit !== void 0 && /* @__PURE__ */ (0,
|
|
15122
|
+
(systemLimit !== void 0 || licenseLimit !== void 0) && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
15123
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Divider, { sx: { my: 1.5 } }),
|
|
15124
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", fontWeight: 600, variant: "caption", children: "Limits" }),
|
|
15125
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { 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." }),
|
|
15126
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75 }, children: [
|
|
15127
|
+
licenseLimit !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
14957
15128
|
StatRow,
|
|
14958
15129
|
{
|
|
14959
|
-
label: /* @__PURE__ */ (0,
|
|
15130
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { placement: "left", title: "The maximum number of operations allowed by your current license.", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "License limit" }) }),
|
|
14960
15131
|
value: licenseLimit
|
|
14961
15132
|
}
|
|
14962
15133
|
),
|
|
14963
|
-
systemLimit !== void 0 && /* @__PURE__ */ (0,
|
|
15134
|
+
systemLimit !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
14964
15135
|
StatRow,
|
|
14965
15136
|
{
|
|
14966
|
-
label: /* @__PURE__ */ (0,
|
|
15137
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { placement: "left", title: "The maximum number of operations that can be stored in the system.", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "System limit" }) }),
|
|
14967
15138
|
value: systemLimit
|
|
14968
15139
|
}
|
|
14969
15140
|
)
|
|
14970
15141
|
] })
|
|
14971
15142
|
] }),
|
|
14972
|
-
(systemLimitReached || licenseLimitReached) && /* @__PURE__ */ (0,
|
|
14973
|
-
licenseLimitReached && /* @__PURE__ */ (0,
|
|
14974
|
-
/* @__PURE__ */ (0,
|
|
14975
|
-
/* @__PURE__ */ (0,
|
|
14976
|
-
/* @__PURE__ */ (0,
|
|
15143
|
+
(systemLimitReached || licenseLimitReached) && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { display: "flex", flexDirection: "column", gap: 1, mt: 1.5 }, children: [
|
|
15144
|
+
licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { backgroundColor: "warning.main", borderRadius: 1, p: 1.5 }, children: [
|
|
15145
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75, mb: 0.75 }, children: [
|
|
15146
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.WarningAmberOutlined, { sx: { color: "warning.contrastText", fontSize: 14, mt: "1px" } }),
|
|
15147
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "warning.contrastText", fontWeight: 600, variant: "caption", children: "License limit reached" })
|
|
14977
15148
|
] }),
|
|
14978
|
-
/* @__PURE__ */ (0,
|
|
14979
|
-
/* @__PURE__ */ (0,
|
|
14980
|
-
|
|
15149
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "warning.contrastText", sx: { display: "block", mb: 1 }, variant: "caption", children: "Newer operations are being dropped. Upgrade your license to increase the retention limit." }),
|
|
15150
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
15151
|
+
import_material6.Button,
|
|
14981
15152
|
{
|
|
14982
15153
|
color: "inherit",
|
|
14983
15154
|
href: "https://localstack.cloud/pricing",
|
|
@@ -14989,9 +15160,9 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
|
|
|
14989
15160
|
}
|
|
14990
15161
|
)
|
|
14991
15162
|
] }),
|
|
14992
|
-
systemLimitReached && !licenseLimitReached && /* @__PURE__ */ (0,
|
|
14993
|
-
/* @__PURE__ */ (0,
|
|
14994
|
-
/* @__PURE__ */ (0,
|
|
15163
|
+
systemLimitReached && !licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75 }, children: [
|
|
15164
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.WarningAmberOutlined, { color: "warning", sx: { fontSize: 14, mt: "1px" } }),
|
|
15165
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "warning.main", variant: "caption", children: "System limit reached \u2014 newer operations are being dropped." })
|
|
14995
15166
|
] })
|
|
14996
15167
|
] })
|
|
14997
15168
|
] })
|
|
@@ -15001,7 +15172,7 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
|
|
|
15001
15172
|
};
|
|
15002
15173
|
|
|
15003
15174
|
// src/components/spans-list/spans-data-grid.tsx
|
|
15004
|
-
var
|
|
15175
|
+
var import_jsx_runtime128 = require("react/jsx-runtime");
|
|
15005
15176
|
var columnHelper = createColumnHelper();
|
|
15006
15177
|
var newSpanBackgroundColor = {
|
|
15007
15178
|
dark: { from: "rgba(136, 123, 2, 1)", to: "rgba(136, 123, 2, 0)" },
|
|
@@ -15013,16 +15184,16 @@ var LABEL_NO_SPANS = "There are no operations";
|
|
|
15013
15184
|
var LABEL_LOAD_OLDER = "Load older operations";
|
|
15014
15185
|
var LABEL_LOAD_NEWER = "Load newer operations";
|
|
15015
15186
|
var STICK_TO_EDGE_THRESHOLD_PX = 4;
|
|
15016
|
-
var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */ (0,
|
|
15017
|
-
var LoadSpansRow = ({ colSpan, fetching, label, onFetch }) => /* @__PURE__ */ (0,
|
|
15018
|
-
!fetching && /* @__PURE__ */ (0,
|
|
15019
|
-
fetching && /* @__PURE__ */ (0,
|
|
15187
|
+
var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableCell, { colSpan, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { children: label }) }) });
|
|
15188
|
+
var LoadSpansRow = ({ colSpan, fetching, label, onFetch }) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material7.TableCell, { colSpan, sx: { textAlign: "center" }, children: [
|
|
15189
|
+
!fetching && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Button, { onClick: onFetch, sx: { my: 1 }, children: label }),
|
|
15190
|
+
fetching && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.CircularProgress, { size: 24, sx: { m: 2 } })
|
|
15020
15191
|
] }) });
|
|
15021
15192
|
var SpansDataGridRow = (0, import_react42.memo)(
|
|
15022
15193
|
({ onSpanClick, row }) => {
|
|
15023
|
-
const theme = (0,
|
|
15024
|
-
return /* @__PURE__ */ (0,
|
|
15025
|
-
|
|
15194
|
+
const theme = (0, import_material7.useTheme)();
|
|
15195
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15196
|
+
import_material7.TableRow,
|
|
15026
15197
|
{
|
|
15027
15198
|
animate: {
|
|
15028
15199
|
backgroundColor: theme.palette.mode === "light" ? newSpanBackgroundColor.light.to : newSpanBackgroundColor.dark.to
|
|
@@ -15040,16 +15211,16 @@ var SpansDataGridRow = (0, import_react42.memo)(
|
|
|
15040
15211
|
transition: "background-color 1200ms ease-in"
|
|
15041
15212
|
},
|
|
15042
15213
|
children: row.getVisibleCells().map((cell) => {
|
|
15043
|
-
return /* @__PURE__ */ (0,
|
|
15044
|
-
|
|
15214
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15215
|
+
import_material7.TableCell,
|
|
15045
15216
|
{
|
|
15046
15217
|
sx: {
|
|
15047
15218
|
height: 36,
|
|
15048
15219
|
maxWidth: `${cell.column.getSize().toString()}px`,
|
|
15049
15220
|
minWidth: `${cell.column.getSize().toString()}px`
|
|
15050
15221
|
},
|
|
15051
|
-
children: /* @__PURE__ */ (0,
|
|
15052
|
-
|
|
15222
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15223
|
+
import_material7.Box,
|
|
15053
15224
|
{
|
|
15054
15225
|
sx: {
|
|
15055
15226
|
"alignItems": "center",
|
|
@@ -15061,7 +15232,7 @@ var SpansDataGridRow = (0, import_react42.memo)(
|
|
|
15061
15232
|
},
|
|
15062
15233
|
"width": "100%"
|
|
15063
15234
|
},
|
|
15064
|
-
children: /* @__PURE__ */ (0,
|
|
15235
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Box, { sx: { px: 1, width: "100%" }, children: flexRender(cell.column.columnDef.cell, cell.getContext()) })
|
|
15065
15236
|
}
|
|
15066
15237
|
)
|
|
15067
15238
|
},
|
|
@@ -15098,9 +15269,9 @@ var SpansDataGrid = ({
|
|
|
15098
15269
|
}) => {
|
|
15099
15270
|
const columns = (0, import_react42.useMemo)(() => [
|
|
15100
15271
|
columnHelper.accessor("startTime", {
|
|
15101
|
-
cell: (props) => /* @__PURE__ */ (0,
|
|
15102
|
-
header: () => /* @__PURE__ */ (0,
|
|
15103
|
-
|
|
15272
|
+
cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ResponsiveTimestampCell, { date: props.getValue() }),
|
|
15273
|
+
header: () => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15274
|
+
import_material7.TableSortLabel,
|
|
15104
15275
|
{
|
|
15105
15276
|
active: true,
|
|
15106
15277
|
direction: order2 === "newest_first" ? "asc" : "desc",
|
|
@@ -15116,23 +15287,23 @@ var SpansDataGrid = ({
|
|
|
15116
15287
|
columnHelper.display({
|
|
15117
15288
|
cell: (props) => {
|
|
15118
15289
|
if (!props.row.original.parent_service_name || !props.row.original.parent_resource_name) {
|
|
15119
|
-
return /* @__PURE__ */ (0,
|
|
15290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { sx: { fontStyle: "italic" }, variant: "body2", children: "External producer" });
|
|
15120
15291
|
}
|
|
15121
|
-
return /* @__PURE__ */ (0,
|
|
15292
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ServiceCell, { resource: props.row.original.parent_resource_name, service: props.row.original.parent_service_name });
|
|
15122
15293
|
},
|
|
15123
15294
|
header: "Producer",
|
|
15124
15295
|
id: "producer",
|
|
15125
15296
|
size: 180
|
|
15126
15297
|
}),
|
|
15127
15298
|
columnHelper.accessor("operation_name", {
|
|
15128
|
-
cell: (props) => /* @__PURE__ */ (0,
|
|
15129
|
-
|
|
15299
|
+
cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15300
|
+
import_material7.Box,
|
|
15130
15301
|
{
|
|
15131
15302
|
sx: {
|
|
15132
15303
|
overflow: "hidden",
|
|
15133
15304
|
textOverflow: "ellipsis"
|
|
15134
15305
|
},
|
|
15135
|
-
children: /* @__PURE__ */ (0,
|
|
15306
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { title: props.getValue(), children: props.getValue() })
|
|
15136
15307
|
}
|
|
15137
15308
|
),
|
|
15138
15309
|
header: "Action",
|
|
@@ -15141,7 +15312,7 @@ var SpansDataGrid = ({
|
|
|
15141
15312
|
}),
|
|
15142
15313
|
columnHelper.display({
|
|
15143
15314
|
cell: (props) => {
|
|
15144
|
-
return /* @__PURE__ */ (0,
|
|
15315
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ServiceCell, { resource: props.row.original.resource_name, service: props.row.original.service_name });
|
|
15145
15316
|
},
|
|
15146
15317
|
header: "Consumer",
|
|
15147
15318
|
id: "consumer",
|
|
@@ -15149,24 +15320,26 @@ var SpansDataGrid = ({
|
|
|
15149
15320
|
}),
|
|
15150
15321
|
columnHelper.display({
|
|
15151
15322
|
cell: (props) => {
|
|
15152
|
-
return /* @__PURE__ */ (0,
|
|
15153
|
-
|
|
15154
|
-
|
|
15155
|
-
|
|
15156
|
-
|
|
15157
|
-
|
|
15158
|
-
|
|
15159
|
-
|
|
15160
|
-
|
|
15161
|
-
|
|
15162
|
-
|
|
15163
|
-
|
|
15164
|
-
|
|
15165
|
-
|
|
15323
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material7.Box, { sx: { alignItems: "center", display: "flex", gap: 0.5, justifyContent: "flex-end" }, children: [
|
|
15324
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StatusIconWithTooltip, { span: props.row.original }),
|
|
15325
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15326
|
+
import_material7.Button,
|
|
15327
|
+
{
|
|
15328
|
+
"data-testid": VIEW_SPAN_DETAILS_TEST_ID,
|
|
15329
|
+
onClick: (event) => {
|
|
15330
|
+
event.stopPropagation();
|
|
15331
|
+
onSpanClick(props.row.original);
|
|
15332
|
+
},
|
|
15333
|
+
size: "small",
|
|
15334
|
+
sx: { px: 1 },
|
|
15335
|
+
variant: "text",
|
|
15336
|
+
children: "View Details"
|
|
15337
|
+
}
|
|
15338
|
+
)
|
|
15339
|
+
] });
|
|
15166
15340
|
},
|
|
15167
15341
|
id: "actions",
|
|
15168
|
-
|
|
15169
|
-
size: 96
|
|
15342
|
+
size: 128
|
|
15170
15343
|
})
|
|
15171
15344
|
], [onSpanClick, onOrderChange, order2]);
|
|
15172
15345
|
const table = useReactTable({
|
|
@@ -15199,46 +15372,46 @@ var SpansDataGrid = ({
|
|
|
15199
15372
|
if (!element || !isAtLiveEdgeRef.current) return;
|
|
15200
15373
|
element.scrollTop = element.scrollHeight;
|
|
15201
15374
|
}, [order2, spans?.length, lastSpanId]);
|
|
15202
|
-
return /* @__PURE__ */ (0,
|
|
15203
|
-
/* @__PURE__ */ (0,
|
|
15204
|
-
/* @__PURE__ */ (0,
|
|
15205
|
-
errorCount !== void 0 && errorCount > 0 && /* @__PURE__ */ (0,
|
|
15206
|
-
/* @__PURE__ */ (0,
|
|
15207
|
-
/* @__PURE__ */ (0,
|
|
15208
|
-
|
|
15375
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
|
|
15376
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Grid, { item: true, xs: 12, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material7.Box, { sx: { alignItems: "center", display: "flex", gap: "0.5rem" }, children: [
|
|
15377
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SpanCountBadge, { licenseLimit, systemLimit, totalCount, visibleCount: spans?.length }),
|
|
15378
|
+
errorCount !== void 0 && errorCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
|
|
15379
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
|
|
15380
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Tooltip, { title: "Number of errors detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
|
|
15381
|
+
import_material7.Box,
|
|
15209
15382
|
{
|
|
15210
15383
|
"data-testid": ERROR_COUNT_TEST_ID,
|
|
15211
15384
|
sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "error.main", cursor: "default", display: "flex", gap: 0.5, mb: "-1px" },
|
|
15212
15385
|
children: [
|
|
15213
|
-
/* @__PURE__ */ (0,
|
|
15214
|
-
/* @__PURE__ */ (0,
|
|
15386
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "error", variant: "body2", children: errorCount.toLocaleString() }),
|
|
15387
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "error", variant: "caption", children: errorCount === 1 ? "error" : "errors" })
|
|
15215
15388
|
]
|
|
15216
15389
|
}
|
|
15217
15390
|
) })
|
|
15218
15391
|
] }),
|
|
15219
|
-
warningCount !== void 0 && warningCount > 0 && /* @__PURE__ */ (0,
|
|
15220
|
-
/* @__PURE__ */ (0,
|
|
15221
|
-
/* @__PURE__ */ (0,
|
|
15222
|
-
|
|
15392
|
+
warningCount !== void 0 && warningCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
|
|
15393
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
|
|
15394
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Tooltip, { title: "Number of warnings detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
|
|
15395
|
+
import_material7.Box,
|
|
15223
15396
|
{
|
|
15224
15397
|
"data-testid": WARNING_COUNT_TEST_ID,
|
|
15225
15398
|
sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "warning.main", cursor: "default", display: "flex", gap: 0.5, mb: "-1px" },
|
|
15226
15399
|
children: [
|
|
15227
|
-
/* @__PURE__ */ (0,
|
|
15228
|
-
/* @__PURE__ */ (0,
|
|
15400
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "warning.main", variant: "body2", children: warningCount.toLocaleString() }),
|
|
15401
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "warning.main", variant: "caption", children: warningCount === 1 ? "warning" : "warnings" })
|
|
15229
15402
|
]
|
|
15230
15403
|
}
|
|
15231
15404
|
) })
|
|
15232
15405
|
] }),
|
|
15233
|
-
/* @__PURE__ */ (0,
|
|
15234
|
-
/* @__PURE__ */ (0,
|
|
15235
|
-
|
|
15406
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Box, { sx: { flexGrow: 1 } }),
|
|
15407
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15408
|
+
import_material7.FormControlLabel,
|
|
15236
15409
|
{
|
|
15237
|
-
control: /* @__PURE__ */ (0,
|
|
15238
|
-
|
|
15410
|
+
control: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15411
|
+
import_material7.Button,
|
|
15239
15412
|
{
|
|
15240
15413
|
onClick: onToggleStream,
|
|
15241
|
-
startIcon: streamPaused ? /* @__PURE__ */ (0,
|
|
15414
|
+
startIcon: streamPaused ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_icons_material3.PlayArrowOutlined, {}) : /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_icons_material3.PauseOutlined, {}),
|
|
15242
15415
|
variant: "text",
|
|
15243
15416
|
children: streamPaused ? "Resume Stream" : "Pause Stream"
|
|
15244
15417
|
}
|
|
@@ -15246,15 +15419,15 @@ var SpansDataGrid = ({
|
|
|
15246
15419
|
label: ""
|
|
15247
15420
|
}
|
|
15248
15421
|
),
|
|
15249
|
-
/* @__PURE__ */ (0,
|
|
15250
|
-
|
|
15422
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15423
|
+
import_material7.FormControlLabel,
|
|
15251
15424
|
{
|
|
15252
|
-
control: /* @__PURE__ */ (0,
|
|
15253
|
-
|
|
15425
|
+
control: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15426
|
+
import_material7.Button,
|
|
15254
15427
|
{
|
|
15255
15428
|
"data-testid": CLEAR_SPANS_TEST_ID,
|
|
15256
15429
|
onClick: onClearSpans,
|
|
15257
|
-
startIcon: /* @__PURE__ */ (0,
|
|
15430
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_icons_material3.DeleteForeverOutlined, {}),
|
|
15258
15431
|
children: "Clear Operations"
|
|
15259
15432
|
}
|
|
15260
15433
|
),
|
|
@@ -15263,8 +15436,8 @@ var SpansDataGrid = ({
|
|
|
15263
15436
|
}
|
|
15264
15437
|
)
|
|
15265
15438
|
] }) }),
|
|
15266
|
-
/* @__PURE__ */ (0,
|
|
15267
|
-
|
|
15439
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Paper, { sx: { flexGrow: 1, overflow: "hidden", position: "relative", width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15440
|
+
import_material7.TableContainer,
|
|
15268
15441
|
{
|
|
15269
15442
|
onScroll: handleScroll,
|
|
15270
15443
|
ref: containerRef,
|
|
@@ -15276,8 +15449,8 @@ var SpansDataGrid = ({
|
|
|
15276
15449
|
right: 0,
|
|
15277
15450
|
top: 0
|
|
15278
15451
|
},
|
|
15279
|
-
children: /* @__PURE__ */ (0,
|
|
15280
|
-
|
|
15452
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
|
|
15453
|
+
import_material7.Table,
|
|
15281
15454
|
{
|
|
15282
15455
|
stickyHeader: true,
|
|
15283
15456
|
sx: {
|
|
@@ -15288,9 +15461,9 @@ var SpansDataGrid = ({
|
|
|
15288
15461
|
"th+th": { pl: "8px !important" }
|
|
15289
15462
|
},
|
|
15290
15463
|
children: [
|
|
15291
|
-
/* @__PURE__ */ (0,
|
|
15292
|
-
return /* @__PURE__ */ (0,
|
|
15293
|
-
|
|
15464
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableHead, { children: table.getHeaderGroups().map((headerGroup) => {
|
|
15465
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
15466
|
+
import_material7.TableCell,
|
|
15294
15467
|
{
|
|
15295
15468
|
colSpan: header.colSpan,
|
|
15296
15469
|
sx: {
|
|
@@ -15304,31 +15477,31 @@ var SpansDataGrid = ({
|
|
|
15304
15477
|
header.id
|
|
15305
15478
|
)) }, headerGroup.id);
|
|
15306
15479
|
}) }),
|
|
15307
|
-
/* @__PURE__ */ (0,
|
|
15308
|
-
(spans === void 0 || clearingSpans) && /* @__PURE__ */ (0,
|
|
15309
|
-
!clearingSpans && spans?.length === 0 && /* @__PURE__ */ (0,
|
|
15310
|
-
!clearingSpans && order2 === "newest_first" && /* @__PURE__ */ (0,
|
|
15311
|
-
hasRows && hasMoreForward && /* @__PURE__ */ (0,
|
|
15312
|
-
hasRows && !hasMoreForward && /* @__PURE__ */ (0,
|
|
15313
|
-
hasRows && /* @__PURE__ */ (0,
|
|
15480
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material7.TableBody, { children: [
|
|
15481
|
+
(spans === void 0 || clearingSpans) && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableCell, { colSpan: columnCount, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.CircularProgress, { size: 48, sx: { m: 4 } }) }) }),
|
|
15482
|
+
!clearingSpans && spans?.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_NO_SPANS }),
|
|
15483
|
+
!clearingSpans && order2 === "newest_first" && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
|
|
15484
|
+
hasRows && hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
|
|
15485
|
+
hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM }),
|
|
15486
|
+
hasRows && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(AnimatePresence, { initial: false, children: (() => {
|
|
15314
15487
|
const reversed = [];
|
|
15315
15488
|
for (let index = rows.length - 1; index >= 0; index--) {
|
|
15316
15489
|
const row = rows.at(index);
|
|
15317
15490
|
reversed.push(
|
|
15318
|
-
/* @__PURE__ */ (0,
|
|
15491
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)
|
|
15319
15492
|
);
|
|
15320
15493
|
}
|
|
15321
15494
|
return reversed;
|
|
15322
15495
|
})() }),
|
|
15323
|
-
hasRows && hasMoreBackward && /* @__PURE__ */ (0,
|
|
15324
|
-
hasRows && !hasMoreBackward && /* @__PURE__ */ (0,
|
|
15496
|
+
hasRows && hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
|
|
15497
|
+
hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM })
|
|
15325
15498
|
] }),
|
|
15326
|
-
!clearingSpans && order2 === "oldest_first" && /* @__PURE__ */ (0,
|
|
15327
|
-
hasRows && !hasMoreBackward && /* @__PURE__ */ (0,
|
|
15328
|
-
hasRows && hasMoreBackward && /* @__PURE__ */ (0,
|
|
15329
|
-
hasRows && /* @__PURE__ */ (0,
|
|
15330
|
-
hasRows && hasMoreForward && /* @__PURE__ */ (0,
|
|
15331
|
-
hasRows && !hasMoreForward && /* @__PURE__ */ (0,
|
|
15499
|
+
!clearingSpans && order2 === "oldest_first" && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
|
|
15500
|
+
hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM }),
|
|
15501
|
+
hasRows && hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
|
|
15502
|
+
hasRows && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(AnimatePresence, { initial: false, children: rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)) }),
|
|
15503
|
+
hasRows && hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
|
|
15504
|
+
hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM })
|
|
15332
15505
|
] })
|
|
15333
15506
|
] })
|
|
15334
15507
|
]
|
|
@@ -15340,13 +15513,13 @@ var SpansDataGrid = ({
|
|
|
15340
15513
|
};
|
|
15341
15514
|
|
|
15342
15515
|
// src/components/spans-list/spans-list.tsx
|
|
15343
|
-
var
|
|
15516
|
+
var import_jsx_runtime129 = require("react/jsx-runtime");
|
|
15344
15517
|
var SpansList = (props) => {
|
|
15345
|
-
return /* @__PURE__ */ (0,
|
|
15346
|
-
props.fetchError && /* @__PURE__ */ (0,
|
|
15347
|
-
|
|
15518
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_material8.Box, { "data-testid": SPANS_DATA_GRID_TEST_ID, sx: { display: "flex", flexDirection: "column", flexGrow: 1, gap: 2, width: "100%" }, children: [
|
|
15519
|
+
props.fetchError && /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
|
|
15520
|
+
import_material8.Alert,
|
|
15348
15521
|
{
|
|
15349
|
-
action: /* @__PURE__ */ (0,
|
|
15522
|
+
action: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Button, { onClick: props.onFetchForward, children: "Retry" }),
|
|
15350
15523
|
severity: "error",
|
|
15351
15524
|
children: [
|
|
15352
15525
|
"Unexpected error:",
|
|
@@ -15355,7 +15528,7 @@ var SpansList = (props) => {
|
|
|
15355
15528
|
]
|
|
15356
15529
|
}
|
|
15357
15530
|
),
|
|
15358
|
-
/* @__PURE__ */ (0,
|
|
15531
|
+
/* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
15359
15532
|
SpansDataGrid,
|
|
15360
15533
|
{
|
|
15361
15534
|
clearingSpans: props.clearingSpans,
|
|
@@ -15383,10 +15556,10 @@ var SpansList = (props) => {
|
|
|
15383
15556
|
};
|
|
15384
15557
|
|
|
15385
15558
|
// src/components/status-message/status-message.tsx
|
|
15386
|
-
var
|
|
15387
|
-
var
|
|
15559
|
+
var import_icons_material4 = require("@mui/icons-material");
|
|
15560
|
+
var import_material9 = require("@mui/material");
|
|
15388
15561
|
var import_react43 = require("react");
|
|
15389
|
-
var
|
|
15562
|
+
var import_jsx_runtime130 = require("react/jsx-runtime");
|
|
15390
15563
|
var StatusMessage = ({
|
|
15391
15564
|
error,
|
|
15392
15565
|
localstackVersion,
|
|
@@ -15410,8 +15583,8 @@ var StatusMessage = ({
|
|
|
15410
15583
|
};
|
|
15411
15584
|
if (error instanceof AppInspectorNotFoundError) {
|
|
15412
15585
|
const isBelowMinimum = localstackVersion !== void 0 && checkEmulatorVersion(localstackVersion) === "below-minimum";
|
|
15413
|
-
return /* @__PURE__ */ (0,
|
|
15414
|
-
|
|
15586
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15587
|
+
import_material9.Box,
|
|
15415
15588
|
{
|
|
15416
15589
|
sx: {
|
|
15417
15590
|
alignItems: "center",
|
|
@@ -15421,18 +15594,18 @@ var StatusMessage = ({
|
|
|
15421
15594
|
justifyContent: "center",
|
|
15422
15595
|
p: 4
|
|
15423
15596
|
},
|
|
15424
|
-
children: /* @__PURE__ */ (0,
|
|
15425
|
-
|
|
15597
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
|
|
15598
|
+
import_material9.Alert,
|
|
15426
15599
|
{
|
|
15427
|
-
icon: /* @__PURE__ */ (0,
|
|
15600
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
|
|
15428
15601
|
severity: "error",
|
|
15429
15602
|
sx: { maxWidth: 600, width: "100%" },
|
|
15430
15603
|
children: [
|
|
15431
|
-
/* @__PURE__ */ (0,
|
|
15432
|
-
/* @__PURE__ */ (0,
|
|
15433
|
-
/* @__PURE__ */ (0,
|
|
15434
|
-
/* @__PURE__ */ (0,
|
|
15435
|
-
|
|
15604
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Not Available" }),
|
|
15605
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { 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." }),
|
|
15606
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)("strong", { children: "Update LocalStack:" }) }),
|
|
15607
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15608
|
+
import_material9.Box,
|
|
15436
15609
|
{
|
|
15437
15610
|
component: "pre",
|
|
15438
15611
|
sx: {
|
|
@@ -15444,8 +15617,8 @@ var StatusMessage = ({
|
|
|
15444
15617
|
children: "localstack update docker-images"
|
|
15445
15618
|
}
|
|
15446
15619
|
),
|
|
15447
|
-
/* @__PURE__ */ (0,
|
|
15448
|
-
|
|
15620
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Box, { sx: { display: "flex", gap: 1, mt: 2 }, children: onRetry && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15621
|
+
import_material9.Button,
|
|
15449
15622
|
{
|
|
15450
15623
|
"aria-label": "Check App Inspector status again",
|
|
15451
15624
|
disabled: enabling,
|
|
@@ -15461,8 +15634,8 @@ var StatusMessage = ({
|
|
|
15461
15634
|
);
|
|
15462
15635
|
}
|
|
15463
15636
|
if (error instanceof ConnectionError) {
|
|
15464
|
-
return /* @__PURE__ */ (0,
|
|
15465
|
-
|
|
15637
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15638
|
+
import_material9.Box,
|
|
15466
15639
|
{
|
|
15467
15640
|
sx: {
|
|
15468
15641
|
alignItems: "center",
|
|
@@ -15472,18 +15645,18 @@ var StatusMessage = ({
|
|
|
15472
15645
|
justifyContent: "center",
|
|
15473
15646
|
p: 4
|
|
15474
15647
|
},
|
|
15475
|
-
children: /* @__PURE__ */ (0,
|
|
15476
|
-
|
|
15648
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
|
|
15649
|
+
import_material9.Alert,
|
|
15477
15650
|
{
|
|
15478
|
-
icon: /* @__PURE__ */ (0,
|
|
15651
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
|
|
15479
15652
|
severity: "error",
|
|
15480
15653
|
sx: { maxWidth: 600, width: "100%" },
|
|
15481
15654
|
children: [
|
|
15482
|
-
/* @__PURE__ */ (0,
|
|
15483
|
-
/* @__PURE__ */ (0,
|
|
15655
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "Connection Error" }),
|
|
15656
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_material9.Typography, { sx: { mb: 2 }, variant: "body2", children: [
|
|
15484
15657
|
"Failed to connect to LocalStack. Ensure ",
|
|
15485
|
-
/* @__PURE__ */ (0,
|
|
15486
|
-
|
|
15658
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15659
|
+
import_material9.Link,
|
|
15487
15660
|
{
|
|
15488
15661
|
href: "https://docs.localstack.cloud/aws/getting-started/installation/",
|
|
15489
15662
|
rel: "noopener noreferrer",
|
|
@@ -15493,9 +15666,9 @@ var StatusMessage = ({
|
|
|
15493
15666
|
),
|
|
15494
15667
|
" is running and accessible."
|
|
15495
15668
|
] }),
|
|
15496
|
-
/* @__PURE__ */ (0,
|
|
15497
|
-
/* @__PURE__ */ (0,
|
|
15498
|
-
|
|
15669
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)("strong", { children: "Start LocalStack:" }) }),
|
|
15670
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15671
|
+
import_material9.Box,
|
|
15499
15672
|
{
|
|
15500
15673
|
component: "pre",
|
|
15501
15674
|
sx: {
|
|
@@ -15507,8 +15680,8 @@ var StatusMessage = ({
|
|
|
15507
15680
|
children: "localstack start"
|
|
15508
15681
|
}
|
|
15509
15682
|
),
|
|
15510
|
-
onRetry && /* @__PURE__ */ (0,
|
|
15511
|
-
|
|
15683
|
+
onRetry && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Box, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15684
|
+
import_material9.Button,
|
|
15512
15685
|
{
|
|
15513
15686
|
"aria-label": "Retry connection to LocalStack",
|
|
15514
15687
|
onClick: onRetry,
|
|
@@ -15523,8 +15696,8 @@ var StatusMessage = ({
|
|
|
15523
15696
|
);
|
|
15524
15697
|
}
|
|
15525
15698
|
if (error instanceof AppInspectorDisabledError || status?.status === "DISABLED") {
|
|
15526
|
-
return /* @__PURE__ */ (0,
|
|
15527
|
-
|
|
15699
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15700
|
+
import_material9.Box,
|
|
15528
15701
|
{
|
|
15529
15702
|
sx: {
|
|
15530
15703
|
alignItems: "center",
|
|
@@ -15534,31 +15707,31 @@ var StatusMessage = ({
|
|
|
15534
15707
|
justifyContent: "center",
|
|
15535
15708
|
p: 4
|
|
15536
15709
|
},
|
|
15537
|
-
children: /* @__PURE__ */ (0,
|
|
15538
|
-
|
|
15710
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
|
|
15711
|
+
import_material9.Alert,
|
|
15539
15712
|
{
|
|
15540
|
-
icon: /* @__PURE__ */ (0,
|
|
15713
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons_material4.InfoOutlined, { fontSize: "large" }),
|
|
15541
15714
|
severity: "warning",
|
|
15542
15715
|
sx: { maxWidth: 600, width: "100%" },
|
|
15543
15716
|
children: [
|
|
15544
|
-
/* @__PURE__ */ (0,
|
|
15545
|
-
/* @__PURE__ */ (0,
|
|
15546
|
-
/* @__PURE__ */ (0,
|
|
15547
|
-
onEnable && /* @__PURE__ */ (0,
|
|
15548
|
-
|
|
15717
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Is Not Enabled" }),
|
|
15718
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 2 }, variant: "body2", children: "App Inspector is not currently enabled in LocalStack. You can enable it now, or at startup." }),
|
|
15719
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_material9.Box, { sx: { display: "flex", gap: 1, mb: 2 }, children: [
|
|
15720
|
+
onEnable && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15721
|
+
import_material9.Button,
|
|
15549
15722
|
{
|
|
15550
15723
|
"aria-label": "Enable App Inspector Now",
|
|
15551
15724
|
disabled: enabling,
|
|
15552
15725
|
onClick: () => {
|
|
15553
15726
|
void handleEnable();
|
|
15554
15727
|
},
|
|
15555
|
-
startIcon: enabling ? /* @__PURE__ */ (0,
|
|
15728
|
+
startIcon: enabling ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.CircularProgress, { size: 16 }) : void 0,
|
|
15556
15729
|
variant: "contained",
|
|
15557
15730
|
children: "Enable App Inspector Now"
|
|
15558
15731
|
}
|
|
15559
15732
|
),
|
|
15560
|
-
onRetry && /* @__PURE__ */ (0,
|
|
15561
|
-
|
|
15733
|
+
onRetry && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15734
|
+
import_material9.Button,
|
|
15562
15735
|
{
|
|
15563
15736
|
"aria-label": "Check if App Inspector is enabled",
|
|
15564
15737
|
disabled: enabling,
|
|
@@ -15568,9 +15741,9 @@ var StatusMessage = ({
|
|
|
15568
15741
|
}
|
|
15569
15742
|
)
|
|
15570
15743
|
] }),
|
|
15571
|
-
/* @__PURE__ */ (0,
|
|
15572
|
-
/* @__PURE__ */ (0,
|
|
15573
|
-
|
|
15744
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 1 }, variant: "body2", children: "If you'd prefer to automatically enable App Inspector at start up, use:" }),
|
|
15745
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15746
|
+
import_material9.Box,
|
|
15574
15747
|
{
|
|
15575
15748
|
component: "pre",
|
|
15576
15749
|
sx: {
|
|
@@ -15582,7 +15755,7 @@ var StatusMessage = ({
|
|
|
15582
15755
|
children: "LOCALSTACK_APP_INSPECTOR=1 localstack start"
|
|
15583
15756
|
}
|
|
15584
15757
|
),
|
|
15585
|
-
Boolean(enableError) && /* @__PURE__ */ (0,
|
|
15758
|
+
Boolean(enableError) && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { color: "error", sx: { mt: 1 }, variant: "body2", children: enableError })
|
|
15586
15759
|
]
|
|
15587
15760
|
}
|
|
15588
15761
|
)
|
|
@@ -15590,8 +15763,8 @@ var StatusMessage = ({
|
|
|
15590
15763
|
);
|
|
15591
15764
|
}
|
|
15592
15765
|
if (error) {
|
|
15593
|
-
return /* @__PURE__ */ (0,
|
|
15594
|
-
|
|
15766
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15767
|
+
import_material9.Box,
|
|
15595
15768
|
{
|
|
15596
15769
|
sx: {
|
|
15597
15770
|
alignItems: "center",
|
|
@@ -15601,17 +15774,17 @@ var StatusMessage = ({
|
|
|
15601
15774
|
justifyContent: "center",
|
|
15602
15775
|
p: 4
|
|
15603
15776
|
},
|
|
15604
|
-
children: /* @__PURE__ */ (0,
|
|
15605
|
-
|
|
15777
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
|
|
15778
|
+
import_material9.Alert,
|
|
15606
15779
|
{
|
|
15607
|
-
icon: /* @__PURE__ */ (0,
|
|
15780
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
|
|
15608
15781
|
severity: "error",
|
|
15609
15782
|
sx: { maxWidth: 600, width: "100%" },
|
|
15610
15783
|
children: [
|
|
15611
|
-
/* @__PURE__ */ (0,
|
|
15612
|
-
/* @__PURE__ */ (0,
|
|
15613
|
-
onRetry && /* @__PURE__ */ (0,
|
|
15614
|
-
|
|
15784
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "Error" }),
|
|
15785
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 2 }, variant: "body2", children: error.message }),
|
|
15786
|
+
onRetry && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Box, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
15787
|
+
import_material9.Button,
|
|
15615
15788
|
{
|
|
15616
15789
|
"aria-label": "Retry operation",
|
|
15617
15790
|
onClick: onRetry,
|
|
@@ -15625,7 +15798,7 @@ var StatusMessage = ({
|
|
|
15625
15798
|
}
|
|
15626
15799
|
);
|
|
15627
15800
|
}
|
|
15628
|
-
return /* @__PURE__ */ (0,
|
|
15801
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_jsx_runtime130.Fragment, {});
|
|
15629
15802
|
};
|
|
15630
15803
|
|
|
15631
15804
|
// src/hooks/status-provider.tsx
|
|
@@ -15674,7 +15847,7 @@ var useStatus = () => {
|
|
|
15674
15847
|
};
|
|
15675
15848
|
|
|
15676
15849
|
// src/hooks/status-provider.tsx
|
|
15677
|
-
var
|
|
15850
|
+
var import_jsx_runtime131 = require("react/jsx-runtime");
|
|
15678
15851
|
var AppInspectorStatusContext = (0, import_react45.createContext)(void 0);
|
|
15679
15852
|
var StatusProvider = ({ children }) => {
|
|
15680
15853
|
const { checking, checkStatus, error, status } = useStatus();
|
|
@@ -15685,7 +15858,7 @@ var StatusProvider = ({ children }) => {
|
|
|
15685
15858
|
() => ({ checking, checkStatus, reportDisabled, status, statusError: error }),
|
|
15686
15859
|
[checking, checkStatus, reportDisabled, status, error]
|
|
15687
15860
|
);
|
|
15688
|
-
return /* @__PURE__ */ (0,
|
|
15861
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(AppInspectorStatusContext.Provider, { value, children });
|
|
15689
15862
|
};
|
|
15690
15863
|
var useAppInspectorStatus = () => {
|
|
15691
15864
|
const value = (0, import_react45.useContext)(AppInspectorStatusContext);
|
|
@@ -18104,7 +18277,7 @@ var useAppInspectorOpenAnalytics = () => {
|
|
|
18104
18277
|
};
|
|
18105
18278
|
|
|
18106
18279
|
// src/context.tsx
|
|
18107
|
-
var
|
|
18280
|
+
var import_jsx_runtime132 = require("react/jsx-runtime");
|
|
18108
18281
|
var AppInspectorContext = (0, import_react48.createContext)(void 0);
|
|
18109
18282
|
var useAppInspector = () => {
|
|
18110
18283
|
const context = (0, import_react48.useContext)(AppInspectorContext);
|
|
@@ -18115,7 +18288,7 @@ var useAppInspector = () => {
|
|
|
18115
18288
|
};
|
|
18116
18289
|
var AppInspectorAnalyticsBoundary = ({ children }) => {
|
|
18117
18290
|
useAppInspectorOpenAnalytics();
|
|
18118
|
-
return /* @__PURE__ */ (0,
|
|
18291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_jsx_runtime132.Fragment, { children });
|
|
18119
18292
|
};
|
|
18120
18293
|
var AppInspectorContextProvider = (props) => {
|
|
18121
18294
|
const api = (0, import_react49.useMemo)(
|
|
@@ -18147,7 +18320,7 @@ var AppInspectorContextProvider = (props) => {
|
|
|
18147
18320
|
}),
|
|
18148
18321
|
[deploymentContainer, props.linkComponent, props.localstackEndpoint, resolveLink]
|
|
18149
18322
|
);
|
|
18150
|
-
return /* @__PURE__ */ (0,
|
|
18323
|
+
return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(ApiProvider, { api, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(StatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(AppInspectorContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(AppInspectorAnalyticsBoundary, { children: props.children }) }) }) });
|
|
18151
18324
|
};
|
|
18152
18325
|
|
|
18153
18326
|
// src/hooks/use-spans-ws.tsx
|
|
@@ -18433,103 +18606,17 @@ var useSpans = () => {
|
|
|
18433
18606
|
};
|
|
18434
18607
|
|
|
18435
18608
|
// src/pages/trace-graph-page.tsx
|
|
18436
|
-
var
|
|
18437
|
-
var
|
|
18609
|
+
var import_icons_material13 = require("@mui/icons-material");
|
|
18610
|
+
var import_material23 = require("@mui/material");
|
|
18438
18611
|
var import_styles = require("@mui/material/styles");
|
|
18439
18612
|
var import_react67 = require("@xyflow/react");
|
|
18440
18613
|
var import_react68 = require("react");
|
|
18441
18614
|
|
|
18442
18615
|
// src/components/event-details/event-details.tsx
|
|
18443
|
-
var
|
|
18444
|
-
var
|
|
18616
|
+
var import_icons_material10 = require("@mui/icons-material");
|
|
18617
|
+
var import_material18 = require("@mui/material");
|
|
18445
18618
|
var import_react59 = require("react");
|
|
18446
18619
|
|
|
18447
|
-
// src/utils/iam-utils.ts
|
|
18448
|
-
function determinePermissionStatus(payload) {
|
|
18449
|
-
if (payload.explicit_deny_count && payload.explicit_deny_count > 0) {
|
|
18450
|
-
return "explicitly_denied";
|
|
18451
|
-
}
|
|
18452
|
-
if (payload.is_allowed && payload.explicit_allow_count && payload.explicit_allow_count > 0) {
|
|
18453
|
-
return "explicitly_allowed";
|
|
18454
|
-
}
|
|
18455
|
-
if (payload.is_allowed) {
|
|
18456
|
-
return "implicitly_allowed";
|
|
18457
|
-
}
|
|
18458
|
-
return "implicitly_denied";
|
|
18459
|
-
}
|
|
18460
|
-
function formatPermissionStatus(status) {
|
|
18461
|
-
switch (status) {
|
|
18462
|
-
case "explicitly_allowed": {
|
|
18463
|
-
return "Explicitly Allowed";
|
|
18464
|
-
}
|
|
18465
|
-
case "explicitly_denied": {
|
|
18466
|
-
return "Explicitly Denied";
|
|
18467
|
-
}
|
|
18468
|
-
case "implicitly_allowed": {
|
|
18469
|
-
return "Implicitly Allowed";
|
|
18470
|
-
}
|
|
18471
|
-
case "implicitly_denied": {
|
|
18472
|
-
return "Implicitly Denied";
|
|
18473
|
-
}
|
|
18474
|
-
}
|
|
18475
|
-
}
|
|
18476
|
-
function getPermissionStatusColor(status) {
|
|
18477
|
-
switch (status) {
|
|
18478
|
-
case "explicitly_allowed":
|
|
18479
|
-
case "implicitly_allowed": {
|
|
18480
|
-
return "success.main";
|
|
18481
|
-
}
|
|
18482
|
-
case "explicitly_denied": {
|
|
18483
|
-
return "error.main";
|
|
18484
|
-
}
|
|
18485
|
-
case "implicitly_denied": {
|
|
18486
|
-
return "warning.main";
|
|
18487
|
-
}
|
|
18488
|
-
}
|
|
18489
|
-
}
|
|
18490
|
-
function parseIAMEvent(payloadString) {
|
|
18491
|
-
try {
|
|
18492
|
-
const payload = JSON.parse(payloadString);
|
|
18493
|
-
const permission = determinePermissionStatus(payload);
|
|
18494
|
-
const actions = [];
|
|
18495
|
-
const resources = [];
|
|
18496
|
-
if (payload.explicit_allows) {
|
|
18497
|
-
for (const allow of payload.explicit_allows) {
|
|
18498
|
-
if (!actions.includes(allow.action)) actions.push(allow.action);
|
|
18499
|
-
if (!resources.includes(allow.resource)) resources.push(allow.resource);
|
|
18500
|
-
}
|
|
18501
|
-
}
|
|
18502
|
-
if (payload.explicit_denies) {
|
|
18503
|
-
for (const deny of payload.explicit_denies) {
|
|
18504
|
-
if (!actions.includes(deny.action)) actions.push(deny.action);
|
|
18505
|
-
if (!resources.includes(deny.resource)) resources.push(deny.resource);
|
|
18506
|
-
}
|
|
18507
|
-
}
|
|
18508
|
-
if (payload.implicit_denies) {
|
|
18509
|
-
for (const deny of payload.implicit_denies) {
|
|
18510
|
-
if (!actions.includes(deny.action)) actions.push(deny.action);
|
|
18511
|
-
if (!resources.includes(deny.resource)) resources.push(deny.resource);
|
|
18512
|
-
}
|
|
18513
|
-
}
|
|
18514
|
-
return {
|
|
18515
|
-
details: {
|
|
18516
|
-
actions,
|
|
18517
|
-
explicitAllows: payload.explicit_allow_count,
|
|
18518
|
-
explicitDenies: payload.explicit_deny_count,
|
|
18519
|
-
implicitDenies: payload.implicit_deny_count,
|
|
18520
|
-
resources
|
|
18521
|
-
},
|
|
18522
|
-
operation: payload.operation,
|
|
18523
|
-
permission,
|
|
18524
|
-
principal: payload.principal_arn,
|
|
18525
|
-
service: payload.service
|
|
18526
|
-
};
|
|
18527
|
-
} catch (error) {
|
|
18528
|
-
console.error("Error parsing IAM event payload:", error);
|
|
18529
|
-
return void 0;
|
|
18530
|
-
}
|
|
18531
|
-
}
|
|
18532
|
-
|
|
18533
18620
|
// src/utils/event-utils.ts
|
|
18534
18621
|
var iamEventParser = (eventName, attributes) => {
|
|
18535
18622
|
if (attributes?.payload && typeof attributes.payload === "string") {
|
|
@@ -18639,70 +18726,70 @@ var getEventGroupsByType = (events) => {
|
|
|
18639
18726
|
};
|
|
18640
18727
|
|
|
18641
18728
|
// src/components/event-details/event-detail.tsx
|
|
18642
|
-
var
|
|
18643
|
-
var
|
|
18729
|
+
var import_icons_material8 = require("@mui/icons-material");
|
|
18730
|
+
var import_material15 = require("@mui/material");
|
|
18644
18731
|
var import_react56 = require("react");
|
|
18645
18732
|
|
|
18646
18733
|
// src/components/status-icon.tsx
|
|
18647
|
-
var
|
|
18648
|
-
var
|
|
18649
|
-
var
|
|
18650
|
-
var
|
|
18734
|
+
var import_icons_material5 = require("@mui/icons-material");
|
|
18735
|
+
var import_material10 = require("@mui/material");
|
|
18736
|
+
var import_jsx_runtime133 = require("react/jsx-runtime");
|
|
18737
|
+
var StatusIcon2 = ({ errorLevel }) => {
|
|
18651
18738
|
switch (errorLevel) {
|
|
18652
18739
|
case EventLevel.LevelError: {
|
|
18653
|
-
return /* @__PURE__ */ (0,
|
|
18740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.Cancel, { sx: { color: "red" } });
|
|
18654
18741
|
}
|
|
18655
18742
|
case EventLevel.LevelInfo: {
|
|
18656
|
-
return /* @__PURE__ */ (0,
|
|
18743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.Info, { sx: { color: "gray" } });
|
|
18657
18744
|
}
|
|
18658
18745
|
case EventLevel.LevelPermission: {
|
|
18659
|
-
return /* @__PURE__ */ (0,
|
|
18746
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.RemoveCircle, { sx: { color: "blue" } });
|
|
18660
18747
|
}
|
|
18661
18748
|
case EventLevel.LevelWarning: {
|
|
18662
|
-
return /* @__PURE__ */ (0,
|
|
18749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.Error, { sx: { color: "orange" } });
|
|
18663
18750
|
}
|
|
18664
18751
|
default: {
|
|
18665
|
-
return /* @__PURE__ */ (0,
|
|
18752
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.CheckCircle, { sx: { color: "lightgray" } });
|
|
18666
18753
|
}
|
|
18667
18754
|
}
|
|
18668
18755
|
};
|
|
18669
18756
|
|
|
18670
18757
|
// src/components/event-details/iam-event-detail.tsx
|
|
18671
|
-
var
|
|
18672
|
-
var
|
|
18673
|
-
var
|
|
18674
|
-
var DetailRow = ({ content, label }) => /* @__PURE__ */ (0,
|
|
18675
|
-
/* @__PURE__ */ (0,
|
|
18676
|
-
/* @__PURE__ */ (0,
|
|
18758
|
+
var import_icons_material6 = require("@mui/icons-material");
|
|
18759
|
+
var import_material11 = require("@mui/material");
|
|
18760
|
+
var import_jsx_runtime134 = require("react/jsx-runtime");
|
|
18761
|
+
var DetailRow = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
18762
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
|
|
18763
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { sx: { color: "text.primary", wordBreak: "break-word" }, variant: "caption", children: content }) : content })
|
|
18677
18764
|
] });
|
|
18678
18765
|
var PermissionIcon = ({ status }) => {
|
|
18679
18766
|
switch (status) {
|
|
18680
18767
|
case "explicitly_allowed":
|
|
18681
18768
|
case "implicitly_allowed": {
|
|
18682
|
-
return /* @__PURE__ */ (0,
|
|
18769
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material6.CheckCircle, { sx: { color: "success.main", fontSize: "1rem" } });
|
|
18683
18770
|
}
|
|
18684
18771
|
case "explicitly_denied": {
|
|
18685
|
-
return /* @__PURE__ */ (0,
|
|
18772
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material6.Error, { sx: { color: "error.main", fontSize: "1rem" } });
|
|
18686
18773
|
}
|
|
18687
18774
|
case "implicitly_denied": {
|
|
18688
|
-
return /* @__PURE__ */ (0,
|
|
18775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material6.Warning, { sx: { color: "warning.main", fontSize: "1rem" } });
|
|
18689
18776
|
}
|
|
18690
18777
|
}
|
|
18691
18778
|
};
|
|
18692
18779
|
var IAMEventDetail = ({ event }) => {
|
|
18693
18780
|
const payloadString = event.attributes?.payload;
|
|
18694
18781
|
if (!payloadString) {
|
|
18695
|
-
return /* @__PURE__ */ (0,
|
|
18782
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "No IAM policy evaluation data available" });
|
|
18696
18783
|
}
|
|
18697
18784
|
const parsedIAM = parseIAMEvent(payloadString);
|
|
18698
18785
|
if (!parsedIAM) {
|
|
18699
|
-
return /* @__PURE__ */ (0,
|
|
18786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Failed to parse IAM event data" });
|
|
18700
18787
|
}
|
|
18701
|
-
return /* @__PURE__ */ (0,
|
|
18702
|
-
/* @__PURE__ */ (0,
|
|
18703
|
-
|
|
18788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { children: [
|
|
18789
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { sx: { mb: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
18790
|
+
import_material11.Chip,
|
|
18704
18791
|
{
|
|
18705
|
-
icon: /* @__PURE__ */ (0,
|
|
18792
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(PermissionIcon, { status: parsedIAM.permission }),
|
|
18706
18793
|
label: formatPermissionStatus(parsedIAM.permission),
|
|
18707
18794
|
size: "small",
|
|
18708
18795
|
sx: {
|
|
@@ -18712,36 +18799,36 @@ var IAMEventDetail = ({ event }) => {
|
|
|
18712
18799
|
variant: "outlined"
|
|
18713
18800
|
}
|
|
18714
18801
|
) }),
|
|
18715
|
-
/* @__PURE__ */ (0,
|
|
18716
|
-
/* @__PURE__ */ (0,
|
|
18717
|
-
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0,
|
|
18802
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DetailRow, { content: `${parsedIAM.service}:${parsedIAM.operation}`, label: "Operation" }),
|
|
18803
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DetailRow, { content: parsedIAM.principal, label: "Principal" }),
|
|
18804
|
+
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
18718
18805
|
DetailRow,
|
|
18719
18806
|
{
|
|
18720
|
-
content: /* @__PURE__ */ (0,
|
|
18807
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { sx: { color: "text.primary", display: "block" }, variant: "caption", children: action }, action)) }),
|
|
18721
18808
|
label: "Actions"
|
|
18722
18809
|
}
|
|
18723
18810
|
),
|
|
18724
|
-
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0,
|
|
18811
|
+
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
18725
18812
|
DetailRow,
|
|
18726
18813
|
{
|
|
18727
|
-
content: /* @__PURE__ */ (0,
|
|
18814
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { sx: { color: "text.primary", display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) }),
|
|
18728
18815
|
label: "Resources"
|
|
18729
18816
|
}
|
|
18730
18817
|
),
|
|
18731
|
-
(parsedIAM.details.explicitAllows !== void 0 || parsedIAM.details.explicitDenies !== void 0 || parsedIAM.details.implicitDenies !== void 0) && /* @__PURE__ */ (0,
|
|
18732
|
-
/* @__PURE__ */ (0,
|
|
18733
|
-
/* @__PURE__ */ (0,
|
|
18734
|
-
parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */ (0,
|
|
18735
|
-
/* @__PURE__ */ (0,
|
|
18736
|
-
/* @__PURE__ */ (0,
|
|
18818
|
+
(parsedIAM.details.explicitAllows !== void 0 || parsedIAM.details.explicitDenies !== void 0 || parsedIAM.details.implicitDenies !== void 0) && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { mt: 1.5 }, children: [
|
|
18819
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", sx: { display: "block", fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Policy Evaluation" }),
|
|
18820
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "repeat(3, 1fr)" }, children: [
|
|
18821
|
+
parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { textAlign: "center" }, children: [
|
|
18822
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "success.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitAllows }),
|
|
18823
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Allows" })
|
|
18737
18824
|
] }),
|
|
18738
|
-
parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */ (0,
|
|
18739
|
-
/* @__PURE__ */ (0,
|
|
18740
|
-
/* @__PURE__ */ (0,
|
|
18825
|
+
parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { textAlign: "center" }, children: [
|
|
18826
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "error.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitDenies }),
|
|
18827
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Denies" })
|
|
18741
18828
|
] }),
|
|
18742
|
-
parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */ (0,
|
|
18743
|
-
/* @__PURE__ */ (0,
|
|
18744
|
-
/* @__PURE__ */ (0,
|
|
18829
|
+
parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { textAlign: "center" }, children: [
|
|
18830
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "warning.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.implicitDenies }),
|
|
18831
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Implicit Denies" })
|
|
18745
18832
|
] })
|
|
18746
18833
|
] })
|
|
18747
18834
|
] })
|
|
@@ -18749,17 +18836,17 @@ var IAMEventDetail = ({ event }) => {
|
|
|
18749
18836
|
};
|
|
18750
18837
|
|
|
18751
18838
|
// src/components/event-details/iam-permission-detail.tsx
|
|
18752
|
-
var
|
|
18753
|
-
var
|
|
18839
|
+
var import_icons_material7 = require("@mui/icons-material");
|
|
18840
|
+
var import_material12 = require("@mui/material");
|
|
18754
18841
|
var import_react53 = require("react");
|
|
18755
|
-
var
|
|
18842
|
+
var import_jsx_runtime135 = require("react/jsx-runtime");
|
|
18756
18843
|
var getChipColors = (status) => ({
|
|
18757
18844
|
backgroundColor: getPermissionStatusColor(status),
|
|
18758
18845
|
color: "white"
|
|
18759
18846
|
});
|
|
18760
|
-
var LabelValue = ({ label, value }) => /* @__PURE__ */ (0,
|
|
18761
|
-
/* @__PURE__ */ (0,
|
|
18762
|
-
/* @__PURE__ */ (0,
|
|
18847
|
+
var LabelValue = ({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
18848
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
|
|
18849
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { sx: { wordBreak: "break-all" }, variant: "caption", children: value })
|
|
18763
18850
|
] });
|
|
18764
18851
|
var IAMPermissionItem = ({ event }) => {
|
|
18765
18852
|
const [isOpen, setIsOpen] = (0, import_react53.useState)(false);
|
|
@@ -18774,39 +18861,39 @@ var IAMPermissionItem = ({ event }) => {
|
|
|
18774
18861
|
return null;
|
|
18775
18862
|
}
|
|
18776
18863
|
const { chipColors, parsedIAM } = parsedData;
|
|
18777
|
-
return /* @__PURE__ */ (0,
|
|
18778
|
-
/* @__PURE__ */ (0,
|
|
18779
|
-
/* @__PURE__ */ (0,
|
|
18864
|
+
return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { mb: 0.5 }, children: [
|
|
18865
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { alignItems: "center", display: "flex", gap: 1 }, children: [
|
|
18866
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.IconButton, { onClick: () => {
|
|
18780
18867
|
setIsOpen(!isOpen);
|
|
18781
|
-
}, size: "small", sx: { p: 0 }, children: isOpen ? /* @__PURE__ */ (0,
|
|
18782
|
-
/* @__PURE__ */ (0,
|
|
18783
|
-
/* @__PURE__ */ (0,
|
|
18868
|
+
}, size: "small", sx: { p: 0 }, children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_icons_material7.KeyboardArrowDown, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_icons_material7.KeyboardArrowRight, { sx: { fontSize: 16 } }) }),
|
|
18869
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Chip, { label: formatPermissionStatus(parsedIAM.permission), size: "small", sx: { ...chipColors, fontWeight: 500 } }),
|
|
18870
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Typography, { color: "text.secondary", noWrap: true, sx: { flex: 1, overflow: "hidden", textOverflow: "ellipsis" }, variant: "caption", children: [
|
|
18784
18871
|
parsedIAM.service,
|
|
18785
18872
|
":",
|
|
18786
18873
|
parsedIAM.operation
|
|
18787
18874
|
] })
|
|
18788
18875
|
] }),
|
|
18789
|
-
isOpen && /* @__PURE__ */ (0,
|
|
18790
|
-
/* @__PURE__ */ (0,
|
|
18791
|
-
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0,
|
|
18792
|
-
/* @__PURE__ */ (0,
|
|
18793
|
-
/* @__PURE__ */ (0,
|
|
18876
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { borderColor: "divider", borderLeft: "2px solid", ml: 1, mt: 0.5, pl: 1.5, py: 0.5 }, children: [
|
|
18877
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(LabelValue, { label: "Principal", value: parsedIAM.principal }),
|
|
18878
|
+
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
18879
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Actions" }),
|
|
18880
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { sx: { display: "block" }, variant: "caption", children: action }, action)) })
|
|
18794
18881
|
] }),
|
|
18795
|
-
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0,
|
|
18796
|
-
/* @__PURE__ */ (0,
|
|
18797
|
-
/* @__PURE__ */ (0,
|
|
18882
|
+
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr" }, children: [
|
|
18883
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Resources" }),
|
|
18884
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { sx: { display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) })
|
|
18798
18885
|
] })
|
|
18799
18886
|
] })
|
|
18800
18887
|
] });
|
|
18801
18888
|
};
|
|
18802
|
-
var IAMPermissionDetail = ({ events }) => /* @__PURE__ */ (0,
|
|
18889
|
+
var IAMPermissionDetail = ({ events }) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IAMPermissionItem, { event }, `${event.span_id}-${event.event_id}`)) });
|
|
18803
18890
|
|
|
18804
18891
|
// src/components/event-details/payload-viewer.tsx
|
|
18805
|
-
var
|
|
18892
|
+
var import_material14 = require("@mui/material");
|
|
18806
18893
|
|
|
18807
18894
|
// node_modules/@textea/json-viewer/dist/index.mjs
|
|
18808
|
-
var
|
|
18809
|
-
var
|
|
18895
|
+
var import_jsx_runtime136 = require("react/jsx-runtime");
|
|
18896
|
+
var import_material13 = require("@mui/material");
|
|
18810
18897
|
var import_react54 = require("react");
|
|
18811
18898
|
var import_zustand = require("zustand");
|
|
18812
18899
|
var import_copy_to_clipboard = __toESM(require_copy_to_clipboard(), 1);
|
|
@@ -19161,7 +19248,7 @@ function useInspect(path, value, nestedIndex) {
|
|
|
19161
19248
|
setInspect
|
|
19162
19249
|
];
|
|
19163
19250
|
}
|
|
19164
|
-
var DataBox = (props) => /* @__PURE__ */ (0,
|
|
19251
|
+
var DataBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19165
19252
|
component: "div",
|
|
19166
19253
|
...props,
|
|
19167
19254
|
sx: {
|
|
@@ -19172,7 +19259,7 @@ var DataBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_m
|
|
|
19172
19259
|
var DataTypeLabel = (param) => {
|
|
19173
19260
|
let { dataType, enable = true } = param;
|
|
19174
19261
|
if (!enable) return null;
|
|
19175
|
-
return /* @__PURE__ */ (0,
|
|
19262
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
|
|
19176
19263
|
className: "data-type-label",
|
|
19177
19264
|
sx: {
|
|
19178
19265
|
mx: 0.5,
|
|
@@ -19190,18 +19277,18 @@ function defineEasyType(param) {
|
|
|
19190
19277
|
const storeDisplayDataTypes = useJsonViewerStore((store) => store.displayDataTypes);
|
|
19191
19278
|
const color2 = useJsonViewerStore((store) => store.colorspace[colorKey]);
|
|
19192
19279
|
const onSelect = useJsonViewerStore((store) => store.onSelect);
|
|
19193
|
-
return /* @__PURE__ */ (0,
|
|
19280
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
|
|
19194
19281
|
onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(props.path, props.value),
|
|
19195
19282
|
sx: {
|
|
19196
19283
|
color: color2
|
|
19197
19284
|
},
|
|
19198
19285
|
children: [
|
|
19199
|
-
displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */ (0,
|
|
19286
|
+
displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataTypeLabel, {
|
|
19200
19287
|
dataType: type
|
|
19201
19288
|
}),
|
|
19202
|
-
/* @__PURE__ */ (0,
|
|
19289
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
|
|
19203
19290
|
className: "".concat(type, "-value"),
|
|
19204
|
-
children: /* @__PURE__ */ (0,
|
|
19291
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Render, {
|
|
19205
19292
|
path: props.path,
|
|
19206
19293
|
inspect: props.inspect,
|
|
19207
19294
|
setInspect: props.setInspect,
|
|
@@ -19241,7 +19328,7 @@ function defineEasyType(param) {
|
|
|
19241
19328
|
}, [
|
|
19242
19329
|
setValue
|
|
19243
19330
|
]);
|
|
19244
|
-
return /* @__PURE__ */ (0,
|
|
19331
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.InputBase, {
|
|
19245
19332
|
autoFocus: true,
|
|
19246
19333
|
value,
|
|
19247
19334
|
onChange: handleChange,
|
|
@@ -19281,7 +19368,7 @@ var booleanType = defineEasyType({
|
|
|
19281
19368
|
},
|
|
19282
19369
|
Renderer: (param) => {
|
|
19283
19370
|
let { value } = param;
|
|
19284
|
-
return /* @__PURE__ */ (0,
|
|
19371
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
|
|
19285
19372
|
children: value ? "true" : "false"
|
|
19286
19373
|
});
|
|
19287
19374
|
}
|
|
@@ -19300,7 +19387,7 @@ var dateType = defineEasyType({
|
|
|
19300
19387
|
colorKey: "base0D",
|
|
19301
19388
|
Renderer: (param) => {
|
|
19302
19389
|
let { value } = param;
|
|
19303
|
-
return /* @__PURE__ */ (0,
|
|
19390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
|
|
19304
19391
|
children: value.toLocaleTimeString("en-us", displayOptions)
|
|
19305
19392
|
});
|
|
19306
19393
|
}
|
|
@@ -19329,12 +19416,12 @@ var functionName = (func) => {
|
|
|
19329
19416
|
var lb = "{";
|
|
19330
19417
|
var rb = "}";
|
|
19331
19418
|
var PreFunctionType = (props) => {
|
|
19332
|
-
return /* @__PURE__ */ (0,
|
|
19419
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.NoSsr, {
|
|
19333
19420
|
children: [
|
|
19334
|
-
/* @__PURE__ */ (0,
|
|
19421
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataTypeLabel, {
|
|
19335
19422
|
dataType: "function"
|
|
19336
19423
|
}),
|
|
19337
|
-
/* @__PURE__ */ (0,
|
|
19424
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
|
|
19338
19425
|
component: "span",
|
|
19339
19426
|
className: "data-function-start",
|
|
19340
19427
|
sx: {
|
|
@@ -19350,8 +19437,8 @@ var PreFunctionType = (props) => {
|
|
|
19350
19437
|
});
|
|
19351
19438
|
};
|
|
19352
19439
|
var PostFunctionType = () => {
|
|
19353
|
-
return /* @__PURE__ */ (0,
|
|
19354
|
-
children: /* @__PURE__ */ (0,
|
|
19440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.NoSsr, {
|
|
19441
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19355
19442
|
component: "span",
|
|
19356
19443
|
className: "data-function-end",
|
|
19357
19444
|
children: rb
|
|
@@ -19360,15 +19447,15 @@ var PostFunctionType = () => {
|
|
|
19360
19447
|
};
|
|
19361
19448
|
var FunctionType = (props) => {
|
|
19362
19449
|
const functionColor = useJsonViewerStore((store) => store.colorspace.base05);
|
|
19363
|
-
return /* @__PURE__ */ (0,
|
|
19364
|
-
children: /* @__PURE__ */ (0,
|
|
19450
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.NoSsr, {
|
|
19451
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19365
19452
|
className: "data-function",
|
|
19366
19453
|
sx: {
|
|
19367
19454
|
display: props.inspect ? "block" : "inline-block",
|
|
19368
19455
|
pl: props.inspect ? 2 : 0,
|
|
19369
19456
|
color: functionColor
|
|
19370
19457
|
},
|
|
19371
|
-
children: props.inspect ? functionBody(props.value) : /* @__PURE__ */ (0,
|
|
19458
|
+
children: props.inspect ? functionBody(props.value) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19372
19459
|
component: "span",
|
|
19373
19460
|
className: "data-function-body",
|
|
19374
19461
|
onClick: () => props.setInspect(true),
|
|
@@ -19396,7 +19483,7 @@ var nullType = defineEasyType({
|
|
|
19396
19483
|
displayTypeLabel: false,
|
|
19397
19484
|
Renderer: () => {
|
|
19398
19485
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
19399
|
-
return /* @__PURE__ */ (0,
|
|
19486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19400
19487
|
sx: {
|
|
19401
19488
|
fontSize: "0.8rem",
|
|
19402
19489
|
backgroundColor,
|
|
@@ -19419,7 +19506,7 @@ var nanType = defineEasyType({
|
|
|
19419
19506
|
deserialize: (value) => parseFloat(value),
|
|
19420
19507
|
Renderer: () => {
|
|
19421
19508
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
19422
|
-
return /* @__PURE__ */ (0,
|
|
19509
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19423
19510
|
sx: {
|
|
19424
19511
|
backgroundColor,
|
|
19425
19512
|
fontSize: "0.8rem",
|
|
@@ -19439,7 +19526,7 @@ var floatType = defineEasyType({
|
|
|
19439
19526
|
deserialize: (value) => parseFloat(value),
|
|
19440
19527
|
Renderer: (param) => {
|
|
19441
19528
|
let { value } = param;
|
|
19442
|
-
return /* @__PURE__ */ (0,
|
|
19529
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
|
|
19443
19530
|
children: value
|
|
19444
19531
|
});
|
|
19445
19532
|
}
|
|
@@ -19453,7 +19540,7 @@ var intType = defineEasyType({
|
|
|
19453
19540
|
deserialize: (value) => parseFloat(value),
|
|
19454
19541
|
Renderer: (param) => {
|
|
19455
19542
|
let { value } = param;
|
|
19456
|
-
return /* @__PURE__ */ (0,
|
|
19543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
|
|
19457
19544
|
children: value
|
|
19458
19545
|
});
|
|
19459
19546
|
}
|
|
@@ -19466,16 +19553,16 @@ var bigIntType = defineEasyType({
|
|
|
19466
19553
|
deserialize: (value) => BigInt(value.replace(/\D/g, "")),
|
|
19467
19554
|
Renderer: (param) => {
|
|
19468
19555
|
let { value } = param;
|
|
19469
|
-
return /* @__PURE__ */ (0,
|
|
19556
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
|
|
19470
19557
|
children: "".concat(value, "n")
|
|
19471
19558
|
});
|
|
19472
19559
|
}
|
|
19473
19560
|
});
|
|
19474
19561
|
var BaseIcon = (param) => {
|
|
19475
19562
|
let { d: d2, ...props } = param;
|
|
19476
|
-
return /* @__PURE__ */ (0,
|
|
19563
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.SvgIcon, {
|
|
19477
19564
|
...props,
|
|
19478
|
-
children: /* @__PURE__ */ (0,
|
|
19565
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)("path", {
|
|
19479
19566
|
d: d2
|
|
19480
19567
|
})
|
|
19481
19568
|
});
|
|
@@ -19490,55 +19577,55 @@ var Edit = "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.3
|
|
|
19490
19577
|
var ExpandMore = "M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z";
|
|
19491
19578
|
var Delete = "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5l-1-1h-5l-1 1H5v2h14V4z";
|
|
19492
19579
|
var AddBoxIcon = (props) => {
|
|
19493
|
-
return /* @__PURE__ */ (0,
|
|
19580
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
|
|
19494
19581
|
d: AddBox,
|
|
19495
19582
|
...props
|
|
19496
19583
|
});
|
|
19497
19584
|
};
|
|
19498
19585
|
var CheckIcon = (props) => {
|
|
19499
|
-
return /* @__PURE__ */ (0,
|
|
19586
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
|
|
19500
19587
|
d: Check,
|
|
19501
19588
|
...props
|
|
19502
19589
|
});
|
|
19503
19590
|
};
|
|
19504
19591
|
var ChevronRightIcon = (props) => {
|
|
19505
|
-
return /* @__PURE__ */ (0,
|
|
19592
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
|
|
19506
19593
|
d: ChevronRight,
|
|
19507
19594
|
...props
|
|
19508
19595
|
});
|
|
19509
19596
|
};
|
|
19510
19597
|
var CircularArrowsIcon = (props) => {
|
|
19511
|
-
return /* @__PURE__ */ (0,
|
|
19598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
|
|
19512
19599
|
d: CircularArrows,
|
|
19513
19600
|
...props
|
|
19514
19601
|
});
|
|
19515
19602
|
};
|
|
19516
19603
|
var CloseIcon = (props) => {
|
|
19517
|
-
return /* @__PURE__ */ (0,
|
|
19604
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
|
|
19518
19605
|
d: Close,
|
|
19519
19606
|
...props
|
|
19520
19607
|
});
|
|
19521
19608
|
};
|
|
19522
19609
|
var ContentCopyIcon = (props) => {
|
|
19523
|
-
return /* @__PURE__ */ (0,
|
|
19610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
|
|
19524
19611
|
d: ContentCopy,
|
|
19525
19612
|
...props
|
|
19526
19613
|
});
|
|
19527
19614
|
};
|
|
19528
19615
|
var EditIcon = (props) => {
|
|
19529
|
-
return /* @__PURE__ */ (0,
|
|
19616
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
|
|
19530
19617
|
d: Edit,
|
|
19531
19618
|
...props
|
|
19532
19619
|
});
|
|
19533
19620
|
};
|
|
19534
19621
|
var ExpandMoreIcon = (props) => {
|
|
19535
|
-
return /* @__PURE__ */ (0,
|
|
19622
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
|
|
19536
19623
|
d: ExpandMore,
|
|
19537
19624
|
...props
|
|
19538
19625
|
});
|
|
19539
19626
|
};
|
|
19540
19627
|
var DeleteIcon = (props) => {
|
|
19541
|
-
return /* @__PURE__ */ (0,
|
|
19628
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
|
|
19542
19629
|
d: Delete,
|
|
19543
19630
|
...props
|
|
19544
19631
|
});
|
|
@@ -19577,7 +19664,7 @@ var PreObjectType = (props) => {
|
|
|
19577
19664
|
props.value
|
|
19578
19665
|
]);
|
|
19579
19666
|
const isTrap = useIsCycleReference(props.path, props.value);
|
|
19580
|
-
return /* @__PURE__ */ (0,
|
|
19667
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
|
|
19581
19668
|
component: "span",
|
|
19582
19669
|
className: "data-object-start",
|
|
19583
19670
|
sx: {
|
|
@@ -19585,7 +19672,7 @@ var PreObjectType = (props) => {
|
|
|
19585
19672
|
},
|
|
19586
19673
|
children: [
|
|
19587
19674
|
isArrayLike ? arrayLb : objectLb,
|
|
19588
|
-
shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */ (0,
|
|
19675
|
+
shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19589
19676
|
component: "span",
|
|
19590
19677
|
sx: {
|
|
19591
19678
|
pl: 0.5,
|
|
@@ -19595,16 +19682,16 @@ var PreObjectType = (props) => {
|
|
|
19595
19682
|
},
|
|
19596
19683
|
children: sizeOfValue
|
|
19597
19684
|
}),
|
|
19598
|
-
isTrap && !props.inspect && /* @__PURE__ */ (0,
|
|
19685
|
+
isTrap && !props.inspect && /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
|
|
19599
19686
|
children: [
|
|
19600
|
-
/* @__PURE__ */ (0,
|
|
19687
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CircularArrowsIcon, {
|
|
19601
19688
|
sx: {
|
|
19602
19689
|
fontSize: 12,
|
|
19603
19690
|
color: textColor,
|
|
19604
19691
|
mx: 0.5
|
|
19605
19692
|
}
|
|
19606
19693
|
}),
|
|
19607
|
-
/* @__PURE__ */ (0,
|
|
19694
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
|
|
19608
19695
|
sx: {
|
|
19609
19696
|
cursor: "pointer",
|
|
19610
19697
|
userSelect: "none"
|
|
@@ -19634,7 +19721,7 @@ var PostObjectType = (props) => {
|
|
|
19634
19721
|
props.path,
|
|
19635
19722
|
props.value
|
|
19636
19723
|
]);
|
|
19637
|
-
return /* @__PURE__ */ (0,
|
|
19724
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
|
|
19638
19725
|
component: "span",
|
|
19639
19726
|
className: "data-object-end",
|
|
19640
19727
|
sx: {
|
|
@@ -19645,7 +19732,7 @@ var PostObjectType = (props) => {
|
|
|
19645
19732
|
},
|
|
19646
19733
|
children: [
|
|
19647
19734
|
isArrayLike ? arrayRb : objectRb,
|
|
19648
|
-
shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */ (0,
|
|
19735
|
+
shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19649
19736
|
component: "span",
|
|
19650
19737
|
sx: {
|
|
19651
19738
|
pl: 0.5,
|
|
@@ -19685,7 +19772,7 @@ var ObjectType = (props) => {
|
|
|
19685
19772
|
...props.path,
|
|
19686
19773
|
key
|
|
19687
19774
|
];
|
|
19688
|
-
elements3.push(/* @__PURE__ */ (0,
|
|
19775
|
+
elements3.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
|
|
19689
19776
|
path,
|
|
19690
19777
|
value: value2,
|
|
19691
19778
|
prevValue: props.prevValue instanceof Map ? props.prevValue.get(k2) : void 0,
|
|
@@ -19701,7 +19788,7 @@ var ObjectType = (props) => {
|
|
|
19701
19788
|
while (true) {
|
|
19702
19789
|
const nextResult = iterator2.next();
|
|
19703
19790
|
var _nextResult_done;
|
|
19704
|
-
elements3.push(/* @__PURE__ */ (0,
|
|
19791
|
+
elements3.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
|
|
19705
19792
|
path: [
|
|
19706
19793
|
...props.path,
|
|
19707
19794
|
"iterator:".concat(count2)
|
|
@@ -19729,7 +19816,7 @@ var ObjectType = (props) => {
|
|
|
19729
19816
|
...props.path,
|
|
19730
19817
|
index
|
|
19731
19818
|
];
|
|
19732
|
-
return /* @__PURE__ */ (0,
|
|
19819
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
|
|
19733
19820
|
path,
|
|
19734
19821
|
value: value2,
|
|
19735
19822
|
prevValue: Array.isArray(props.prevValue) ? props.prevValue[index] : void 0,
|
|
@@ -19738,7 +19825,7 @@ var ObjectType = (props) => {
|
|
|
19738
19825
|
});
|
|
19739
19826
|
if (value.length > displayLength) {
|
|
19740
19827
|
const rest = value.length - displayLength;
|
|
19741
|
-
elements4.push(/* @__PURE__ */ (0,
|
|
19828
|
+
elements4.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
|
|
19742
19829
|
sx: {
|
|
19743
19830
|
cursor: "pointer",
|
|
19744
19831
|
lineHeight: 1.5,
|
|
@@ -19761,7 +19848,7 @@ var ObjectType = (props) => {
|
|
|
19761
19848
|
const prevElements = Array.isArray(props.prevValue) ? segmentArray(props.prevValue, groupArraysAfterLength) : void 0;
|
|
19762
19849
|
const elementsLastIndex = elements3.length - 1;
|
|
19763
19850
|
return elements3.map((list, index) => {
|
|
19764
|
-
return /* @__PURE__ */ (0,
|
|
19851
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
|
|
19765
19852
|
path: props.path,
|
|
19766
19853
|
value: list,
|
|
19767
19854
|
nestedIndex: index,
|
|
@@ -19788,7 +19875,7 @@ var ObjectType = (props) => {
|
|
|
19788
19875
|
...props.path,
|
|
19789
19876
|
key
|
|
19790
19877
|
];
|
|
19791
|
-
return /* @__PURE__ */ (0,
|
|
19878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
|
|
19792
19879
|
path,
|
|
19793
19880
|
value: value2,
|
|
19794
19881
|
prevValue: (_props_prevValue = props.prevValue) === null || _props_prevValue === void 0 ? void 0 : _props_prevValue[key],
|
|
@@ -19797,7 +19884,7 @@ var ObjectType = (props) => {
|
|
|
19797
19884
|
});
|
|
19798
19885
|
if (entries.length > displayLength) {
|
|
19799
19886
|
const rest = entries.length - displayLength;
|
|
19800
|
-
elements2.push(/* @__PURE__ */ (0,
|
|
19887
|
+
elements2.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
|
|
19801
19888
|
sx: {
|
|
19802
19889
|
cursor: "pointer",
|
|
19803
19890
|
lineHeight: 1.5,
|
|
@@ -19835,7 +19922,7 @@ var ObjectType = (props) => {
|
|
|
19835
19922
|
if (isEmptyValue) {
|
|
19836
19923
|
return null;
|
|
19837
19924
|
}
|
|
19838
|
-
return /* @__PURE__ */ (0,
|
|
19925
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19839
19926
|
className: "data-object",
|
|
19840
19927
|
sx: {
|
|
19841
19928
|
display: props.inspect ? "block" : "inline-block",
|
|
@@ -19844,7 +19931,7 @@ var ObjectType = (props) => {
|
|
|
19844
19931
|
color: keyColor,
|
|
19845
19932
|
borderLeft: props.inspect ? "1px solid ".concat(borderColor) : "none"
|
|
19846
19933
|
},
|
|
19847
|
-
children: props.inspect ? elements : !isTrap && /* @__PURE__ */ (0,
|
|
19934
|
+
children: props.inspect ? elements : !isTrap && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19848
19935
|
component: "span",
|
|
19849
19936
|
className: "data-object-body",
|
|
19850
19937
|
onClick: () => props.setInspect(true),
|
|
@@ -19876,7 +19963,7 @@ var stringType = defineEasyType({
|
|
|
19876
19963
|
const collapseStringsAfterLength = useJsonViewerStore((store) => store.collapseStringsAfterLength);
|
|
19877
19964
|
const value = showRest ? props.value : props.value.slice(0, collapseStringsAfterLength);
|
|
19878
19965
|
const hasRest = props.value.length > collapseStringsAfterLength;
|
|
19879
|
-
return /* @__PURE__ */ (0,
|
|
19966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
|
|
19880
19967
|
component: "span",
|
|
19881
19968
|
sx: {
|
|
19882
19969
|
overflowWrap: "anywhere",
|
|
@@ -19894,7 +19981,7 @@ var stringType = defineEasyType({
|
|
|
19894
19981
|
children: [
|
|
19895
19982
|
'"',
|
|
19896
19983
|
value,
|
|
19897
|
-
hasRest && !showRest && /* @__PURE__ */ (0,
|
|
19984
|
+
hasRest && !showRest && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19898
19985
|
component: "span",
|
|
19899
19986
|
sx: {
|
|
19900
19987
|
padding: 0.5
|
|
@@ -19913,7 +20000,7 @@ var undefinedType = defineEasyType({
|
|
|
19913
20000
|
displayTypeLabel: false,
|
|
19914
20001
|
Renderer: () => {
|
|
19915
20002
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
19916
|
-
return /* @__PURE__ */ (0,
|
|
20003
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19917
20004
|
sx: {
|
|
19918
20005
|
fontSize: "0.7rem",
|
|
19919
20006
|
backgroundColor,
|
|
@@ -19994,7 +20081,7 @@ function useTypeComponents(value, path) {
|
|
|
19994
20081
|
registry
|
|
19995
20082
|
]);
|
|
19996
20083
|
}
|
|
19997
|
-
var IconBox = (props) => /* @__PURE__ */ (0,
|
|
20084
|
+
var IconBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
19998
20085
|
component: "span",
|
|
19999
20086
|
...props,
|
|
20000
20087
|
sx: {
|
|
@@ -20180,18 +20267,18 @@ var DataKeyPair = (props) => {
|
|
|
20180
20267
|
]);
|
|
20181
20268
|
const actionIcons = (0, import_react54.useMemo)(() => {
|
|
20182
20269
|
if (editing) {
|
|
20183
|
-
return /* @__PURE__ */ (0,
|
|
20270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
|
|
20184
20271
|
children: [
|
|
20185
|
-
/* @__PURE__ */ (0,
|
|
20186
|
-
children: /* @__PURE__ */ (0,
|
|
20272
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
|
|
20273
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CloseIcon, {
|
|
20187
20274
|
sx: {
|
|
20188
20275
|
fontSize: ".8rem"
|
|
20189
20276
|
},
|
|
20190
20277
|
onClick: abortEditing
|
|
20191
20278
|
})
|
|
20192
20279
|
}),
|
|
20193
|
-
/* @__PURE__ */ (0,
|
|
20194
|
-
children: /* @__PURE__ */ (0,
|
|
20280
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
|
|
20281
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CheckIcon, {
|
|
20195
20282
|
sx: {
|
|
20196
20283
|
fontSize: ".8rem"
|
|
20197
20284
|
},
|
|
@@ -20201,9 +20288,9 @@ var DataKeyPair = (props) => {
|
|
|
20201
20288
|
]
|
|
20202
20289
|
});
|
|
20203
20290
|
}
|
|
20204
|
-
return /* @__PURE__ */ (0,
|
|
20291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
|
|
20205
20292
|
children: [
|
|
20206
|
-
enableClipboard && /* @__PURE__ */ (0,
|
|
20293
|
+
enableClipboard && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
|
|
20207
20294
|
onClick: (event) => {
|
|
20208
20295
|
event.preventDefault();
|
|
20209
20296
|
try {
|
|
@@ -20212,41 +20299,41 @@ var DataKeyPair = (props) => {
|
|
|
20212
20299
|
console.error(e2);
|
|
20213
20300
|
}
|
|
20214
20301
|
},
|
|
20215
|
-
children: copied ? /* @__PURE__ */ (0,
|
|
20302
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CheckIcon, {
|
|
20216
20303
|
sx: {
|
|
20217
20304
|
fontSize: ".8rem"
|
|
20218
20305
|
}
|
|
20219
|
-
}) : /* @__PURE__ */ (0,
|
|
20306
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(ContentCopyIcon, {
|
|
20220
20307
|
sx: {
|
|
20221
20308
|
fontSize: ".8rem"
|
|
20222
20309
|
}
|
|
20223
20310
|
})
|
|
20224
20311
|
}),
|
|
20225
|
-
Editor && editable && serialize && deserialize && /* @__PURE__ */ (0,
|
|
20312
|
+
Editor && editable && serialize && deserialize && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
|
|
20226
20313
|
onClick: startEditing,
|
|
20227
|
-
children: /* @__PURE__ */ (0,
|
|
20314
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(EditIcon, {
|
|
20228
20315
|
sx: {
|
|
20229
20316
|
fontSize: ".8rem"
|
|
20230
20317
|
}
|
|
20231
20318
|
})
|
|
20232
20319
|
}),
|
|
20233
|
-
enableAdd && /* @__PURE__ */ (0,
|
|
20320
|
+
enableAdd && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
|
|
20234
20321
|
onClick: (event) => {
|
|
20235
20322
|
event.preventDefault();
|
|
20236
20323
|
onAdd === null || onAdd === void 0 ? void 0 : onAdd(path);
|
|
20237
20324
|
},
|
|
20238
|
-
children: /* @__PURE__ */ (0,
|
|
20325
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(AddBoxIcon, {
|
|
20239
20326
|
sx: {
|
|
20240
20327
|
fontSize: ".8rem"
|
|
20241
20328
|
}
|
|
20242
20329
|
})
|
|
20243
20330
|
}),
|
|
20244
|
-
enableDelete && /* @__PURE__ */ (0,
|
|
20331
|
+
enableDelete && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
|
|
20245
20332
|
onClick: (event) => {
|
|
20246
20333
|
event.preventDefault();
|
|
20247
20334
|
onDelete === null || onDelete === void 0 ? void 0 : onDelete(path, value);
|
|
20248
20335
|
},
|
|
20249
|
-
children: /* @__PURE__ */ (0,
|
|
20336
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DeleteIcon, {
|
|
20250
20337
|
sx: {
|
|
20251
20338
|
fontSize: ".9rem"
|
|
20252
20339
|
}
|
|
@@ -20294,7 +20381,7 @@ var DataKeyPair = (props) => {
|
|
|
20294
20381
|
prevValue,
|
|
20295
20382
|
nestedIndex
|
|
20296
20383
|
]);
|
|
20297
|
-
return /* @__PURE__ */ (0,
|
|
20384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
|
|
20298
20385
|
className: "data-key-pair",
|
|
20299
20386
|
"data-testid": "data-key-pair" + path.join("."),
|
|
20300
20387
|
sx: {
|
|
@@ -20306,7 +20393,7 @@ var DataKeyPair = (props) => {
|
|
|
20306
20393
|
nestedIndex
|
|
20307
20394
|
]),
|
|
20308
20395
|
children: [
|
|
20309
|
-
/* @__PURE__ */ (0,
|
|
20396
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
|
|
20310
20397
|
component: "span",
|
|
20311
20398
|
className: "data-key",
|
|
20312
20399
|
sx: {
|
|
@@ -20327,7 +20414,7 @@ var DataKeyPair = (props) => {
|
|
|
20327
20414
|
setInspect
|
|
20328
20415
|
]),
|
|
20329
20416
|
children: [
|
|
20330
|
-
expandable ? inspect ? /* @__PURE__ */ (0,
|
|
20417
|
+
expandable ? inspect ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(ExpandMoreIcon, {
|
|
20331
20418
|
className: "data-key-toggle-expanded",
|
|
20332
20419
|
sx: {
|
|
20333
20420
|
fontSize: ".8rem",
|
|
@@ -20335,7 +20422,7 @@ var DataKeyPair = (props) => {
|
|
|
20335
20422
|
cursor: "pointer"
|
|
20336
20423
|
}
|
|
20337
20424
|
}
|
|
20338
|
-
}) : /* @__PURE__ */ (0,
|
|
20425
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(ChevronRightIcon, {
|
|
20339
20426
|
className: "data-key-toggle-collapsed",
|
|
20340
20427
|
sx: {
|
|
20341
20428
|
fontSize: ".8rem",
|
|
@@ -20344,44 +20431,44 @@ var DataKeyPair = (props) => {
|
|
|
20344
20431
|
}
|
|
20345
20432
|
}
|
|
20346
20433
|
}) : null,
|
|
20347
|
-
/* @__PURE__ */ (0,
|
|
20434
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
20348
20435
|
ref: highlightContainer,
|
|
20349
20436
|
className: "data-key-key",
|
|
20350
20437
|
component: "span",
|
|
20351
|
-
children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */ (0,
|
|
20438
|
+
children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
|
|
20352
20439
|
children: [
|
|
20353
20440
|
'"',
|
|
20354
20441
|
rootName,
|
|
20355
20442
|
'"'
|
|
20356
20443
|
]
|
|
20357
|
-
}) : /* @__PURE__ */ (0,
|
|
20444
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
|
|
20358
20445
|
children: rootName
|
|
20359
|
-
}) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */ (0,
|
|
20446
|
+
}) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(KeyRenderer, {
|
|
20360
20447
|
...downstreamProps
|
|
20361
|
-
}) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */ (0,
|
|
20448
|
+
}) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
20362
20449
|
component: "span",
|
|
20363
20450
|
style: {
|
|
20364
20451
|
color: numberKeyColor,
|
|
20365
20452
|
userSelect: isNumberKey ? "none" : "auto"
|
|
20366
20453
|
},
|
|
20367
20454
|
children: key
|
|
20368
|
-
}) : quotesOnKeys ? /* @__PURE__ */ (0,
|
|
20455
|
+
}) : quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
|
|
20369
20456
|
children: [
|
|
20370
20457
|
'"',
|
|
20371
20458
|
key,
|
|
20372
20459
|
'"'
|
|
20373
20460
|
]
|
|
20374
|
-
}) : /* @__PURE__ */ (0,
|
|
20461
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
|
|
20375
20462
|
children: key
|
|
20376
20463
|
}))
|
|
20377
20464
|
}),
|
|
20378
|
-
isRoot ? rootName !== false && /* @__PURE__ */ (0,
|
|
20465
|
+
isRoot ? rootName !== false && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
|
|
20379
20466
|
className: "data-key-colon",
|
|
20380
20467
|
sx: {
|
|
20381
20468
|
mr: 0.5
|
|
20382
20469
|
},
|
|
20383
20470
|
children: ":"
|
|
20384
|
-
}) : nestedIndex === void 0 && /* @__PURE__ */ (0,
|
|
20471
|
+
}) : nestedIndex === void 0 && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
|
|
20385
20472
|
className: "data-key-colon",
|
|
20386
20473
|
sx: {
|
|
20387
20474
|
mr: 0.5,
|
|
@@ -20392,29 +20479,29 @@ var DataKeyPair = (props) => {
|
|
|
20392
20479
|
},
|
|
20393
20480
|
children: ":"
|
|
20394
20481
|
}),
|
|
20395
|
-
PreComponent && /* @__PURE__ */ (0,
|
|
20482
|
+
PreComponent && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(PreComponent, {
|
|
20396
20483
|
...downstreamProps
|
|
20397
20484
|
}),
|
|
20398
20485
|
isHover && expandable && inspect && actionIcons
|
|
20399
20486
|
]
|
|
20400
20487
|
}),
|
|
20401
|
-
editing && editable ? Editor && /* @__PURE__ */ (0,
|
|
20488
|
+
editing && editable ? Editor && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Editor, {
|
|
20402
20489
|
path,
|
|
20403
20490
|
value: tempValue,
|
|
20404
20491
|
setValue: setTempValue,
|
|
20405
20492
|
abortEditing,
|
|
20406
20493
|
commitEditing
|
|
20407
|
-
}) : Component ? /* @__PURE__ */ (0,
|
|
20494
|
+
}) : Component ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Component, {
|
|
20408
20495
|
...downstreamProps
|
|
20409
|
-
}) : /* @__PURE__ */ (0,
|
|
20496
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
|
|
20410
20497
|
component: "span",
|
|
20411
20498
|
className: "data-value-fallback",
|
|
20412
20499
|
children: "fallback: ".concat(value)
|
|
20413
20500
|
}),
|
|
20414
|
-
PostComponent && /* @__PURE__ */ (0,
|
|
20501
|
+
PostComponent && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(PostComponent, {
|
|
20415
20502
|
...downstreamProps
|
|
20416
20503
|
}),
|
|
20417
|
-
!last && displayComma && /* @__PURE__ */ (0,
|
|
20504
|
+
!last && displayComma && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
|
|
20418
20505
|
children: ","
|
|
20419
20506
|
}),
|
|
20420
20507
|
isHover && expandable && !inspect && actionIcons,
|
|
@@ -20534,7 +20621,7 @@ var JsonViewerInner = (props) => {
|
|
|
20534
20621
|
const onMouseLeave = (0, import_react54.useCallback)(() => setHover(null), [
|
|
20535
20622
|
setHover
|
|
20536
20623
|
]);
|
|
20537
|
-
return /* @__PURE__ */ (0,
|
|
20624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Paper, {
|
|
20538
20625
|
elevation: 0,
|
|
20539
20626
|
className: clsx(themeCls, props.className),
|
|
20540
20627
|
style: props.style,
|
|
@@ -20545,7 +20632,7 @@ var JsonViewerInner = (props) => {
|
|
|
20545
20632
|
...props.sx
|
|
20546
20633
|
},
|
|
20547
20634
|
onMouseLeave,
|
|
20548
|
-
children: /* @__PURE__ */ (0,
|
|
20635
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
|
|
20549
20636
|
value,
|
|
20550
20637
|
prevValue,
|
|
20551
20638
|
path: emptyPath,
|
|
@@ -20570,7 +20657,7 @@ var JsonViewer = function JsonViewer2(props) {
|
|
|
20570
20657
|
const theme = (0, import_react54.useMemo)(() => {
|
|
20571
20658
|
const backgroundColor = typeof themeType === "object" ? themeType.base00 : themeType === "dark" ? darkColorspace.base00 : lightColorspace.base00;
|
|
20572
20659
|
const foregroundColor = typeof themeType === "object" ? themeType.base07 : themeType === "dark" ? darkColorspace.base07 : lightColorspace.base07;
|
|
20573
|
-
return (0,
|
|
20660
|
+
return (0, import_material13.createTheme)({
|
|
20574
20661
|
components: {
|
|
20575
20662
|
MuiPaper: {
|
|
20576
20663
|
styleOverrides: {
|
|
@@ -20597,13 +20684,13 @@ var JsonViewer = function JsonViewer2(props) {
|
|
|
20597
20684
|
};
|
|
20598
20685
|
const jsonViewerStore = (0, import_react54.useMemo)(() => createJsonViewerStore(props), []);
|
|
20599
20686
|
const typeRegistryStore = (0, import_react54.useMemo)(() => createTypeRegistryStore(), []);
|
|
20600
|
-
return /* @__PURE__ */ (0,
|
|
20687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.ThemeProvider, {
|
|
20601
20688
|
theme,
|
|
20602
|
-
children: /* @__PURE__ */ (0,
|
|
20689
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(TypeRegistryStoreContext.Provider, {
|
|
20603
20690
|
value: typeRegistryStore,
|
|
20604
|
-
children: /* @__PURE__ */ (0,
|
|
20691
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(JsonViewerStoreContext.Provider, {
|
|
20605
20692
|
value: jsonViewerStore,
|
|
20606
|
-
children: /* @__PURE__ */ (0,
|
|
20693
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(JsonViewerInner, {
|
|
20607
20694
|
...mixedProps
|
|
20608
20695
|
})
|
|
20609
20696
|
})
|
|
@@ -20613,7 +20700,7 @@ var JsonViewer = function JsonViewer2(props) {
|
|
|
20613
20700
|
|
|
20614
20701
|
// src/components/event-details/payload-viewer.tsx
|
|
20615
20702
|
var import_react55 = require("react");
|
|
20616
|
-
var
|
|
20703
|
+
var import_jsx_runtime137 = require("react/jsx-runtime");
|
|
20617
20704
|
function tryParseJson(value) {
|
|
20618
20705
|
if (typeof value !== "string") {
|
|
20619
20706
|
return value;
|
|
@@ -20625,8 +20712,8 @@ function tryParseJson(value) {
|
|
|
20625
20712
|
}
|
|
20626
20713
|
}
|
|
20627
20714
|
var PayloadViewer = (0, import_react55.memo)(({ sx, testId, value }) => {
|
|
20628
|
-
const theme = (0,
|
|
20629
|
-
return /* @__PURE__ */ (0,
|
|
20715
|
+
const theme = (0, import_material14.useTheme)();
|
|
20716
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material14.Box, { "data-testid": testId, sx: { backgroundColor: "background.default", borderRadius: 1, fontSize: 12, overflow: "auto", p: 1, ...sx }, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
20630
20717
|
JsonViewer,
|
|
20631
20718
|
{
|
|
20632
20719
|
displayDataTypes: false,
|
|
@@ -20640,10 +20727,10 @@ var PayloadViewer = (0, import_react55.memo)(({ sx, testId, value }) => {
|
|
|
20640
20727
|
});
|
|
20641
20728
|
|
|
20642
20729
|
// src/components/event-details/event-detail.tsx
|
|
20643
|
-
var
|
|
20644
|
-
var DetailRow2 = ({ content, label }) => /* @__PURE__ */ (0,
|
|
20645
|
-
/* @__PURE__ */ (0,
|
|
20646
|
-
/* @__PURE__ */ (0,
|
|
20730
|
+
var import_jsx_runtime138 = require("react/jsx-runtime");
|
|
20731
|
+
var DetailRow2 = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
|
|
20732
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
|
|
20733
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Typography, { sx: { color: "text.primary", whiteSpace: "pre-wrap" }, variant: "caption", children: content }) : content })
|
|
20647
20734
|
] });
|
|
20648
20735
|
var EventMessage = ({ event }) => {
|
|
20649
20736
|
const [isOpen, setIsOpen] = (0, import_react56.useState)(false);
|
|
@@ -20675,21 +20762,21 @@ var EventMessage = ({ event }) => {
|
|
|
20675
20762
|
() => isOverflowing || hasAdditionalContent,
|
|
20676
20763
|
[isOverflowing, hasAdditionalContent]
|
|
20677
20764
|
);
|
|
20678
|
-
return /* @__PURE__ */ (0,
|
|
20679
|
-
/* @__PURE__ */ (0,
|
|
20680
|
-
Boolean(shouldShowToggle) && /* @__PURE__ */ (0,
|
|
20681
|
-
|
|
20765
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { sx: { display: "flex", flexDirection: "column" }, children: [
|
|
20766
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { sx: { alignItems: "center", display: "flex" }, children: [
|
|
20767
|
+
Boolean(shouldShowToggle) && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
|
|
20768
|
+
import_material15.IconButton,
|
|
20682
20769
|
{
|
|
20683
20770
|
onClick: () => {
|
|
20684
20771
|
setIsOpen(!isOpen);
|
|
20685
20772
|
},
|
|
20686
20773
|
size: "small",
|
|
20687
20774
|
sx: { mr: 1, p: 0 },
|
|
20688
|
-
children: isOpen ? /* @__PURE__ */ (0,
|
|
20775
|
+
children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_icons_material8.KeyboardArrowDown, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_icons_material8.KeyboardArrowRight, { sx: { fontSize: 16 } })
|
|
20689
20776
|
}
|
|
20690
20777
|
),
|
|
20691
|
-
/* @__PURE__ */ (0,
|
|
20692
|
-
|
|
20778
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
|
|
20779
|
+
import_material15.Typography,
|
|
20693
20780
|
{
|
|
20694
20781
|
ref: textReference,
|
|
20695
20782
|
sx: {
|
|
@@ -20706,12 +20793,12 @@ var EventMessage = ({ event }) => {
|
|
|
20706
20793
|
}
|
|
20707
20794
|
)
|
|
20708
20795
|
] }),
|
|
20709
|
-
isOpen && /* @__PURE__ */ (0,
|
|
20710
|
-
Boolean(parsedMessage.message) && /* @__PURE__ */ (0,
|
|
20711
|
-
Boolean(parsedMessage.details) && /* @__PURE__ */ (0,
|
|
20796
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Box, { sx: { borderColor: "divider", borderLeft: "2px solid", ml: 1, mt: 0.5, pl: 1.5, py: 0.5 }, children: isIAMPolicyEvent ? /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(IAMEventDetail, { event }) : /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_jsx_runtime138.Fragment, { children: [
|
|
20797
|
+
Boolean(parsedMessage.message) && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(DetailRow2, { content: parsedMessage.message, label: "Message" }),
|
|
20798
|
+
Boolean(parsedMessage.details) && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
|
|
20712
20799
|
DetailRow2,
|
|
20713
20800
|
{
|
|
20714
|
-
content: /* @__PURE__ */ (0,
|
|
20801
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(PayloadViewer, { sx: { px: 0 }, value: tryParseJson(parsedMessage.details) }),
|
|
20715
20802
|
label: "Details"
|
|
20716
20803
|
}
|
|
20717
20804
|
)
|
|
@@ -20743,15 +20830,15 @@ var EventDetail = ({
|
|
|
20743
20830
|
type
|
|
20744
20831
|
}) => {
|
|
20745
20832
|
if (type === "permission") {
|
|
20746
|
-
return /* @__PURE__ */ (0,
|
|
20833
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(IAMPermissionDetail, { events });
|
|
20747
20834
|
}
|
|
20748
20835
|
const eventLevel = getEventLevelFromGroup(type);
|
|
20749
|
-
return /* @__PURE__ */ (0,
|
|
20750
|
-
/* @__PURE__ */ (0,
|
|
20751
|
-
/* @__PURE__ */ (0,
|
|
20752
|
-
/* @__PURE__ */ (0,
|
|
20836
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { children: [
|
|
20837
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { sx: { alignItems: "center", display: "flex", mb: 0.5 }, children: [
|
|
20838
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(StatusIcon2, { errorLevel: eventLevel }),
|
|
20839
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Typography, { color: "text.secondary", sx: { fontWeight: 600, ml: 0.5 }, variant: "caption", children: displayText })
|
|
20753
20840
|
] }),
|
|
20754
|
-
/* @__PURE__ */ (0,
|
|
20841
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Box, { sx: { maxWidth: "100%", mb: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(EventMessage, { event }) }, `${event.span_id}-${event.event_id}`)) })
|
|
20755
20842
|
] });
|
|
20756
20843
|
};
|
|
20757
20844
|
|
|
@@ -25133,16 +25220,16 @@ var ProtocolLib = class {
|
|
|
25133
25220
|
if (output !== void 0 && queryErrorHeader != null) {
|
|
25134
25221
|
const [Code, Type] = queryErrorHeader.split(";");
|
|
25135
25222
|
const entries = Object.entries(output);
|
|
25136
|
-
const
|
|
25223
|
+
const Error4 = {
|
|
25137
25224
|
Code,
|
|
25138
25225
|
Type
|
|
25139
25226
|
};
|
|
25140
|
-
Object.assign(output,
|
|
25227
|
+
Object.assign(output, Error4);
|
|
25141
25228
|
for (const [k2, v2] of entries) {
|
|
25142
|
-
|
|
25229
|
+
Error4[k2 === "message" ? "Message" : k2] = v2;
|
|
25143
25230
|
}
|
|
25144
|
-
delete
|
|
25145
|
-
output.Error =
|
|
25231
|
+
delete Error4.__type;
|
|
25232
|
+
output.Error = Error4;
|
|
25146
25233
|
}
|
|
25147
25234
|
}
|
|
25148
25235
|
queryCompatOutput(queryCompatErrorData, errorData) {
|
|
@@ -30442,9 +30529,9 @@ var QueryStatus = {
|
|
|
30442
30529
|
};
|
|
30443
30530
|
|
|
30444
30531
|
// src/components/event-details/lambda-invoke-logs-section.tsx
|
|
30445
|
-
var
|
|
30532
|
+
var import_material16 = require("@mui/material");
|
|
30446
30533
|
var import_react57 = require("react");
|
|
30447
|
-
var
|
|
30534
|
+
var import_jsx_runtime139 = require("react/jsx-runtime");
|
|
30448
30535
|
var POLL_INTERVAL_MS = 1e3;
|
|
30449
30536
|
async function pollQueryResults(client, queryId) {
|
|
30450
30537
|
return client.send(new GetQueryResultsCommand({ queryId }));
|
|
@@ -30534,30 +30621,30 @@ function useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, en
|
|
|
30534
30621
|
var LambdaInvokeLogsSection = ({ endTimeNano, functionName: functionName2, region, requestId, startTimeNano }) => {
|
|
30535
30622
|
const { error, loading, logs } = useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, endTimeNano);
|
|
30536
30623
|
if (loading) {
|
|
30537
|
-
return /* @__PURE__ */ (0,
|
|
30538
|
-
/* @__PURE__ */ (0,
|
|
30539
|
-
/* @__PURE__ */ (0,
|
|
30624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(import_material16.Stack, { alignItems: "center", direction: "row", spacing: 1, children: [
|
|
30625
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.CircularProgress, { size: 14 }),
|
|
30626
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Typography, { color: "text.secondary", variant: "body2", children: "Loading logs\u2026" })
|
|
30540
30627
|
] });
|
|
30541
30628
|
}
|
|
30542
30629
|
if (error !== void 0) {
|
|
30543
|
-
return /* @__PURE__ */ (0,
|
|
30630
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Typography, { color: "error", variant: "body2", children: error.message });
|
|
30544
30631
|
}
|
|
30545
30632
|
if (logs.length === 0) {
|
|
30546
|
-
return /* @__PURE__ */ (0,
|
|
30633
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Typography, { color: "text.secondary", variant: "body2", children: "No logs found for this invocation." });
|
|
30547
30634
|
}
|
|
30548
|
-
return /* @__PURE__ */ (0,
|
|
30635
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Box, { sx: { backgroundColor: (theme) => theme.palette.background.default, borderRadius: 1, p: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("pre", { style: { margin: 0, overflow: "auto" }, children: logs.map((log) => /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Typography, { variant: "body2", children: `[${log.timestamp}] ${log.message}` }, log.ptr)) }) });
|
|
30549
30636
|
};
|
|
30550
30637
|
|
|
30551
30638
|
// src/components/event-details/toggle-section.tsx
|
|
30552
|
-
var
|
|
30553
|
-
var
|
|
30639
|
+
var import_icons_material9 = require("@mui/icons-material");
|
|
30640
|
+
var import_material17 = require("@mui/material");
|
|
30554
30641
|
var import_react58 = require("react");
|
|
30555
|
-
var
|
|
30642
|
+
var import_jsx_runtime140 = require("react/jsx-runtime");
|
|
30556
30643
|
var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
30557
30644
|
const [isOpen, setIsOpen] = (0, import_react58.useState)(initialOpen);
|
|
30558
|
-
return /* @__PURE__ */ (0,
|
|
30559
|
-
/* @__PURE__ */ (0,
|
|
30560
|
-
|
|
30645
|
+
return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { sx: { mt: 4 }, children: [
|
|
30646
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(
|
|
30647
|
+
import_material17.Box,
|
|
30561
30648
|
{
|
|
30562
30649
|
onClick: () => {
|
|
30563
30650
|
setIsOpen(!isOpen);
|
|
@@ -30570,8 +30657,8 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
|
30570
30657
|
mb: 1
|
|
30571
30658
|
},
|
|
30572
30659
|
children: [
|
|
30573
|
-
/* @__PURE__ */ (0,
|
|
30574
|
-
|
|
30660
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(
|
|
30661
|
+
import_material17.Box,
|
|
30575
30662
|
{
|
|
30576
30663
|
role: "button",
|
|
30577
30664
|
sx: {
|
|
@@ -30580,23 +30667,23 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
|
30580
30667
|
gap: 1
|
|
30581
30668
|
},
|
|
30582
30669
|
children: [
|
|
30583
|
-
/* @__PURE__ */ (0,
|
|
30584
|
-
isOpen ? /* @__PURE__ */ (0,
|
|
30670
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "subtitle2", children: headline }),
|
|
30671
|
+
isOpen ? /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_icons_material9.KeyboardArrowDown, { sx: { color: "text.secondary", height: 20, width: 20 } }) : /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_icons_material9.KeyboardArrowRight, { sx: { color: "text.secondary", height: 20, width: 20 } })
|
|
30585
30672
|
]
|
|
30586
30673
|
}
|
|
30587
30674
|
),
|
|
30588
|
-
action !== false && /* @__PURE__ */ (0,
|
|
30675
|
+
action !== false && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Box, { onClick: (event) => {
|
|
30589
30676
|
event.stopPropagation();
|
|
30590
30677
|
}, children: action })
|
|
30591
30678
|
]
|
|
30592
30679
|
}
|
|
30593
30680
|
),
|
|
30594
|
-
isOpen && /* @__PURE__ */ (0,
|
|
30681
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Box, { children })
|
|
30595
30682
|
] });
|
|
30596
30683
|
};
|
|
30597
30684
|
|
|
30598
30685
|
// src/components/event-details/event-details.tsx
|
|
30599
|
-
var
|
|
30686
|
+
var import_jsx_runtime141 = require("react/jsx-runtime");
|
|
30600
30687
|
var checkIsLambdaInvoke = (span) => {
|
|
30601
30688
|
if (span.service_name !== "lambda") {
|
|
30602
30689
|
return false;
|
|
@@ -30617,7 +30704,7 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30617
30704
|
);
|
|
30618
30705
|
const [parseNestedJson, setParseNestedJson] = (0, import_react59.useState)(true);
|
|
30619
30706
|
if (!selectedEvent) {
|
|
30620
|
-
return /* @__PURE__ */ (0,
|
|
30707
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Box, { sx: { p: 3, textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { color: "text.secondary", variant: "body2", children: "Select an event to view details" }) });
|
|
30621
30708
|
}
|
|
30622
30709
|
const isLambdaInvoke = checkIsLambdaInvoke(selectedEvent);
|
|
30623
30710
|
const isSqsSendMessage = checkIsSqsSendMessage(selectedEvent);
|
|
@@ -30640,9 +30727,9 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30640
30727
|
const exceptionPayload = tryParseJson(selectedEvent.attributes?.["localstack.aws.service.exception"]);
|
|
30641
30728
|
const hasPayloads = requestPayload !== void 0 || responsePayload !== void 0 || exceptionPayload !== void 0 || isResponseSuppressed;
|
|
30642
30729
|
const duration = selectedEvent.end_time_unix_nano ? ((BigInt(selectedEvent.end_time_unix_nano) - BigInt(selectedEvent.start_time_unix_nano)) / BigInt("1000000")).toString() : void 0;
|
|
30643
|
-
return /* @__PURE__ */ (0,
|
|
30644
|
-
/* @__PURE__ */ (0,
|
|
30645
|
-
|
|
30730
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { "data-testid": EVENT_DETAILS_TEST_ID, sx: { display: "flex", flexDirection: "column", height: "100%" }, children: [
|
|
30731
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(
|
|
30732
|
+
import_material18.Box,
|
|
30646
30733
|
{
|
|
30647
30734
|
sx: {
|
|
30648
30735
|
alignItems: "center",
|
|
@@ -30654,64 +30741,64 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30654
30741
|
py: 1
|
|
30655
30742
|
},
|
|
30656
30743
|
children: [
|
|
30657
|
-
/* @__PURE__ */ (0,
|
|
30658
|
-
onClose && /* @__PURE__ */ (0,
|
|
30744
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "h6", children: "Operation Details" }) }),
|
|
30745
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.IconButton, { "data-testid": EVENT_DETAILS_CLOSE_BUTTON_TEST_ID, onClick: onClose, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_icons_material10.Close, {}) })
|
|
30659
30746
|
]
|
|
30660
30747
|
}
|
|
30661
30748
|
),
|
|
30662
|
-
/* @__PURE__ */ (0,
|
|
30663
|
-
/* @__PURE__ */ (0,
|
|
30664
|
-
/* @__PURE__ */ (0,
|
|
30665
|
-
/* @__PURE__ */ (0,
|
|
30666
|
-
/* @__PURE__ */ (0,
|
|
30667
|
-
/* @__PURE__ */ (0,
|
|
30749
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Box, { sx: { flexGrow: 1, overflow: "auto", p: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Stack, { spacing: 2, children: [
|
|
30750
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ToggleSection, { headline: "Basic Information", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Stack, { "data-testid": EVENT_DETAILS_SECTION_BASIC_INFORMATION_TEST_ID, spacing: 1, children: [
|
|
30751
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { sx: { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" }, children: [
|
|
30752
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30753
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Service" }),
|
|
30754
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_SERVICE_NAME_TEST_ID, variant: "body2", children: getServiceDisplayName(selectedEvent.service_name) })
|
|
30668
30755
|
] }),
|
|
30669
|
-
/* @__PURE__ */ (0,
|
|
30670
|
-
/* @__PURE__ */ (0,
|
|
30671
|
-
/* @__PURE__ */ (0,
|
|
30756
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30757
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Action" }),
|
|
30758
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_OPERATION_NAME_TEST_ID, variant: "body2", children: selectedEvent.operation_name })
|
|
30672
30759
|
] })
|
|
30673
30760
|
] }),
|
|
30674
|
-
/* @__PURE__ */ (0,
|
|
30675
|
-
/* @__PURE__ */ (0,
|
|
30676
|
-
/* @__PURE__ */ (0,
|
|
30677
|
-
/* @__PURE__ */ (0,
|
|
30761
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { sx: cfnResourceType ? { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" } : void 0, children: [
|
|
30762
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30763
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource" }),
|
|
30764
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_RESOURCE_NAME_TEST_ID, variant: "body2", children: selectedEvent.resource_name })
|
|
30678
30765
|
] }),
|
|
30679
|
-
Boolean(cfnResourceType) && /* @__PURE__ */ (0,
|
|
30680
|
-
/* @__PURE__ */ (0,
|
|
30681
|
-
/* @__PURE__ */ (0,
|
|
30766
|
+
Boolean(cfnResourceType) && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30767
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource Type" }),
|
|
30768
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_CFN_RESOURCE_TYPE_TEST_ID, variant: "body2", children: cfnResourceType })
|
|
30682
30769
|
] })
|
|
30683
30770
|
] }),
|
|
30684
|
-
Boolean(resourceArn) && /* @__PURE__ */ (0,
|
|
30685
|
-
/* @__PURE__ */ (0,
|
|
30686
|
-
/* @__PURE__ */ (0,
|
|
30771
|
+
Boolean(resourceArn) && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30772
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource ARN" }),
|
|
30773
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_RESOURCE_ARN_TEST_ID, variant: "body2", children: resourceArn })
|
|
30687
30774
|
] }),
|
|
30688
|
-
/* @__PURE__ */ (0,
|
|
30689
|
-
/* @__PURE__ */ (0,
|
|
30690
|
-
/* @__PURE__ */ (0,
|
|
30691
|
-
/* @__PURE__ */ (0,
|
|
30775
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "1.3fr 1fr" }, children: [
|
|
30776
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30777
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Account" }),
|
|
30778
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_ACCOUNT_TEST_ID, variant: "body2", children: selectedEvent.account_id })
|
|
30692
30779
|
] }),
|
|
30693
|
-
/* @__PURE__ */ (0,
|
|
30694
|
-
/* @__PURE__ */ (0,
|
|
30695
|
-
/* @__PURE__ */ (0,
|
|
30780
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30781
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Region" }),
|
|
30782
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_REGION_TEST_ID, variant: "body2", children: selectedEvent.region })
|
|
30696
30783
|
] })
|
|
30697
30784
|
] }),
|
|
30698
|
-
/* @__PURE__ */ (0,
|
|
30699
|
-
/* @__PURE__ */ (0,
|
|
30700
|
-
/* @__PURE__ */ (0,
|
|
30701
|
-
/* @__PURE__ */ (0,
|
|
30785
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: duration === void 0 ? "1fr" : "1.3fr 1fr" }, children: [
|
|
30786
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30787
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Start Time" }),
|
|
30788
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_START_TIME_TEST_ID, variant: "body2", children: unixNanoToDate(selectedEvent.start_time_unix_nano)?.toISOString() })
|
|
30702
30789
|
] }),
|
|
30703
|
-
duration !== void 0 && /* @__PURE__ */ (0,
|
|
30704
|
-
/* @__PURE__ */ (0,
|
|
30705
|
-
/* @__PURE__ */ (0,
|
|
30790
|
+
duration !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30791
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Duration" }),
|
|
30792
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Typography, { "data-testid": EVENT_DETAILS_DURATION_TEST_ID, variant: "body2", children: [
|
|
30706
30793
|
duration,
|
|
30707
30794
|
"ms"
|
|
30708
30795
|
] })
|
|
30709
30796
|
] })
|
|
30710
30797
|
] }),
|
|
30711
|
-
/* @__PURE__ */ (0,
|
|
30712
|
-
/* @__PURE__ */ (0,
|
|
30713
|
-
/* @__PURE__ */ (0,
|
|
30714
|
-
|
|
30798
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30799
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Status" }),
|
|
30800
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Stack, { alignItems: "center", direction: "row", flexWrap: "wrap", gap: 1, sx: { mb: eventGroups.errors || eventGroups.warnings ? 1 : 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
30801
|
+
import_material18.Chip,
|
|
30715
30802
|
{
|
|
30716
30803
|
color: selectedEvent.status_code === 2 ? "error" : selectedEvent.status_code === 1 ? "success" : "default",
|
|
30717
30804
|
"data-testid": EVENT_DETAILS_STATUS_TEST_ID,
|
|
@@ -30721,50 +30808,50 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30721
30808
|
) })
|
|
30722
30809
|
] })
|
|
30723
30810
|
] }) }),
|
|
30724
|
-
/* @__PURE__ */ (0,
|
|
30725
|
-
/* @__PURE__ */ (0,
|
|
30726
|
-
selectedEvent.iam_errors_suppressed && /* @__PURE__ */ (0,
|
|
30727
|
-
!selectedEvent.iam_errors_suppressed && !eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */ (0,
|
|
30728
|
-
eventGroups.permissions && /* @__PURE__ */ (0,
|
|
30729
|
-
eventGroups.errors && /* @__PURE__ */ (0,
|
|
30730
|
-
eventGroups.warnings && /* @__PURE__ */ (0,
|
|
30811
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Divider, {}),
|
|
30812
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(ToggleSection, { headline: "Permissions", children: [
|
|
30813
|
+
selectedEvent.iam_errors_suppressed && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Alert, { "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" }),
|
|
30814
|
+
!selectedEvent.iam_errors_suppressed && !eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { color: "text.secondary", variant: "body2", children: "There is no permission information available." }),
|
|
30815
|
+
eventGroups.permissions && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Permissions", events: eventGroups.permissions, type: "permission" }),
|
|
30816
|
+
eventGroups.errors && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Error", events: eventGroups.errors, type: "error" }),
|
|
30817
|
+
eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Warning", events: eventGroups.warnings, type: "warning" })
|
|
30731
30818
|
] }),
|
|
30732
|
-
hasPayloads && /* @__PURE__ */ (0,
|
|
30733
|
-
/* @__PURE__ */ (0,
|
|
30734
|
-
/* @__PURE__ */ (0,
|
|
30819
|
+
hasPayloads && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
|
|
30820
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Divider, {}),
|
|
30821
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
30735
30822
|
ToggleSection,
|
|
30736
30823
|
{
|
|
30737
|
-
action: /* @__PURE__ */ (0,
|
|
30738
|
-
|
|
30824
|
+
action: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
30825
|
+
import_material18.FormControlLabel,
|
|
30739
30826
|
{
|
|
30740
|
-
control: /* @__PURE__ */ (0,
|
|
30827
|
+
control: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Switch, { checked: !parseNestedJson, onChange: (event) => {
|
|
30741
30828
|
setParseNestedJson(!event.target.checked);
|
|
30742
30829
|
}, size: "small" }),
|
|
30743
|
-
label: /* @__PURE__ */ (0,
|
|
30830
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { variant: "caption", children: "View raw data" }),
|
|
30744
30831
|
sx: { mr: 0 }
|
|
30745
30832
|
}
|
|
30746
30833
|
),
|
|
30747
30834
|
headline: "Payloads",
|
|
30748
|
-
children: /* @__PURE__ */ (0,
|
|
30749
|
-
requestPayload !== void 0 && /* @__PURE__ */ (0,
|
|
30750
|
-
/* @__PURE__ */ (0,
|
|
30751
|
-
/* @__PURE__ */ (0,
|
|
30835
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Stack, { spacing: 2, children: [
|
|
30836
|
+
requestPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30837
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Request" }),
|
|
30838
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(PayloadViewer, { testId: EVENT_DETAILS_REQUEST_PAYLOAD, value: requestPayload })
|
|
30752
30839
|
] }),
|
|
30753
|
-
(responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */ (0,
|
|
30754
|
-
/* @__PURE__ */ (0,
|
|
30755
|
-
isResponseSuppressed ? /* @__PURE__ */ (0,
|
|
30840
|
+
(responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30841
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Response" }),
|
|
30842
|
+
isResponseSuppressed ? /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Box, { sx: { py: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Alert, { severity: "warning", sx: { mb: 1 }, children: "Response payload is available \u2014 upgrade your license to view" }) }) : /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(PayloadViewer, { testId: EVENT_DETAILS_RESPONSE_PAYLOAD_TEST_ID, value: responsePayload })
|
|
30756
30843
|
] }),
|
|
30757
|
-
exceptionPayload !== void 0 && /* @__PURE__ */ (0,
|
|
30758
|
-
/* @__PURE__ */ (0,
|
|
30759
|
-
/* @__PURE__ */ (0,
|
|
30844
|
+
exceptionPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30845
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Exception" }),
|
|
30846
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(PayloadViewer, { testId: EVENT_DETAILS_EXCEPTION_PAYLOAD_TEST_ID, value: exceptionPayload })
|
|
30760
30847
|
] })
|
|
30761
30848
|
] })
|
|
30762
30849
|
}
|
|
30763
30850
|
)
|
|
30764
30851
|
] }),
|
|
30765
|
-
isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */ (0,
|
|
30766
|
-
/* @__PURE__ */ (0,
|
|
30767
|
-
/* @__PURE__ */ (0,
|
|
30852
|
+
isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
|
|
30853
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Divider, {}),
|
|
30854
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ToggleSection, { headline: "Lambda Logs", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
30768
30855
|
LambdaInvokeLogsSection,
|
|
30769
30856
|
{
|
|
30770
30857
|
endTimeNano: selectedEvent.end_time_unix_nano ?? selectedEvent.start_time_unix_nano,
|
|
@@ -30775,21 +30862,21 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30775
30862
|
}
|
|
30776
30863
|
) })
|
|
30777
30864
|
] }),
|
|
30778
|
-
/* @__PURE__ */ (0,
|
|
30779
|
-
/* @__PURE__ */ (0,
|
|
30780
|
-
/* @__PURE__ */ (0,
|
|
30781
|
-
/* @__PURE__ */ (0,
|
|
30782
|
-
/* @__PURE__ */ (0,
|
|
30865
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Divider, {}),
|
|
30866
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ToggleSection, { headline: "Advanced Information", initialOpen: false, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Stack, { spacing: 1, children: [
|
|
30867
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30868
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Span ID" }),
|
|
30869
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_SPAN_ID_TEST_ID, variant: "body2", children: selectedEvent.span_id })
|
|
30783
30870
|
] }),
|
|
30784
|
-
/* @__PURE__ */ (0,
|
|
30785
|
-
/* @__PURE__ */ (0,
|
|
30786
|
-
/* @__PURE__ */ (0,
|
|
30871
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30872
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Trace ID" }),
|
|
30873
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_TRACE_ID_TEST_ID, variant: "body2", children: selectedEvent.trace_id })
|
|
30787
30874
|
] }),
|
|
30788
|
-
requestId !== void 0 && /* @__PURE__ */ (0,
|
|
30789
|
-
/* @__PURE__ */ (0,
|
|
30790
|
-
/* @__PURE__ */ (0,
|
|
30875
|
+
requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
|
|
30876
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Request ID" }),
|
|
30877
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_REQUEST_ID_TEST_ID, variant: "body2", children: requestId })
|
|
30791
30878
|
] }),
|
|
30792
|
-
eventGroups.info && /* @__PURE__ */ (0,
|
|
30879
|
+
eventGroups.info && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Info", events: eventGroups.info, type: "info" })
|
|
30793
30880
|
] }) })
|
|
30794
30881
|
] }) })
|
|
30795
30882
|
] });
|
|
@@ -30797,32 +30884,32 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
30797
30884
|
|
|
30798
30885
|
// src/components/trace-graph/trace-graph.tsx
|
|
30799
30886
|
var import_base = require("@xyflow/react/dist/base.css");
|
|
30800
|
-
var
|
|
30887
|
+
var import_material22 = require("@mui/material");
|
|
30801
30888
|
var import_react65 = require("@xyflow/react");
|
|
30802
30889
|
var import_react66 = require("react");
|
|
30803
30890
|
|
|
30804
30891
|
// src/components/trace-graph/service-node.tsx
|
|
30805
|
-
var
|
|
30892
|
+
var import_material20 = require("@mui/material");
|
|
30806
30893
|
var import_style = require("@xyflow/react/dist/style.css");
|
|
30807
30894
|
var import_react61 = require("@xyflow/react");
|
|
30808
30895
|
var import_react62 = require("react");
|
|
30809
30896
|
|
|
30810
30897
|
// src/components/trace-graph/problem-indicator.tsx
|
|
30811
|
-
var
|
|
30812
|
-
var
|
|
30898
|
+
var import_icons_material11 = require("@mui/icons-material");
|
|
30899
|
+
var import_material19 = require("@mui/material");
|
|
30813
30900
|
var import_react60 = require("react");
|
|
30814
|
-
var
|
|
30901
|
+
var import_jsx_runtime142 = require("react/jsx-runtime");
|
|
30815
30902
|
var ProblemIndicator = ({ error }) => {
|
|
30816
30903
|
const icon = (0, import_react60.useMemo)(() => {
|
|
30817
30904
|
switch (error.level) {
|
|
30818
30905
|
case "error": {
|
|
30819
|
-
return /* @__PURE__ */ (0,
|
|
30906
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material11.Error, { sx: { color: "#d32f2f", fontSize: "14px" } });
|
|
30820
30907
|
}
|
|
30821
30908
|
case "warning": {
|
|
30822
|
-
return /* @__PURE__ */ (0,
|
|
30909
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material11.Warning, { sx: { color: "#ff9800", fontSize: "14px" } });
|
|
30823
30910
|
}
|
|
30824
30911
|
default: {
|
|
30825
|
-
return /* @__PURE__ */ (0,
|
|
30912
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material11.Info, { sx: { color: "#2196f3", fontSize: "14px" } });
|
|
30826
30913
|
}
|
|
30827
30914
|
}
|
|
30828
30915
|
}, [error.level]);
|
|
@@ -30839,8 +30926,8 @@ var ProblemIndicator = ({ error }) => {
|
|
|
30839
30926
|
}
|
|
30840
30927
|
}
|
|
30841
30928
|
}, [error.level]);
|
|
30842
|
-
return /* @__PURE__ */ (0,
|
|
30843
|
-
|
|
30929
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_material19.Tooltip, { arrow: true, title: error.message ?? "Issue detected", children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
30930
|
+
import_material19.Box,
|
|
30844
30931
|
{
|
|
30845
30932
|
sx: {
|
|
30846
30933
|
alignItems: "center",
|
|
@@ -30859,17 +30946,17 @@ var ProblemIndicator = ({ error }) => {
|
|
|
30859
30946
|
};
|
|
30860
30947
|
|
|
30861
30948
|
// src/components/trace-graph/service-node.tsx
|
|
30862
|
-
var
|
|
30949
|
+
var import_jsx_runtime143 = require("react/jsx-runtime");
|
|
30863
30950
|
var handleStyle = {
|
|
30864
30951
|
backgroundColor: "white",
|
|
30865
30952
|
borderColor: "lightgray",
|
|
30866
30953
|
opacity: 0
|
|
30867
30954
|
};
|
|
30868
30955
|
var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
|
|
30869
|
-
const theme = (0,
|
|
30956
|
+
const theme = (0, import_material20.useTheme)();
|
|
30870
30957
|
const hasErrors = (data.event.errors && data.event.errors.length > 0) ?? false;
|
|
30871
|
-
return /* @__PURE__ */ (0,
|
|
30872
|
-
|
|
30958
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
|
|
30959
|
+
import_material20.Box,
|
|
30873
30960
|
{
|
|
30874
30961
|
"data-testid": SERVICE_NODE_TEST_ID,
|
|
30875
30962
|
role: "button",
|
|
@@ -30891,19 +30978,19 @@ var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
|
|
|
30891
30978
|
},
|
|
30892
30979
|
tabIndex: 0,
|
|
30893
30980
|
children: [
|
|
30894
|
-
/* @__PURE__ */ (0,
|
|
30895
|
-
/* @__PURE__ */ (0,
|
|
30896
|
-
/* @__PURE__ */ (0,
|
|
30897
|
-
|
|
30981
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_react61.Handle, { position: import_react61.Position.Left, style: handleStyle, type: "target" }),
|
|
30982
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_react61.Handle, { position: import_react61.Position.Right, style: handleStyle, type: "source" }),
|
|
30983
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
|
|
30984
|
+
import_material20.Stack,
|
|
30898
30985
|
{
|
|
30899
30986
|
alignItems: "center",
|
|
30900
30987
|
direction: "row",
|
|
30901
30988
|
sx: { gap: "8px", pb: "2px", pt: "6px", px: "8px" },
|
|
30902
30989
|
children: [
|
|
30903
|
-
/* @__PURE__ */ (0,
|
|
30904
|
-
/* @__PURE__ */ (0,
|
|
30905
|
-
/* @__PURE__ */ (0,
|
|
30906
|
-
|
|
30990
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_material20.Box, { sx: { borderRadius: "4px", flexShrink: 0, lineHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AwsServiceIcon, { hideTooltip: true, service: data.event.service_name, size: "medium" }) }),
|
|
30991
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_material20.Stack, { sx: { minWidth: 0 }, children: [
|
|
30992
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
30993
|
+
import_material20.Typography,
|
|
30907
30994
|
{
|
|
30908
30995
|
noWrap: true,
|
|
30909
30996
|
sx: { fontWeight: 700, lineHeight: 1.25 },
|
|
@@ -30911,8 +30998,8 @@ var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
|
|
|
30911
30998
|
children: getServiceDisplayName(data.event.service_name)
|
|
30912
30999
|
}
|
|
30913
31000
|
),
|
|
30914
|
-
data.event.resource_name != "" && /* @__PURE__ */ (0,
|
|
30915
|
-
|
|
31001
|
+
data.event.resource_name != "" && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
31002
|
+
import_material20.Typography,
|
|
30916
31003
|
{
|
|
30917
31004
|
color: "text.secondary",
|
|
30918
31005
|
noWrap: true,
|
|
@@ -30925,16 +31012,16 @@ var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
|
|
|
30925
31012
|
]
|
|
30926
31013
|
}
|
|
30927
31014
|
),
|
|
30928
|
-
/* @__PURE__ */ (0,
|
|
30929
|
-
/* @__PURE__ */ (0,
|
|
30930
|
-
|
|
31015
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_material20.Divider, { sx: { ml: "38px", mr: "8px", my: "5px" } }),
|
|
31016
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
|
|
31017
|
+
import_material20.Stack,
|
|
30931
31018
|
{
|
|
30932
31019
|
alignItems: "center",
|
|
30933
31020
|
direction: "row",
|
|
30934
31021
|
sx: { minWidth: 0, pb: "5px", pr: "8px", pt: "1px" },
|
|
30935
31022
|
children: [
|
|
30936
|
-
/* @__PURE__ */ (0,
|
|
30937
|
-
|
|
31023
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
31024
|
+
import_material20.Box,
|
|
30938
31025
|
{
|
|
30939
31026
|
sx: {
|
|
30940
31027
|
alignItems: "center",
|
|
@@ -30943,11 +31030,11 @@ var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
|
|
|
30943
31030
|
justifyContent: "center",
|
|
30944
31031
|
width: "38px"
|
|
30945
31032
|
},
|
|
30946
|
-
children: hasErrors && data.event.errors?.map((error) => /* @__PURE__ */ (0,
|
|
31033
|
+
children: hasErrors && data.event.errors?.map((error) => /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ProblemIndicator, { error }, error.span_id))
|
|
30947
31034
|
}
|
|
30948
31035
|
),
|
|
30949
|
-
/* @__PURE__ */ (0,
|
|
30950
|
-
|
|
31036
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
31037
|
+
import_material20.Typography,
|
|
30951
31038
|
{
|
|
30952
31039
|
"data-testid": SERVICE_NODE_OPERATION_NAME_TEST_ID,
|
|
30953
31040
|
noWrap: true,
|
|
@@ -31019,12 +31106,12 @@ var getLayoutedNodesAndEdges = (inputNodes, inputEdges) => {
|
|
|
31019
31106
|
};
|
|
31020
31107
|
|
|
31021
31108
|
// src/components/trace-graph/xyflow/controls.tsx
|
|
31022
|
-
var
|
|
31023
|
-
var
|
|
31109
|
+
var import_icons_material12 = require("@mui/icons-material");
|
|
31110
|
+
var import_material21 = require("@mui/material");
|
|
31024
31111
|
var import_react63 = require("@xyflow/react");
|
|
31025
31112
|
var import_react64 = require("react");
|
|
31026
31113
|
var import_shallow = require("zustand/shallow");
|
|
31027
|
-
var
|
|
31114
|
+
var import_jsx_runtime144 = require("react/jsx-runtime");
|
|
31028
31115
|
var selector = (s2) => ({
|
|
31029
31116
|
isInteractive: s2.nodesDraggable || s2.nodesConnectable || s2.elementsSelectable,
|
|
31030
31117
|
maxZoomReached: s2.transform[2] >= s2.maxZoom,
|
|
@@ -31042,8 +31129,8 @@ var Controls = (0, import_react64.memo)(() => {
|
|
|
31042
31129
|
const onFitViewHandler = () => {
|
|
31043
31130
|
void fitView();
|
|
31044
31131
|
};
|
|
31045
|
-
return /* @__PURE__ */ (0,
|
|
31046
|
-
|
|
31132
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
|
|
31133
|
+
import_material21.Box,
|
|
31047
31134
|
{
|
|
31048
31135
|
sx: {
|
|
31049
31136
|
bottom: 0,
|
|
@@ -31056,33 +31143,33 @@ var Controls = (0, import_react64.memo)(() => {
|
|
|
31056
31143
|
zIndex: 5
|
|
31057
31144
|
},
|
|
31058
31145
|
children: [
|
|
31059
|
-
/* @__PURE__ */ (0,
|
|
31060
|
-
|
|
31146
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
31147
|
+
import_material21.IconButton,
|
|
31061
31148
|
{
|
|
31062
31149
|
className: "react-flow__controls-zoomin",
|
|
31063
31150
|
disabled: maxZoomReached,
|
|
31064
31151
|
onClick: onZoomInHandler,
|
|
31065
31152
|
size: "small",
|
|
31066
|
-
children: /* @__PURE__ */ (0,
|
|
31153
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_icons_material12.Add, {})
|
|
31067
31154
|
}
|
|
31068
31155
|
),
|
|
31069
|
-
/* @__PURE__ */ (0,
|
|
31070
|
-
|
|
31156
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
31157
|
+
import_material21.IconButton,
|
|
31071
31158
|
{
|
|
31072
31159
|
className: "react-flow__controls-zoomout",
|
|
31073
31160
|
disabled: minZoomReached,
|
|
31074
31161
|
onClick: onZoomOutHandler,
|
|
31075
31162
|
size: "small",
|
|
31076
|
-
children: /* @__PURE__ */ (0,
|
|
31163
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_icons_material12.Remove, {})
|
|
31077
31164
|
}
|
|
31078
31165
|
),
|
|
31079
|
-
/* @__PURE__ */ (0,
|
|
31080
|
-
|
|
31166
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
31167
|
+
import_material21.IconButton,
|
|
31081
31168
|
{
|
|
31082
31169
|
className: "react-flow__controls-fitview",
|
|
31083
31170
|
onClick: onFitViewHandler,
|
|
31084
31171
|
size: "small",
|
|
31085
|
-
children: /* @__PURE__ */ (0,
|
|
31172
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_icons_material12.FitScreen, {})
|
|
31086
31173
|
}
|
|
31087
31174
|
)
|
|
31088
31175
|
]
|
|
@@ -31091,7 +31178,7 @@ var Controls = (0, import_react64.memo)(() => {
|
|
|
31091
31178
|
});
|
|
31092
31179
|
|
|
31093
31180
|
// src/components/trace-graph/trace-graph.tsx
|
|
31094
|
-
var
|
|
31181
|
+
var import_jsx_runtime145 = require("react/jsx-runtime");
|
|
31095
31182
|
var nodeTypes = {
|
|
31096
31183
|
service: ServiceNode
|
|
31097
31184
|
};
|
|
@@ -31153,12 +31240,12 @@ var TraceGraph = ({
|
|
|
31153
31240
|
setNodes(layoutedNodes);
|
|
31154
31241
|
setEdges(layoutedEdges);
|
|
31155
31242
|
}, [spans.data, initialFocusEventId, setNodes, setEdges]);
|
|
31156
|
-
const theme = (0,
|
|
31157
|
-
return /* @__PURE__ */ (0,
|
|
31158
|
-
spans.error && /* @__PURE__ */ (0,
|
|
31159
|
-
|
|
31243
|
+
const theme = (0, import_material22.useTheme)();
|
|
31244
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(import_jsx_runtime145.Fragment, { children: [
|
|
31245
|
+
spans.error && /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
|
|
31246
|
+
import_material22.Alert,
|
|
31160
31247
|
{
|
|
31161
|
-
action: /* @__PURE__ */ (0,
|
|
31248
|
+
action: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_material22.Button, { onClick: () => {
|
|
31162
31249
|
onRefresh();
|
|
31163
31250
|
}, children: "Retry" }),
|
|
31164
31251
|
severity: "error",
|
|
@@ -31169,7 +31256,7 @@ var TraceGraph = ({
|
|
|
31169
31256
|
]
|
|
31170
31257
|
}
|
|
31171
31258
|
),
|
|
31172
|
-
/* @__PURE__ */ (0,
|
|
31259
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
|
|
31173
31260
|
import_react65.ReactFlow,
|
|
31174
31261
|
{
|
|
31175
31262
|
"data-testid": TRACE_GRAPH_TEST_ID,
|
|
@@ -31187,8 +31274,8 @@ var TraceGraph = ({
|
|
|
31187
31274
|
onNodesChange,
|
|
31188
31275
|
selectNodesOnDrag: false,
|
|
31189
31276
|
children: [
|
|
31190
|
-
/* @__PURE__ */ (0,
|
|
31191
|
-
/* @__PURE__ */ (0,
|
|
31277
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Controls, {}),
|
|
31278
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
31192
31279
|
import_react65.Background,
|
|
31193
31280
|
{
|
|
31194
31281
|
bgColor: theme.palette.background.default,
|
|
@@ -31202,7 +31289,7 @@ var TraceGraph = ({
|
|
|
31202
31289
|
};
|
|
31203
31290
|
|
|
31204
31291
|
// src/pages/trace-graph-page.tsx
|
|
31205
|
-
var
|
|
31292
|
+
var import_jsx_runtime146 = require("react/jsx-runtime");
|
|
31206
31293
|
var HEADER_HEIGHT = 56;
|
|
31207
31294
|
var DRAWER_WIDTH = "35%";
|
|
31208
31295
|
var Main = (0, import_styles.styled)("main", { shouldForwardProp: (property) => property !== "open" })(({ open, theme }) => ({
|
|
@@ -31220,7 +31307,7 @@ var Main = (0, import_styles.styled)("main", { shouldForwardProp: (property) =>
|
|
|
31220
31307
|
})
|
|
31221
31308
|
}
|
|
31222
31309
|
}));
|
|
31223
|
-
var StyledDrawer = (0, import_styles.styled)(
|
|
31310
|
+
var StyledDrawer = (0, import_styles.styled)(import_material23.Drawer)(() => ({
|
|
31224
31311
|
"& .MuiDrawer-paper": {
|
|
31225
31312
|
bottom: 0,
|
|
31226
31313
|
boxSizing: "border-box",
|
|
@@ -31251,8 +31338,8 @@ var TraceGraphView = ({
|
|
|
31251
31338
|
traceId
|
|
31252
31339
|
}) => {
|
|
31253
31340
|
const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
|
|
31254
|
-
return /* @__PURE__ */ (0,
|
|
31255
|
-
|
|
31341
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(
|
|
31342
|
+
import_material23.Box,
|
|
31256
31343
|
{
|
|
31257
31344
|
"data-testid": TRACE_GRAPH_PAGE_TEST_ID,
|
|
31258
31345
|
sx: {
|
|
@@ -31264,14 +31351,14 @@ var TraceGraphView = ({
|
|
|
31264
31351
|
overflow: "hidden"
|
|
31265
31352
|
},
|
|
31266
31353
|
children: [
|
|
31267
|
-
/* @__PURE__ */ (0,
|
|
31268
|
-
/* @__PURE__ */ (0,
|
|
31354
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_material23.Box, { sx: { display: "flex", width: "100%" }, children: [
|
|
31355
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_material23.Button, { onClick: () => {
|
|
31269
31356
|
navigateToSpansList();
|
|
31270
|
-
}, startIcon: /* @__PURE__ */ (0,
|
|
31271
|
-
/* @__PURE__ */ (0,
|
|
31357
|
+
}, startIcon: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_icons_material13.ArrowBack, {}), children: "Go back" }),
|
|
31358
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_material23.Box, { sx: { flexGrow: 1 } })
|
|
31272
31359
|
] }),
|
|
31273
|
-
/* @__PURE__ */ (0,
|
|
31274
|
-
|
|
31360
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
31361
|
+
import_material23.Paper,
|
|
31275
31362
|
{
|
|
31276
31363
|
sx: {
|
|
31277
31364
|
display: "flex",
|
|
@@ -31280,7 +31367,7 @@ var TraceGraphView = ({
|
|
|
31280
31367
|
position: "relative",
|
|
31281
31368
|
width: "100%"
|
|
31282
31369
|
},
|
|
31283
|
-
children: shouldShowStatusMessage ? /* @__PURE__ */ (0,
|
|
31370
|
+
children: shouldShowStatusMessage ? /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
31284
31371
|
StatusMessage,
|
|
31285
31372
|
{
|
|
31286
31373
|
error: statusError,
|
|
@@ -31288,15 +31375,15 @@ var TraceGraphView = ({
|
|
|
31288
31375
|
onRetry: handleRetry,
|
|
31289
31376
|
status
|
|
31290
31377
|
}
|
|
31291
|
-
) : /* @__PURE__ */ (0,
|
|
31292
|
-
/* @__PURE__ */ (0,
|
|
31293
|
-
|
|
31378
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_jsx_runtime146.Fragment, { children: [
|
|
31379
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(Main, { open, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
31380
|
+
import_material23.Box,
|
|
31294
31381
|
{
|
|
31295
31382
|
sx: {
|
|
31296
31383
|
height: "100%",
|
|
31297
31384
|
overflow: "auto"
|
|
31298
31385
|
},
|
|
31299
|
-
children: traceId !== void 0 && /* @__PURE__ */ (0,
|
|
31386
|
+
children: traceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_react67.ReactFlowProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
31300
31387
|
TraceGraph,
|
|
31301
31388
|
{
|
|
31302
31389
|
initialFocusEventId: spanId,
|
|
@@ -31313,7 +31400,7 @@ var TraceGraphView = ({
|
|
|
31313
31400
|
) })
|
|
31314
31401
|
}
|
|
31315
31402
|
) }),
|
|
31316
|
-
/* @__PURE__ */ (0,
|
|
31403
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(StyledDrawer, { anchor: "right", open, variant: "persistent", children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(EventDetails, { onClose: handleClose, selectedEvent }) })
|
|
31317
31404
|
] })
|
|
31318
31405
|
}
|
|
31319
31406
|
)
|
|
@@ -31406,7 +31493,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
31406
31493
|
const navigateToSpansList = (0, import_react68.useCallback)(() => {
|
|
31407
31494
|
onClose?.();
|
|
31408
31495
|
}, [onClose]);
|
|
31409
|
-
return /* @__PURE__ */ (0,
|
|
31496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
31410
31497
|
TraceGraphView,
|
|
31411
31498
|
{
|
|
31412
31499
|
fetchError,
|
|
@@ -31431,7 +31518,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
31431
31518
|
};
|
|
31432
31519
|
|
|
31433
31520
|
// src/pages/spans-list-page.tsx
|
|
31434
|
-
var
|
|
31521
|
+
var import_jsx_runtime147 = require("react/jsx-runtime");
|
|
31435
31522
|
var SpansListPage = () => {
|
|
31436
31523
|
const api = useAppInspectorApi();
|
|
31437
31524
|
const {
|
|
@@ -31478,9 +31565,9 @@ var SpansListPage = () => {
|
|
|
31478
31565
|
void checkStatus();
|
|
31479
31566
|
}, [api, checkStatus, clearFetchError]);
|
|
31480
31567
|
const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
|
|
31481
|
-
return /* @__PURE__ */ (0,
|
|
31482
|
-
/* @__PURE__ */ (0,
|
|
31483
|
-
|
|
31568
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(import_jsx_runtime147.Fragment, { children: [
|
|
31569
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
31570
|
+
import_material24.Box,
|
|
31484
31571
|
{
|
|
31485
31572
|
"data-testid": SPANS_LIST_PAGE_TEST_ID,
|
|
31486
31573
|
sx: {
|
|
@@ -31495,7 +31582,7 @@ var SpansListPage = () => {
|
|
|
31495
31582
|
width: "100%"
|
|
31496
31583
|
},
|
|
31497
31584
|
children: [
|
|
31498
|
-
!checking && !shouldShowStatusMessage && /* @__PURE__ */ (0,
|
|
31585
|
+
!checking && !shouldShowStatusMessage && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
31499
31586
|
EmulatorVersionBanner,
|
|
31500
31587
|
{
|
|
31501
31588
|
compatibility: bannerDismissed && versionCompatibility === "warning" ? "ok" : versionCompatibility,
|
|
@@ -31505,7 +31592,7 @@ var SpansListPage = () => {
|
|
|
31505
31592
|
} : void 0
|
|
31506
31593
|
}
|
|
31507
31594
|
),
|
|
31508
|
-
shouldShowStatusMessage ? /* @__PURE__ */ (0,
|
|
31595
|
+
shouldShowStatusMessage ? /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
31509
31596
|
StatusMessage,
|
|
31510
31597
|
{
|
|
31511
31598
|
error: statusError,
|
|
@@ -31514,7 +31601,7 @@ var SpansListPage = () => {
|
|
|
31514
31601
|
onRetry: handleRetry,
|
|
31515
31602
|
status
|
|
31516
31603
|
}
|
|
31517
|
-
) : /* @__PURE__ */ (0,
|
|
31604
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
31518
31605
|
SpansList,
|
|
31519
31606
|
{
|
|
31520
31607
|
clearingSpans,
|
|
@@ -31542,7 +31629,7 @@ var SpansListPage = () => {
|
|
|
31542
31629
|
]
|
|
31543
31630
|
}
|
|
31544
31631
|
),
|
|
31545
|
-
selectedTraceId !== void 0 && /* @__PURE__ */ (0,
|
|
31632
|
+
selectedTraceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(TraceGraphPage, { onClose: () => {
|
|
31546
31633
|
setSelectedTraceId(void 0);
|
|
31547
31634
|
}, spanId: selectedSpanId, traceId: selectedTraceId })
|
|
31548
31635
|
] });
|