@localstack/appinspector-ui 1.0.107 → 1.0.109

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.js CHANGED
@@ -2480,7 +2480,8 @@ var EVENT_DETAILS_REQUEST_PAYLOAD = "event-details-request-payload";
2480
2480
  var EVENT_DETAILS_RESPONSE_PAYLOAD_TEST_ID = "event-details-response-payload";
2481
2481
  var EVENT_DETAILS_EXCEPTION_PAYLOAD_TEST_ID = "event-details-exception-payload";
2482
2482
  var EVENT_DETAILS_IAM_ERRORS_SUPPRESSED_TEST_ID = "event-details-iam-errors-suppressed";
2483
- var IAM_ERROR_COUNT_TEST_ID = "iam-error-count";
2483
+ var ERROR_COUNT_TEST_ID = "error-count";
2484
+ var WARNING_COUNT_TEST_ID = "warning-count";
2484
2485
  var SERVICE_NODE_TEST_ID = "service-node";
2485
2486
  var SERVICE_NODE_SERVICE_NAME_TEST_ID = "service-node-service-name";
2486
2487
  var SERVICE_NODE_OPERATION_NAME_TEST_ID = "service-node-operation-name";
@@ -12275,6 +12276,138 @@ var ResponsiveTimestampCell = memo2(({ date, locale }) => {
12275
12276
  import { Box as Box2, Divider, Typography, useTheme } from "@mui/material";
12276
12277
  import { memo as memo7 } from "react";
12277
12278
 
12279
+ // src/utils/service-display-name.ts
12280
+ var SERVICE_DISPLAY_NAME = {
12281
+ "account": "Account",
12282
+ "acm": "Certificate Manager",
12283
+ "acm-pca": "Private Certificate Authority",
12284
+ "amplify": "Amplify",
12285
+ "apigateway": "API Gateway",
12286
+ "apigatewaymanagementapi": "API Gateway Management API",
12287
+ "apigatewayv2": "API Gateway v2",
12288
+ "appconfig": "AppConfig",
12289
+ "appconfigdata": "AppConfig Data",
12290
+ "application-autoscaling": "Application Auto Scaling",
12291
+ "appsync": "AppSync",
12292
+ "athena": "Athena",
12293
+ "autoscaling": "EC2 Auto Scaling",
12294
+ "backup": "Backup",
12295
+ "batch": "Batch",
12296
+ "bedrock": "Bedrock",
12297
+ "bedrock-runtime": "Bedrock Runtime",
12298
+ "ce": "Cost Explorer",
12299
+ "cloudcontrol": "Cloud Control API",
12300
+ "cloudformation": "CloudFormation",
12301
+ "cloudfront": "CloudFront",
12302
+ "cloudtrail": "CloudTrail",
12303
+ "cloudwatch": "CloudWatch",
12304
+ "codeartifact": "CodeArtifact",
12305
+ "codebuild": "CodeBuild",
12306
+ "codecommit": "CodeCommit",
12307
+ "codeconnections": "CodeConnections",
12308
+ "codedeploy": "CodeDeploy",
12309
+ "codepipeline": "CodePipeline",
12310
+ "codestar-connections": "CodeStar Connections",
12311
+ "cognito-identity": "Cognito Identity Pools",
12312
+ "cognito-idp": "Cognito User Pools",
12313
+ "config": "Config",
12314
+ "dms": "Database Migration Service",
12315
+ "docdb": "DocumentDB",
12316
+ "dynamodb": "DynamoDB",
12317
+ "dynamodbstreams": "DynamoDB Streams",
12318
+ "ec2": "EC2",
12319
+ "ecr": "ECR",
12320
+ "ecs": "ECS",
12321
+ "efs": "EFS",
12322
+ "eks": "EKS",
12323
+ "elasticache": "ElastiCache",
12324
+ "elasticbeanstalk": "Elastic Beanstalk",
12325
+ "elastictranscoder": "Elastic Transcoder",
12326
+ "elb": "ELB",
12327
+ "elbv2": "ELB v2",
12328
+ "emr": "EMR",
12329
+ "emr-serverless": "EMR Serverless",
12330
+ "es": "OpenSearch Service",
12331
+ "events": "EventBridge",
12332
+ "firehose": "Firehose",
12333
+ "fis": "Fault Injection Service",
12334
+ "glacier": "Amazon Glacier",
12335
+ "glue": "Glue",
12336
+ "iam": "IAM",
12337
+ "identitystore": "Identity Store",
12338
+ "infrastructure": "Infrastructure",
12339
+ "iot": "IoT",
12340
+ "iot-data": "IoT Data",
12341
+ "iotanalytics": "IoT Analytics",
12342
+ "iotwireless": "IoT Wireless",
12343
+ "kafka": "MSK",
12344
+ "kinesis": "Kinesis Data Streams",
12345
+ "kinesisanalytics": "Kinesis Data Analytics",
12346
+ "kinesisanalyticsv2": "Managed Service for Apache Flink",
12347
+ "kms": "KMS",
12348
+ "lakeformation": "Lake Formation",
12349
+ "lambda": "Lambda",
12350
+ "logs": "CloudWatch Logs",
12351
+ "managedblockchain": "Managed Blockchain",
12352
+ "mediaconvert": "MediaConvert",
12353
+ "mediastore": "Elemental MediaStore",
12354
+ "mediastore-data": "Elemental MediaStore Data",
12355
+ "memorydb": "MemoryDB",
12356
+ "mq": "MQ",
12357
+ "mwaa": "Managed Workflows for Apache Airflow",
12358
+ "neptune": "Neptune",
12359
+ "opensearch": "OpenSearch Service",
12360
+ "organizations": "Organizations",
12361
+ "pinpoint": "Pinpoint",
12362
+ "pipes": "EventBridge Pipes",
12363
+ "qldb": "QLDB",
12364
+ "qldb-session": "QLDB Session",
12365
+ "ram": "Resource Access Manager",
12366
+ "rds": "RDS",
12367
+ "rds-data": "RDS Data",
12368
+ "redshift": "Redshift",
12369
+ "redshift-data": "Redshift Data",
12370
+ "resource-groups": "Resource Groups",
12371
+ "resourcegroupstaggingapi": "Resource Groups Tagging API",
12372
+ "route53": "Route 53",
12373
+ "route53resolver": "Route 53 Resolver",
12374
+ "s3": "S3",
12375
+ "s3control": "S3 Control",
12376
+ "sagemaker": "SageMaker AI",
12377
+ "sagemaker-runtime": "SageMaker AI Runtime",
12378
+ "scheduler": "EventBridge Scheduler",
12379
+ "secretsmanager": "Secrets Manager",
12380
+ "serverlessrepo": "Serverless Application Repository",
12381
+ "servicediscovery": "Cloud Map",
12382
+ "ses": "SES",
12383
+ "sesv2": "SES v2",
12384
+ "sfn": "Step Functions",
12385
+ "shield": "Shield",
12386
+ "sns": "SNS",
12387
+ "sqs": "SQS",
12388
+ "ssm": "Systems Manager",
12389
+ "sso-admin": "IAM Identity Center",
12390
+ "stepfunctions": "Step Functions",
12391
+ "sts": "STS",
12392
+ "support": "Support",
12393
+ "swf": "SWF",
12394
+ "textract": "Textract",
12395
+ "timestream": "Timestream",
12396
+ "timestream-query": "Timestream Query",
12397
+ "timestream-write": "Timestream Write",
12398
+ "transcribe": "Transcribe",
12399
+ "transfer": "Transfer Family",
12400
+ "translate": "Translate",
12401
+ "verifiedpermissions": "Verified Permissions",
12402
+ "waf": "WAF Classic",
12403
+ "wafv2": "WAF",
12404
+ "xray": "X-Ray"
12405
+ };
12406
+ var getServiceDisplayName = (code) => {
12407
+ if (!code) return "";
12408
+ return SERVICE_DISPLAY_NAME[code] ?? code;
12409
+ };
12410
+
12278
12411
  // src/components/aws-service-icon/aws-service-icon.tsx
12279
12412
  import { Tooltip } from "@mui/material";
12280
12413
  import { memo as memo5 } from "react";
@@ -14697,8 +14830,9 @@ var ServiceCell = memo7(({
14697
14830
  Typography,
14698
14831
  {
14699
14832
  sx: {
14700
- flexShrink: 0,
14833
+ flexShrink: 1,
14701
14834
  fontWeight: "bold",
14835
+ minWidth: 0,
14702
14836
  overflow: "hidden",
14703
14837
  padding: "1px 8px",
14704
14838
  textOverflow: "ellipsis",
@@ -14713,7 +14847,7 @@ var ServiceCell = memo7(({
14713
14847
  }
14714
14848
  },
14715
14849
  variant: "body2",
14716
- children: service
14850
+ children: getServiceDisplayName(service)
14717
14851
  }
14718
14852
  ),
14719
14853
  resource ? /* @__PURE__ */ jsxs119(Fragment3, { children: [
@@ -14945,11 +15079,11 @@ var SpansDataGridRow = memo8(
14945
15079
  );
14946
15080
  var SpansDataGrid = ({
14947
15081
  clearingSpans,
15082
+ errorCount,
14948
15083
  fetchingBackward,
14949
15084
  fetchingForward,
14950
15085
  hasMoreBackward,
14951
15086
  hasMoreForward,
14952
- iamErrorCount,
14953
15087
  licenseLimit,
14954
15088
  onClearSpans,
14955
15089
  onFetchBackward,
@@ -14961,7 +15095,8 @@ var SpansDataGrid = ({
14961
15095
  spans,
14962
15096
  streamPaused,
14963
15097
  systemLimit,
14964
- totalCount
15098
+ totalCount,
15099
+ warningCount
14965
15100
  }) => {
14966
15101
  const columns = useMemo5(() => [
14967
15102
  columnHelper.accessor("startTime", {
@@ -15068,20 +15203,30 @@ var SpansDataGrid = ({
15068
15203
  return /* @__PURE__ */ jsxs121(Fragment5, { children: [
15069
15204
  /* @__PURE__ */ jsx127(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxs121(Box4, { sx: { alignItems: "center", display: "flex", gap: "0.5rem" }, children: [
15070
15205
  /* @__PURE__ */ jsx127(SpanCountBadge, { licenseLimit, systemLimit, totalCount, visibleCount: spans?.length }),
15071
- iamErrorCount !== void 0 && iamErrorCount > 0 && /* @__PURE__ */ jsxs121(Fragment5, { children: [
15206
+ errorCount !== void 0 && errorCount > 0 && /* @__PURE__ */ jsxs121(Fragment5, { children: [
15072
15207
  /* @__PURE__ */ jsx127(Typography3, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15073
- /* @__PURE__ */ jsx127(Tooltip3, { title: "Number of IAM permission errors detected across all operations", children: /* @__PURE__ */ jsxs121(
15208
+ /* @__PURE__ */ jsx127(Tooltip3, { title: "Number of errors detected across all operations", children: /* @__PURE__ */ jsxs121(
15074
15209
  Box4,
15075
15210
  {
15076
- "data-testid": IAM_ERROR_COUNT_TEST_ID,
15211
+ "data-testid": ERROR_COUNT_TEST_ID,
15077
15212
  sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "error.main", cursor: "default", display: "flex", gap: 0.5, mb: "-1px" },
15078
15213
  children: [
15079
- /* @__PURE__ */ jsx127(Typography3, { color: "error", variant: "body2", children: iamErrorCount.toLocaleString() }),
15080
- /* @__PURE__ */ jsxs121(Typography3, { color: "error", variant: "caption", children: [
15081
- "IAM",
15082
- " ",
15083
- iamErrorCount === 1 ? "error" : "errors"
15084
- ] })
15214
+ /* @__PURE__ */ jsx127(Typography3, { color: "error", variant: "body2", children: errorCount.toLocaleString() }),
15215
+ /* @__PURE__ */ jsx127(Typography3, { color: "error", variant: "caption", children: errorCount === 1 ? "error" : "errors" })
15216
+ ]
15217
+ }
15218
+ ) })
15219
+ ] }),
15220
+ warningCount !== void 0 && warningCount > 0 && /* @__PURE__ */ jsxs121(Fragment5, { children: [
15221
+ /* @__PURE__ */ jsx127(Typography3, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15222
+ /* @__PURE__ */ jsx127(Tooltip3, { title: "Number of warnings detected across all operations", children: /* @__PURE__ */ jsxs121(
15223
+ Box4,
15224
+ {
15225
+ "data-testid": WARNING_COUNT_TEST_ID,
15226
+ sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "warning.main", cursor: "default", display: "flex", gap: 0.5, mb: "-1px" },
15227
+ children: [
15228
+ /* @__PURE__ */ jsx127(Typography3, { color: "warning.main", variant: "body2", children: warningCount.toLocaleString() }),
15229
+ /* @__PURE__ */ jsx127(Typography3, { color: "warning.main", variant: "caption", children: warningCount === 1 ? "warning" : "warnings" })
15085
15230
  ]
15086
15231
  }
15087
15232
  ) })
@@ -15215,11 +15360,11 @@ var SpansList = (props) => {
15215
15360
  SpansDataGrid,
15216
15361
  {
15217
15362
  clearingSpans: props.clearingSpans,
15363
+ errorCount: props.errorCount,
15218
15364
  fetchingBackward: props.fetchingBackward,
15219
15365
  fetchingForward: props.fetchingForward,
15220
15366
  hasMoreBackward: props.hasMoreBackward,
15221
15367
  hasMoreForward: props.hasMoreForward,
15222
- iamErrorCount: props.iamErrorCount,
15223
15368
  licenseLimit: props.licenseLimit,
15224
15369
  onClearSpans: props.onClearSpans,
15225
15370
  onFetchBackward: props.onFetchBackward,
@@ -15231,7 +15376,8 @@ var SpansList = (props) => {
15231
15376
  spans: props.spans,
15232
15377
  streamPaused: props.streamPaused,
15233
15378
  systemLimit: props.systemLimit,
15234
- totalCount: props.totalCount
15379
+ totalCount: props.totalCount,
15380
+ warningCount: props.warningCount
15235
15381
  }
15236
15382
  )
15237
15383
  ] });
@@ -18164,7 +18310,8 @@ var useSpans = () => {
18164
18310
  setTotalCount(response.pagination.total_count);
18165
18311
  setLicenseLimit(response.limits.span_count_limit_license);
18166
18312
  setSystemLimit(response.limits.span_count_limit_system);
18167
- setIamErrorCount(response.iam_error_count);
18313
+ setErrorCount(response.error_count);
18314
+ setWarningCount(response.warning_count);
18168
18315
  return {
18169
18316
  hasMoreBackward: response.pagination.has_prev,
18170
18317
  hasMoreForward: response.pagination.has_next,
@@ -18196,7 +18343,8 @@ var useSpans = () => {
18196
18343
  const [totalCount, setTotalCount] = useState10();
18197
18344
  const [licenseLimit, setLicenseLimit] = useState10();
18198
18345
  const [systemLimit, setSystemLimit] = useState10();
18199
- const [iamErrorCount, setIamErrorCount] = useState10();
18346
+ const [errorCount, setErrorCount] = useState10();
18347
+ const [warningCount, setWarningCount] = useState10();
18200
18348
  const [hasMoreBackward, setHasMoreBackward] = useState10();
18201
18349
  const [hasMoreForward, setHasMoreForward] = useState10();
18202
18350
  const fetchForward = useCallback8(() => {
@@ -18252,6 +18400,7 @@ var useSpans = () => {
18252
18400
  return {
18253
18401
  clearingSpans,
18254
18402
  clearSpans,
18403
+ errorCount,
18255
18404
  fetchBackward,
18256
18405
  fetchError,
18257
18406
  fetchForward,
@@ -18259,13 +18408,13 @@ var useSpans = () => {
18259
18408
  fetchingForward,
18260
18409
  hasMoreBackward,
18261
18410
  hasMoreForward,
18262
- iamErrorCount,
18263
18411
  licenseLimit,
18264
18412
  spans: throttledSpans.items,
18265
18413
  streamPaused,
18266
18414
  systemLimit,
18267
18415
  toggleStream,
18268
- totalCount
18416
+ totalCount,
18417
+ warningCount
18269
18418
  };
18270
18419
  };
18271
18420
 
@@ -30501,7 +30650,7 @@ var EventDetails = ({ onClose, selectedEvent }) => {
30501
30650
  /* @__PURE__ */ jsxs130(Box15, { sx: { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" }, children: [
30502
30651
  /* @__PURE__ */ jsxs130(Box15, { children: [
30503
30652
  /* @__PURE__ */ jsx140(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Service" }),
30504
- /* @__PURE__ */ jsx140(Typography10, { "data-testid": EVENT_DETAILS_SERVICE_NAME_TEST_ID, variant: "body2", children: selectedEvent.service_name })
30653
+ /* @__PURE__ */ jsx140(Typography10, { "data-testid": EVENT_DETAILS_SERVICE_NAME_TEST_ID, variant: "body2", children: getServiceDisplayName(selectedEvent.service_name) })
30505
30654
  ] }),
30506
30655
  /* @__PURE__ */ jsxs130(Box15, { children: [
30507
30656
  /* @__PURE__ */ jsx140(Typography10, { sx: { fontWeight: 600 }, variant: "caption", children: "Action" }),
@@ -30745,7 +30894,7 @@ var ServiceNode = memo11(({ data, selected }) => {
30745
30894
  noWrap: true,
30746
30895
  sx: { fontWeight: 700, lineHeight: 1.25 },
30747
30896
  variant: "body2",
30748
- children: data.event.service_name
30897
+ children: getServiceDisplayName(data.event.service_name)
30749
30898
  }
30750
30899
  ),
30751
30900
  data.event.resource_name != "" && /* @__PURE__ */ jsx142(
@@ -31273,6 +31422,7 @@ var SpansListPage = () => {
31273
31422
  const {
31274
31423
  clearingSpans,
31275
31424
  clearSpans,
31425
+ errorCount,
31276
31426
  fetchBackward,
31277
31427
  fetchError,
31278
31428
  fetchForward,
@@ -31280,13 +31430,13 @@ var SpansListPage = () => {
31280
31430
  fetchingForward,
31281
31431
  hasMoreBackward,
31282
31432
  hasMoreForward,
31283
- iamErrorCount,
31284
31433
  licenseLimit,
31285
31434
  spans,
31286
31435
  streamPaused,
31287
31436
  systemLimit,
31288
31437
  toggleStream,
31289
- totalCount
31438
+ totalCount,
31439
+ warningCount
31290
31440
  } = useSpans();
31291
31441
  const { checking, checkStatus, status, statusError } = useAppInspectorStatus();
31292
31442
  const clearSpansSync = useCallback11(() => {
@@ -31351,12 +31501,12 @@ var SpansListPage = () => {
31351
31501
  SpansList,
31352
31502
  {
31353
31503
  clearingSpans,
31504
+ errorCount,
31354
31505
  fetchError,
31355
31506
  fetchingBackward,
31356
31507
  fetchingForward,
31357
31508
  hasMoreBackward,
31358
31509
  hasMoreForward,
31359
- iamErrorCount,
31360
31510
  licenseLimit,
31361
31511
  onClearSpans: clearSpansSync,
31362
31512
  onFetchBackward: fetchBackward,
@@ -31368,7 +31518,8 @@ var SpansListPage = () => {
31368
31518
  spans,
31369
31519
  streamPaused,
31370
31520
  systemLimit,
31371
- totalCount
31521
+ totalCount,
31522
+ warningCount
31372
31523
  }
31373
31524
  )
31374
31525
  ]