@localstack/appinspector-ui 1.0.80 → 1.0.81
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 +856 -701
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +679 -524
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -483,17 +483,17 @@ var init_event_streams = __esm({
|
|
|
483
483
|
});
|
|
484
484
|
|
|
485
485
|
// src/pages/spans-list-page.tsx
|
|
486
|
-
import { Box as
|
|
487
|
-
import { useCallback as useCallback10, useState as
|
|
486
|
+
import { Box as Box19 } from "@mui/material";
|
|
487
|
+
import { useCallback as useCallback10, useState as useState17 } from "react";
|
|
488
488
|
|
|
489
489
|
// src/components/spans-list/spans-list.tsx
|
|
490
|
-
import { Alert, Box as
|
|
490
|
+
import { Alert, Box as Box5, Button as Button3 } from "@mui/material";
|
|
491
491
|
|
|
492
492
|
// src/components/spans-list/spans-data-grid.tsx
|
|
493
493
|
import { DeleteForeverOutlined, PauseOutlined, PlayArrowOutlined } from "@mui/icons-material";
|
|
494
494
|
import {
|
|
495
|
-
Box as
|
|
496
|
-
Button,
|
|
495
|
+
Box as Box4,
|
|
496
|
+
Button as Button2,
|
|
497
497
|
CircularProgress,
|
|
498
498
|
FormControlLabel,
|
|
499
499
|
Grid,
|
|
@@ -505,8 +505,8 @@ import {
|
|
|
505
505
|
TableHead,
|
|
506
506
|
TableRow,
|
|
507
507
|
TableSortLabel,
|
|
508
|
-
Tooltip as
|
|
509
|
-
Typography as
|
|
508
|
+
Tooltip as Tooltip3,
|
|
509
|
+
Typography as Typography3,
|
|
510
510
|
useTheme as useTheme2
|
|
511
511
|
} from "@mui/material";
|
|
512
512
|
|
|
@@ -12661,8 +12661,140 @@ var ServiceCell = memo7(({
|
|
|
12661
12661
|
});
|
|
12662
12662
|
ServiceCell.displayName = "ServiceCell";
|
|
12663
12663
|
|
|
12664
|
-
// src/components/spans-list/
|
|
12664
|
+
// src/components/spans-list/span-count-badge.tsx
|
|
12665
|
+
import { InfoOutlined, WarningAmberOutlined } from "@mui/icons-material";
|
|
12666
|
+
import { Box as Box3, Button, Divider as Divider2, IconButton, Popover, Skeleton, Tooltip as Tooltip2, Typography as Typography2 } from "@mui/material";
|
|
12667
|
+
import { useState as useState4 } from "react";
|
|
12665
12668
|
import { Fragment as Fragment3, jsx as jsx124, jsxs as jsxs120 } from "react/jsx-runtime";
|
|
12669
|
+
var resolveBindingLimit = (systemLimit, licenseLimit) => {
|
|
12670
|
+
const numericLimits = [systemLimit, licenseLimit].filter((l2) => typeof l2 === "number");
|
|
12671
|
+
if (numericLimits.length > 0) return Math.min(...numericLimits);
|
|
12672
|
+
if (systemLimit === "unlimited" || licenseLimit === "unlimited") return "unlimited";
|
|
12673
|
+
return void 0;
|
|
12674
|
+
};
|
|
12675
|
+
var fmt = (n2) => n2.toLocaleString();
|
|
12676
|
+
var fmtLimit = (value) => {
|
|
12677
|
+
if (value === void 0) return "\u2014";
|
|
12678
|
+
if (value === "unlimited") return "Unlimited";
|
|
12679
|
+
return fmt(value);
|
|
12680
|
+
};
|
|
12681
|
+
var StatRow = ({ label, value }) => /* @__PURE__ */ jsxs120(Box3, { sx: { alignItems: "baseline", display: "flex", justifyContent: "space-between", minWidth: 220 }, children: [
|
|
12682
|
+
/* @__PURE__ */ jsx124(Typography2, { color: "text.secondary", sx: { mr: 4 }, variant: "caption", children: label }),
|
|
12683
|
+
/* @__PURE__ */ jsx124(Typography2, { fontWeight: 600, variant: "body2", children: fmtLimit(value) })
|
|
12684
|
+
] });
|
|
12685
|
+
var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) => {
|
|
12686
|
+
const [anchorElement, setAnchorElement] = useState4();
|
|
12687
|
+
const bindingLimit = resolveBindingLimit(systemLimit, licenseLimit);
|
|
12688
|
+
if (totalCount === void 0 && bindingLimit === void 0) {
|
|
12689
|
+
return /* @__PURE__ */ jsx124(Fragment3, {});
|
|
12690
|
+
}
|
|
12691
|
+
if (visibleCount !== void 0) totalCount = Math.max(totalCount ?? 0, visibleCount);
|
|
12692
|
+
const isLoading = totalCount === void 0;
|
|
12693
|
+
const isOpen = anchorElement !== void 0;
|
|
12694
|
+
const systemLimitReached = typeof systemLimit === "number" && totalCount !== void 0 && totalCount >= systemLimit;
|
|
12695
|
+
const licenseLimitReached = typeof licenseLimit === "number" && totalCount !== void 0 && totalCount >= licenseLimit;
|
|
12696
|
+
return /* @__PURE__ */ jsxs120(Box3, { sx: { alignItems: "center", display: "flex", gap: 0.25 }, children: [
|
|
12697
|
+
isLoading ? /* @__PURE__ */ jsx124(Skeleton, { sx: { minWidth: 120 } }) : /* @__PURE__ */ jsxs120(Box3, { sx: { alignItems: "baseline", display: "flex", gap: 0.5 }, children: [
|
|
12698
|
+
/* @__PURE__ */ jsx124(Typography2, { color: "text.secondary", variant: "caption", children: "Showing" }),
|
|
12699
|
+
/* @__PURE__ */ jsx124(Typography2, { variant: "body2", children: visibleCount === void 0 ? "\u2014" : fmt(visibleCount) }),
|
|
12700
|
+
/* @__PURE__ */ jsx124(Typography2, { color: "text.secondary", variant: "caption", children: `of ${totalCount === void 0 ? "-" : fmt(totalCount)} operations` })
|
|
12701
|
+
] }),
|
|
12702
|
+
/* @__PURE__ */ jsx124(Tooltip2, { title: "Operation count details", children: /* @__PURE__ */ jsx124(
|
|
12703
|
+
IconButton,
|
|
12704
|
+
{
|
|
12705
|
+
"aria-describedby": isOpen ? "operation-count-popover" : void 0,
|
|
12706
|
+
onClick: (event) => {
|
|
12707
|
+
setAnchorElement(isOpen ? void 0 : event.currentTarget);
|
|
12708
|
+
},
|
|
12709
|
+
size: "small",
|
|
12710
|
+
sx: { color: systemLimitReached || licenseLimitReached ? "warning.main" : "text.disabled" },
|
|
12711
|
+
children: systemLimitReached || licenseLimitReached ? /* @__PURE__ */ jsx124(WarningAmberOutlined, { sx: { fontSize: 14 } }) : /* @__PURE__ */ jsx124(InfoOutlined, { sx: { fontSize: 14 } })
|
|
12712
|
+
}
|
|
12713
|
+
) }),
|
|
12714
|
+
/* @__PURE__ */ jsx124(
|
|
12715
|
+
Popover,
|
|
12716
|
+
{
|
|
12717
|
+
anchorEl: anchorElement,
|
|
12718
|
+
anchorOrigin: { horizontal: "right", vertical: "bottom" },
|
|
12719
|
+
id: "operation-count-popover",
|
|
12720
|
+
onClose: () => {
|
|
12721
|
+
setAnchorElement(void 0);
|
|
12722
|
+
},
|
|
12723
|
+
open: isOpen,
|
|
12724
|
+
transformOrigin: { horizontal: "right", vertical: "top" },
|
|
12725
|
+
children: /* @__PURE__ */ jsxs120(Box3, { sx: { minWidth: 240, p: 2 }, children: [
|
|
12726
|
+
/* @__PURE__ */ jsx124(Typography2, { fontWeight: 700, variant: "body2", children: "Storage" }),
|
|
12727
|
+
/* @__PURE__ */ jsx124(Typography2, { color: "text.secondary", sx: { mt: 0.25 }, variant: "caption", children: "How many operations are currently stored." }),
|
|
12728
|
+
/* @__PURE__ */ jsxs120(Box3, { sx: { display: "flex", flexDirection: "column", gap: 0.75, mt: 1.5 }, children: [
|
|
12729
|
+
/* @__PURE__ */ jsx124(
|
|
12730
|
+
StatRow,
|
|
12731
|
+
{
|
|
12732
|
+
label: /* @__PURE__ */ jsx124(Tooltip2, { placement: "left", title: "The number of operations currently loaded in the UI.", children: /* @__PURE__ */ jsx124(Box3, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Currently visible" }) }),
|
|
12733
|
+
value: visibleCount
|
|
12734
|
+
}
|
|
12735
|
+
),
|
|
12736
|
+
/* @__PURE__ */ jsx124(
|
|
12737
|
+
StatRow,
|
|
12738
|
+
{
|
|
12739
|
+
label: /* @__PURE__ */ jsx124(Tooltip2, { placement: "left", title: "The total number of operations stored on the server.", children: /* @__PURE__ */ jsx124(Box3, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Total stored" }) }),
|
|
12740
|
+
value: totalCount
|
|
12741
|
+
}
|
|
12742
|
+
)
|
|
12743
|
+
] }),
|
|
12744
|
+
(systemLimit !== void 0 || licenseLimit !== void 0) && /* @__PURE__ */ jsxs120(Fragment3, { children: [
|
|
12745
|
+
/* @__PURE__ */ jsx124(Divider2, { sx: { my: 1.5 } }),
|
|
12746
|
+
/* @__PURE__ */ jsx124(Typography2, { color: "text.secondary", fontWeight: 600, variant: "caption", children: "Limits" }),
|
|
12747
|
+
/* @__PURE__ */ jsx124(Typography2, { 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." }),
|
|
12748
|
+
/* @__PURE__ */ jsxs120(Box3, { sx: { display: "flex", flexDirection: "column", gap: 0.75 }, children: [
|
|
12749
|
+
licenseLimit !== void 0 && /* @__PURE__ */ jsx124(
|
|
12750
|
+
StatRow,
|
|
12751
|
+
{
|
|
12752
|
+
label: /* @__PURE__ */ jsx124(Tooltip2, { placement: "left", title: "The maximum number of operations allowed by your current license.", children: /* @__PURE__ */ jsx124(Box3, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "License limit" }) }),
|
|
12753
|
+
value: licenseLimit
|
|
12754
|
+
}
|
|
12755
|
+
),
|
|
12756
|
+
systemLimit !== void 0 && /* @__PURE__ */ jsx124(
|
|
12757
|
+
StatRow,
|
|
12758
|
+
{
|
|
12759
|
+
label: /* @__PURE__ */ jsx124(Tooltip2, { placement: "left", title: "The maximum number of operations that can be stored in the system.", children: /* @__PURE__ */ jsx124(Box3, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "System limit" }) }),
|
|
12760
|
+
value: systemLimit
|
|
12761
|
+
}
|
|
12762
|
+
)
|
|
12763
|
+
] })
|
|
12764
|
+
] }),
|
|
12765
|
+
(systemLimitReached || licenseLimitReached) && /* @__PURE__ */ jsxs120(Box3, { sx: { display: "flex", flexDirection: "column", gap: 1, mt: 1.5 }, children: [
|
|
12766
|
+
licenseLimitReached && /* @__PURE__ */ jsxs120(Box3, { sx: { backgroundColor: "warning.main", borderRadius: 1, p: 1.5 }, children: [
|
|
12767
|
+
/* @__PURE__ */ jsxs120(Box3, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75, mb: 0.75 }, children: [
|
|
12768
|
+
/* @__PURE__ */ jsx124(WarningAmberOutlined, { sx: { color: "warning.contrastText", fontSize: 14, mt: "1px" } }),
|
|
12769
|
+
/* @__PURE__ */ jsx124(Typography2, { color: "warning.contrastText", fontWeight: 600, variant: "caption", children: "License limit reached" })
|
|
12770
|
+
] }),
|
|
12771
|
+
/* @__PURE__ */ jsx124(Typography2, { color: "warning.contrastText", sx: { display: "block", mb: 1 }, variant: "caption", children: "Newer operations are being dropped. Upgrade your license to increase the retention limit." }),
|
|
12772
|
+
/* @__PURE__ */ jsx124(
|
|
12773
|
+
Button,
|
|
12774
|
+
{
|
|
12775
|
+
color: "inherit",
|
|
12776
|
+
href: "https://localstack.cloud/pricing",
|
|
12777
|
+
size: "small",
|
|
12778
|
+
sx: { color: "warning.contrastText", fontWeight: 600, p: 0, textDecoration: "underline" },
|
|
12779
|
+
target: "_blank",
|
|
12780
|
+
variant: "text",
|
|
12781
|
+
children: "Upgrade license \u2192"
|
|
12782
|
+
}
|
|
12783
|
+
)
|
|
12784
|
+
] }),
|
|
12785
|
+
systemLimitReached && !licenseLimitReached && /* @__PURE__ */ jsxs120(Box3, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75 }, children: [
|
|
12786
|
+
/* @__PURE__ */ jsx124(WarningAmberOutlined, { color: "warning", sx: { fontSize: 14, mt: "1px" } }),
|
|
12787
|
+
/* @__PURE__ */ jsx124(Typography2, { color: "warning.main", variant: "caption", children: "System limit reached \u2014 newer operations are being dropped." })
|
|
12788
|
+
] })
|
|
12789
|
+
] })
|
|
12790
|
+
] })
|
|
12791
|
+
}
|
|
12792
|
+
)
|
|
12793
|
+
] });
|
|
12794
|
+
};
|
|
12795
|
+
|
|
12796
|
+
// src/components/spans-list/spans-data-grid.tsx
|
|
12797
|
+
import { Fragment as Fragment4, jsx as jsx125, jsxs as jsxs121 } from "react/jsx-runtime";
|
|
12666
12798
|
var columnHelper = createColumnHelper();
|
|
12667
12799
|
var newSpanBackgroundColor = {
|
|
12668
12800
|
dark: { from: "rgba(136, 123, 2, 1)", to: "rgba(136, 123, 2, 0)" },
|
|
@@ -12673,15 +12805,15 @@ var LABEL_END_OF_STREAM = "This is the end of the stream";
|
|
|
12673
12805
|
var LABEL_NO_SPANS = "There are no spans";
|
|
12674
12806
|
var LABEL_LOAD_OLDER = "Load older spans";
|
|
12675
12807
|
var LABEL_LOAD_NEWER = "Load newer spans";
|
|
12676
|
-
var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */
|
|
12677
|
-
var LoadSpansRow = ({ colSpan, fetching, label, onFetch }) => /* @__PURE__ */
|
|
12678
|
-
!fetching && /* @__PURE__ */
|
|
12679
|
-
fetching && /* @__PURE__ */
|
|
12808
|
+
var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */ jsx125(TableRow, { children: /* @__PURE__ */ jsx125(TableCell, { colSpan, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ jsx125("span", { children: label }) }) });
|
|
12809
|
+
var LoadSpansRow = ({ colSpan, fetching, label, onFetch }) => /* @__PURE__ */ jsx125(TableRow, { children: /* @__PURE__ */ jsxs121(TableCell, { colSpan, sx: { textAlign: "center" }, children: [
|
|
12810
|
+
!fetching && /* @__PURE__ */ jsx125(Button2, { onClick: onFetch, sx: { my: 1 }, children: label }),
|
|
12811
|
+
fetching && /* @__PURE__ */ jsx125(CircularProgress, { size: 24, sx: { m: 2 } })
|
|
12680
12812
|
] }) });
|
|
12681
12813
|
var SpansDataGridRow = memo8(
|
|
12682
12814
|
({ row }) => {
|
|
12683
12815
|
const theme = useTheme2();
|
|
12684
|
-
return /* @__PURE__ */
|
|
12816
|
+
return /* @__PURE__ */ jsx125(
|
|
12685
12817
|
TableRow,
|
|
12686
12818
|
{
|
|
12687
12819
|
animate: {
|
|
@@ -12695,7 +12827,7 @@ var SpansDataGridRow = memo8(
|
|
|
12695
12827
|
transition: "background-color 1200ms ease-in"
|
|
12696
12828
|
},
|
|
12697
12829
|
children: row.getVisibleCells().map((cell) => {
|
|
12698
|
-
return /* @__PURE__ */
|
|
12830
|
+
return /* @__PURE__ */ jsx125(
|
|
12699
12831
|
TableCell,
|
|
12700
12832
|
{
|
|
12701
12833
|
sx: {
|
|
@@ -12703,8 +12835,8 @@ var SpansDataGridRow = memo8(
|
|
|
12703
12835
|
maxWidth: `${cell.column.getSize().toString()}px`,
|
|
12704
12836
|
minWidth: `${cell.column.getSize().toString()}px`
|
|
12705
12837
|
},
|
|
12706
|
-
children: /* @__PURE__ */
|
|
12707
|
-
|
|
12838
|
+
children: /* @__PURE__ */ jsx125(
|
|
12839
|
+
Box4,
|
|
12708
12840
|
{
|
|
12709
12841
|
sx: {
|
|
12710
12842
|
"alignItems": "center",
|
|
@@ -12716,7 +12848,7 @@ var SpansDataGridRow = memo8(
|
|
|
12716
12848
|
},
|
|
12717
12849
|
"width": "100%"
|
|
12718
12850
|
},
|
|
12719
|
-
children: /* @__PURE__ */
|
|
12851
|
+
children: /* @__PURE__ */ jsx125(Box4, { sx: { px: 1, width: "100%" }, children: flexRender(cell.column.columnDef.cell, cell.getContext()) })
|
|
12720
12852
|
}
|
|
12721
12853
|
)
|
|
12722
12854
|
},
|
|
@@ -12736,6 +12868,7 @@ var SpansDataGrid = ({
|
|
|
12736
12868
|
fetchingForward,
|
|
12737
12869
|
hasMoreBackward,
|
|
12738
12870
|
hasMoreForward,
|
|
12871
|
+
licenseLimit,
|
|
12739
12872
|
onClearSpans,
|
|
12740
12873
|
onFetchBackward,
|
|
12741
12874
|
onFetchForward,
|
|
@@ -12744,18 +12877,20 @@ var SpansDataGrid = ({
|
|
|
12744
12877
|
onToggleStream,
|
|
12745
12878
|
order: order2,
|
|
12746
12879
|
spans,
|
|
12747
|
-
streamPaused
|
|
12880
|
+
streamPaused,
|
|
12881
|
+
systemLimit,
|
|
12882
|
+
totalCount
|
|
12748
12883
|
}) => {
|
|
12749
12884
|
const columns = useMemo5(() => [
|
|
12750
12885
|
columnHelper.accessor("trace_id", {
|
|
12751
|
-
cell: (props) => /* @__PURE__ */
|
|
12752
|
-
|
|
12886
|
+
cell: (props) => /* @__PURE__ */ jsx125(
|
|
12887
|
+
Box4,
|
|
12753
12888
|
{
|
|
12754
12889
|
sx: {
|
|
12755
12890
|
overflow: "hidden",
|
|
12756
12891
|
textOverflow: "ellipsis"
|
|
12757
12892
|
},
|
|
12758
|
-
children: /* @__PURE__ */
|
|
12893
|
+
children: /* @__PURE__ */ jsx125(Tooltip3, { arrow: true, title: props.getValue(), children: /* @__PURE__ */ jsx125("span", { children: props.getValue() }) })
|
|
12759
12894
|
}
|
|
12760
12895
|
),
|
|
12761
12896
|
header: "Trace",
|
|
@@ -12763,8 +12898,8 @@ var SpansDataGrid = ({
|
|
|
12763
12898
|
maxSize: 120
|
|
12764
12899
|
}),
|
|
12765
12900
|
columnHelper.accessor("startTime", {
|
|
12766
|
-
cell: (props) => /* @__PURE__ */
|
|
12767
|
-
header: () => /* @__PURE__ */
|
|
12901
|
+
cell: (props) => /* @__PURE__ */ jsx125(ResponsiveTimestampCell, { date: props.getValue() }),
|
|
12902
|
+
header: () => /* @__PURE__ */ jsx125(
|
|
12768
12903
|
TableSortLabel,
|
|
12769
12904
|
{
|
|
12770
12905
|
active: true,
|
|
@@ -12781,23 +12916,23 @@ var SpansDataGrid = ({
|
|
|
12781
12916
|
columnHelper.display({
|
|
12782
12917
|
cell: (props) => {
|
|
12783
12918
|
if (!props.row.original.parent_service_name || !props.row.original.parent_resource_name) {
|
|
12784
|
-
return /* @__PURE__ */
|
|
12919
|
+
return /* @__PURE__ */ jsx125(Typography3, { sx: { fontStyle: "italic" }, variant: "body2", children: "External producer" });
|
|
12785
12920
|
}
|
|
12786
|
-
return /* @__PURE__ */
|
|
12921
|
+
return /* @__PURE__ */ jsx125(ServiceCell, { resource: props.row.original.parent_resource_name, service: props.row.original.parent_service_name });
|
|
12787
12922
|
},
|
|
12788
12923
|
header: "Producer",
|
|
12789
12924
|
id: "producer",
|
|
12790
12925
|
size: 180
|
|
12791
12926
|
}),
|
|
12792
12927
|
columnHelper.accessor("operation_name", {
|
|
12793
|
-
cell: (props) => /* @__PURE__ */
|
|
12794
|
-
|
|
12928
|
+
cell: (props) => /* @__PURE__ */ jsx125(
|
|
12929
|
+
Box4,
|
|
12795
12930
|
{
|
|
12796
12931
|
sx: {
|
|
12797
12932
|
overflow: "hidden",
|
|
12798
12933
|
textOverflow: "ellipsis"
|
|
12799
12934
|
},
|
|
12800
|
-
children: /* @__PURE__ */
|
|
12935
|
+
children: /* @__PURE__ */ jsx125("span", { title: props.getValue(), children: props.getValue() })
|
|
12801
12936
|
}
|
|
12802
12937
|
),
|
|
12803
12938
|
header: "Action",
|
|
@@ -12806,7 +12941,7 @@ var SpansDataGrid = ({
|
|
|
12806
12941
|
}),
|
|
12807
12942
|
columnHelper.display({
|
|
12808
12943
|
cell: (props) => {
|
|
12809
|
-
return /* @__PURE__ */
|
|
12944
|
+
return /* @__PURE__ */ jsx125(ServiceCell, { resource: props.row.original.resource_name, service: props.row.original.service_name });
|
|
12810
12945
|
},
|
|
12811
12946
|
header: "Consumer",
|
|
12812
12947
|
id: "consumer",
|
|
@@ -12814,8 +12949,8 @@ var SpansDataGrid = ({
|
|
|
12814
12949
|
}),
|
|
12815
12950
|
columnHelper.display({
|
|
12816
12951
|
cell: (props) => {
|
|
12817
|
-
return /* @__PURE__ */
|
|
12818
|
-
|
|
12952
|
+
return /* @__PURE__ */ jsx125(Box4, { sx: { display: "flex", justifyContent: "flex-end" }, children: /* @__PURE__ */ jsx125(
|
|
12953
|
+
Button2,
|
|
12819
12954
|
{
|
|
12820
12955
|
onClick: () => {
|
|
12821
12956
|
onSpanClick(props.row.original);
|
|
@@ -12840,17 +12975,18 @@ var SpansDataGrid = ({
|
|
|
12840
12975
|
const columnCount = table.getAllColumns().length;
|
|
12841
12976
|
const rows = table.getRowModel().rows;
|
|
12842
12977
|
const hasRows = rows.length > 0;
|
|
12843
|
-
return /* @__PURE__ */
|
|
12844
|
-
/* @__PURE__ */
|
|
12845
|
-
/* @__PURE__ */
|
|
12846
|
-
/* @__PURE__ */
|
|
12978
|
+
return /* @__PURE__ */ jsxs121(Fragment4, { children: [
|
|
12979
|
+
/* @__PURE__ */ jsx125(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxs121(Box4, { sx: { alignItems: "center", display: "flex", gap: "0.5rem" }, children: [
|
|
12980
|
+
/* @__PURE__ */ jsx125(SpanCountBadge, { licenseLimit, systemLimit, totalCount, visibleCount: spans?.length }),
|
|
12981
|
+
/* @__PURE__ */ jsx125(Box4, { sx: { flexGrow: 1 } }),
|
|
12982
|
+
/* @__PURE__ */ jsx125(
|
|
12847
12983
|
FormControlLabel,
|
|
12848
12984
|
{
|
|
12849
|
-
control: /* @__PURE__ */
|
|
12850
|
-
|
|
12985
|
+
control: /* @__PURE__ */ jsx125(
|
|
12986
|
+
Button2,
|
|
12851
12987
|
{
|
|
12852
12988
|
onClick: onToggleStream,
|
|
12853
|
-
startIcon: streamPaused ? /* @__PURE__ */
|
|
12989
|
+
startIcon: streamPaused ? /* @__PURE__ */ jsx125(PlayArrowOutlined, {}) : /* @__PURE__ */ jsx125(PauseOutlined, {}),
|
|
12854
12990
|
variant: "text",
|
|
12855
12991
|
children: streamPaused ? "Resume Stream" : "Pause Stream"
|
|
12856
12992
|
}
|
|
@@ -12858,14 +12994,14 @@ var SpansDataGrid = ({
|
|
|
12858
12994
|
label: ""
|
|
12859
12995
|
}
|
|
12860
12996
|
),
|
|
12861
|
-
/* @__PURE__ */
|
|
12997
|
+
/* @__PURE__ */ jsx125(
|
|
12862
12998
|
FormControlLabel,
|
|
12863
12999
|
{
|
|
12864
|
-
control: /* @__PURE__ */
|
|
12865
|
-
|
|
13000
|
+
control: /* @__PURE__ */ jsx125(
|
|
13001
|
+
Button2,
|
|
12866
13002
|
{
|
|
12867
13003
|
onClick: onClearSpans,
|
|
12868
|
-
startIcon: /* @__PURE__ */
|
|
13004
|
+
startIcon: /* @__PURE__ */ jsx125(DeleteForeverOutlined, {}),
|
|
12869
13005
|
children: "Clear Spans"
|
|
12870
13006
|
}
|
|
12871
13007
|
),
|
|
@@ -12874,7 +13010,7 @@ var SpansDataGrid = ({
|
|
|
12874
13010
|
}
|
|
12875
13011
|
)
|
|
12876
13012
|
] }) }),
|
|
12877
|
-
/* @__PURE__ */
|
|
13013
|
+
/* @__PURE__ */ jsx125(Paper, { sx: { flexGrow: 1, overflow: "hidden", position: "relative", width: "100%" }, children: /* @__PURE__ */ jsx125(
|
|
12878
13014
|
TableContainer,
|
|
12879
13015
|
{
|
|
12880
13016
|
sx: {
|
|
@@ -12885,7 +13021,7 @@ var SpansDataGrid = ({
|
|
|
12885
13021
|
right: 0,
|
|
12886
13022
|
top: 0
|
|
12887
13023
|
},
|
|
12888
|
-
children: /* @__PURE__ */
|
|
13024
|
+
children: /* @__PURE__ */ jsxs121(
|
|
12889
13025
|
Table,
|
|
12890
13026
|
{
|
|
12891
13027
|
stickyHeader: true,
|
|
@@ -12897,8 +13033,8 @@ var SpansDataGrid = ({
|
|
|
12897
13033
|
"th+th": { pl: "8px !important" }
|
|
12898
13034
|
},
|
|
12899
13035
|
children: [
|
|
12900
|
-
/* @__PURE__ */
|
|
12901
|
-
return /* @__PURE__ */
|
|
13036
|
+
/* @__PURE__ */ jsx125(TableHead, { children: table.getHeaderGroups().map((headerGroup) => {
|
|
13037
|
+
return /* @__PURE__ */ jsx125(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx125(
|
|
12902
13038
|
TableCell,
|
|
12903
13039
|
{
|
|
12904
13040
|
colSpan: header.colSpan,
|
|
@@ -12913,31 +13049,31 @@ var SpansDataGrid = ({
|
|
|
12913
13049
|
header.id
|
|
12914
13050
|
)) }, headerGroup.id);
|
|
12915
13051
|
}) }),
|
|
12916
|
-
/* @__PURE__ */
|
|
12917
|
-
(spans === void 0 || clearingSpans) && /* @__PURE__ */
|
|
12918
|
-
!clearingSpans && spans?.length === 0 && /* @__PURE__ */
|
|
12919
|
-
!clearingSpans && order2 === "newest_first" && /* @__PURE__ */
|
|
12920
|
-
hasRows && hasMoreForward && /* @__PURE__ */
|
|
12921
|
-
hasRows && !hasMoreForward && /* @__PURE__ */
|
|
12922
|
-
hasRows && /* @__PURE__ */
|
|
13052
|
+
/* @__PURE__ */ jsxs121(TableBody, { children: [
|
|
13053
|
+
(spans === void 0 || clearingSpans) && /* @__PURE__ */ jsx125(TableRow, { children: /* @__PURE__ */ jsx125(TableCell, { colSpan: columnCount, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ jsx125(CircularProgress, { size: 48, sx: { m: 4 } }) }) }),
|
|
13054
|
+
!clearingSpans && spans?.length === 0 && /* @__PURE__ */ jsx125(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_NO_SPANS }),
|
|
13055
|
+
!clearingSpans && order2 === "newest_first" && /* @__PURE__ */ jsxs121(Fragment4, { children: [
|
|
13056
|
+
hasRows && hasMoreForward && /* @__PURE__ */ jsx125(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
|
|
13057
|
+
hasRows && !hasMoreForward && /* @__PURE__ */ jsx125(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM }),
|
|
13058
|
+
hasRows && /* @__PURE__ */ jsx125(AnimatePresence, { initial: false, children: (() => {
|
|
12923
13059
|
const reversed = [];
|
|
12924
13060
|
for (let index = rows.length - 1; index >= 0; index--) {
|
|
12925
13061
|
const row = rows.at(index);
|
|
12926
13062
|
reversed.push(
|
|
12927
|
-
/* @__PURE__ */
|
|
13063
|
+
/* @__PURE__ */ jsx125(SpansDataGridRow, { row }, row.original.span_id)
|
|
12928
13064
|
);
|
|
12929
13065
|
}
|
|
12930
13066
|
return reversed;
|
|
12931
13067
|
})() }),
|
|
12932
|
-
hasRows && hasMoreBackward && /* @__PURE__ */
|
|
12933
|
-
hasRows && !hasMoreBackward && /* @__PURE__ */
|
|
13068
|
+
hasRows && hasMoreBackward && /* @__PURE__ */ jsx125(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
|
|
13069
|
+
hasRows && !hasMoreBackward && /* @__PURE__ */ jsx125(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM })
|
|
12934
13070
|
] }),
|
|
12935
|
-
!clearingSpans && order2 === "oldest_first" && /* @__PURE__ */
|
|
12936
|
-
hasRows && !hasMoreBackward && /* @__PURE__ */
|
|
12937
|
-
hasRows && hasMoreBackward && /* @__PURE__ */
|
|
12938
|
-
hasRows && /* @__PURE__ */
|
|
12939
|
-
hasRows && hasMoreForward && /* @__PURE__ */
|
|
12940
|
-
hasRows && !hasMoreForward && /* @__PURE__ */
|
|
13071
|
+
!clearingSpans && order2 === "oldest_first" && /* @__PURE__ */ jsxs121(Fragment4, { children: [
|
|
13072
|
+
hasRows && !hasMoreBackward && /* @__PURE__ */ jsx125(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM }),
|
|
13073
|
+
hasRows && hasMoreBackward && /* @__PURE__ */ jsx125(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
|
|
13074
|
+
hasRows && /* @__PURE__ */ jsx125(AnimatePresence, { initial: false, children: rows.map((row) => /* @__PURE__ */ jsx125(SpansDataGridRow, { row }, row.original.span_id)) }),
|
|
13075
|
+
hasRows && hasMoreForward && /* @__PURE__ */ jsx125(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
|
|
13076
|
+
hasRows && !hasMoreForward && /* @__PURE__ */ jsx125(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM })
|
|
12941
13077
|
] })
|
|
12942
13078
|
] })
|
|
12943
13079
|
]
|
|
@@ -12949,13 +13085,13 @@ var SpansDataGrid = ({
|
|
|
12949
13085
|
};
|
|
12950
13086
|
|
|
12951
13087
|
// src/components/spans-list/spans-list.tsx
|
|
12952
|
-
import { jsx as
|
|
13088
|
+
import { jsx as jsx126, jsxs as jsxs122 } from "react/jsx-runtime";
|
|
12953
13089
|
var SpansList = (props) => {
|
|
12954
|
-
return /* @__PURE__ */
|
|
12955
|
-
props.fetchError && /* @__PURE__ */
|
|
13090
|
+
return /* @__PURE__ */ jsxs122(Box5, { "data-testid": "spans-data-grid", sx: { display: "flex", flexDirection: "column", flexGrow: 1, gap: 2, width: "100%" }, children: [
|
|
13091
|
+
props.fetchError && /* @__PURE__ */ jsxs122(
|
|
12956
13092
|
Alert,
|
|
12957
13093
|
{
|
|
12958
|
-
action: /* @__PURE__ */
|
|
13094
|
+
action: /* @__PURE__ */ jsx126(Button3, { onClick: props.onFetchForward, children: "Retry" }),
|
|
12959
13095
|
severity: "error",
|
|
12960
13096
|
children: [
|
|
12961
13097
|
"Unexpected error:",
|
|
@@ -12964,7 +13100,7 @@ var SpansList = (props) => {
|
|
|
12964
13100
|
]
|
|
12965
13101
|
}
|
|
12966
13102
|
),
|
|
12967
|
-
/* @__PURE__ */
|
|
13103
|
+
/* @__PURE__ */ jsx126(
|
|
12968
13104
|
SpansDataGrid,
|
|
12969
13105
|
{
|
|
12970
13106
|
clearingSpans: props.clearingSpans,
|
|
@@ -12972,6 +13108,7 @@ var SpansList = (props) => {
|
|
|
12972
13108
|
fetchingForward: props.fetchingForward,
|
|
12973
13109
|
hasMoreBackward: props.hasMoreBackward,
|
|
12974
13110
|
hasMoreForward: props.hasMoreForward,
|
|
13111
|
+
licenseLimit: props.licenseLimit,
|
|
12975
13112
|
onClearSpans: props.onClearSpans,
|
|
12976
13113
|
onFetchBackward: props.onFetchBackward,
|
|
12977
13114
|
onFetchForward: props.onFetchForward,
|
|
@@ -12980,15 +13117,17 @@ var SpansList = (props) => {
|
|
|
12980
13117
|
onToggleStream: props.onToggleStream,
|
|
12981
13118
|
order: props.order,
|
|
12982
13119
|
spans: props.spans,
|
|
12983
|
-
streamPaused: props.streamPaused
|
|
13120
|
+
streamPaused: props.streamPaused,
|
|
13121
|
+
systemLimit: props.systemLimit,
|
|
13122
|
+
totalCount: props.totalCount
|
|
12984
13123
|
}
|
|
12985
13124
|
)
|
|
12986
13125
|
] });
|
|
12987
13126
|
};
|
|
12988
13127
|
|
|
12989
13128
|
// src/components/status-message/status-message.tsx
|
|
12990
|
-
import { ErrorOutline, InfoOutlined } from "@mui/icons-material";
|
|
12991
|
-
import { Alert as Alert2, AlertTitle, Box as
|
|
13129
|
+
import { ErrorOutline, InfoOutlined as InfoOutlined2 } from "@mui/icons-material";
|
|
13130
|
+
import { Alert as Alert2, AlertTitle, Box as Box6, Button as Button4, Link, Typography as Typography4 } from "@mui/material";
|
|
12992
13131
|
|
|
12993
13132
|
// src/api/errors.ts
|
|
12994
13133
|
var AppInspectorNotFoundError = class extends Error {
|
|
@@ -13031,15 +13170,15 @@ var getAppInspectorApiUrl = (localstackEndpoint, endpoint) => {
|
|
|
13031
13170
|
};
|
|
13032
13171
|
|
|
13033
13172
|
// src/components/status-message/status-message.tsx
|
|
13034
|
-
import { Fragment as
|
|
13173
|
+
import { Fragment as Fragment5, jsx as jsx127, jsxs as jsxs123 } from "react/jsx-runtime";
|
|
13035
13174
|
var StatusMessage = ({
|
|
13036
13175
|
error,
|
|
13037
13176
|
onRetry,
|
|
13038
13177
|
status
|
|
13039
13178
|
}) => {
|
|
13040
13179
|
if (error instanceof AppInspectorNotFoundError) {
|
|
13041
|
-
return /* @__PURE__ */
|
|
13042
|
-
|
|
13180
|
+
return /* @__PURE__ */ jsx127(
|
|
13181
|
+
Box6,
|
|
13043
13182
|
{
|
|
13044
13183
|
sx: {
|
|
13045
13184
|
alignItems: "center",
|
|
@@ -13049,19 +13188,19 @@ var StatusMessage = ({
|
|
|
13049
13188
|
justifyContent: "center",
|
|
13050
13189
|
p: 4
|
|
13051
13190
|
},
|
|
13052
|
-
children: /* @__PURE__ */
|
|
13191
|
+
children: /* @__PURE__ */ jsxs123(
|
|
13053
13192
|
Alert2,
|
|
13054
13193
|
{
|
|
13055
|
-
icon: /* @__PURE__ */
|
|
13194
|
+
icon: /* @__PURE__ */ jsx127(ErrorOutline, { fontSize: "large" }),
|
|
13056
13195
|
severity: "error",
|
|
13057
13196
|
sx: { maxWidth: 600, width: "100%" },
|
|
13058
13197
|
children: [
|
|
13059
|
-
/* @__PURE__ */
|
|
13060
|
-
/* @__PURE__ */
|
|
13061
|
-
/* @__PURE__ */
|
|
13062
|
-
/* @__PURE__ */
|
|
13063
|
-
/* @__PURE__ */
|
|
13064
|
-
|
|
13198
|
+
/* @__PURE__ */ jsx127(AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Not Available" }),
|
|
13199
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 2 }, variant: "body2", children: "The App Inspector extension is not licensed or not enabled in LocalStack." }),
|
|
13200
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ jsx127("strong", { children: "To enable App Inspector:" }) }),
|
|
13201
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 1 }, variant: "body2", children: "Set the environment variable and restart LocalStack:" }),
|
|
13202
|
+
/* @__PURE__ */ jsx127(
|
|
13203
|
+
Box6,
|
|
13065
13204
|
{
|
|
13066
13205
|
component: "pre",
|
|
13067
13206
|
sx: {
|
|
@@ -13073,24 +13212,24 @@ var StatusMessage = ({
|
|
|
13073
13212
|
children: "LOCALSTACK_APPINSPECTOR_ENABLE=1"
|
|
13074
13213
|
}
|
|
13075
13214
|
),
|
|
13076
|
-
/* @__PURE__ */
|
|
13215
|
+
/* @__PURE__ */ jsxs123(Typography4, { sx: { fontStyle: "italic", mb: 1, mt: 2 }, variant: "body2", children: [
|
|
13077
13216
|
"Runtime changes can be made via endpoint",
|
|
13078
13217
|
" ",
|
|
13079
|
-
/* @__PURE__ */
|
|
13218
|
+
/* @__PURE__ */ jsxs123("code", { children: [
|
|
13080
13219
|
APPINSPECTOR_API_PREFIX,
|
|
13081
13220
|
"/status"
|
|
13082
13221
|
] }),
|
|
13083
13222
|
". For persistent default state across restarts, adjust the",
|
|
13084
13223
|
" ",
|
|
13085
|
-
/* @__PURE__ */
|
|
13224
|
+
/* @__PURE__ */ jsx127("code", { children: "LOCALSTACK_APPINSPECTOR_ENABLE" }),
|
|
13086
13225
|
" ",
|
|
13087
13226
|
"environment variable in your",
|
|
13088
13227
|
" ",
|
|
13089
|
-
/* @__PURE__ */
|
|
13228
|
+
/* @__PURE__ */ jsx127("code", { children: "~/.localstack" }),
|
|
13090
13229
|
" ",
|
|
13091
13230
|
"profile files.",
|
|
13092
13231
|
" ",
|
|
13093
|
-
/* @__PURE__ */
|
|
13232
|
+
/* @__PURE__ */ jsx127(
|
|
13094
13233
|
Link,
|
|
13095
13234
|
{
|
|
13096
13235
|
href: "https://docs.localstack.cloud/aws/capabilities/config/configuration/#profiles",
|
|
@@ -13100,8 +13239,8 @@ var StatusMessage = ({
|
|
|
13100
13239
|
}
|
|
13101
13240
|
)
|
|
13102
13241
|
] }),
|
|
13103
|
-
/* @__PURE__ */
|
|
13104
|
-
/* @__PURE__ */
|
|
13242
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 1, mt: 2 }, variant: "body2", children: /* @__PURE__ */ jsx127("strong", { children: "For more information:" }) }),
|
|
13243
|
+
/* @__PURE__ */ jsx127(
|
|
13105
13244
|
Link,
|
|
13106
13245
|
{
|
|
13107
13246
|
href: "https://docs.localstack.cloud/user-guide/tools/application-inspector/",
|
|
@@ -13110,8 +13249,8 @@ var StatusMessage = ({
|
|
|
13110
13249
|
children: "App Inspector Documentation"
|
|
13111
13250
|
}
|
|
13112
13251
|
),
|
|
13113
|
-
onRetry && /* @__PURE__ */
|
|
13114
|
-
|
|
13252
|
+
onRetry && /* @__PURE__ */ jsx127(Box6, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ jsx127(
|
|
13253
|
+
Button4,
|
|
13115
13254
|
{
|
|
13116
13255
|
"aria-label": "Check App Inspector status again",
|
|
13117
13256
|
onClick: onRetry,
|
|
@@ -13126,8 +13265,8 @@ var StatusMessage = ({
|
|
|
13126
13265
|
);
|
|
13127
13266
|
}
|
|
13128
13267
|
if (error instanceof ConnectionError) {
|
|
13129
|
-
return /* @__PURE__ */
|
|
13130
|
-
|
|
13268
|
+
return /* @__PURE__ */ jsx127(
|
|
13269
|
+
Box6,
|
|
13131
13270
|
{
|
|
13132
13271
|
sx: {
|
|
13133
13272
|
alignItems: "center",
|
|
@@ -13137,18 +13276,18 @@ var StatusMessage = ({
|
|
|
13137
13276
|
justifyContent: "center",
|
|
13138
13277
|
p: 4
|
|
13139
13278
|
},
|
|
13140
|
-
children: /* @__PURE__ */
|
|
13279
|
+
children: /* @__PURE__ */ jsxs123(
|
|
13141
13280
|
Alert2,
|
|
13142
13281
|
{
|
|
13143
|
-
icon: /* @__PURE__ */
|
|
13282
|
+
icon: /* @__PURE__ */ jsx127(ErrorOutline, { fontSize: "large" }),
|
|
13144
13283
|
severity: "error",
|
|
13145
13284
|
sx: { maxWidth: 600, width: "100%" },
|
|
13146
13285
|
children: [
|
|
13147
|
-
/* @__PURE__ */
|
|
13148
|
-
/* @__PURE__ */
|
|
13149
|
-
/* @__PURE__ */
|
|
13150
|
-
/* @__PURE__ */
|
|
13151
|
-
|
|
13286
|
+
/* @__PURE__ */ jsx127(AlertTitle, { sx: { fontWeight: "bold" }, children: "Connection Error" }),
|
|
13287
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 2 }, variant: "body2", children: "Failed to connect to LocalStack. Please ensure LocalStack is running and accessible." }),
|
|
13288
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ jsx127("strong", { children: "To start LocalStack:" }) }),
|
|
13289
|
+
/* @__PURE__ */ jsx127(
|
|
13290
|
+
Box6,
|
|
13152
13291
|
{
|
|
13153
13292
|
component: "pre",
|
|
13154
13293
|
sx: {
|
|
@@ -13160,8 +13299,8 @@ var StatusMessage = ({
|
|
|
13160
13299
|
children: "localstack start"
|
|
13161
13300
|
}
|
|
13162
13301
|
),
|
|
13163
|
-
onRetry && /* @__PURE__ */
|
|
13164
|
-
|
|
13302
|
+
onRetry && /* @__PURE__ */ jsx127(Box6, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ jsx127(
|
|
13303
|
+
Button4,
|
|
13165
13304
|
{
|
|
13166
13305
|
"aria-label": "Retry connection to LocalStack",
|
|
13167
13306
|
onClick: onRetry,
|
|
@@ -13176,8 +13315,8 @@ var StatusMessage = ({
|
|
|
13176
13315
|
);
|
|
13177
13316
|
}
|
|
13178
13317
|
if (status?.status === "DISABLED") {
|
|
13179
|
-
return /* @__PURE__ */
|
|
13180
|
-
|
|
13318
|
+
return /* @__PURE__ */ jsx127(
|
|
13319
|
+
Box6,
|
|
13181
13320
|
{
|
|
13182
13321
|
sx: {
|
|
13183
13322
|
alignItems: "center",
|
|
@@ -13187,18 +13326,18 @@ var StatusMessage = ({
|
|
|
13187
13326
|
justifyContent: "center",
|
|
13188
13327
|
p: 4
|
|
13189
13328
|
},
|
|
13190
|
-
children: /* @__PURE__ */
|
|
13329
|
+
children: /* @__PURE__ */ jsxs123(
|
|
13191
13330
|
Alert2,
|
|
13192
13331
|
{
|
|
13193
|
-
icon: /* @__PURE__ */
|
|
13332
|
+
icon: /* @__PURE__ */ jsx127(InfoOutlined2, { fontSize: "large" }),
|
|
13194
13333
|
severity: "warning",
|
|
13195
13334
|
sx: { maxWidth: 600, width: "100%" },
|
|
13196
13335
|
children: [
|
|
13197
|
-
/* @__PURE__ */
|
|
13198
|
-
/* @__PURE__ */
|
|
13199
|
-
/* @__PURE__ */
|
|
13200
|
-
/* @__PURE__ */
|
|
13201
|
-
|
|
13336
|
+
/* @__PURE__ */ jsx127(AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector is Disabled" }),
|
|
13337
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 2 }, variant: "body2", children: "App Inspector is currently disabled. Please enable it to view traces and spans." }),
|
|
13338
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ jsx127("strong", { children: "To enable App Inspector at runtime:" }) }),
|
|
13339
|
+
/* @__PURE__ */ jsx127(
|
|
13340
|
+
Box6,
|
|
13202
13341
|
{
|
|
13203
13342
|
component: "pre",
|
|
13204
13343
|
sx: {
|
|
@@ -13213,10 +13352,10 @@ var StatusMessage = ({
|
|
|
13213
13352
|
-d '{"status": "ENABLED"}'`
|
|
13214
13353
|
}
|
|
13215
13354
|
),
|
|
13216
|
-
/* @__PURE__ */
|
|
13217
|
-
/* @__PURE__ */
|
|
13218
|
-
/* @__PURE__ */
|
|
13219
|
-
|
|
13355
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 1, mt: 2 }, variant: "body2", children: /* @__PURE__ */ jsx127("strong", { children: "To enable App Inspector persistently across restarts:" }) }),
|
|
13356
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 1 }, variant: "body2", children: "Set the environment variable:" }),
|
|
13357
|
+
/* @__PURE__ */ jsx127(
|
|
13358
|
+
Box6,
|
|
13220
13359
|
{
|
|
13221
13360
|
component: "pre",
|
|
13222
13361
|
sx: {
|
|
@@ -13228,9 +13367,9 @@ var StatusMessage = ({
|
|
|
13228
13367
|
children: "APPINSPECTOR=1"
|
|
13229
13368
|
}
|
|
13230
13369
|
),
|
|
13231
|
-
Boolean(status.note) && /* @__PURE__ */
|
|
13232
|
-
onRetry && /* @__PURE__ */
|
|
13233
|
-
|
|
13370
|
+
Boolean(status.note) && /* @__PURE__ */ jsx127(Typography4, { sx: { display: "block", fontStyle: "italic", mt: 2 }, variant: "caption", children: status.note }),
|
|
13371
|
+
onRetry && /* @__PURE__ */ jsx127(Box6, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ jsx127(
|
|
13372
|
+
Button4,
|
|
13234
13373
|
{
|
|
13235
13374
|
"aria-label": "Check if App Inspector is enabled",
|
|
13236
13375
|
onClick: onRetry,
|
|
@@ -13245,8 +13384,8 @@ var StatusMessage = ({
|
|
|
13245
13384
|
);
|
|
13246
13385
|
}
|
|
13247
13386
|
if (error) {
|
|
13248
|
-
return /* @__PURE__ */
|
|
13249
|
-
|
|
13387
|
+
return /* @__PURE__ */ jsx127(
|
|
13388
|
+
Box6,
|
|
13250
13389
|
{
|
|
13251
13390
|
sx: {
|
|
13252
13391
|
alignItems: "center",
|
|
@@ -13256,17 +13395,17 @@ var StatusMessage = ({
|
|
|
13256
13395
|
justifyContent: "center",
|
|
13257
13396
|
p: 4
|
|
13258
13397
|
},
|
|
13259
|
-
children: /* @__PURE__ */
|
|
13398
|
+
children: /* @__PURE__ */ jsxs123(
|
|
13260
13399
|
Alert2,
|
|
13261
13400
|
{
|
|
13262
|
-
icon: /* @__PURE__ */
|
|
13401
|
+
icon: /* @__PURE__ */ jsx127(ErrorOutline, { fontSize: "large" }),
|
|
13263
13402
|
severity: "error",
|
|
13264
13403
|
sx: { maxWidth: 600, width: "100%" },
|
|
13265
13404
|
children: [
|
|
13266
|
-
/* @__PURE__ */
|
|
13267
|
-
/* @__PURE__ */
|
|
13268
|
-
onRetry && /* @__PURE__ */
|
|
13269
|
-
|
|
13405
|
+
/* @__PURE__ */ jsx127(AlertTitle, { sx: { fontWeight: "bold" }, children: "Error" }),
|
|
13406
|
+
/* @__PURE__ */ jsx127(Typography4, { sx: { mb: 2 }, variant: "body2", children: error.message }),
|
|
13407
|
+
onRetry && /* @__PURE__ */ jsx127(Box6, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ jsx127(
|
|
13408
|
+
Button4,
|
|
13270
13409
|
{
|
|
13271
13410
|
"aria-label": "Retry operation",
|
|
13272
13411
|
onClick: onRetry,
|
|
@@ -13280,13 +13419,13 @@ var StatusMessage = ({
|
|
|
13280
13419
|
}
|
|
13281
13420
|
);
|
|
13282
13421
|
}
|
|
13283
|
-
return /* @__PURE__ */
|
|
13422
|
+
return /* @__PURE__ */ jsx127(Fragment5, {});
|
|
13284
13423
|
};
|
|
13285
13424
|
|
|
13286
13425
|
// src/hooks/use-local-storage.tsx
|
|
13287
|
-
import { useCallback as useCallback3, useEffect as useEffect11, useState as
|
|
13426
|
+
import { useCallback as useCallback3, useEffect as useEffect11, useState as useState5 } from "react";
|
|
13288
13427
|
function useLocalStorage(key, initialValue) {
|
|
13289
|
-
const [storedValue, setStoredValue] =
|
|
13428
|
+
const [storedValue, setStoredValue] = useState5(() => {
|
|
13290
13429
|
try {
|
|
13291
13430
|
const item = globalThis.localStorage.getItem(key);
|
|
13292
13431
|
return item ? JSON.parse(item) : initialValue;
|
|
@@ -13329,14 +13468,14 @@ function useLocalStorage(key, initialValue) {
|
|
|
13329
13468
|
}
|
|
13330
13469
|
|
|
13331
13470
|
// src/hooks/use-spans.ts
|
|
13332
|
-
import { useCallback as useCallback7, useEffect as useEffect15, useRef as useRef11, useState as
|
|
13471
|
+
import { useCallback as useCallback7, useEffect as useEffect15, useRef as useRef11, useState as useState9 } from "react";
|
|
13333
13472
|
|
|
13334
13473
|
// src/api/use-api.tsx
|
|
13335
13474
|
import { createContext as createContext7, useContext as useContext14 } from "react";
|
|
13336
|
-
import { jsx as
|
|
13475
|
+
import { jsx as jsx128 } from "react/jsx-runtime";
|
|
13337
13476
|
var AppInspectorApiContext = createContext7(void 0);
|
|
13338
13477
|
var ApiProvider = (props) => {
|
|
13339
|
-
return /* @__PURE__ */
|
|
13478
|
+
return /* @__PURE__ */ jsx128(AppInspectorApiContext.Provider, { value: props.api, children: props.children });
|
|
13340
13479
|
};
|
|
13341
13480
|
var useAppInspectorApi = () => {
|
|
13342
13481
|
const api = useContext14(AppInspectorApiContext);
|
|
@@ -13347,12 +13486,12 @@ var useAppInspectorApi = () => {
|
|
|
13347
13486
|
};
|
|
13348
13487
|
|
|
13349
13488
|
// src/hooks/use-status.tsx
|
|
13350
|
-
import { useCallback as useCallback4, useEffect as useEffect12, useRef as useRef8, useState as
|
|
13489
|
+
import { useCallback as useCallback4, useEffect as useEffect12, useRef as useRef8, useState as useState6 } from "react";
|
|
13351
13490
|
var useStatus = () => {
|
|
13352
13491
|
const api = useAppInspectorApi();
|
|
13353
|
-
const [checking, setChecking] =
|
|
13354
|
-
const [status, setStatus] =
|
|
13355
|
-
const [error, setError] =
|
|
13492
|
+
const [checking, setChecking] = useState6(true);
|
|
13493
|
+
const [status, setStatus] = useState6();
|
|
13494
|
+
const [error, setError] = useState6();
|
|
13356
13495
|
const hasFetchedReference = useRef8(false);
|
|
13357
13496
|
const abortControllerReference = useRef8(null);
|
|
13358
13497
|
const checkStatus = useCallback4(async () => {
|
|
@@ -13567,7 +13706,7 @@ var createPaginationBuffer = (options) => {
|
|
|
13567
13706
|
};
|
|
13568
13707
|
|
|
13569
13708
|
// src/hooks/use-spans-ws.tsx
|
|
13570
|
-
import { useCallback as useCallback6, useEffect as useEffect13, useRef as useRef9, useState as
|
|
13709
|
+
import { useCallback as useCallback6, useEffect as useEffect13, useRef as useRef9, useState as useState7 } from "react";
|
|
13571
13710
|
|
|
13572
13711
|
// src/context.tsx
|
|
13573
13712
|
import { createContext as createContext8, useContext as useContext15 } from "react";
|
|
@@ -13763,7 +13902,7 @@ var createApiClient = ({ localstackEndpoint }) => {
|
|
|
13763
13902
|
};
|
|
13764
13903
|
|
|
13765
13904
|
// src/context.tsx
|
|
13766
|
-
import { jsx as
|
|
13905
|
+
import { jsx as jsx129 } from "react/jsx-runtime";
|
|
13767
13906
|
var AppInspectorContext = createContext8(void 0);
|
|
13768
13907
|
var useAppInspector = () => {
|
|
13769
13908
|
const context = useContext15(AppInspectorContext);
|
|
@@ -13797,7 +13936,7 @@ var AppInspectorContextProvider = (props) => {
|
|
|
13797
13936
|
}),
|
|
13798
13937
|
[props.linkComponent, props.localstackEndpoint, resolveLink]
|
|
13799
13938
|
);
|
|
13800
|
-
return /* @__PURE__ */
|
|
13939
|
+
return /* @__PURE__ */ jsx129(ApiProvider, { api, children: /* @__PURE__ */ jsx129(AppInspectorContext.Provider, { value: contextValue, children: props.children }) });
|
|
13801
13940
|
};
|
|
13802
13941
|
|
|
13803
13942
|
// src/hooks/use-spans-ws.tsx
|
|
@@ -13807,7 +13946,7 @@ function useSpansWebSocket(options) {
|
|
|
13807
13946
|
useEffect13(() => {
|
|
13808
13947
|
onMessageRef.current = onMessage;
|
|
13809
13948
|
}, [onMessage]);
|
|
13810
|
-
const [connected, setConnected] =
|
|
13949
|
+
const [connected, setConnected] = useState7(false);
|
|
13811
13950
|
const wsRef = useRef9(void 0);
|
|
13812
13951
|
const reconnectRef = useRef9(void 0);
|
|
13813
13952
|
const { localstackEndpoint } = useAppInspector();
|
|
@@ -13854,11 +13993,11 @@ function useSpansWebSocket(options) {
|
|
|
13854
13993
|
}
|
|
13855
13994
|
|
|
13856
13995
|
// src/hooks/use-throttled-items.ts
|
|
13857
|
-
import { useEffect as useEffect14, useRef as useRef10, useState as
|
|
13996
|
+
import { useEffect as useEffect14, useRef as useRef10, useState as useState8 } from "react";
|
|
13858
13997
|
function useThrottledItems(items, getId, catchUpIncrement = 10) {
|
|
13859
|
-
const [displayedItems, setDisplayedItems] =
|
|
13860
|
-
const [isCatchingUpForward, setIsCatchingUpForward] =
|
|
13861
|
-
const [isCatchingUpBackward, setIsCatchingUpBackward] =
|
|
13998
|
+
const [displayedItems, setDisplayedItems] = useState8([]);
|
|
13999
|
+
const [isCatchingUpForward, setIsCatchingUpForward] = useState8(false);
|
|
14000
|
+
const [isCatchingUpBackward, setIsCatchingUpBackward] = useState8(false);
|
|
13862
14001
|
const targetRef = useRef10([]);
|
|
13863
14002
|
const rafRef = useRef10(void 0);
|
|
13864
14003
|
const leftHiddenRef = useRef10(0);
|
|
@@ -13950,17 +14089,20 @@ function useThrottledItems(items, getId, catchUpIncrement = 10) {
|
|
|
13950
14089
|
var PAGE_SIZE = 30;
|
|
13951
14090
|
var useSpans = () => {
|
|
13952
14091
|
const api = useAppInspectorApi();
|
|
13953
|
-
const [spans, setSpans] =
|
|
14092
|
+
const [spans, setSpans] = useState9();
|
|
13954
14093
|
const throttledSpans = useThrottledItems(spans, (span) => span.span_id);
|
|
13955
|
-
const [fetchError, setFetchError] =
|
|
13956
|
-
const [fetchingForward, setFetchingForward] =
|
|
13957
|
-
const [fetchingBackward, setFetchingBackward] =
|
|
14094
|
+
const [fetchError, setFetchError] = useState9();
|
|
14095
|
+
const [fetchingForward, setFetchingForward] = useState9(false);
|
|
14096
|
+
const [fetchingBackward, setFetchingBackward] = useState9(false);
|
|
13958
14097
|
const paginationBufferRef = useRef11(createPaginationBuffer({
|
|
13959
14098
|
async fetchPage(token) {
|
|
13960
14099
|
const response = await api.getSpans({
|
|
13961
14100
|
limit: PAGE_SIZE,
|
|
13962
14101
|
pagination_token: token
|
|
13963
14102
|
});
|
|
14103
|
+
setTotalCount(response.pagination.total_count);
|
|
14104
|
+
setLicenseLimit(response.limits.span_count_limit_license);
|
|
14105
|
+
setSystemLimit(response.limits.span_count_limit_system);
|
|
13964
14106
|
return {
|
|
13965
14107
|
hasMoreBackward: response.pagination.has_prev,
|
|
13966
14108
|
hasMoreForward: response.pagination.has_next,
|
|
@@ -13989,8 +14131,11 @@ var useSpans = () => {
|
|
|
13989
14131
|
return a3.start_time_unix_nano < b3.start_time_unix_nano ? -1 : 1;
|
|
13990
14132
|
}
|
|
13991
14133
|
}));
|
|
13992
|
-
const [
|
|
13993
|
-
const [
|
|
14134
|
+
const [totalCount, setTotalCount] = useState9();
|
|
14135
|
+
const [licenseLimit, setLicenseLimit] = useState9();
|
|
14136
|
+
const [systemLimit, setSystemLimit] = useState9();
|
|
14137
|
+
const [hasMoreBackward, setHasMoreBackward] = useState9();
|
|
14138
|
+
const [hasMoreForward, setHasMoreForward] = useState9();
|
|
13994
14139
|
const fetchForward = useCallback7(() => {
|
|
13995
14140
|
void paginationBufferRef.current.fetchForward();
|
|
13996
14141
|
}, []);
|
|
@@ -14001,7 +14146,7 @@ var useSpans = () => {
|
|
|
14001
14146
|
fetchForward();
|
|
14002
14147
|
}, [fetchForward]);
|
|
14003
14148
|
const { checkStatus, error: statusError, status } = useStatus();
|
|
14004
|
-
const [clearingSpans, setClearingSpans] =
|
|
14149
|
+
const [clearingSpans, setClearingSpans] = useState9(false);
|
|
14005
14150
|
const clearSpans = useCallback7(async () => {
|
|
14006
14151
|
if (clearingSpans) {
|
|
14007
14152
|
return;
|
|
@@ -14009,6 +14154,7 @@ var useSpans = () => {
|
|
|
14009
14154
|
setClearingSpans(true);
|
|
14010
14155
|
try {
|
|
14011
14156
|
await api.deleteSpans();
|
|
14157
|
+
setTotalCount(void 0);
|
|
14012
14158
|
paginationBufferRef.current.clear();
|
|
14013
14159
|
await paginationBufferRef.current.fetchForward();
|
|
14014
14160
|
} catch (error) {
|
|
@@ -14018,7 +14164,7 @@ var useSpans = () => {
|
|
|
14018
14164
|
setClearingSpans(false);
|
|
14019
14165
|
}
|
|
14020
14166
|
}, [clearingSpans, api]);
|
|
14021
|
-
const [streamPaused, setStreamPaused] =
|
|
14167
|
+
const [streamPaused, setStreamPaused] = useState9(false);
|
|
14022
14168
|
const toggleStream = useCallback7(() => {
|
|
14023
14169
|
setStreamPaused((previous) => !previous);
|
|
14024
14170
|
}, []);
|
|
@@ -14052,30 +14198,33 @@ var useSpans = () => {
|
|
|
14052
14198
|
fetchingForward,
|
|
14053
14199
|
hasMoreBackward,
|
|
14054
14200
|
hasMoreForward,
|
|
14201
|
+
licenseLimit,
|
|
14055
14202
|
spans: throttledSpans.items,
|
|
14056
14203
|
status,
|
|
14057
14204
|
statusError,
|
|
14058
14205
|
streamPaused,
|
|
14059
|
-
|
|
14206
|
+
systemLimit,
|
|
14207
|
+
toggleStream,
|
|
14208
|
+
totalCount
|
|
14060
14209
|
};
|
|
14061
14210
|
};
|
|
14062
14211
|
|
|
14063
14212
|
// src/pages/trace-graph-page.tsx
|
|
14064
14213
|
import { ArrowBack } from "@mui/icons-material";
|
|
14065
|
-
import { Box as
|
|
14214
|
+
import { Box as Box18, Button as Button6, Drawer, Paper as Paper3 } from "@mui/material";
|
|
14066
14215
|
import { styled } from "@mui/material/styles";
|
|
14067
14216
|
import { ReactFlowProvider } from "@xyflow/react";
|
|
14068
|
-
import { useCallback as useCallback9, useEffect as useEffect20, useRef as useRef15, useState as
|
|
14217
|
+
import { useCallback as useCallback9, useEffect as useEffect20, useRef as useRef15, useState as useState16 } from "react";
|
|
14069
14218
|
|
|
14070
14219
|
// src/components/event-details/event-details.tsx
|
|
14071
14220
|
import { Close as Close2 } from "@mui/icons-material";
|
|
14072
|
-
import { Box as
|
|
14221
|
+
import { Box as Box14, Chip as Chip3, Divider as Divider3, FormControlLabel as FormControlLabel2, IconButton as IconButton4, Stack as Stack2, Switch, Typography as Typography10, useTheme as useTheme3 } from "@mui/material";
|
|
14073
14222
|
|
|
14074
14223
|
// node_modules/@textea/json-viewer/dist/index.mjs
|
|
14075
14224
|
var import_copy_to_clipboard = __toESM(require_copy_to_clipboard(), 1);
|
|
14076
|
-
import { jsx as
|
|
14077
|
-
import { Box as
|
|
14078
|
-
import { createContext as createContext9, useContext as useContext16, useState as
|
|
14225
|
+
import { jsx as jsx130, jsxs as jsxs124, Fragment as Fragment6 } from "react/jsx-runtime";
|
|
14226
|
+
import { Box as Box7, InputBase, NoSsr, SvgIcon, createTheme, ThemeProvider, Paper as Paper2 } from "@mui/material";
|
|
14227
|
+
import { createContext as createContext9, useContext as useContext16, useState as useState10, useRef as useRef12, useCallback as useCallback8, useMemo as useMemo7, useEffect as useEffect16, memo as memo9 } from "react";
|
|
14079
14228
|
import { create, useStore, createStore } from "zustand";
|
|
14080
14229
|
function r(e2) {
|
|
14081
14230
|
var t2, f2, n2 = "";
|
|
@@ -14319,7 +14468,7 @@ async function copyString(value) {
|
|
|
14319
14468
|
}
|
|
14320
14469
|
function useClipboard() {
|
|
14321
14470
|
let { timeout = 2e3 } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
14322
|
-
const [copied, setCopied] =
|
|
14471
|
+
const [copied, setCopied] = useState10(false);
|
|
14323
14472
|
const copyTimeout = useRef12(null);
|
|
14324
14473
|
const handleCopyResult = useCallback8((value) => {
|
|
14325
14474
|
const current = copyTimeout.current;
|
|
@@ -14402,7 +14551,7 @@ function useInspect(path, value, nestedIndex) {
|
|
|
14402
14551
|
value,
|
|
14403
14552
|
setInspectCache
|
|
14404
14553
|
]);
|
|
14405
|
-
const [inspect, set] =
|
|
14554
|
+
const [inspect, set] = useState10(() => {
|
|
14406
14555
|
const shouldInspect = getInspectCache(path, nestedIndex);
|
|
14407
14556
|
if (shouldInspect !== void 0) {
|
|
14408
14557
|
return shouldInspect;
|
|
@@ -14428,7 +14577,7 @@ function useInspect(path, value, nestedIndex) {
|
|
|
14428
14577
|
setInspect
|
|
14429
14578
|
];
|
|
14430
14579
|
}
|
|
14431
|
-
var DataBox = (props) => /* @__PURE__ */
|
|
14580
|
+
var DataBox = (props) => /* @__PURE__ */ jsx130(Box7, {
|
|
14432
14581
|
component: "div",
|
|
14433
14582
|
...props,
|
|
14434
14583
|
sx: {
|
|
@@ -14439,7 +14588,7 @@ var DataBox = (props) => /* @__PURE__ */ jsx129(Box6, {
|
|
|
14439
14588
|
var DataTypeLabel = (param) => {
|
|
14440
14589
|
let { dataType, enable = true } = param;
|
|
14441
14590
|
if (!enable) return null;
|
|
14442
|
-
return /* @__PURE__ */
|
|
14591
|
+
return /* @__PURE__ */ jsx130(DataBox, {
|
|
14443
14592
|
className: "data-type-label",
|
|
14444
14593
|
sx: {
|
|
14445
14594
|
mx: 0.5,
|
|
@@ -14457,18 +14606,18 @@ function defineEasyType(param) {
|
|
|
14457
14606
|
const storeDisplayDataTypes = useJsonViewerStore((store) => store.displayDataTypes);
|
|
14458
14607
|
const color2 = useJsonViewerStore((store) => store.colorspace[colorKey]);
|
|
14459
14608
|
const onSelect = useJsonViewerStore((store) => store.onSelect);
|
|
14460
|
-
return /* @__PURE__ */
|
|
14609
|
+
return /* @__PURE__ */ jsxs124(DataBox, {
|
|
14461
14610
|
onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(props.path, props.value),
|
|
14462
14611
|
sx: {
|
|
14463
14612
|
color: color2
|
|
14464
14613
|
},
|
|
14465
14614
|
children: [
|
|
14466
|
-
displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */
|
|
14615
|
+
displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */ jsx130(DataTypeLabel, {
|
|
14467
14616
|
dataType: type
|
|
14468
14617
|
}),
|
|
14469
|
-
/* @__PURE__ */
|
|
14618
|
+
/* @__PURE__ */ jsx130(DataBox, {
|
|
14470
14619
|
className: "".concat(type, "-value"),
|
|
14471
|
-
children: /* @__PURE__ */
|
|
14620
|
+
children: /* @__PURE__ */ jsx130(Render, {
|
|
14472
14621
|
path: props.path,
|
|
14473
14622
|
inspect: props.inspect,
|
|
14474
14623
|
setInspect: props.setInspect,
|
|
@@ -14508,7 +14657,7 @@ function defineEasyType(param) {
|
|
|
14508
14657
|
}, [
|
|
14509
14658
|
setValue
|
|
14510
14659
|
]);
|
|
14511
|
-
return /* @__PURE__ */
|
|
14660
|
+
return /* @__PURE__ */ jsx130(InputBase, {
|
|
14512
14661
|
autoFocus: true,
|
|
14513
14662
|
value,
|
|
14514
14663
|
onChange: handleChange,
|
|
@@ -14548,7 +14697,7 @@ var booleanType = defineEasyType({
|
|
|
14548
14697
|
},
|
|
14549
14698
|
Renderer: (param) => {
|
|
14550
14699
|
let { value } = param;
|
|
14551
|
-
return /* @__PURE__ */
|
|
14700
|
+
return /* @__PURE__ */ jsx130(Fragment6, {
|
|
14552
14701
|
children: value ? "true" : "false"
|
|
14553
14702
|
});
|
|
14554
14703
|
}
|
|
@@ -14567,7 +14716,7 @@ var dateType = defineEasyType({
|
|
|
14567
14716
|
colorKey: "base0D",
|
|
14568
14717
|
Renderer: (param) => {
|
|
14569
14718
|
let { value } = param;
|
|
14570
|
-
return /* @__PURE__ */
|
|
14719
|
+
return /* @__PURE__ */ jsx130(Fragment6, {
|
|
14571
14720
|
children: value.toLocaleTimeString("en-us", displayOptions)
|
|
14572
14721
|
});
|
|
14573
14722
|
}
|
|
@@ -14596,12 +14745,12 @@ var functionName = (func) => {
|
|
|
14596
14745
|
var lb = "{";
|
|
14597
14746
|
var rb = "}";
|
|
14598
14747
|
var PreFunctionType = (props) => {
|
|
14599
|
-
return /* @__PURE__ */
|
|
14748
|
+
return /* @__PURE__ */ jsxs124(NoSsr, {
|
|
14600
14749
|
children: [
|
|
14601
|
-
/* @__PURE__ */
|
|
14750
|
+
/* @__PURE__ */ jsx130(DataTypeLabel, {
|
|
14602
14751
|
dataType: "function"
|
|
14603
14752
|
}),
|
|
14604
|
-
/* @__PURE__ */
|
|
14753
|
+
/* @__PURE__ */ jsxs124(Box7, {
|
|
14605
14754
|
component: "span",
|
|
14606
14755
|
className: "data-function-start",
|
|
14607
14756
|
sx: {
|
|
@@ -14617,8 +14766,8 @@ var PreFunctionType = (props) => {
|
|
|
14617
14766
|
});
|
|
14618
14767
|
};
|
|
14619
14768
|
var PostFunctionType = () => {
|
|
14620
|
-
return /* @__PURE__ */
|
|
14621
|
-
children: /* @__PURE__ */
|
|
14769
|
+
return /* @__PURE__ */ jsx130(NoSsr, {
|
|
14770
|
+
children: /* @__PURE__ */ jsx130(Box7, {
|
|
14622
14771
|
component: "span",
|
|
14623
14772
|
className: "data-function-end",
|
|
14624
14773
|
children: rb
|
|
@@ -14627,15 +14776,15 @@ var PostFunctionType = () => {
|
|
|
14627
14776
|
};
|
|
14628
14777
|
var FunctionType = (props) => {
|
|
14629
14778
|
const functionColor = useJsonViewerStore((store) => store.colorspace.base05);
|
|
14630
|
-
return /* @__PURE__ */
|
|
14631
|
-
children: /* @__PURE__ */
|
|
14779
|
+
return /* @__PURE__ */ jsx130(NoSsr, {
|
|
14780
|
+
children: /* @__PURE__ */ jsx130(Box7, {
|
|
14632
14781
|
className: "data-function",
|
|
14633
14782
|
sx: {
|
|
14634
14783
|
display: props.inspect ? "block" : "inline-block",
|
|
14635
14784
|
pl: props.inspect ? 2 : 0,
|
|
14636
14785
|
color: functionColor
|
|
14637
14786
|
},
|
|
14638
|
-
children: props.inspect ? functionBody(props.value) : /* @__PURE__ */
|
|
14787
|
+
children: props.inspect ? functionBody(props.value) : /* @__PURE__ */ jsx130(Box7, {
|
|
14639
14788
|
component: "span",
|
|
14640
14789
|
className: "data-function-body",
|
|
14641
14790
|
onClick: () => props.setInspect(true),
|
|
@@ -14663,7 +14812,7 @@ var nullType = defineEasyType({
|
|
|
14663
14812
|
displayTypeLabel: false,
|
|
14664
14813
|
Renderer: () => {
|
|
14665
14814
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
14666
|
-
return /* @__PURE__ */
|
|
14815
|
+
return /* @__PURE__ */ jsx130(Box7, {
|
|
14667
14816
|
sx: {
|
|
14668
14817
|
fontSize: "0.8rem",
|
|
14669
14818
|
backgroundColor,
|
|
@@ -14686,7 +14835,7 @@ var nanType = defineEasyType({
|
|
|
14686
14835
|
deserialize: (value) => parseFloat(value),
|
|
14687
14836
|
Renderer: () => {
|
|
14688
14837
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
14689
|
-
return /* @__PURE__ */
|
|
14838
|
+
return /* @__PURE__ */ jsx130(Box7, {
|
|
14690
14839
|
sx: {
|
|
14691
14840
|
backgroundColor,
|
|
14692
14841
|
fontSize: "0.8rem",
|
|
@@ -14706,7 +14855,7 @@ var floatType = defineEasyType({
|
|
|
14706
14855
|
deserialize: (value) => parseFloat(value),
|
|
14707
14856
|
Renderer: (param) => {
|
|
14708
14857
|
let { value } = param;
|
|
14709
|
-
return /* @__PURE__ */
|
|
14858
|
+
return /* @__PURE__ */ jsx130(Fragment6, {
|
|
14710
14859
|
children: value
|
|
14711
14860
|
});
|
|
14712
14861
|
}
|
|
@@ -14720,7 +14869,7 @@ var intType = defineEasyType({
|
|
|
14720
14869
|
deserialize: (value) => parseFloat(value),
|
|
14721
14870
|
Renderer: (param) => {
|
|
14722
14871
|
let { value } = param;
|
|
14723
|
-
return /* @__PURE__ */
|
|
14872
|
+
return /* @__PURE__ */ jsx130(Fragment6, {
|
|
14724
14873
|
children: value
|
|
14725
14874
|
});
|
|
14726
14875
|
}
|
|
@@ -14733,16 +14882,16 @@ var bigIntType = defineEasyType({
|
|
|
14733
14882
|
deserialize: (value) => BigInt(value.replace(/\D/g, "")),
|
|
14734
14883
|
Renderer: (param) => {
|
|
14735
14884
|
let { value } = param;
|
|
14736
|
-
return /* @__PURE__ */
|
|
14885
|
+
return /* @__PURE__ */ jsx130(Fragment6, {
|
|
14737
14886
|
children: "".concat(value, "n")
|
|
14738
14887
|
});
|
|
14739
14888
|
}
|
|
14740
14889
|
});
|
|
14741
14890
|
var BaseIcon = (param) => {
|
|
14742
14891
|
let { d: d2, ...props } = param;
|
|
14743
|
-
return /* @__PURE__ */
|
|
14892
|
+
return /* @__PURE__ */ jsx130(SvgIcon, {
|
|
14744
14893
|
...props,
|
|
14745
|
-
children: /* @__PURE__ */
|
|
14894
|
+
children: /* @__PURE__ */ jsx130("path", {
|
|
14746
14895
|
d: d2
|
|
14747
14896
|
})
|
|
14748
14897
|
});
|
|
@@ -14757,55 +14906,55 @@ var Edit = "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.3
|
|
|
14757
14906
|
var ExpandMore = "M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z";
|
|
14758
14907
|
var Delete = "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5l-1-1h-5l-1 1H5v2h14V4z";
|
|
14759
14908
|
var AddBoxIcon = (props) => {
|
|
14760
|
-
return /* @__PURE__ */
|
|
14909
|
+
return /* @__PURE__ */ jsx130(BaseIcon, {
|
|
14761
14910
|
d: AddBox,
|
|
14762
14911
|
...props
|
|
14763
14912
|
});
|
|
14764
14913
|
};
|
|
14765
14914
|
var CheckIcon = (props) => {
|
|
14766
|
-
return /* @__PURE__ */
|
|
14915
|
+
return /* @__PURE__ */ jsx130(BaseIcon, {
|
|
14767
14916
|
d: Check,
|
|
14768
14917
|
...props
|
|
14769
14918
|
});
|
|
14770
14919
|
};
|
|
14771
14920
|
var ChevronRightIcon = (props) => {
|
|
14772
|
-
return /* @__PURE__ */
|
|
14921
|
+
return /* @__PURE__ */ jsx130(BaseIcon, {
|
|
14773
14922
|
d: ChevronRight,
|
|
14774
14923
|
...props
|
|
14775
14924
|
});
|
|
14776
14925
|
};
|
|
14777
14926
|
var CircularArrowsIcon = (props) => {
|
|
14778
|
-
return /* @__PURE__ */
|
|
14927
|
+
return /* @__PURE__ */ jsx130(BaseIcon, {
|
|
14779
14928
|
d: CircularArrows,
|
|
14780
14929
|
...props
|
|
14781
14930
|
});
|
|
14782
14931
|
};
|
|
14783
14932
|
var CloseIcon = (props) => {
|
|
14784
|
-
return /* @__PURE__ */
|
|
14933
|
+
return /* @__PURE__ */ jsx130(BaseIcon, {
|
|
14785
14934
|
d: Close,
|
|
14786
14935
|
...props
|
|
14787
14936
|
});
|
|
14788
14937
|
};
|
|
14789
14938
|
var ContentCopyIcon = (props) => {
|
|
14790
|
-
return /* @__PURE__ */
|
|
14939
|
+
return /* @__PURE__ */ jsx130(BaseIcon, {
|
|
14791
14940
|
d: ContentCopy,
|
|
14792
14941
|
...props
|
|
14793
14942
|
});
|
|
14794
14943
|
};
|
|
14795
14944
|
var EditIcon = (props) => {
|
|
14796
|
-
return /* @__PURE__ */
|
|
14945
|
+
return /* @__PURE__ */ jsx130(BaseIcon, {
|
|
14797
14946
|
d: Edit,
|
|
14798
14947
|
...props
|
|
14799
14948
|
});
|
|
14800
14949
|
};
|
|
14801
14950
|
var ExpandMoreIcon = (props) => {
|
|
14802
|
-
return /* @__PURE__ */
|
|
14951
|
+
return /* @__PURE__ */ jsx130(BaseIcon, {
|
|
14803
14952
|
d: ExpandMore,
|
|
14804
14953
|
...props
|
|
14805
14954
|
});
|
|
14806
14955
|
};
|
|
14807
14956
|
var DeleteIcon = (props) => {
|
|
14808
|
-
return /* @__PURE__ */
|
|
14957
|
+
return /* @__PURE__ */ jsx130(BaseIcon, {
|
|
14809
14958
|
d: Delete,
|
|
14810
14959
|
...props
|
|
14811
14960
|
});
|
|
@@ -14844,7 +14993,7 @@ var PreObjectType = (props) => {
|
|
|
14844
14993
|
props.value
|
|
14845
14994
|
]);
|
|
14846
14995
|
const isTrap = useIsCycleReference(props.path, props.value);
|
|
14847
|
-
return /* @__PURE__ */
|
|
14996
|
+
return /* @__PURE__ */ jsxs124(Box7, {
|
|
14848
14997
|
component: "span",
|
|
14849
14998
|
className: "data-object-start",
|
|
14850
14999
|
sx: {
|
|
@@ -14852,7 +15001,7 @@ var PreObjectType = (props) => {
|
|
|
14852
15001
|
},
|
|
14853
15002
|
children: [
|
|
14854
15003
|
isArrayLike ? arrayLb : objectLb,
|
|
14855
|
-
shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */
|
|
15004
|
+
shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */ jsx130(Box7, {
|
|
14856
15005
|
component: "span",
|
|
14857
15006
|
sx: {
|
|
14858
15007
|
pl: 0.5,
|
|
@@ -14862,16 +15011,16 @@ var PreObjectType = (props) => {
|
|
|
14862
15011
|
},
|
|
14863
15012
|
children: sizeOfValue
|
|
14864
15013
|
}),
|
|
14865
|
-
isTrap && !props.inspect && /* @__PURE__ */
|
|
15014
|
+
isTrap && !props.inspect && /* @__PURE__ */ jsxs124(Fragment6, {
|
|
14866
15015
|
children: [
|
|
14867
|
-
/* @__PURE__ */
|
|
15016
|
+
/* @__PURE__ */ jsx130(CircularArrowsIcon, {
|
|
14868
15017
|
sx: {
|
|
14869
15018
|
fontSize: 12,
|
|
14870
15019
|
color: textColor,
|
|
14871
15020
|
mx: 0.5
|
|
14872
15021
|
}
|
|
14873
15022
|
}),
|
|
14874
|
-
/* @__PURE__ */
|
|
15023
|
+
/* @__PURE__ */ jsx130(DataBox, {
|
|
14875
15024
|
sx: {
|
|
14876
15025
|
cursor: "pointer",
|
|
14877
15026
|
userSelect: "none"
|
|
@@ -14901,7 +15050,7 @@ var PostObjectType = (props) => {
|
|
|
14901
15050
|
props.path,
|
|
14902
15051
|
props.value
|
|
14903
15052
|
]);
|
|
14904
|
-
return /* @__PURE__ */
|
|
15053
|
+
return /* @__PURE__ */ jsxs124(Box7, {
|
|
14905
15054
|
component: "span",
|
|
14906
15055
|
className: "data-object-end",
|
|
14907
15056
|
sx: {
|
|
@@ -14912,7 +15061,7 @@ var PostObjectType = (props) => {
|
|
|
14912
15061
|
},
|
|
14913
15062
|
children: [
|
|
14914
15063
|
isArrayLike ? arrayRb : objectRb,
|
|
14915
|
-
shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */
|
|
15064
|
+
shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */ jsx130(Box7, {
|
|
14916
15065
|
component: "span",
|
|
14917
15066
|
sx: {
|
|
14918
15067
|
pl: 0.5,
|
|
@@ -14933,7 +15082,7 @@ var ObjectType = (props) => {
|
|
|
14933
15082
|
const borderColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
14934
15083
|
const groupArraysAfterLength = useJsonViewerStore((store) => store.groupArraysAfterLength);
|
|
14935
15084
|
const isTrap = useIsCycleReference(props.path, props.value);
|
|
14936
|
-
const [displayLength, setDisplayLength] =
|
|
15085
|
+
const [displayLength, setDisplayLength] = useState10(useJsonViewerStore((store) => store.maxDisplayLength));
|
|
14937
15086
|
const objectSortKeys = useJsonViewerStore((store) => store.objectSortKeys);
|
|
14938
15087
|
const elements = useMemo7(() => {
|
|
14939
15088
|
if (!props.inspect) {
|
|
@@ -14952,7 +15101,7 @@ var ObjectType = (props) => {
|
|
|
14952
15101
|
...props.path,
|
|
14953
15102
|
key
|
|
14954
15103
|
];
|
|
14955
|
-
elements3.push(/* @__PURE__ */
|
|
15104
|
+
elements3.push(/* @__PURE__ */ jsx130(DataKeyPair, {
|
|
14956
15105
|
path,
|
|
14957
15106
|
value: value2,
|
|
14958
15107
|
prevValue: props.prevValue instanceof Map ? props.prevValue.get(k2) : void 0,
|
|
@@ -14968,7 +15117,7 @@ var ObjectType = (props) => {
|
|
|
14968
15117
|
while (true) {
|
|
14969
15118
|
const nextResult = iterator2.next();
|
|
14970
15119
|
var _nextResult_done;
|
|
14971
|
-
elements3.push(/* @__PURE__ */
|
|
15120
|
+
elements3.push(/* @__PURE__ */ jsx130(DataKeyPair, {
|
|
14972
15121
|
path: [
|
|
14973
15122
|
...props.path,
|
|
14974
15123
|
"iterator:".concat(count2)
|
|
@@ -14996,7 +15145,7 @@ var ObjectType = (props) => {
|
|
|
14996
15145
|
...props.path,
|
|
14997
15146
|
index
|
|
14998
15147
|
];
|
|
14999
|
-
return /* @__PURE__ */
|
|
15148
|
+
return /* @__PURE__ */ jsx130(DataKeyPair, {
|
|
15000
15149
|
path,
|
|
15001
15150
|
value: value2,
|
|
15002
15151
|
prevValue: Array.isArray(props.prevValue) ? props.prevValue[index] : void 0,
|
|
@@ -15005,7 +15154,7 @@ var ObjectType = (props) => {
|
|
|
15005
15154
|
});
|
|
15006
15155
|
if (value.length > displayLength) {
|
|
15007
15156
|
const rest = value.length - displayLength;
|
|
15008
|
-
elements4.push(/* @__PURE__ */
|
|
15157
|
+
elements4.push(/* @__PURE__ */ jsxs124(DataBox, {
|
|
15009
15158
|
sx: {
|
|
15010
15159
|
cursor: "pointer",
|
|
15011
15160
|
lineHeight: 1.5,
|
|
@@ -15028,7 +15177,7 @@ var ObjectType = (props) => {
|
|
|
15028
15177
|
const prevElements = Array.isArray(props.prevValue) ? segmentArray(props.prevValue, groupArraysAfterLength) : void 0;
|
|
15029
15178
|
const elementsLastIndex = elements3.length - 1;
|
|
15030
15179
|
return elements3.map((list, index) => {
|
|
15031
|
-
return /* @__PURE__ */
|
|
15180
|
+
return /* @__PURE__ */ jsx130(DataKeyPair, {
|
|
15032
15181
|
path: props.path,
|
|
15033
15182
|
value: list,
|
|
15034
15183
|
nestedIndex: index,
|
|
@@ -15055,7 +15204,7 @@ var ObjectType = (props) => {
|
|
|
15055
15204
|
...props.path,
|
|
15056
15205
|
key
|
|
15057
15206
|
];
|
|
15058
|
-
return /* @__PURE__ */
|
|
15207
|
+
return /* @__PURE__ */ jsx130(DataKeyPair, {
|
|
15059
15208
|
path,
|
|
15060
15209
|
value: value2,
|
|
15061
15210
|
prevValue: (_props_prevValue = props.prevValue) === null || _props_prevValue === void 0 ? void 0 : _props_prevValue[key],
|
|
@@ -15064,7 +15213,7 @@ var ObjectType = (props) => {
|
|
|
15064
15213
|
});
|
|
15065
15214
|
if (entries.length > displayLength) {
|
|
15066
15215
|
const rest = entries.length - displayLength;
|
|
15067
|
-
elements2.push(/* @__PURE__ */
|
|
15216
|
+
elements2.push(/* @__PURE__ */ jsxs124(DataBox, {
|
|
15068
15217
|
sx: {
|
|
15069
15218
|
cursor: "pointer",
|
|
15070
15219
|
lineHeight: 1.5,
|
|
@@ -15102,7 +15251,7 @@ var ObjectType = (props) => {
|
|
|
15102
15251
|
if (isEmptyValue) {
|
|
15103
15252
|
return null;
|
|
15104
15253
|
}
|
|
15105
|
-
return /* @__PURE__ */
|
|
15254
|
+
return /* @__PURE__ */ jsx130(Box7, {
|
|
15106
15255
|
className: "data-object",
|
|
15107
15256
|
sx: {
|
|
15108
15257
|
display: props.inspect ? "block" : "inline-block",
|
|
@@ -15111,7 +15260,7 @@ var ObjectType = (props) => {
|
|
|
15111
15260
|
color: keyColor,
|
|
15112
15261
|
borderLeft: props.inspect ? "1px solid ".concat(borderColor) : "none"
|
|
15113
15262
|
},
|
|
15114
|
-
children: props.inspect ? elements : !isTrap && /* @__PURE__ */
|
|
15263
|
+
children: props.inspect ? elements : !isTrap && /* @__PURE__ */ jsx130(Box7, {
|
|
15115
15264
|
component: "span",
|
|
15116
15265
|
className: "data-object-body",
|
|
15117
15266
|
onClick: () => props.setInspect(true),
|
|
@@ -15139,11 +15288,11 @@ var stringType = defineEasyType({
|
|
|
15139
15288
|
serialize: (value) => value,
|
|
15140
15289
|
deserialize: (value) => value,
|
|
15141
15290
|
Renderer: (props) => {
|
|
15142
|
-
const [showRest, setShowRest] =
|
|
15291
|
+
const [showRest, setShowRest] = useState10(false);
|
|
15143
15292
|
const collapseStringsAfterLength = useJsonViewerStore((store) => store.collapseStringsAfterLength);
|
|
15144
15293
|
const value = showRest ? props.value : props.value.slice(0, collapseStringsAfterLength);
|
|
15145
15294
|
const hasRest = props.value.length > collapseStringsAfterLength;
|
|
15146
|
-
return /* @__PURE__ */
|
|
15295
|
+
return /* @__PURE__ */ jsxs124(Box7, {
|
|
15147
15296
|
component: "span",
|
|
15148
15297
|
sx: {
|
|
15149
15298
|
overflowWrap: "anywhere",
|
|
@@ -15161,7 +15310,7 @@ var stringType = defineEasyType({
|
|
|
15161
15310
|
children: [
|
|
15162
15311
|
'"',
|
|
15163
15312
|
value,
|
|
15164
|
-
hasRest && !showRest && /* @__PURE__ */
|
|
15313
|
+
hasRest && !showRest && /* @__PURE__ */ jsx130(Box7, {
|
|
15165
15314
|
component: "span",
|
|
15166
15315
|
sx: {
|
|
15167
15316
|
padding: 0.5
|
|
@@ -15180,7 +15329,7 @@ var undefinedType = defineEasyType({
|
|
|
15180
15329
|
displayTypeLabel: false,
|
|
15181
15330
|
Renderer: () => {
|
|
15182
15331
|
const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
|
|
15183
|
-
return /* @__PURE__ */
|
|
15332
|
+
return /* @__PURE__ */ jsx130(Box7, {
|
|
15184
15333
|
sx: {
|
|
15185
15334
|
fontSize: "0.7rem",
|
|
15186
15335
|
backgroundColor,
|
|
@@ -15261,7 +15410,7 @@ function useTypeComponents(value, path) {
|
|
|
15261
15410
|
registry
|
|
15262
15411
|
]);
|
|
15263
15412
|
}
|
|
15264
|
-
var IconBox = (props) => /* @__PURE__ */
|
|
15413
|
+
var IconBox = (props) => /* @__PURE__ */ jsx130(Box7, {
|
|
15265
15414
|
component: "span",
|
|
15266
15415
|
...props,
|
|
15267
15416
|
sx: {
|
|
@@ -15293,7 +15442,7 @@ var DataKeyPair = (props) => {
|
|
|
15293
15442
|
storeEditable,
|
|
15294
15443
|
value
|
|
15295
15444
|
]);
|
|
15296
|
-
const [tempValue, setTempValue] =
|
|
15445
|
+
const [tempValue, setTempValue] = useState10("");
|
|
15297
15446
|
const depth = path.length;
|
|
15298
15447
|
const key = path[depth - 1];
|
|
15299
15448
|
const hoverPath = useJsonViewerStore((store) => store.hoverPath);
|
|
@@ -15307,7 +15456,7 @@ var DataKeyPair = (props) => {
|
|
|
15307
15456
|
const setHover = useJsonViewerStore((store) => store.setHover);
|
|
15308
15457
|
const root = useJsonViewerStore((store) => store.value);
|
|
15309
15458
|
const [inspect, setInspect] = useInspect(path, value, nestedIndex);
|
|
15310
|
-
const [editing, setEditing] =
|
|
15459
|
+
const [editing, setEditing] = useState10(false);
|
|
15311
15460
|
const onChange = useJsonViewerStore((store) => store.onChange);
|
|
15312
15461
|
const keyColor = useTextColor();
|
|
15313
15462
|
const numberKeyColor = useJsonViewerStore((store) => store.colorspace.base0C);
|
|
@@ -15447,18 +15596,18 @@ var DataKeyPair = (props) => {
|
|
|
15447
15596
|
]);
|
|
15448
15597
|
const actionIcons = useMemo7(() => {
|
|
15449
15598
|
if (editing) {
|
|
15450
|
-
return /* @__PURE__ */
|
|
15599
|
+
return /* @__PURE__ */ jsxs124(Fragment6, {
|
|
15451
15600
|
children: [
|
|
15452
|
-
/* @__PURE__ */
|
|
15453
|
-
children: /* @__PURE__ */
|
|
15601
|
+
/* @__PURE__ */ jsx130(IconBox, {
|
|
15602
|
+
children: /* @__PURE__ */ jsx130(CloseIcon, {
|
|
15454
15603
|
sx: {
|
|
15455
15604
|
fontSize: ".8rem"
|
|
15456
15605
|
},
|
|
15457
15606
|
onClick: abortEditing
|
|
15458
15607
|
})
|
|
15459
15608
|
}),
|
|
15460
|
-
/* @__PURE__ */
|
|
15461
|
-
children: /* @__PURE__ */
|
|
15609
|
+
/* @__PURE__ */ jsx130(IconBox, {
|
|
15610
|
+
children: /* @__PURE__ */ jsx130(CheckIcon, {
|
|
15462
15611
|
sx: {
|
|
15463
15612
|
fontSize: ".8rem"
|
|
15464
15613
|
},
|
|
@@ -15468,9 +15617,9 @@ var DataKeyPair = (props) => {
|
|
|
15468
15617
|
]
|
|
15469
15618
|
});
|
|
15470
15619
|
}
|
|
15471
|
-
return /* @__PURE__ */
|
|
15620
|
+
return /* @__PURE__ */ jsxs124(Fragment6, {
|
|
15472
15621
|
children: [
|
|
15473
|
-
enableClipboard && /* @__PURE__ */
|
|
15622
|
+
enableClipboard && /* @__PURE__ */ jsx130(IconBox, {
|
|
15474
15623
|
onClick: (event) => {
|
|
15475
15624
|
event.preventDefault();
|
|
15476
15625
|
try {
|
|
@@ -15479,41 +15628,41 @@ var DataKeyPair = (props) => {
|
|
|
15479
15628
|
console.error(e2);
|
|
15480
15629
|
}
|
|
15481
15630
|
},
|
|
15482
|
-
children: copied ? /* @__PURE__ */
|
|
15631
|
+
children: copied ? /* @__PURE__ */ jsx130(CheckIcon, {
|
|
15483
15632
|
sx: {
|
|
15484
15633
|
fontSize: ".8rem"
|
|
15485
15634
|
}
|
|
15486
|
-
}) : /* @__PURE__ */
|
|
15635
|
+
}) : /* @__PURE__ */ jsx130(ContentCopyIcon, {
|
|
15487
15636
|
sx: {
|
|
15488
15637
|
fontSize: ".8rem"
|
|
15489
15638
|
}
|
|
15490
15639
|
})
|
|
15491
15640
|
}),
|
|
15492
|
-
Editor && editable && serialize && deserialize && /* @__PURE__ */
|
|
15641
|
+
Editor && editable && serialize && deserialize && /* @__PURE__ */ jsx130(IconBox, {
|
|
15493
15642
|
onClick: startEditing,
|
|
15494
|
-
children: /* @__PURE__ */
|
|
15643
|
+
children: /* @__PURE__ */ jsx130(EditIcon, {
|
|
15495
15644
|
sx: {
|
|
15496
15645
|
fontSize: ".8rem"
|
|
15497
15646
|
}
|
|
15498
15647
|
})
|
|
15499
15648
|
}),
|
|
15500
|
-
enableAdd && /* @__PURE__ */
|
|
15649
|
+
enableAdd && /* @__PURE__ */ jsx130(IconBox, {
|
|
15501
15650
|
onClick: (event) => {
|
|
15502
15651
|
event.preventDefault();
|
|
15503
15652
|
onAdd === null || onAdd === void 0 ? void 0 : onAdd(path);
|
|
15504
15653
|
},
|
|
15505
|
-
children: /* @__PURE__ */
|
|
15654
|
+
children: /* @__PURE__ */ jsx130(AddBoxIcon, {
|
|
15506
15655
|
sx: {
|
|
15507
15656
|
fontSize: ".8rem"
|
|
15508
15657
|
}
|
|
15509
15658
|
})
|
|
15510
15659
|
}),
|
|
15511
|
-
enableDelete && /* @__PURE__ */
|
|
15660
|
+
enableDelete && /* @__PURE__ */ jsx130(IconBox, {
|
|
15512
15661
|
onClick: (event) => {
|
|
15513
15662
|
event.preventDefault();
|
|
15514
15663
|
onDelete === null || onDelete === void 0 ? void 0 : onDelete(path, value);
|
|
15515
15664
|
},
|
|
15516
|
-
children: /* @__PURE__ */
|
|
15665
|
+
children: /* @__PURE__ */ jsx130(DeleteIcon, {
|
|
15517
15666
|
sx: {
|
|
15518
15667
|
fontSize: ".9rem"
|
|
15519
15668
|
}
|
|
@@ -15561,7 +15710,7 @@ var DataKeyPair = (props) => {
|
|
|
15561
15710
|
prevValue,
|
|
15562
15711
|
nestedIndex
|
|
15563
15712
|
]);
|
|
15564
|
-
return /* @__PURE__ */
|
|
15713
|
+
return /* @__PURE__ */ jsxs124(Box7, {
|
|
15565
15714
|
className: "data-key-pair",
|
|
15566
15715
|
"data-testid": "data-key-pair" + path.join("."),
|
|
15567
15716
|
sx: {
|
|
@@ -15573,7 +15722,7 @@ var DataKeyPair = (props) => {
|
|
|
15573
15722
|
nestedIndex
|
|
15574
15723
|
]),
|
|
15575
15724
|
children: [
|
|
15576
|
-
/* @__PURE__ */
|
|
15725
|
+
/* @__PURE__ */ jsxs124(DataBox, {
|
|
15577
15726
|
component: "span",
|
|
15578
15727
|
className: "data-key",
|
|
15579
15728
|
sx: {
|
|
@@ -15594,7 +15743,7 @@ var DataKeyPair = (props) => {
|
|
|
15594
15743
|
setInspect
|
|
15595
15744
|
]),
|
|
15596
15745
|
children: [
|
|
15597
|
-
expandable ? inspect ? /* @__PURE__ */
|
|
15746
|
+
expandable ? inspect ? /* @__PURE__ */ jsx130(ExpandMoreIcon, {
|
|
15598
15747
|
className: "data-key-toggle-expanded",
|
|
15599
15748
|
sx: {
|
|
15600
15749
|
fontSize: ".8rem",
|
|
@@ -15602,7 +15751,7 @@ var DataKeyPair = (props) => {
|
|
|
15602
15751
|
cursor: "pointer"
|
|
15603
15752
|
}
|
|
15604
15753
|
}
|
|
15605
|
-
}) : /* @__PURE__ */
|
|
15754
|
+
}) : /* @__PURE__ */ jsx130(ChevronRightIcon, {
|
|
15606
15755
|
className: "data-key-toggle-collapsed",
|
|
15607
15756
|
sx: {
|
|
15608
15757
|
fontSize: ".8rem",
|
|
@@ -15611,44 +15760,44 @@ var DataKeyPair = (props) => {
|
|
|
15611
15760
|
}
|
|
15612
15761
|
}
|
|
15613
15762
|
}) : null,
|
|
15614
|
-
/* @__PURE__ */
|
|
15763
|
+
/* @__PURE__ */ jsx130(Box7, {
|
|
15615
15764
|
ref: highlightContainer,
|
|
15616
15765
|
className: "data-key-key",
|
|
15617
15766
|
component: "span",
|
|
15618
|
-
children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */
|
|
15767
|
+
children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */ jsxs124(Fragment6, {
|
|
15619
15768
|
children: [
|
|
15620
15769
|
'"',
|
|
15621
15770
|
rootName,
|
|
15622
15771
|
'"'
|
|
15623
15772
|
]
|
|
15624
|
-
}) : /* @__PURE__ */
|
|
15773
|
+
}) : /* @__PURE__ */ jsx130(Fragment6, {
|
|
15625
15774
|
children: rootName
|
|
15626
|
-
}) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */
|
|
15775
|
+
}) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */ jsx130(KeyRenderer, {
|
|
15627
15776
|
...downstreamProps
|
|
15628
|
-
}) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */
|
|
15777
|
+
}) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */ jsx130(Box7, {
|
|
15629
15778
|
component: "span",
|
|
15630
15779
|
style: {
|
|
15631
15780
|
color: numberKeyColor,
|
|
15632
15781
|
userSelect: isNumberKey ? "none" : "auto"
|
|
15633
15782
|
},
|
|
15634
15783
|
children: key
|
|
15635
|
-
}) : quotesOnKeys ? /* @__PURE__ */
|
|
15784
|
+
}) : quotesOnKeys ? /* @__PURE__ */ jsxs124(Fragment6, {
|
|
15636
15785
|
children: [
|
|
15637
15786
|
'"',
|
|
15638
15787
|
key,
|
|
15639
15788
|
'"'
|
|
15640
15789
|
]
|
|
15641
|
-
}) : /* @__PURE__ */
|
|
15790
|
+
}) : /* @__PURE__ */ jsx130(Fragment6, {
|
|
15642
15791
|
children: key
|
|
15643
15792
|
}))
|
|
15644
15793
|
}),
|
|
15645
|
-
isRoot ? rootName !== false && /* @__PURE__ */
|
|
15794
|
+
isRoot ? rootName !== false && /* @__PURE__ */ jsx130(DataBox, {
|
|
15646
15795
|
className: "data-key-colon",
|
|
15647
15796
|
sx: {
|
|
15648
15797
|
mr: 0.5
|
|
15649
15798
|
},
|
|
15650
15799
|
children: ":"
|
|
15651
|
-
}) : nestedIndex === void 0 && /* @__PURE__ */
|
|
15800
|
+
}) : nestedIndex === void 0 && /* @__PURE__ */ jsx130(DataBox, {
|
|
15652
15801
|
className: "data-key-colon",
|
|
15653
15802
|
sx: {
|
|
15654
15803
|
mr: 0.5,
|
|
@@ -15659,29 +15808,29 @@ var DataKeyPair = (props) => {
|
|
|
15659
15808
|
},
|
|
15660
15809
|
children: ":"
|
|
15661
15810
|
}),
|
|
15662
|
-
PreComponent && /* @__PURE__ */
|
|
15811
|
+
PreComponent && /* @__PURE__ */ jsx130(PreComponent, {
|
|
15663
15812
|
...downstreamProps
|
|
15664
15813
|
}),
|
|
15665
15814
|
isHover && expandable && inspect && actionIcons
|
|
15666
15815
|
]
|
|
15667
15816
|
}),
|
|
15668
|
-
editing && editable ? Editor && /* @__PURE__ */
|
|
15817
|
+
editing && editable ? Editor && /* @__PURE__ */ jsx130(Editor, {
|
|
15669
15818
|
path,
|
|
15670
15819
|
value: tempValue,
|
|
15671
15820
|
setValue: setTempValue,
|
|
15672
15821
|
abortEditing,
|
|
15673
15822
|
commitEditing
|
|
15674
|
-
}) : Component ? /* @__PURE__ */
|
|
15823
|
+
}) : Component ? /* @__PURE__ */ jsx130(Component, {
|
|
15675
15824
|
...downstreamProps
|
|
15676
|
-
}) : /* @__PURE__ */
|
|
15825
|
+
}) : /* @__PURE__ */ jsx130(Box7, {
|
|
15677
15826
|
component: "span",
|
|
15678
15827
|
className: "data-value-fallback",
|
|
15679
15828
|
children: "fallback: ".concat(value)
|
|
15680
15829
|
}),
|
|
15681
|
-
PostComponent && /* @__PURE__ */
|
|
15830
|
+
PostComponent && /* @__PURE__ */ jsx130(PostComponent, {
|
|
15682
15831
|
...downstreamProps
|
|
15683
15832
|
}),
|
|
15684
|
-
!last && displayComma && /* @__PURE__ */
|
|
15833
|
+
!last && displayComma && /* @__PURE__ */ jsx130(DataBox, {
|
|
15685
15834
|
children: ","
|
|
15686
15835
|
}),
|
|
15687
15836
|
isHover && expandable && !inspect && actionIcons,
|
|
@@ -15692,7 +15841,7 @@ var DataKeyPair = (props) => {
|
|
|
15692
15841
|
};
|
|
15693
15842
|
var query = "(prefers-color-scheme: dark)";
|
|
15694
15843
|
function useThemeDetector() {
|
|
15695
|
-
const [isDark, setIsDark] =
|
|
15844
|
+
const [isDark, setIsDark] = useState10(false);
|
|
15696
15845
|
useEffect16(() => {
|
|
15697
15846
|
const listener = (e2) => setIsDark(e2.matches);
|
|
15698
15847
|
setIsDark(window.matchMedia(query).matches);
|
|
@@ -15801,7 +15950,7 @@ var JsonViewerInner = (props) => {
|
|
|
15801
15950
|
const onMouseLeave = useCallback8(() => setHover(null), [
|
|
15802
15951
|
setHover
|
|
15803
15952
|
]);
|
|
15804
|
-
return /* @__PURE__ */
|
|
15953
|
+
return /* @__PURE__ */ jsx130(Paper2, {
|
|
15805
15954
|
elevation: 0,
|
|
15806
15955
|
className: clsx(themeCls, props.className),
|
|
15807
15956
|
style: props.style,
|
|
@@ -15812,7 +15961,7 @@ var JsonViewerInner = (props) => {
|
|
|
15812
15961
|
...props.sx
|
|
15813
15962
|
},
|
|
15814
15963
|
onMouseLeave,
|
|
15815
|
-
children: /* @__PURE__ */
|
|
15964
|
+
children: /* @__PURE__ */ jsx130(DataKeyPair, {
|
|
15816
15965
|
value,
|
|
15817
15966
|
prevValue,
|
|
15818
15967
|
path: emptyPath,
|
|
@@ -15864,13 +16013,13 @@ var JsonViewer = function JsonViewer2(props) {
|
|
|
15864
16013
|
};
|
|
15865
16014
|
const jsonViewerStore = useMemo7(() => createJsonViewerStore(props), []);
|
|
15866
16015
|
const typeRegistryStore = useMemo7(() => createTypeRegistryStore(), []);
|
|
15867
|
-
return /* @__PURE__ */
|
|
16016
|
+
return /* @__PURE__ */ jsx130(ThemeProvider, {
|
|
15868
16017
|
theme,
|
|
15869
|
-
children: /* @__PURE__ */
|
|
16018
|
+
children: /* @__PURE__ */ jsx130(TypeRegistryStoreContext.Provider, {
|
|
15870
16019
|
value: typeRegistryStore,
|
|
15871
|
-
children: /* @__PURE__ */
|
|
16020
|
+
children: /* @__PURE__ */ jsx130(JsonViewerStoreContext.Provider, {
|
|
15872
16021
|
value: jsonViewerStore,
|
|
15873
|
-
children: /* @__PURE__ */
|
|
16022
|
+
children: /* @__PURE__ */ jsx130(JsonViewerInner, {
|
|
15874
16023
|
...mixedProps
|
|
15875
16024
|
})
|
|
15876
16025
|
})
|
|
@@ -15879,7 +16028,7 @@ var JsonViewer = function JsonViewer2(props) {
|
|
|
15879
16028
|
};
|
|
15880
16029
|
|
|
15881
16030
|
// src/components/event-details/event-details.tsx
|
|
15882
|
-
import { memo as memo10, useMemo as useMemo11, useState as
|
|
16031
|
+
import { memo as memo10, useMemo as useMemo11, useState as useState15 } from "react";
|
|
15883
16032
|
|
|
15884
16033
|
// src/utils/iam-utils.ts
|
|
15885
16034
|
function determinePermissionStatus(payload) {
|
|
@@ -16077,40 +16226,40 @@ var getEventGroupsByType = (events) => {
|
|
|
16077
16226
|
|
|
16078
16227
|
// src/components/event-details/event-detail.tsx
|
|
16079
16228
|
import { KeyboardArrowDown as KeyboardArrowDown2, KeyboardArrowRight as KeyboardArrowRight2 } from "@mui/icons-material";
|
|
16080
|
-
import { Box as
|
|
16081
|
-
import { useEffect as useEffect17, useMemo as useMemo9, useRef as useRef13, useState as
|
|
16229
|
+
import { Box as Box11, Grid as Grid3, IconButton as IconButton3, Typography as Typography7 } from "@mui/material";
|
|
16230
|
+
import { useEffect as useEffect17, useMemo as useMemo9, useRef as useRef13, useState as useState12 } from "react";
|
|
16082
16231
|
|
|
16083
16232
|
// src/components/status-icon.tsx
|
|
16084
16233
|
import { Cancel, CheckCircle, Error as Error2, Info, RemoveCircle } from "@mui/icons-material";
|
|
16085
|
-
import { Box as
|
|
16086
|
-
import { jsx as
|
|
16234
|
+
import { Box as Box8 } from "@mui/material";
|
|
16235
|
+
import { jsx as jsx131 } from "react/jsx-runtime";
|
|
16087
16236
|
var StatusIcon = ({ errorLevel }) => {
|
|
16088
16237
|
switch (errorLevel) {
|
|
16089
16238
|
case EventLevel.LevelError: {
|
|
16090
|
-
return /* @__PURE__ */
|
|
16239
|
+
return /* @__PURE__ */ jsx131(Cancel, { sx: { color: "red" } });
|
|
16091
16240
|
}
|
|
16092
16241
|
case EventLevel.LevelInfo: {
|
|
16093
|
-
return /* @__PURE__ */
|
|
16242
|
+
return /* @__PURE__ */ jsx131(Info, { sx: { color: "gray" } });
|
|
16094
16243
|
}
|
|
16095
16244
|
case EventLevel.LevelPermission: {
|
|
16096
|
-
return /* @__PURE__ */
|
|
16245
|
+
return /* @__PURE__ */ jsx131(RemoveCircle, { sx: { color: "blue" } });
|
|
16097
16246
|
}
|
|
16098
16247
|
case EventLevel.LevelWarning: {
|
|
16099
|
-
return /* @__PURE__ */
|
|
16248
|
+
return /* @__PURE__ */ jsx131(Error2, { sx: { color: "orange" } });
|
|
16100
16249
|
}
|
|
16101
16250
|
default: {
|
|
16102
|
-
return /* @__PURE__ */
|
|
16251
|
+
return /* @__PURE__ */ jsx131(CheckCircle, { sx: { color: "lightgray" } });
|
|
16103
16252
|
}
|
|
16104
16253
|
}
|
|
16105
16254
|
};
|
|
16106
16255
|
|
|
16107
16256
|
// src/components/event-details/iam-event-detail.tsx
|
|
16108
16257
|
import { CheckCircle as CheckCircle2, Error as ErrorIcon, Warning } from "@mui/icons-material";
|
|
16109
|
-
import { Box as
|
|
16110
|
-
import { jsx as
|
|
16111
|
-
var DetailRow = ({ content, label }) => /* @__PURE__ */
|
|
16112
|
-
/* @__PURE__ */
|
|
16113
|
-
|
|
16258
|
+
import { Box as Box9, Chip, Grid as Grid2, Typography as Typography5 } from "@mui/material";
|
|
16259
|
+
import { jsx as jsx132, jsxs as jsxs125 } from "react/jsx-runtime";
|
|
16260
|
+
var DetailRow = ({ content, label }) => /* @__PURE__ */ jsxs125(Grid2, { container: true, spacing: 0, sx: { mb: 1 }, children: [
|
|
16261
|
+
/* @__PURE__ */ jsx132(Grid2, { item: true, sx: { pr: 1 }, xs: 3, children: /* @__PURE__ */ jsx132(
|
|
16262
|
+
Typography5,
|
|
16114
16263
|
{
|
|
16115
16264
|
sx: {
|
|
16116
16265
|
color: "text.secondary",
|
|
@@ -16120,8 +16269,8 @@ var DetailRow = ({ content, label }) => /* @__PURE__ */ jsxs124(Grid2, { contain
|
|
|
16120
16269
|
children: label
|
|
16121
16270
|
}
|
|
16122
16271
|
) }),
|
|
16123
|
-
/* @__PURE__ */
|
|
16124
|
-
|
|
16272
|
+
/* @__PURE__ */ jsx132(Grid2, { item: true, xs: 9, children: typeof content === "string" ? /* @__PURE__ */ jsx132(
|
|
16273
|
+
Typography5,
|
|
16125
16274
|
{
|
|
16126
16275
|
sx: {
|
|
16127
16276
|
color: "text.primary",
|
|
@@ -16136,30 +16285,30 @@ var PermissionIcon = ({ status }) => {
|
|
|
16136
16285
|
switch (status) {
|
|
16137
16286
|
case "explicitly_allowed":
|
|
16138
16287
|
case "implicitly_allowed": {
|
|
16139
|
-
return /* @__PURE__ */
|
|
16288
|
+
return /* @__PURE__ */ jsx132(CheckCircle2, { sx: { color: "success.main", fontSize: "1rem" } });
|
|
16140
16289
|
}
|
|
16141
16290
|
case "explicitly_denied": {
|
|
16142
|
-
return /* @__PURE__ */
|
|
16291
|
+
return /* @__PURE__ */ jsx132(ErrorIcon, { sx: { color: "error.main", fontSize: "1rem" } });
|
|
16143
16292
|
}
|
|
16144
16293
|
case "implicitly_denied": {
|
|
16145
|
-
return /* @__PURE__ */
|
|
16294
|
+
return /* @__PURE__ */ jsx132(Warning, { sx: { color: "warning.main", fontSize: "1rem" } });
|
|
16146
16295
|
}
|
|
16147
16296
|
}
|
|
16148
16297
|
};
|
|
16149
16298
|
var IAMEventDetail = ({ event }) => {
|
|
16150
16299
|
const payloadString = event.attributes?.payload;
|
|
16151
16300
|
if (!payloadString) {
|
|
16152
|
-
return /* @__PURE__ */
|
|
16301
|
+
return /* @__PURE__ */ jsx132(Box9, { sx: { p: 2 }, children: /* @__PURE__ */ jsx132(Typography5, { sx: { fontWeight: 600 }, variant: "body2", children: "No IAM policy evaluation data available" }) });
|
|
16153
16302
|
}
|
|
16154
16303
|
const parsedIAM = parseIAMEvent(payloadString);
|
|
16155
16304
|
if (!parsedIAM) {
|
|
16156
|
-
return /* @__PURE__ */
|
|
16305
|
+
return /* @__PURE__ */ jsx132(Box9, { sx: { p: 2 }, children: /* @__PURE__ */ jsx132(Typography5, { sx: { fontWeight: 600 }, variant: "body2", children: "Failed to parse IAM event data" }) });
|
|
16157
16306
|
}
|
|
16158
|
-
return /* @__PURE__ */
|
|
16159
|
-
/* @__PURE__ */
|
|
16307
|
+
return /* @__PURE__ */ jsxs125(Box9, { sx: { p: 2 }, children: [
|
|
16308
|
+
/* @__PURE__ */ jsx132(Box9, { sx: { mb: 2 }, children: /* @__PURE__ */ jsx132(
|
|
16160
16309
|
Chip,
|
|
16161
16310
|
{
|
|
16162
|
-
icon: /* @__PURE__ */
|
|
16311
|
+
icon: /* @__PURE__ */ jsx132(PermissionIcon, { status: parsedIAM.permission }),
|
|
16163
16312
|
label: formatPermissionStatus(parsedIAM.permission),
|
|
16164
16313
|
size: "small",
|
|
16165
16314
|
sx: {
|
|
@@ -16169,13 +16318,13 @@ var IAMEventDetail = ({ event }) => {
|
|
|
16169
16318
|
variant: "outlined"
|
|
16170
16319
|
}
|
|
16171
16320
|
) }),
|
|
16172
|
-
/* @__PURE__ */
|
|
16173
|
-
/* @__PURE__ */
|
|
16174
|
-
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */
|
|
16321
|
+
/* @__PURE__ */ jsx132(DetailRow, { content: `${parsedIAM.service}:${parsedIAM.operation}`, label: "Operation" }),
|
|
16322
|
+
/* @__PURE__ */ jsx132(DetailRow, { content: parsedIAM.principal, label: "Principal" }),
|
|
16323
|
+
parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ jsx132(
|
|
16175
16324
|
DetailRow,
|
|
16176
16325
|
{
|
|
16177
|
-
content: /* @__PURE__ */
|
|
16178
|
-
|
|
16326
|
+
content: /* @__PURE__ */ jsx132(Box9, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ jsx132(
|
|
16327
|
+
Typography5,
|
|
16179
16328
|
{
|
|
16180
16329
|
sx: {
|
|
16181
16330
|
color: "text.primary"
|
|
@@ -16188,11 +16337,11 @@ var IAMEventDetail = ({ event }) => {
|
|
|
16188
16337
|
label: "Actions"
|
|
16189
16338
|
}
|
|
16190
16339
|
),
|
|
16191
|
-
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */
|
|
16340
|
+
parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ jsx132(
|
|
16192
16341
|
DetailRow,
|
|
16193
16342
|
{
|
|
16194
|
-
content: /* @__PURE__ */
|
|
16195
|
-
|
|
16343
|
+
content: /* @__PURE__ */ jsx132(Box9, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ jsx132(
|
|
16344
|
+
Typography5,
|
|
16196
16345
|
{
|
|
16197
16346
|
sx: {
|
|
16198
16347
|
color: "text.primary",
|
|
@@ -16206,20 +16355,20 @@ var IAMEventDetail = ({ event }) => {
|
|
|
16206
16355
|
label: "Resources"
|
|
16207
16356
|
}
|
|
16208
16357
|
),
|
|
16209
|
-
/* @__PURE__ */
|
|
16210
|
-
/* @__PURE__ */
|
|
16211
|
-
/* @__PURE__ */
|
|
16212
|
-
parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */
|
|
16213
|
-
/* @__PURE__ */
|
|
16214
|
-
/* @__PURE__ */
|
|
16358
|
+
/* @__PURE__ */ jsxs125(Box9, { sx: { mt: 2 }, children: [
|
|
16359
|
+
/* @__PURE__ */ jsx132(Typography5, { sx: { fontWeight: 600, mb: 1 }, variant: "caption", children: "Policy Evaluation" }),
|
|
16360
|
+
/* @__PURE__ */ jsxs125(Grid2, { container: true, spacing: 2, children: [
|
|
16361
|
+
parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */ jsx132(Grid2, { item: true, xs: 4, children: /* @__PURE__ */ jsxs125(Box9, { sx: { textAlign: "center" }, children: [
|
|
16362
|
+
/* @__PURE__ */ jsx132(Typography5, { color: "success.main", sx: { fontWeight: "bold" }, variant: "h6", children: parsedIAM.details.explicitAllows }),
|
|
16363
|
+
/* @__PURE__ */ jsx132(Typography5, { sx: { fontWeight: 600 }, variant: "caption", children: "Explicit Allows" })
|
|
16215
16364
|
] }) }),
|
|
16216
|
-
parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */
|
|
16217
|
-
/* @__PURE__ */
|
|
16218
|
-
/* @__PURE__ */
|
|
16365
|
+
parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */ jsx132(Grid2, { item: true, xs: 4, children: /* @__PURE__ */ jsxs125(Box9, { sx: { textAlign: "center" }, children: [
|
|
16366
|
+
/* @__PURE__ */ jsx132(Typography5, { color: "error.main", sx: { fontWeight: "bold" }, variant: "h6", children: parsedIAM.details.explicitDenies }),
|
|
16367
|
+
/* @__PURE__ */ jsx132(Typography5, { sx: { fontWeight: 600 }, variant: "caption", children: "Explicit Denies" })
|
|
16219
16368
|
] }) }),
|
|
16220
|
-
parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */
|
|
16221
|
-
/* @__PURE__ */
|
|
16222
|
-
/* @__PURE__ */
|
|
16369
|
+
parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */ jsx132(Grid2, { item: true, xs: 4, children: /* @__PURE__ */ jsxs125(Box9, { sx: { textAlign: "center" }, children: [
|
|
16370
|
+
/* @__PURE__ */ jsx132(Typography5, { color: "warning.main", sx: { fontWeight: "bold" }, variant: "h6", children: parsedIAM.details.implicitDenies }),
|
|
16371
|
+
/* @__PURE__ */ jsx132(Typography5, { sx: { fontWeight: 600 }, variant: "caption", children: "Implicit Denies" })
|
|
16223
16372
|
] }) })
|
|
16224
16373
|
] })
|
|
16225
16374
|
] })
|
|
@@ -16228,9 +16377,9 @@ var IAMEventDetail = ({ event }) => {
|
|
|
16228
16377
|
|
|
16229
16378
|
// src/components/event-details/iam-permission-detail.tsx
|
|
16230
16379
|
import { KeyboardArrowDown, KeyboardArrowRight } from "@mui/icons-material";
|
|
16231
|
-
import { Box as
|
|
16232
|
-
import { useMemo as useMemo8, useState as
|
|
16233
|
-
import { jsx as
|
|
16380
|
+
import { Box as Box10, Chip as Chip2, IconButton as IconButton2, Typography as Typography6 } from "@mui/material";
|
|
16381
|
+
import { useMemo as useMemo8, useState as useState11 } from "react";
|
|
16382
|
+
import { jsx as jsx133, jsxs as jsxs126 } from "react/jsx-runtime";
|
|
16234
16383
|
var getChipColors = (status) => {
|
|
16235
16384
|
const isAllowed = status === "explicitly_allowed" || status === "implicitly_allowed";
|
|
16236
16385
|
return {
|
|
@@ -16239,7 +16388,7 @@ var getChipColors = (status) => {
|
|
|
16239
16388
|
};
|
|
16240
16389
|
};
|
|
16241
16390
|
var IAMPermissionItem = ({ event }) => {
|
|
16242
|
-
const [isOpen, setIsOpen] =
|
|
16391
|
+
const [isOpen, setIsOpen] = useState11(false);
|
|
16243
16392
|
const parsedData = useMemo8(() => {
|
|
16244
16393
|
const payloadString = event.attributes?.payload;
|
|
16245
16394
|
if (!payloadString) {
|
|
@@ -16258,12 +16407,12 @@ var IAMPermissionItem = ({ event }) => {
|
|
|
16258
16407
|
return null;
|
|
16259
16408
|
}
|
|
16260
16409
|
const { chipColors, parsedIAM } = parsedData;
|
|
16261
|
-
return /* @__PURE__ */
|
|
16262
|
-
/* @__PURE__ */
|
|
16263
|
-
/* @__PURE__ */
|
|
16410
|
+
return /* @__PURE__ */ jsxs126(Box10, { sx: { mb: 1 }, children: [
|
|
16411
|
+
/* @__PURE__ */ jsxs126(Box10, { sx: { alignItems: "center", display: "flex" }, children: [
|
|
16412
|
+
/* @__PURE__ */ jsx133(IconButton2, { onClick: () => {
|
|
16264
16413
|
setIsOpen(!isOpen);
|
|
16265
|
-
}, size: "small", sx: { mr: 1, p: 0 }, children: isOpen ? /* @__PURE__ */
|
|
16266
|
-
/* @__PURE__ */
|
|
16414
|
+
}, size: "small", sx: { mr: 1, p: 0 }, children: isOpen ? /* @__PURE__ */ jsx133(KeyboardArrowDown, {}) : /* @__PURE__ */ jsx133(KeyboardArrowRight, {}) }),
|
|
16415
|
+
/* @__PURE__ */ jsx133(
|
|
16267
16416
|
Chip2,
|
|
16268
16417
|
{
|
|
16269
16418
|
label: formatPermissionStatus(parsedIAM.permission),
|
|
@@ -16275,19 +16424,19 @@ var IAMPermissionItem = ({ event }) => {
|
|
|
16275
16424
|
}
|
|
16276
16425
|
)
|
|
16277
16426
|
] }),
|
|
16278
|
-
isOpen && /* @__PURE__ */
|
|
16279
|
-
/* @__PURE__ */
|
|
16280
|
-
/* @__PURE__ */
|
|
16427
|
+
isOpen && /* @__PURE__ */ jsx133(Box10, { sx: { ml: 4, mt: 1 }, children: /* @__PURE__ */ jsxs126(Box10, { children: [
|
|
16428
|
+
/* @__PURE__ */ jsx133(Typography6, { sx: { fontWeight: 600 }, variant: "caption", children: "Principal" }),
|
|
16429
|
+
/* @__PURE__ */ jsx133(Typography6, { variant: "body2", children: parsedIAM.principal })
|
|
16281
16430
|
] }) })
|
|
16282
16431
|
] });
|
|
16283
16432
|
};
|
|
16284
|
-
var IAMPermissionDetail = ({ events }) => /* @__PURE__ */
|
|
16433
|
+
var IAMPermissionDetail = ({ events }) => /* @__PURE__ */ jsx133(Box10, { sx: { mt: 2 }, children: events.map((event) => /* @__PURE__ */ jsx133(IAMPermissionItem, { event }, `${event.span_id}-${event.event_id}`)) });
|
|
16285
16434
|
|
|
16286
16435
|
// src/components/event-details/event-detail.tsx
|
|
16287
|
-
import { Fragment as
|
|
16288
|
-
var DetailRow2 = ({ content, label }) => /* @__PURE__ */
|
|
16289
|
-
/* @__PURE__ */
|
|
16290
|
-
|
|
16436
|
+
import { Fragment as Fragment7, jsx as jsx134, jsxs as jsxs127 } from "react/jsx-runtime";
|
|
16437
|
+
var DetailRow2 = ({ content, label }) => /* @__PURE__ */ jsxs127(Grid3, { container: true, spacing: 0, sx: { mb: 1 }, children: [
|
|
16438
|
+
/* @__PURE__ */ jsx134(Grid3, { item: true, sx: { pr: 1 }, xs: 3, children: /* @__PURE__ */ jsx134(
|
|
16439
|
+
Typography7,
|
|
16291
16440
|
{
|
|
16292
16441
|
sx: {
|
|
16293
16442
|
color: "text.primary",
|
|
@@ -16297,8 +16446,8 @@ var DetailRow2 = ({ content, label }) => /* @__PURE__ */ jsxs126(Grid3, { contai
|
|
|
16297
16446
|
children: label
|
|
16298
16447
|
}
|
|
16299
16448
|
) }),
|
|
16300
|
-
/* @__PURE__ */
|
|
16301
|
-
|
|
16449
|
+
/* @__PURE__ */ jsx134(Grid3, { item: true, xs: 9, children: typeof content === "string" ? /* @__PURE__ */ jsx134(
|
|
16450
|
+
Typography7,
|
|
16302
16451
|
{
|
|
16303
16452
|
sx: {
|
|
16304
16453
|
color: "text.primary",
|
|
@@ -16310,8 +16459,8 @@ var DetailRow2 = ({ content, label }) => /* @__PURE__ */ jsxs126(Grid3, { contai
|
|
|
16310
16459
|
) : content })
|
|
16311
16460
|
] });
|
|
16312
16461
|
var EventMessage = ({ event }) => {
|
|
16313
|
-
const [isOpen, setIsOpen] =
|
|
16314
|
-
const [isOverflowing, setIsOverflowing] =
|
|
16462
|
+
const [isOpen, setIsOpen] = useState12(false);
|
|
16463
|
+
const [isOverflowing, setIsOverflowing] = useState12(false);
|
|
16315
16464
|
const textReference = useRef13(null);
|
|
16316
16465
|
const parsedMessage = useMemo9(() => parseEventMessage(event), [event]);
|
|
16317
16466
|
const isIAMPolicyEvent = useMemo9(
|
|
@@ -16339,21 +16488,21 @@ var EventMessage = ({ event }) => {
|
|
|
16339
16488
|
() => isOverflowing || hasAdditionalContent,
|
|
16340
16489
|
[isOverflowing, hasAdditionalContent]
|
|
16341
16490
|
);
|
|
16342
|
-
return /* @__PURE__ */
|
|
16343
|
-
/* @__PURE__ */
|
|
16344
|
-
Boolean(shouldShowToggle) && /* @__PURE__ */
|
|
16345
|
-
|
|
16491
|
+
return /* @__PURE__ */ jsxs127(Box11, { sx: { display: "flex", flexDirection: "column" }, children: [
|
|
16492
|
+
/* @__PURE__ */ jsxs127(Box11, { sx: { alignItems: "flex-start", display: "flex" }, children: [
|
|
16493
|
+
Boolean(shouldShowToggle) && /* @__PURE__ */ jsx134(
|
|
16494
|
+
IconButton3,
|
|
16346
16495
|
{
|
|
16347
16496
|
onClick: () => {
|
|
16348
16497
|
setIsOpen(!isOpen);
|
|
16349
16498
|
},
|
|
16350
16499
|
size: "small",
|
|
16351
16500
|
sx: { mr: 1, mt: -0.5, p: 0 },
|
|
16352
|
-
children: isOpen ? /* @__PURE__ */
|
|
16501
|
+
children: isOpen ? /* @__PURE__ */ jsx134(KeyboardArrowDown2, {}) : /* @__PURE__ */ jsx134(KeyboardArrowRight2, {})
|
|
16353
16502
|
}
|
|
16354
16503
|
),
|
|
16355
|
-
/* @__PURE__ */
|
|
16356
|
-
|
|
16504
|
+
/* @__PURE__ */ jsx134(
|
|
16505
|
+
Typography7,
|
|
16357
16506
|
{
|
|
16358
16507
|
ref: textReference,
|
|
16359
16508
|
sx: {
|
|
@@ -16370,9 +16519,9 @@ var EventMessage = ({ event }) => {
|
|
|
16370
16519
|
}
|
|
16371
16520
|
)
|
|
16372
16521
|
] }),
|
|
16373
|
-
isOpen && /* @__PURE__ */
|
|
16374
|
-
Boolean(parsedMessage.message) && /* @__PURE__ */
|
|
16375
|
-
Boolean(parsedMessage.details) && /* @__PURE__ */
|
|
16522
|
+
isOpen && /* @__PURE__ */ jsx134(Box11, { sx: { ml: 4, mt: 1 }, children: isIAMPolicyEvent ? /* @__PURE__ */ jsx134(IAMEventDetail, { event }) : /* @__PURE__ */ jsxs127(Fragment7, { children: [
|
|
16523
|
+
Boolean(parsedMessage.message) && /* @__PURE__ */ jsx134(DetailRow2, { content: parsedMessage.message, label: "Message:" }),
|
|
16524
|
+
Boolean(parsedMessage.details) && /* @__PURE__ */ jsx134(DetailRow2, { content: parsedMessage.details, label: "Details:" })
|
|
16376
16525
|
] }) })
|
|
16377
16526
|
] });
|
|
16378
16527
|
};
|
|
@@ -16401,17 +16550,17 @@ var EventDetail = ({
|
|
|
16401
16550
|
type
|
|
16402
16551
|
}) => {
|
|
16403
16552
|
if (type === "permission") {
|
|
16404
|
-
return /* @__PURE__ */
|
|
16405
|
-
/* @__PURE__ */
|
|
16406
|
-
|
|
16553
|
+
return /* @__PURE__ */ jsxs127(Box11, { children: [
|
|
16554
|
+
/* @__PURE__ */ jsx134(
|
|
16555
|
+
Box11,
|
|
16407
16556
|
{
|
|
16408
16557
|
sx: {
|
|
16409
16558
|
alignItems: "left",
|
|
16410
16559
|
display: "flex",
|
|
16411
16560
|
mb: 1
|
|
16412
16561
|
},
|
|
16413
|
-
children: /* @__PURE__ */
|
|
16414
|
-
|
|
16562
|
+
children: /* @__PURE__ */ jsx134(
|
|
16563
|
+
Typography7,
|
|
16415
16564
|
{
|
|
16416
16565
|
sx: {
|
|
16417
16566
|
alignItems: "left",
|
|
@@ -16425,13 +16574,13 @@ var EventDetail = ({
|
|
|
16425
16574
|
)
|
|
16426
16575
|
}
|
|
16427
16576
|
),
|
|
16428
|
-
/* @__PURE__ */
|
|
16577
|
+
/* @__PURE__ */ jsx134(IAMPermissionDetail, { events })
|
|
16429
16578
|
] });
|
|
16430
16579
|
}
|
|
16431
16580
|
const eventLevel = getEventLevelFromGroup(type);
|
|
16432
|
-
return /* @__PURE__ */
|
|
16433
|
-
/* @__PURE__ */
|
|
16434
|
-
|
|
16581
|
+
return /* @__PURE__ */ jsxs127(Box11, { children: [
|
|
16582
|
+
/* @__PURE__ */ jsxs127(
|
|
16583
|
+
Box11,
|
|
16435
16584
|
{
|
|
16436
16585
|
sx: {
|
|
16437
16586
|
alignItems: "left",
|
|
@@ -16440,9 +16589,9 @@ var EventDetail = ({
|
|
|
16440
16589
|
mb: 1
|
|
16441
16590
|
},
|
|
16442
16591
|
children: [
|
|
16443
|
-
/* @__PURE__ */
|
|
16444
|
-
/* @__PURE__ */
|
|
16445
|
-
|
|
16592
|
+
/* @__PURE__ */ jsx134(StatusIcon, { errorLevel: eventLevel }),
|
|
16593
|
+
/* @__PURE__ */ jsx134(
|
|
16594
|
+
Typography7,
|
|
16446
16595
|
{
|
|
16447
16596
|
sx: {
|
|
16448
16597
|
alignItems: "left",
|
|
@@ -16460,14 +16609,14 @@ var EventDetail = ({
|
|
|
16460
16609
|
]
|
|
16461
16610
|
}
|
|
16462
16611
|
),
|
|
16463
|
-
/* @__PURE__ */
|
|
16464
|
-
|
|
16612
|
+
/* @__PURE__ */ jsx134(Box11, { sx: { mt: 2 }, children: events.map((event) => /* @__PURE__ */ jsx134(
|
|
16613
|
+
Box11,
|
|
16465
16614
|
{
|
|
16466
16615
|
sx: {
|
|
16467
16616
|
maxWidth: "100%",
|
|
16468
16617
|
mb: 1
|
|
16469
16618
|
},
|
|
16470
|
-
children: /* @__PURE__ */
|
|
16619
|
+
children: /* @__PURE__ */ jsx134(EventMessage, { event })
|
|
16471
16620
|
},
|
|
16472
16621
|
`${event.span_id}-${event.event_id}`
|
|
16473
16622
|
)) })
|
|
@@ -26161,9 +26310,9 @@ var QueryStatus = {
|
|
|
26161
26310
|
};
|
|
26162
26311
|
|
|
26163
26312
|
// src/components/event-details/lambda-invoke-logs-section.tsx
|
|
26164
|
-
import { Box as
|
|
26165
|
-
import { useEffect as useEffect18, useMemo as useMemo10, useRef as useRef14, useState as
|
|
26166
|
-
import { jsx as
|
|
26313
|
+
import { Box as Box12, CircularProgress as CircularProgress2, Stack, Typography as Typography8 } from "@mui/material";
|
|
26314
|
+
import { useEffect as useEffect18, useMemo as useMemo10, useRef as useRef14, useState as useState13 } from "react";
|
|
26315
|
+
import { jsx as jsx135, jsxs as jsxs128 } from "react/jsx-runtime";
|
|
26167
26316
|
var POLL_INTERVAL_MS = 1e3;
|
|
26168
26317
|
async function pollQueryResults(client, queryId) {
|
|
26169
26318
|
return client.send(new GetQueryResultsCommand({ queryId }));
|
|
@@ -26191,9 +26340,9 @@ function useCloudWatchLogsClient(region) {
|
|
|
26191
26340
|
return client;
|
|
26192
26341
|
}
|
|
26193
26342
|
function useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, endTimeNano) {
|
|
26194
|
-
const [loading, setLoading] =
|
|
26195
|
-
const [logs, setLogs] =
|
|
26196
|
-
const [error, setError] =
|
|
26343
|
+
const [loading, setLoading] = useState13(true);
|
|
26344
|
+
const [logs, setLogs] = useState13([]);
|
|
26345
|
+
const [error, setError] = useState13();
|
|
26197
26346
|
const pollTimerRef = useRef14(null);
|
|
26198
26347
|
const cloudWatchLogs = useCloudWatchLogsClient(region);
|
|
26199
26348
|
useEffect18(() => {
|
|
@@ -26253,30 +26402,30 @@ function useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, en
|
|
|
26253
26402
|
var LambdaInvokeLogsSection = ({ endTimeNano, functionName: functionName2, region, requestId, startTimeNano }) => {
|
|
26254
26403
|
const { error, loading, logs } = useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, endTimeNano);
|
|
26255
26404
|
if (loading) {
|
|
26256
|
-
return /* @__PURE__ */
|
|
26257
|
-
/* @__PURE__ */
|
|
26258
|
-
/* @__PURE__ */
|
|
26405
|
+
return /* @__PURE__ */ jsxs128(Stack, { alignItems: "center", direction: "row", spacing: 1, children: [
|
|
26406
|
+
/* @__PURE__ */ jsx135(CircularProgress2, { size: 14 }),
|
|
26407
|
+
/* @__PURE__ */ jsx135(Typography8, { color: "text.secondary", variant: "body2", children: "Loading logs\u2026" })
|
|
26259
26408
|
] });
|
|
26260
26409
|
}
|
|
26261
26410
|
if (error !== void 0) {
|
|
26262
|
-
return /* @__PURE__ */
|
|
26411
|
+
return /* @__PURE__ */ jsx135(Typography8, { color: "error", variant: "body2", children: error.message });
|
|
26263
26412
|
}
|
|
26264
26413
|
if (logs.length === 0) {
|
|
26265
|
-
return /* @__PURE__ */
|
|
26414
|
+
return /* @__PURE__ */ jsx135(Typography8, { color: "text.secondary", variant: "body2", children: "No logs found for this invocation." });
|
|
26266
26415
|
}
|
|
26267
|
-
return /* @__PURE__ */
|
|
26416
|
+
return /* @__PURE__ */ jsx135(Box12, { sx: { backgroundColor: (theme) => theme.palette.background.default, borderRadius: 1, p: 1 }, children: /* @__PURE__ */ jsx135("pre", { style: { margin: 0, overflow: "auto" }, children: logs.map((log) => /* @__PURE__ */ jsx135(Typography8, { variant: "body2", children: `[${log.timestamp}] ${log.message}` }, log.ptr)) }) });
|
|
26268
26417
|
};
|
|
26269
26418
|
|
|
26270
26419
|
// src/components/event-details/toggle-section.tsx
|
|
26271
26420
|
import { KeyboardArrowDown as KeyboardArrowDown3, KeyboardArrowRight as KeyboardArrowRight3 } from "@mui/icons-material";
|
|
26272
|
-
import { Box as
|
|
26273
|
-
import { useState as
|
|
26274
|
-
import { jsx as
|
|
26421
|
+
import { Box as Box13, Typography as Typography9 } from "@mui/material";
|
|
26422
|
+
import { useState as useState14 } from "react";
|
|
26423
|
+
import { jsx as jsx136, jsxs as jsxs129 } from "react/jsx-runtime";
|
|
26275
26424
|
var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
26276
|
-
const [isOpen, setIsOpen] =
|
|
26277
|
-
return /* @__PURE__ */
|
|
26278
|
-
/* @__PURE__ */
|
|
26279
|
-
|
|
26425
|
+
const [isOpen, setIsOpen] = useState14(initialOpen);
|
|
26426
|
+
return /* @__PURE__ */ jsxs129(Box13, { sx: { mt: 4 }, children: [
|
|
26427
|
+
/* @__PURE__ */ jsxs129(
|
|
26428
|
+
Box13,
|
|
26280
26429
|
{
|
|
26281
26430
|
onClick: () => {
|
|
26282
26431
|
setIsOpen(!isOpen);
|
|
@@ -26289,8 +26438,8 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
|
26289
26438
|
mb: 1
|
|
26290
26439
|
},
|
|
26291
26440
|
children: [
|
|
26292
|
-
/* @__PURE__ */
|
|
26293
|
-
|
|
26441
|
+
/* @__PURE__ */ jsxs129(
|
|
26442
|
+
Box13,
|
|
26294
26443
|
{
|
|
26295
26444
|
role: "button",
|
|
26296
26445
|
sx: {
|
|
@@ -26299,23 +26448,23 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
|
|
|
26299
26448
|
gap: 1
|
|
26300
26449
|
},
|
|
26301
26450
|
children: [
|
|
26302
|
-
/* @__PURE__ */
|
|
26303
|
-
isOpen ? /* @__PURE__ */
|
|
26451
|
+
/* @__PURE__ */ jsx136(Typography9, { sx: { fontWeight: 600 }, variant: "subtitle2", children: headline }),
|
|
26452
|
+
isOpen ? /* @__PURE__ */ jsx136(KeyboardArrowDown3, { sx: { color: "text.secondary", height: 20, width: 20 } }) : /* @__PURE__ */ jsx136(KeyboardArrowRight3, { sx: { color: "text.secondary", height: 20, width: 20 } })
|
|
26304
26453
|
]
|
|
26305
26454
|
}
|
|
26306
26455
|
),
|
|
26307
|
-
action !== false && /* @__PURE__ */
|
|
26456
|
+
action !== false && /* @__PURE__ */ jsx136(Box13, { onClick: (event) => {
|
|
26308
26457
|
event.stopPropagation();
|
|
26309
26458
|
}, children: action })
|
|
26310
26459
|
]
|
|
26311
26460
|
}
|
|
26312
26461
|
),
|
|
26313
|
-
isOpen && /* @__PURE__ */
|
|
26462
|
+
isOpen && /* @__PURE__ */ jsx136(Box13, { children })
|
|
26314
26463
|
] });
|
|
26315
26464
|
};
|
|
26316
26465
|
|
|
26317
26466
|
// src/components/event-details/event-details.tsx
|
|
26318
|
-
import { Fragment as
|
|
26467
|
+
import { Fragment as Fragment8, jsx as jsx137, jsxs as jsxs130 } from "react/jsx-runtime";
|
|
26319
26468
|
function tryParseJson(value) {
|
|
26320
26469
|
if (typeof value !== "string") {
|
|
26321
26470
|
return value;
|
|
@@ -26344,9 +26493,9 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
26344
26493
|
() => getEventGroupsByType(selectedEvent?.events ?? []),
|
|
26345
26494
|
[selectedEvent?.events]
|
|
26346
26495
|
);
|
|
26347
|
-
const [parseNestedJson, setParseNestedJson] =
|
|
26496
|
+
const [parseNestedJson, setParseNestedJson] = useState15(true);
|
|
26348
26497
|
if (!selectedEvent) {
|
|
26349
|
-
return /* @__PURE__ */
|
|
26498
|
+
return /* @__PURE__ */ jsx137(Box14, { sx: { p: 3, textAlign: "center" }, children: /* @__PURE__ */ jsx137(Typography10, { color: "text.secondary", variant: "body2", children: "Select an event to view details" }) });
|
|
26350
26499
|
}
|
|
26351
26500
|
const isLambdaInvoke = checkIsLambdaInvoke(selectedEvent);
|
|
26352
26501
|
const isSqsSendMessage = checkIsSqsSendMessage(selectedEvent);
|
|
@@ -26367,9 +26516,9 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
26367
26516
|
const exceptionPayload = tryParseJson(selectedEvent.attributes?.["localstack.aws.service.exception"]);
|
|
26368
26517
|
const hasPayloads = requestPayload !== void 0 || responsePayload !== void 0 || exceptionPayload !== void 0;
|
|
26369
26518
|
const duration = selectedEvent.end_time_unix_nano ? ((BigInt(selectedEvent.end_time_unix_nano) - BigInt(selectedEvent.start_time_unix_nano)) / BigInt("1000000")).toString() : void 0;
|
|
26370
|
-
return /* @__PURE__ */
|
|
26371
|
-
/* @__PURE__ */
|
|
26372
|
-
|
|
26519
|
+
return /* @__PURE__ */ jsxs130(Box14, { "data-testid": "event-details", sx: { display: "flex", flexDirection: "column", height: "100%" }, children: [
|
|
26520
|
+
/* @__PURE__ */ jsxs130(
|
|
26521
|
+
Box14,
|
|
26373
26522
|
{
|
|
26374
26523
|
sx: {
|
|
26375
26524
|
alignItems: "center",
|
|
@@ -26381,57 +26530,57 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
26381
26530
|
py: 1
|
|
26382
26531
|
},
|
|
26383
26532
|
children: [
|
|
26384
|
-
/* @__PURE__ */
|
|
26385
|
-
onClose && /* @__PURE__ */
|
|
26533
|
+
/* @__PURE__ */ jsx137(Box14, { children: /* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "h6", children: "Operation Details" }) }),
|
|
26534
|
+
onClose && /* @__PURE__ */ jsx137(IconButton4, { onClick: onClose, size: "small", children: /* @__PURE__ */ jsx137(Close2, {}) })
|
|
26386
26535
|
]
|
|
26387
26536
|
}
|
|
26388
26537
|
),
|
|
26389
|
-
/* @__PURE__ */
|
|
26390
|
-
/* @__PURE__ */
|
|
26391
|
-
/* @__PURE__ */
|
|
26392
|
-
/* @__PURE__ */
|
|
26393
|
-
/* @__PURE__ */
|
|
26394
|
-
/* @__PURE__ */
|
|
26538
|
+
/* @__PURE__ */ jsx137(Box14, { sx: { flexGrow: 1, overflow: "auto", p: 2 }, children: /* @__PURE__ */ jsxs130(Stack2, { spacing: 2, children: [
|
|
26539
|
+
/* @__PURE__ */ jsx137(ToggleSection, { headline: "Basic Information", children: /* @__PURE__ */ jsxs130(Stack2, { spacing: 1, children: [
|
|
26540
|
+
/* @__PURE__ */ jsxs130(Box14, { sx: { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" }, children: [
|
|
26541
|
+
/* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26542
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Service" }),
|
|
26543
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: selectedEvent.service_name })
|
|
26395
26544
|
] }),
|
|
26396
|
-
/* @__PURE__ */
|
|
26397
|
-
/* @__PURE__ */
|
|
26398
|
-
/* @__PURE__ */
|
|
26545
|
+
/* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26546
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Operation" }),
|
|
26547
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: selectedEvent.operation_name })
|
|
26399
26548
|
] })
|
|
26400
26549
|
] }),
|
|
26401
|
-
/* @__PURE__ */
|
|
26402
|
-
/* @__PURE__ */
|
|
26403
|
-
/* @__PURE__ */
|
|
26550
|
+
/* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26551
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource" }),
|
|
26552
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: selectedEvent.resource_name })
|
|
26404
26553
|
] }),
|
|
26405
|
-
Boolean(resourceArn) && /* @__PURE__ */
|
|
26406
|
-
/* @__PURE__ */
|
|
26407
|
-
/* @__PURE__ */
|
|
26554
|
+
Boolean(resourceArn) && /* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26555
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource ARN" }),
|
|
26556
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: resourceArn })
|
|
26408
26557
|
] }),
|
|
26409
|
-
/* @__PURE__ */
|
|
26410
|
-
/* @__PURE__ */
|
|
26411
|
-
/* @__PURE__ */
|
|
26412
|
-
/* @__PURE__ */
|
|
26558
|
+
/* @__PURE__ */ jsxs130(Box14, { sx: { display: "grid", gap: 1, gridTemplateColumns: "1.3fr 1fr" }, children: [
|
|
26559
|
+
/* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26560
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Account" }),
|
|
26561
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: selectedEvent.account_id })
|
|
26413
26562
|
] }),
|
|
26414
|
-
/* @__PURE__ */
|
|
26415
|
-
/* @__PURE__ */
|
|
26416
|
-
/* @__PURE__ */
|
|
26563
|
+
/* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26564
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Region" }),
|
|
26565
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: selectedEvent.region })
|
|
26417
26566
|
] })
|
|
26418
26567
|
] }),
|
|
26419
|
-
/* @__PURE__ */
|
|
26420
|
-
/* @__PURE__ */
|
|
26421
|
-
/* @__PURE__ */
|
|
26422
|
-
/* @__PURE__ */
|
|
26568
|
+
/* @__PURE__ */ jsxs130(Box14, { sx: { display: "grid", gap: 1, gridTemplateColumns: duration === void 0 ? "1fr" : "1.3fr 1fr" }, children: [
|
|
26569
|
+
/* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26570
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Start Time" }),
|
|
26571
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: unixNanoToDate(selectedEvent.start_time_unix_nano)?.toISOString() })
|
|
26423
26572
|
] }),
|
|
26424
|
-
duration !== void 0 && /* @__PURE__ */
|
|
26425
|
-
/* @__PURE__ */
|
|
26426
|
-
/* @__PURE__ */
|
|
26573
|
+
duration !== void 0 && /* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26574
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Duration" }),
|
|
26575
|
+
/* @__PURE__ */ jsxs130(Typography10, { variant: "body2", children: [
|
|
26427
26576
|
duration,
|
|
26428
26577
|
"ms"
|
|
26429
26578
|
] })
|
|
26430
26579
|
] })
|
|
26431
26580
|
] }),
|
|
26432
|
-
/* @__PURE__ */
|
|
26433
|
-
/* @__PURE__ */
|
|
26434
|
-
/* @__PURE__ */
|
|
26581
|
+
/* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26582
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Status" }),
|
|
26583
|
+
/* @__PURE__ */ jsx137(Stack2, { alignItems: "center", direction: "row", flexWrap: "wrap", gap: 1, sx: { mb: eventGroups.errors || eventGroups.warnings ? 1 : 0 }, children: /* @__PURE__ */ jsx137(
|
|
26435
26584
|
Chip3,
|
|
26436
26585
|
{
|
|
26437
26586
|
color: selectedEvent.status_code === 2 ? "error" : selectedEvent.status_code === 1 ? "success" : "default",
|
|
@@ -26441,49 +26590,49 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
26441
26590
|
) })
|
|
26442
26591
|
] })
|
|
26443
26592
|
] }) }),
|
|
26444
|
-
/* @__PURE__ */
|
|
26445
|
-
/* @__PURE__ */
|
|
26446
|
-
!eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */
|
|
26447
|
-
eventGroups.permissions && /* @__PURE__ */
|
|
26448
|
-
eventGroups.errors && /* @__PURE__ */
|
|
26449
|
-
eventGroups.warnings && /* @__PURE__ */
|
|
26593
|
+
/* @__PURE__ */ jsx137(Divider3, {}),
|
|
26594
|
+
/* @__PURE__ */ jsxs130(ToggleSection, { headline: "Permissions", children: [
|
|
26595
|
+
!eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */ jsx137(Typography10, { color: "text.secondary", variant: "body2", children: "There is no permission information available. Are IAM Policy Streams enabled?" }),
|
|
26596
|
+
eventGroups.permissions && /* @__PURE__ */ jsx137(EventDetail, { displayText: "Permissions", events: eventGroups.permissions, type: "permission" }),
|
|
26597
|
+
eventGroups.errors && /* @__PURE__ */ jsx137(EventDetail, { displayText: "Error", events: eventGroups.errors, type: "error" }),
|
|
26598
|
+
eventGroups.warnings && /* @__PURE__ */ jsx137(EventDetail, { displayText: "Warning", events: eventGroups.warnings, type: "warning" })
|
|
26450
26599
|
] }),
|
|
26451
|
-
hasPayloads && /* @__PURE__ */
|
|
26452
|
-
/* @__PURE__ */
|
|
26453
|
-
/* @__PURE__ */
|
|
26600
|
+
hasPayloads && /* @__PURE__ */ jsxs130(Fragment8, { children: [
|
|
26601
|
+
/* @__PURE__ */ jsx137(Divider3, {}),
|
|
26602
|
+
/* @__PURE__ */ jsx137(
|
|
26454
26603
|
ToggleSection,
|
|
26455
26604
|
{
|
|
26456
|
-
action: /* @__PURE__ */
|
|
26605
|
+
action: /* @__PURE__ */ jsx137(
|
|
26457
26606
|
FormControlLabel2,
|
|
26458
26607
|
{
|
|
26459
|
-
control: /* @__PURE__ */
|
|
26608
|
+
control: /* @__PURE__ */ jsx137(Switch, { checked: !parseNestedJson, onChange: (event) => {
|
|
26460
26609
|
setParseNestedJson(!event.target.checked);
|
|
26461
26610
|
}, size: "small" }),
|
|
26462
|
-
label: /* @__PURE__ */
|
|
26611
|
+
label: /* @__PURE__ */ jsx137(Typography10, { variant: "caption", children: "View raw data" }),
|
|
26463
26612
|
sx: { mr: 0 }
|
|
26464
26613
|
}
|
|
26465
26614
|
),
|
|
26466
26615
|
headline: "Payloads",
|
|
26467
|
-
children: /* @__PURE__ */
|
|
26468
|
-
requestPayload !== void 0 && /* @__PURE__ */
|
|
26469
|
-
/* @__PURE__ */
|
|
26470
|
-
/* @__PURE__ */
|
|
26616
|
+
children: /* @__PURE__ */ jsxs130(Stack2, { spacing: 2, children: [
|
|
26617
|
+
requestPayload !== void 0 && /* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26618
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Request" }),
|
|
26619
|
+
/* @__PURE__ */ jsx137(PayloadViewer, { value: requestPayload })
|
|
26471
26620
|
] }),
|
|
26472
|
-
responsePayload !== void 0 && /* @__PURE__ */
|
|
26473
|
-
/* @__PURE__ */
|
|
26474
|
-
/* @__PURE__ */
|
|
26621
|
+
responsePayload !== void 0 && /* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26622
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Response" }),
|
|
26623
|
+
/* @__PURE__ */ jsx137(PayloadViewer, { value: responsePayload })
|
|
26475
26624
|
] }),
|
|
26476
|
-
exceptionPayload !== void 0 && /* @__PURE__ */
|
|
26477
|
-
/* @__PURE__ */
|
|
26478
|
-
/* @__PURE__ */
|
|
26625
|
+
exceptionPayload !== void 0 && /* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26626
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Exception" }),
|
|
26627
|
+
/* @__PURE__ */ jsx137(PayloadViewer, { value: exceptionPayload })
|
|
26479
26628
|
] })
|
|
26480
26629
|
] })
|
|
26481
26630
|
}
|
|
26482
26631
|
)
|
|
26483
26632
|
] }),
|
|
26484
|
-
isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */
|
|
26485
|
-
/* @__PURE__ */
|
|
26486
|
-
/* @__PURE__ */
|
|
26633
|
+
isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */ jsxs130(Fragment8, { children: [
|
|
26634
|
+
/* @__PURE__ */ jsx137(Divider3, {}),
|
|
26635
|
+
/* @__PURE__ */ jsx137(ToggleSection, { headline: "Lambda Logs", children: /* @__PURE__ */ jsx137(
|
|
26487
26636
|
LambdaInvokeLogsSection,
|
|
26488
26637
|
{
|
|
26489
26638
|
endTimeNano: selectedEvent.end_time_unix_nano ?? selectedEvent.start_time_unix_nano,
|
|
@@ -26494,28 +26643,28 @@ var EventDetails = ({ onClose, selectedEvent }) => {
|
|
|
26494
26643
|
}
|
|
26495
26644
|
) })
|
|
26496
26645
|
] }),
|
|
26497
|
-
/* @__PURE__ */
|
|
26498
|
-
/* @__PURE__ */
|
|
26499
|
-
/* @__PURE__ */
|
|
26500
|
-
/* @__PURE__ */
|
|
26501
|
-
/* @__PURE__ */
|
|
26646
|
+
/* @__PURE__ */ jsx137(Divider3, {}),
|
|
26647
|
+
/* @__PURE__ */ jsx137(ToggleSection, { headline: "Advanced Information", initialOpen: false, children: /* @__PURE__ */ jsxs130(Stack2, { spacing: 1, children: [
|
|
26648
|
+
/* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26649
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Span ID" }),
|
|
26650
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: selectedEvent.span_id })
|
|
26502
26651
|
] }),
|
|
26503
|
-
/* @__PURE__ */
|
|
26504
|
-
/* @__PURE__ */
|
|
26505
|
-
/* @__PURE__ */
|
|
26652
|
+
/* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26653
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Trace ID" }),
|
|
26654
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: selectedEvent.trace_id })
|
|
26506
26655
|
] }),
|
|
26507
|
-
requestId !== void 0 && /* @__PURE__ */
|
|
26508
|
-
/* @__PURE__ */
|
|
26509
|
-
/* @__PURE__ */
|
|
26656
|
+
requestId !== void 0 && /* @__PURE__ */ jsxs130(Box14, { children: [
|
|
26657
|
+
/* @__PURE__ */ jsx137(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Request ID" }),
|
|
26658
|
+
/* @__PURE__ */ jsx137(Typography10, { variant: "body2", children: requestId })
|
|
26510
26659
|
] }),
|
|
26511
|
-
eventGroups.info && /* @__PURE__ */
|
|
26660
|
+
eventGroups.info && /* @__PURE__ */ jsx137(EventDetail, { displayText: "Info", events: eventGroups.info, type: "info" })
|
|
26512
26661
|
] }) })
|
|
26513
26662
|
] }) })
|
|
26514
26663
|
] });
|
|
26515
26664
|
};
|
|
26516
26665
|
var PayloadViewer = memo10(({ value }) => {
|
|
26517
26666
|
const theme = useTheme3();
|
|
26518
|
-
return /* @__PURE__ */
|
|
26667
|
+
return /* @__PURE__ */ jsx137(Box14, { sx: { backgroundColor: "background.default", borderRadius: 1, fontSize: 12, overflow: "auto", p: 1 }, children: /* @__PURE__ */ jsx137(
|
|
26519
26668
|
JsonViewer,
|
|
26520
26669
|
{
|
|
26521
26670
|
displayDataTypes: false,
|
|
@@ -26530,32 +26679,32 @@ var PayloadViewer = memo10(({ value }) => {
|
|
|
26530
26679
|
|
|
26531
26680
|
// src/components/trace-graph/trace-graph.tsx
|
|
26532
26681
|
import "@xyflow/react/dist/base.css";
|
|
26533
|
-
import { Alert as Alert3, Button as
|
|
26682
|
+
import { Alert as Alert3, Button as Button5, useTheme as useTheme4 } from "@mui/material";
|
|
26534
26683
|
import { Background, MarkerType, Position as Position2, ReactFlow, useEdgesState, useNodesState } from "@xyflow/react";
|
|
26535
26684
|
import { useEffect as useEffect19 } from "react";
|
|
26536
26685
|
|
|
26537
26686
|
// src/components/trace-graph/service-node.tsx
|
|
26538
|
-
import { Box as
|
|
26687
|
+
import { Box as Box16, Stack as Stack3, Typography as Typography11 } from "@mui/material";
|
|
26539
26688
|
import "@xyflow/react/dist/style.css";
|
|
26540
26689
|
import { Handle, Position } from "@xyflow/react";
|
|
26541
26690
|
import { memo as memo11 } from "react";
|
|
26542
26691
|
|
|
26543
26692
|
// src/components/trace-graph/problem-indicator.tsx
|
|
26544
26693
|
import { Error as ErrorIcon2, Info as Info2, Warning as Warning2 } from "@mui/icons-material";
|
|
26545
|
-
import { Box as
|
|
26694
|
+
import { Box as Box15, Tooltip as Tooltip4 } from "@mui/material";
|
|
26546
26695
|
import { useMemo as useMemo12 } from "react";
|
|
26547
|
-
import { jsx as
|
|
26696
|
+
import { jsx as jsx138 } from "react/jsx-runtime";
|
|
26548
26697
|
var ProblemIndicator = ({ error }) => {
|
|
26549
26698
|
const icon = useMemo12(() => {
|
|
26550
26699
|
switch (error.level) {
|
|
26551
26700
|
case "error": {
|
|
26552
|
-
return /* @__PURE__ */
|
|
26701
|
+
return /* @__PURE__ */ jsx138(ErrorIcon2, { sx: { color: "#d32f2f", fontSize: "14px" } });
|
|
26553
26702
|
}
|
|
26554
26703
|
case "warning": {
|
|
26555
|
-
return /* @__PURE__ */
|
|
26704
|
+
return /* @__PURE__ */ jsx138(Warning2, { sx: { color: "#ff9800", fontSize: "14px" } });
|
|
26556
26705
|
}
|
|
26557
26706
|
default: {
|
|
26558
|
-
return /* @__PURE__ */
|
|
26707
|
+
return /* @__PURE__ */ jsx138(Info2, { sx: { color: "#2196f3", fontSize: "14px" } });
|
|
26559
26708
|
}
|
|
26560
26709
|
}
|
|
26561
26710
|
}, [error.level]);
|
|
@@ -26572,8 +26721,8 @@ var ProblemIndicator = ({ error }) => {
|
|
|
26572
26721
|
}
|
|
26573
26722
|
}
|
|
26574
26723
|
}, [error.level]);
|
|
26575
|
-
return /* @__PURE__ */
|
|
26576
|
-
|
|
26724
|
+
return /* @__PURE__ */ jsx138(Tooltip4, { arrow: true, title: error.message ?? "Issue detected", children: /* @__PURE__ */ jsx138(
|
|
26725
|
+
Box15,
|
|
26577
26726
|
{
|
|
26578
26727
|
sx: {
|
|
26579
26728
|
alignItems: "center",
|
|
@@ -26592,7 +26741,7 @@ var ProblemIndicator = ({ error }) => {
|
|
|
26592
26741
|
};
|
|
26593
26742
|
|
|
26594
26743
|
// src/components/trace-graph/service-node.tsx
|
|
26595
|
-
import { jsx as
|
|
26744
|
+
import { jsx as jsx139, jsxs as jsxs131 } from "react/jsx-runtime";
|
|
26596
26745
|
var handleStyle = {
|
|
26597
26746
|
backgroundColor: "white",
|
|
26598
26747
|
borderColor: "lightgray",
|
|
@@ -26600,9 +26749,9 @@ var handleStyle = {
|
|
|
26600
26749
|
};
|
|
26601
26750
|
var ServiceNode = memo11(({ data, selected }) => {
|
|
26602
26751
|
const hasErrors = (data.event.errors && data.event.errors.length > 0) ?? false;
|
|
26603
|
-
return /* @__PURE__ */
|
|
26604
|
-
/* @__PURE__ */
|
|
26605
|
-
|
|
26752
|
+
return /* @__PURE__ */ jsxs131(Box16, { sx: { maxWidth: 200 }, children: [
|
|
26753
|
+
/* @__PURE__ */ jsxs131(
|
|
26754
|
+
Box16,
|
|
26606
26755
|
{
|
|
26607
26756
|
role: "button",
|
|
26608
26757
|
sx: {
|
|
@@ -26622,9 +26771,9 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
26622
26771
|
},
|
|
26623
26772
|
tabIndex: 0,
|
|
26624
26773
|
children: [
|
|
26625
|
-
/* @__PURE__ */
|
|
26626
|
-
/* @__PURE__ */
|
|
26627
|
-
/* @__PURE__ */
|
|
26774
|
+
/* @__PURE__ */ jsx139(Handle, { position: Position.Left, style: handleStyle, type: "target" }),
|
|
26775
|
+
/* @__PURE__ */ jsx139(Handle, { position: Position.Right, style: handleStyle, type: "source" }),
|
|
26776
|
+
/* @__PURE__ */ jsx139(
|
|
26628
26777
|
ServiceCell,
|
|
26629
26778
|
{
|
|
26630
26779
|
height: "32px",
|
|
@@ -26637,7 +26786,7 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
26637
26786
|
]
|
|
26638
26787
|
}
|
|
26639
26788
|
),
|
|
26640
|
-
/* @__PURE__ */
|
|
26789
|
+
/* @__PURE__ */ jsxs131(
|
|
26641
26790
|
Stack3,
|
|
26642
26791
|
{
|
|
26643
26792
|
alignItems: "center",
|
|
@@ -26648,7 +26797,7 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
26648
26797
|
mt: 0.5
|
|
26649
26798
|
},
|
|
26650
26799
|
children: [
|
|
26651
|
-
hasErrors && /* @__PURE__ */
|
|
26800
|
+
hasErrors && /* @__PURE__ */ jsx139(
|
|
26652
26801
|
Stack3,
|
|
26653
26802
|
{
|
|
26654
26803
|
direction: "row",
|
|
@@ -26657,11 +26806,11 @@ var ServiceNode = memo11(({ data, selected }) => {
|
|
|
26657
26806
|
flexWrap: "wrap",
|
|
26658
26807
|
gap: "2px"
|
|
26659
26808
|
},
|
|
26660
|
-
children: data.event.errors?.map((error) => /* @__PURE__ */
|
|
26809
|
+
children: data.event.errors?.map((error) => /* @__PURE__ */ jsx139(ProblemIndicator, { error }, error.span_id))
|
|
26661
26810
|
}
|
|
26662
26811
|
),
|
|
26663
|
-
/* @__PURE__ */
|
|
26664
|
-
|
|
26812
|
+
/* @__PURE__ */ jsx139(
|
|
26813
|
+
Typography11,
|
|
26665
26814
|
{
|
|
26666
26815
|
sx: {
|
|
26667
26816
|
fontSize: "0.9rem",
|
|
@@ -26712,11 +26861,11 @@ var getLayoutedNodesAndEdges = (inputNodes, inputEdges) => {
|
|
|
26712
26861
|
|
|
26713
26862
|
// src/components/trace-graph/xyflow/controls.tsx
|
|
26714
26863
|
import { Add, FitScreen, Remove } from "@mui/icons-material";
|
|
26715
|
-
import { Box as
|
|
26864
|
+
import { Box as Box17, IconButton as IconButton5 } from "@mui/material";
|
|
26716
26865
|
import { useReactFlow, useStore as useStore2 } from "@xyflow/react";
|
|
26717
26866
|
import { memo as memo12 } from "react";
|
|
26718
26867
|
import { shallow } from "zustand/shallow";
|
|
26719
|
-
import { jsx as
|
|
26868
|
+
import { jsx as jsx140, jsxs as jsxs132 } from "react/jsx-runtime";
|
|
26720
26869
|
var selector = (s2) => ({
|
|
26721
26870
|
isInteractive: s2.nodesDraggable || s2.nodesConnectable || s2.elementsSelectable,
|
|
26722
26871
|
maxZoomReached: s2.transform[2] >= s2.maxZoom,
|
|
@@ -26734,8 +26883,8 @@ var Controls = memo12(() => {
|
|
|
26734
26883
|
const onFitViewHandler = () => {
|
|
26735
26884
|
void fitView();
|
|
26736
26885
|
};
|
|
26737
|
-
return /* @__PURE__ */
|
|
26738
|
-
|
|
26886
|
+
return /* @__PURE__ */ jsxs132(
|
|
26887
|
+
Box17,
|
|
26739
26888
|
{
|
|
26740
26889
|
sx: {
|
|
26741
26890
|
bottom: 0,
|
|
@@ -26748,33 +26897,33 @@ var Controls = memo12(() => {
|
|
|
26748
26897
|
zIndex: 5
|
|
26749
26898
|
},
|
|
26750
26899
|
children: [
|
|
26751
|
-
/* @__PURE__ */
|
|
26752
|
-
|
|
26900
|
+
/* @__PURE__ */ jsx140(
|
|
26901
|
+
IconButton5,
|
|
26753
26902
|
{
|
|
26754
26903
|
className: "react-flow__controls-zoomin",
|
|
26755
26904
|
disabled: maxZoomReached,
|
|
26756
26905
|
onClick: onZoomInHandler,
|
|
26757
26906
|
size: "small",
|
|
26758
|
-
children: /* @__PURE__ */
|
|
26907
|
+
children: /* @__PURE__ */ jsx140(Add, {})
|
|
26759
26908
|
}
|
|
26760
26909
|
),
|
|
26761
|
-
/* @__PURE__ */
|
|
26762
|
-
|
|
26910
|
+
/* @__PURE__ */ jsx140(
|
|
26911
|
+
IconButton5,
|
|
26763
26912
|
{
|
|
26764
26913
|
className: "react-flow__controls-zoomout",
|
|
26765
26914
|
disabled: minZoomReached,
|
|
26766
26915
|
onClick: onZoomOutHandler,
|
|
26767
26916
|
size: "small",
|
|
26768
|
-
children: /* @__PURE__ */
|
|
26917
|
+
children: /* @__PURE__ */ jsx140(Remove, {})
|
|
26769
26918
|
}
|
|
26770
26919
|
),
|
|
26771
|
-
/* @__PURE__ */
|
|
26772
|
-
|
|
26920
|
+
/* @__PURE__ */ jsx140(
|
|
26921
|
+
IconButton5,
|
|
26773
26922
|
{
|
|
26774
26923
|
className: "react-flow__controls-fitview",
|
|
26775
26924
|
onClick: onFitViewHandler,
|
|
26776
26925
|
size: "small",
|
|
26777
|
-
children: /* @__PURE__ */
|
|
26926
|
+
children: /* @__PURE__ */ jsx140(FitScreen, {})
|
|
26778
26927
|
}
|
|
26779
26928
|
)
|
|
26780
26929
|
]
|
|
@@ -26783,7 +26932,7 @@ var Controls = memo12(() => {
|
|
|
26783
26932
|
});
|
|
26784
26933
|
|
|
26785
26934
|
// src/components/trace-graph/trace-graph.tsx
|
|
26786
|
-
import { Fragment as
|
|
26935
|
+
import { Fragment as Fragment9, jsx as jsx141, jsxs as jsxs133 } from "react/jsx-runtime";
|
|
26787
26936
|
var nodeTypes = {
|
|
26788
26937
|
service: ServiceNode
|
|
26789
26938
|
};
|
|
@@ -26846,11 +26995,11 @@ var TraceGraph = ({
|
|
|
26846
26995
|
setEdges(layoutedEdges);
|
|
26847
26996
|
}, [spans.data, initialFocusEventId, setNodes, setEdges]);
|
|
26848
26997
|
const theme = useTheme4();
|
|
26849
|
-
return /* @__PURE__ */
|
|
26850
|
-
spans.error && /* @__PURE__ */
|
|
26998
|
+
return /* @__PURE__ */ jsxs133(Fragment9, { children: [
|
|
26999
|
+
spans.error && /* @__PURE__ */ jsxs133(
|
|
26851
27000
|
Alert3,
|
|
26852
27001
|
{
|
|
26853
|
-
action: /* @__PURE__ */
|
|
27002
|
+
action: /* @__PURE__ */ jsx141(Button5, { onClick: () => {
|
|
26854
27003
|
onRefresh();
|
|
26855
27004
|
}, children: "Retry" }),
|
|
26856
27005
|
severity: "error",
|
|
@@ -26861,7 +27010,7 @@ var TraceGraph = ({
|
|
|
26861
27010
|
]
|
|
26862
27011
|
}
|
|
26863
27012
|
),
|
|
26864
|
-
/* @__PURE__ */
|
|
27013
|
+
/* @__PURE__ */ jsxs133(
|
|
26865
27014
|
ReactFlow,
|
|
26866
27015
|
{
|
|
26867
27016
|
"data-testid": "trace-graph",
|
|
@@ -26879,8 +27028,8 @@ var TraceGraph = ({
|
|
|
26879
27028
|
onNodesChange,
|
|
26880
27029
|
selectNodesOnDrag: false,
|
|
26881
27030
|
children: [
|
|
26882
|
-
/* @__PURE__ */
|
|
26883
|
-
/* @__PURE__ */
|
|
27031
|
+
/* @__PURE__ */ jsx141(Controls, {}),
|
|
27032
|
+
/* @__PURE__ */ jsx141(
|
|
26884
27033
|
Background,
|
|
26885
27034
|
{
|
|
26886
27035
|
bgColor: theme.palette.background.paper,
|
|
@@ -26894,7 +27043,7 @@ var TraceGraph = ({
|
|
|
26894
27043
|
};
|
|
26895
27044
|
|
|
26896
27045
|
// src/pages/trace-graph-page.tsx
|
|
26897
|
-
import { Fragment as
|
|
27046
|
+
import { Fragment as Fragment10, jsx as jsx142, jsxs as jsxs134 } from "react/jsx-runtime";
|
|
26898
27047
|
var HEADER_HEIGHT = 56;
|
|
26899
27048
|
var DRAWER_WIDTH = "35%";
|
|
26900
27049
|
var Main = styled("main", { shouldForwardProp: (property) => property !== "open" })(({ open, theme }) => ({
|
|
@@ -26942,8 +27091,8 @@ var TraceGraphView = ({
|
|
|
26942
27091
|
traceId
|
|
26943
27092
|
}) => {
|
|
26944
27093
|
const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
|
|
26945
|
-
return /* @__PURE__ */
|
|
26946
|
-
|
|
27094
|
+
return /* @__PURE__ */ jsxs134(
|
|
27095
|
+
Box18,
|
|
26947
27096
|
{
|
|
26948
27097
|
"data-testid": "trace-graph-page",
|
|
26949
27098
|
sx: {
|
|
@@ -26955,13 +27104,13 @@ var TraceGraphView = ({
|
|
|
26955
27104
|
overflow: "hidden"
|
|
26956
27105
|
},
|
|
26957
27106
|
children: [
|
|
26958
|
-
/* @__PURE__ */
|
|
26959
|
-
/* @__PURE__ */
|
|
27107
|
+
/* @__PURE__ */ jsxs134(Box18, { sx: { display: "flex", width: "100%" }, children: [
|
|
27108
|
+
/* @__PURE__ */ jsx142(Button6, { onClick: () => {
|
|
26960
27109
|
navigateToSpansList();
|
|
26961
|
-
}, startIcon: /* @__PURE__ */
|
|
26962
|
-
/* @__PURE__ */
|
|
27110
|
+
}, startIcon: /* @__PURE__ */ jsx142(ArrowBack, {}), children: "Go back" }),
|
|
27111
|
+
/* @__PURE__ */ jsx142(Box18, { sx: { flexGrow: 1 } })
|
|
26963
27112
|
] }),
|
|
26964
|
-
/* @__PURE__ */
|
|
27113
|
+
/* @__PURE__ */ jsx142(
|
|
26965
27114
|
Paper3,
|
|
26966
27115
|
{
|
|
26967
27116
|
sx: {
|
|
@@ -26971,22 +27120,22 @@ var TraceGraphView = ({
|
|
|
26971
27120
|
position: "relative",
|
|
26972
27121
|
width: "100%"
|
|
26973
27122
|
},
|
|
26974
|
-
children: shouldShowStatusMessage ? /* @__PURE__ */
|
|
27123
|
+
children: shouldShowStatusMessage ? /* @__PURE__ */ jsx142(
|
|
26975
27124
|
StatusMessage,
|
|
26976
27125
|
{
|
|
26977
27126
|
error: statusError,
|
|
26978
27127
|
onRetry: handleRetry,
|
|
26979
27128
|
status
|
|
26980
27129
|
}
|
|
26981
|
-
) : /* @__PURE__ */
|
|
26982
|
-
/* @__PURE__ */
|
|
26983
|
-
|
|
27130
|
+
) : /* @__PURE__ */ jsxs134(Fragment10, { children: [
|
|
27131
|
+
/* @__PURE__ */ jsx142(Main, { open, children: /* @__PURE__ */ jsx142(
|
|
27132
|
+
Box18,
|
|
26984
27133
|
{
|
|
26985
27134
|
sx: {
|
|
26986
27135
|
height: "100%",
|
|
26987
27136
|
overflow: "auto"
|
|
26988
27137
|
},
|
|
26989
|
-
children: traceId !== void 0 && /* @__PURE__ */
|
|
27138
|
+
children: traceId !== void 0 && /* @__PURE__ */ jsx142(ReactFlowProvider, { children: /* @__PURE__ */ jsx142(
|
|
26990
27139
|
TraceGraph,
|
|
26991
27140
|
{
|
|
26992
27141
|
initialFocusEventId: spanId,
|
|
@@ -27003,7 +27152,7 @@ var TraceGraphView = ({
|
|
|
27003
27152
|
) })
|
|
27004
27153
|
}
|
|
27005
27154
|
) }),
|
|
27006
|
-
/* @__PURE__ */
|
|
27155
|
+
/* @__PURE__ */ jsx142(StyledDrawer, { anchor: "right", open, variant: "persistent", children: /* @__PURE__ */ jsx142(EventDetails, { onClose: handleClose, selectedEvent }) })
|
|
27007
27156
|
] })
|
|
27008
27157
|
}
|
|
27009
27158
|
)
|
|
@@ -27047,9 +27196,9 @@ async function fetchConnectedTraces(api, traceIds, allSpans = /* @__PURE__ */ ne
|
|
|
27047
27196
|
}
|
|
27048
27197
|
var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
27049
27198
|
const api = useAppInspectorApi();
|
|
27050
|
-
const [spans, setSpans] =
|
|
27051
|
-
const [loading, setLoading] =
|
|
27052
|
-
const [fetchError, setFetchError] =
|
|
27199
|
+
const [spans, setSpans] = useState16();
|
|
27200
|
+
const [loading, setLoading] = useState16(false);
|
|
27201
|
+
const [fetchError, setFetchError] = useState16();
|
|
27053
27202
|
const fetchSpans = useCallback9(async () => {
|
|
27054
27203
|
setLoading(true);
|
|
27055
27204
|
try {
|
|
@@ -27066,8 +27215,8 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
27066
27215
|
useEffect20(() => {
|
|
27067
27216
|
void fetchSpans();
|
|
27068
27217
|
}, [fetchSpans]);
|
|
27069
|
-
const [open, setOpen] =
|
|
27070
|
-
const [selectedEvent, setSelectedEvent] =
|
|
27218
|
+
const [open, setOpen] = useState16(true);
|
|
27219
|
+
const [selectedEvent, setSelectedEvent] = useState16(() => spans?.find((span) => span.span_id === spanId));
|
|
27071
27220
|
const spansReference = useRef15();
|
|
27072
27221
|
useEffect20(() => {
|
|
27073
27222
|
if (!spansReference.current && spans) {
|
|
@@ -27087,7 +27236,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
27087
27236
|
const navigateToSpansList = useCallback9(() => {
|
|
27088
27237
|
onClose?.();
|
|
27089
27238
|
}, [onClose]);
|
|
27090
|
-
return /* @__PURE__ */
|
|
27239
|
+
return /* @__PURE__ */ jsx142(
|
|
27091
27240
|
TraceGraphView,
|
|
27092
27241
|
{
|
|
27093
27242
|
fetchError,
|
|
@@ -27111,7 +27260,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
27111
27260
|
};
|
|
27112
27261
|
|
|
27113
27262
|
// src/pages/spans-list-page.tsx
|
|
27114
|
-
import { Fragment as
|
|
27263
|
+
import { Fragment as Fragment11, jsx as jsx143, jsxs as jsxs135 } from "react/jsx-runtime";
|
|
27115
27264
|
var SpansListPage = () => {
|
|
27116
27265
|
const {
|
|
27117
27266
|
checkStatus,
|
|
@@ -27124,18 +27273,21 @@ var SpansListPage = () => {
|
|
|
27124
27273
|
fetchingForward,
|
|
27125
27274
|
hasMoreBackward,
|
|
27126
27275
|
hasMoreForward,
|
|
27276
|
+
licenseLimit,
|
|
27127
27277
|
spans,
|
|
27128
27278
|
status,
|
|
27129
27279
|
statusError,
|
|
27130
27280
|
streamPaused,
|
|
27131
|
-
|
|
27281
|
+
systemLimit,
|
|
27282
|
+
toggleStream,
|
|
27283
|
+
totalCount
|
|
27132
27284
|
} = useSpans();
|
|
27133
27285
|
const clearSpansSync = useCallback10(() => {
|
|
27134
27286
|
void clearSpans();
|
|
27135
27287
|
}, [clearSpans]);
|
|
27136
27288
|
const [order2, setOrder] = useLocalStorage("spans-order", "oldest_first");
|
|
27137
|
-
const [selectedTraceId, setSelectedTraceId] =
|
|
27138
|
-
const [selectedSpanId, setSelectedSpanId] =
|
|
27289
|
+
const [selectedTraceId, setSelectedTraceId] = useState17();
|
|
27290
|
+
const [selectedSpanId, setSelectedSpanId] = useState17();
|
|
27139
27291
|
const navigateToSpan = useCallback10((span) => {
|
|
27140
27292
|
setSelectedTraceId(span.trace_id);
|
|
27141
27293
|
setSelectedSpanId(span.span_id);
|
|
@@ -27144,9 +27296,9 @@ var SpansListPage = () => {
|
|
|
27144
27296
|
void checkStatus();
|
|
27145
27297
|
}, [checkStatus]);
|
|
27146
27298
|
const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
|
|
27147
|
-
return /* @__PURE__ */
|
|
27148
|
-
/* @__PURE__ */
|
|
27149
|
-
|
|
27299
|
+
return /* @__PURE__ */ jsxs135(Fragment11, { children: [
|
|
27300
|
+
/* @__PURE__ */ jsx143(
|
|
27301
|
+
Box19,
|
|
27150
27302
|
{
|
|
27151
27303
|
"data-testid": "spans-list-page",
|
|
27152
27304
|
sx: {
|
|
@@ -27160,14 +27312,14 @@ var SpansListPage = () => {
|
|
|
27160
27312
|
visibility: selectedTraceId === void 0 ? "visible" : "hidden",
|
|
27161
27313
|
width: "100%"
|
|
27162
27314
|
},
|
|
27163
|
-
children: shouldShowStatusMessage ? /* @__PURE__ */
|
|
27315
|
+
children: shouldShowStatusMessage ? /* @__PURE__ */ jsx143(
|
|
27164
27316
|
StatusMessage,
|
|
27165
27317
|
{
|
|
27166
27318
|
error: statusError,
|
|
27167
27319
|
onRetry: handleRetry,
|
|
27168
27320
|
status
|
|
27169
27321
|
}
|
|
27170
|
-
) : /* @__PURE__ */
|
|
27322
|
+
) : /* @__PURE__ */ jsx143(
|
|
27171
27323
|
SpansList,
|
|
27172
27324
|
{
|
|
27173
27325
|
clearingSpans,
|
|
@@ -27176,6 +27328,7 @@ var SpansListPage = () => {
|
|
|
27176
27328
|
fetchingForward,
|
|
27177
27329
|
hasMoreBackward,
|
|
27178
27330
|
hasMoreForward,
|
|
27331
|
+
licenseLimit,
|
|
27179
27332
|
onClearSpans: clearSpansSync,
|
|
27180
27333
|
onFetchBackward: fetchBackward,
|
|
27181
27334
|
onFetchForward: fetchForward,
|
|
@@ -27184,12 +27337,14 @@ var SpansListPage = () => {
|
|
|
27184
27337
|
onToggleStream: toggleStream,
|
|
27185
27338
|
order: order2,
|
|
27186
27339
|
spans,
|
|
27187
|
-
streamPaused
|
|
27340
|
+
streamPaused,
|
|
27341
|
+
systemLimit,
|
|
27342
|
+
totalCount
|
|
27188
27343
|
}
|
|
27189
27344
|
)
|
|
27190
27345
|
}
|
|
27191
27346
|
),
|
|
27192
|
-
selectedTraceId !== void 0 && /* @__PURE__ */
|
|
27347
|
+
selectedTraceId !== void 0 && /* @__PURE__ */ jsx143(TraceGraphPage, { onClose: () => {
|
|
27193
27348
|
setSelectedTraceId(void 0);
|
|
27194
27349
|
}, spanId: selectedSpanId, traceId: selectedTraceId })
|
|
27195
27350
|
] });
|