@spotify/backstage-plugin-soundcheck 0.16.1 → 0.16.2
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/CHANGELOG.md +30 -0
- package/dist/alpha/entity-content.esm.js +1 -1
- package/dist/alpha/pages.esm.js +1 -1
- package/dist/alpha.d.ts +7 -7
- package/dist/api.esm.js +1 -1
- package/dist/components/AlertPanel/AlertPanel.esm.js +1 -1
- package/dist/components/AreaChart/AreaChart.esm.js +1 -1
- package/dist/components/AreaChart/ChartTooltip.esm.js +1 -1
- package/dist/components/AreaChart/Legend.esm.js +1 -1
- package/dist/components/AreaChart/LegendItem.esm.js +1 -1
- package/dist/components/Badges/BaseBadge.esm.js +1 -1
- package/dist/components/Badges/CampaignBadge.esm.js +1 -1
- package/dist/components/Badges/CertificationBadge.esm.js +1 -1
- package/dist/components/Badges/LevelBadge.esm.js +1 -1
- package/dist/components/Badges/NoLevelBadge.esm.js +2 -2
- package/dist/components/Badges/PlaylistBadge.esm.js +1 -1
- package/dist/components/Badges/StatusBadge.esm.js +1 -1
- package/dist/components/CacheConfig/CacheConfigComponent.esm.js +1 -1
- package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
- package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDescriptionField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDetailsStep.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDraftField.esm.js +2 -0
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignNameField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignScheduleField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignSupportChannelField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/EndDateChips.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignMilestonesStep.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignTrackStepNew.esm.js +2 -0
- package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +1 -1
- package/dist/components/CampaignForm/hooks/utils.esm.js +1 -1
- package/dist/components/CampaignForm/utils/campaignFormUtils.esm.js +1 -1
- package/dist/components/CampaignForm/utils/validation.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignInsightsPage.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignStatusHistoryTile.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignStatusTile.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/DaysRemainingTile.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignEmptyState.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignMetadata.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignSummaryCard.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignsOverviewSkeleton.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
- package/dist/components/CampaignsPage/EditCampaignView.esm.js +1 -1
- package/dist/components/CategoryBar/CategoryBar.esm.js +1 -1
- package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationLevel.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationSummary.esm.js +1 -1
- package/dist/components/CertificationSidebar/Check.esm.js +1 -1
- package/dist/components/CertificationSidebar/CheckResultInputPopup.esm.js +1 -1
- package/dist/components/CertificationSidebar/CheckResultSummaryList.esm.js +1 -1
- package/dist/components/CertificationSidebar/ExemptionJustificationDialog.esm.js +1 -1
- package/dist/components/CertificationSidebar/LevelSummary.esm.js +1 -1
- package/dist/components/CertificationSidebar/StatusDetails.esm.js +1 -1
- package/dist/components/CertificationSidebar/skeletons/CertificationSidebarSkeleton.esm.js +1 -1
- package/dist/components/CertificationSidebar/skeletons/CertificationSummarySkeleton.esm.js +1 -1
- package/dist/components/CertificationSidebar/skeletons/CheckSkeleton.esm.js +1 -1
- package/dist/components/CertificationSidebar/skeletons/LevelSummarySkeleton.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationTab.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationTabs.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistComponent.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistContext.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistProgress.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistSummary.esm.js +1 -1
- package/dist/components/CertificationsPage/PlaylistCertificationTab.esm.js +1 -1
- package/dist/components/CertificationsPage/skeletons/CertificationTabSkeleton.esm.js +1 -1
- package/dist/components/CertificationsPage/skeletons/CertificationTabsSkeleton.esm.js +1 -1
- package/dist/components/Charts/BarChart/BarChart.esm.js +1 -1
- package/dist/components/Charts/BarChart/BarChartPlaceholder.esm.js +1 -1
- package/dist/components/Charts/BarChart/GroupPassRateHistoryBarChart.esm.js +1 -1
- package/dist/components/Charts/BarChart/TrackSummaryBarChart.esm.js +1 -1
- package/dist/components/Charts/ChartWrapper/ChartWrapper.esm.js +1 -1
- package/dist/components/Charts/LineChart/EntityPassRateHistoryLineChart.esm.js +1 -1
- package/dist/components/Charts/LineChart/LineChart.esm.js +1 -1
- package/dist/components/Charts/LineChart/LineChartPlaceholder.esm.js +1 -1
- package/dist/components/Charts/LineChart/PassRateHistoryLineChart.esm.js +1 -1
- package/dist/components/Charts/LineChart/TableLineChart.esm.js +1 -1
- package/dist/components/Charts/LineChart/TrackPassRateHistoryLineChart.esm.js +1 -1
- package/dist/components/Charts/LoadingChart.esm.js +2 -0
- package/dist/components/Charts/chartUtils.esm.js +1 -1
- package/dist/components/CheckCard/CheckCard.esm.js +1 -1
- package/dist/components/CheckCard/CheckHistoryChart.esm.js +1 -1
- package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
- package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
- package/dist/components/CheckDetails/CheckResultDetails.esm.js +1 -1
- package/dist/components/CheckDetails/CollapseRow.esm.js +1 -1
- package/dist/components/CheckDetails/FactTable.esm.js +1 -1
- package/dist/components/CheckDetails/FixMeDialog.esm.js +1 -1
- package/dist/components/CheckDetails/JustificationDetails.esm.js +1 -1
- package/dist/components/CheckDetails/OngoingTaskComponent.esm.js +1 -1
- package/dist/components/CheckDetails/ResolvedValueTable.esm.js +1 -1
- package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
- package/dist/components/CheckDetails/ReviewStateComponent.esm.js +1 -1
- package/dist/components/CheckDetails/SelectedValueContext.esm.js +1 -1
- package/dist/components/CheckDetails/skeletons/CheckDetailsSkeleton.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRun.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRunContext.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRunDetails.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRunDialog.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRunDialogButton.esm.js +1 -1
- package/dist/components/CheckForm/CheckForm.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckDescriptionInput/CheckDescriptionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckNameInput/CheckNameInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckPathResolverInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckScheduleSection/ScheduleSection.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckTypeInput/CheckTypeInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ConditionList.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/FactValueDisplay.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListContext.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Expressions/ExpressionBox.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +2 -0
- package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckReviewStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +1 -1
- package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
- package/dist/components/CheckForm/utils/checkFormUtils.esm.js +2 -2
- package/dist/components/CheckForm/utils/validation.esm.js +1 -1
- package/dist/components/CheckHistoryChartCard/CheckHistoryChartCard.esm.js +1 -1
- package/dist/components/CheckIcon/CheckIcon.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/columns.esm.js +1 -1
- package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusTable.esm.js +1 -1
- package/dist/components/CheckSelection/CheckPreview.esm.js +2 -0
- package/dist/components/CheckSelection/CheckPreviewContext.esm.js +2 -0
- package/dist/components/CheckSelection/CheckSelection.esm.js +2 -0
- package/dist/components/CheckStatusBar/CheckStatusBar.esm.js +2 -0
- package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckMetadata.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +1 -1
- package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
- package/dist/components/ChecksPage/skeletons/ChecksOverviewSkeleton.esm.js +1 -1
- package/dist/components/ChecksTab/ChecksTab.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfDaysComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfWorkItemsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/QueryFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/CollectorSchedulingOptions.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/FactCollectionConfig.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Configurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/DataRegistry/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/CodeScanningAlertsFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/DependabotAlertsFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/SecretScanningAlertsFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/SecurityAdvisoriesFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpRequestComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpResponseComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpRetriesComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpStatusesInput.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/RequestFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/IncidentsFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/StatusesComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/ExistsFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/FactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/JsonFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/RegexFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/IssuesFactDetailsInput.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/MeasuresFactDetailsInput.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/MetricsInput.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/validation.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListSkeleton.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
- package/dist/components/EmptyState/EmptyState.esm.js +1 -1
- package/dist/components/EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js +2 -0
- package/dist/components/EntityChip/EntityChip.esm.js +1 -1
- package/dist/components/EntityContent/EntityContent.esm.js +1 -1
- package/dist/components/EntityPassRateCard/EntityPassRateCard.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/EntitySoundcheckCard.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/skeletons/CardSkeleton.esm.js +1 -1
- package/dist/components/EntitySoundcheckContent.esm.js +1 -1
- package/dist/components/Expand/Expand.esm.js +1 -1
- package/dist/components/ExpandableSection/ExpandableSection.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorerContext.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorerDialog.esm.js +1 -1
- package/dist/components/FadeIn/FadeIn.esm.js +1 -1
- package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
- package/dist/components/Filter/FilterComponent.esm.js +1 -1
- package/dist/components/Filter/FilterKeyValueInput.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/EntityTableColumns.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
- package/dist/components/Filter/KeyValueInputDialog.esm.js +1 -1
- package/dist/components/FilterSidebar/FilterSidebar.esm.js +2 -0
- package/dist/components/FilterSidebar/StateFilter.esm.js +2 -0
- package/dist/components/FooterButtons/FooterButtons.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/FormControlledMultipleAutocomplete.esm.js +1 -1
- package/dist/components/FormControlledSelect/FormControlledSelect.esm.js +1 -1
- package/dist/components/FormControlledTextField/FormControlledTextField.esm.js +1 -1
- package/dist/components/FormFieldLabel/FormFieldLabel.esm.js +1 -1
- package/dist/components/FormFilterSection/FormFilterSection.esm.js +1 -1
- package/dist/components/FormMarkdownInput/FormMarkdownInput.esm.js +1 -1
- package/dist/components/FormStepper/FormStepper.esm.js +1 -1
- package/dist/components/FormTextInput/FormTextInput.esm.js +1 -1
- package/dist/components/FormattedPreview/FormattedPreview.esm.js +2 -2
- package/dist/components/Frequency/FrequencyComponent.esm.js +1 -1
- package/dist/components/GroupPassRateCard/GroupPassRateCard.esm.js +1 -1
- package/dist/components/GroupSelector/GroupSelector.esm.js +1 -1
- package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
- package/dist/components/LevelsTable/CheckRowContent.esm.js +2 -0
- package/dist/components/LevelsTable/LevelsTable.esm.js +2 -0
- package/dist/components/ListboxVirtualized/ListboxVirtualized.esm.js +1 -1
- package/dist/components/LoadingIndicator/LoadingIndicator.esm.js +1 -1
- package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +1 -1
- package/dist/components/NoBorderButton/NoBorderButton.esm.js +1 -1
- package/dist/components/OrgHealth/OrgHealthPage.esm.js +1 -1
- package/dist/components/OverviewChartCard/OverviewChartCard.esm.js +1 -1
- package/dist/components/OverviewPage/FixedGroupOverviewPage.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPage.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageHeader.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckCellTooltip.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckLabelCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckNameCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/EntityRefCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/TrackBadgeCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/TrackCheckIndicator.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/TrackLevelHeaderCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/TrackTitleCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/cellRenderer.esm.js +1 -1
- package/dist/components/OverviewTable/OverviewTable.esm.js +1 -1
- package/dist/components/OverviewTable/OverviewTableContent.esm.js +1 -1
- package/dist/components/OverviewTable/OverviewTableSkeleton.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTableHeader.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTableRow.esm.js +1 -1
- package/dist/components/PageWarningMessage/PageWarningMessage.esm.js +1 -1
- package/dist/components/Pagination/CursorPagination.esm.js +1 -1
- package/dist/components/Pagination/Pagination.esm.js +1 -1
- package/dist/components/PassRateGrid/PassRateGrid.esm.js +1 -1
- package/dist/components/PassRateGrid/PassRateMetadata.esm.js +1 -1
- package/dist/components/PassRateTable/NewPassRateTable.esm.js +1 -1
- package/dist/components/PassRateTable/PassRateTable.esm.js +2 -2
- package/dist/components/QuickstartPage/HowDoIListItem.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickStartChecksCard.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartCardBase.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartCollectorConfigurationsCard.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartPage.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartTracksCard.esm.js +1 -1
- package/dist/components/QuickstartPage/WelcomeHelpSection.esm.js +6 -6
- package/dist/components/QuickstartPage/WelcomeModal.esm.js +1 -1
- package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +1 -1
- package/dist/components/RelativeTime/RelativeTime.esm.js +1 -1
- package/dist/components/RichTooltip/RichTooltip.esm.js +1 -1
- package/dist/components/Router.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
- package/dist/components/RuleResult/BranchResultComponent.esm.js +1 -1
- package/dist/components/RuleResult/ConditionResultComponent.esm.js +1 -1
- package/dist/components/RuleResult/RuleResultComponent.esm.js +1 -1
- package/dist/components/SearchBar/SearchBar.esm.js +1 -1
- package/dist/components/SearchFilters/SearchFilters.esm.js +1 -1
- package/dist/components/SoundcheckDialog/SoundcheckDialog.esm.js +1 -1
- package/dist/components/SoundcheckHeader/Breadcrumbs.esm.js +1 -1
- package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +1 -1
- package/dist/components/SoundcheckHeader/SoundcheckHeaderContext.esm.js +1 -1
- package/dist/components/SoundcheckHeader/headerUtil.esm.js +1 -1
- package/dist/components/SoundcheckMarkdownContent/ComponentRenders.esm.js +2 -0
- package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js +2 -0
- package/dist/components/SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js +1 -1
- package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
- package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FilterProvider.esm.js +1 -1
- package/dist/components/TechHealth/Filters/Filters.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FiltersHeader.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FiltersSection.esm.js +1 -1
- package/dist/components/TechHealth/Filters/NumberOfDaysFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +1 -1
- package/dist/components/TechHealth/Loading/Emoji.esm.js +1 -1
- package/dist/components/TechHealth/Loading/EmojiFountain.esm.js +1 -1
- package/dist/components/TechHealth/Loading/Loading.esm.js +1 -1
- package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +1 -1
- package/dist/components/TechHealth/TechHealth.esm.js +1 -1
- package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +1 -1
- package/dist/components/TechHealthSummary/TechHealthSummary.esm.js +1 -1
- package/dist/components/TechHealthTabs/ActionColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/MostRecentColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/NameColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/OwnerColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/PassRateTabHeader.esm.js +1 -1
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackLevelTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/techHealthTabUtils.esm.js +1 -1
- package/dist/components/TopFailingChecksTable/TopFailingChecksTable.esm.js +2 -0
- package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
- package/dist/components/TrackEditPage/TrackEditPage.esm.js +1 -1
- package/dist/components/TrackEditPage/TrackEditView.esm.js +1 -1
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsStepNew.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackBadgeTypeSelect/TrackBadgeTypeSelect.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDescriptionInput/TrackDescriptionInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDetailsStep.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDocumentationUrlInput/TrackDocumentationUrlInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDraftInput/TrackDraftInput.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackNameInput/TrackNameInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
- package/dist/components/TrackForm/TrackForm.esm.js +1 -1
- package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
- package/dist/components/TrackHistoryChartCard/TrackHistoryChartCard.esm.js +1 -1
- package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +1 -1
- package/dist/components/TrackPage/TrackHistoryChart.esm.js +1 -1
- package/dist/components/TrackPage/TrackPage.esm.js +1 -1
- package/dist/components/TrackPage/TrackProgressCard.esm.js +1 -1
- package/dist/components/TrackPage/TrackStatus.esm.js +2 -0
- package/dist/components/TrackPage/TrackStatusBar.esm.js +2 -0
- package/dist/components/TrackPage/TrackStatusTable.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TrackMetadata.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TracksOverviewSkeleton.esm.js +1 -1
- package/dist/components/TracksPage/TracksPage.esm.js +1 -1
- package/dist/components/TracksTab/TracksTab.esm.js +1 -1
- package/dist/contexts/GenericFormContext.esm.js +1 -1
- package/dist/contexts/UserProvider.esm.js +1 -1
- package/dist/graphql/generated/index.esm.js +93 -45
- package/dist/hooks/aggregations/useCertificationStatus.esm.js +1 -1
- package/dist/hooks/aggregations/useCheckStatus.esm.js +1 -1
- package/dist/hooks/aggregations/useCheckStatuses.esm.js +1 -1
- package/dist/hooks/catalog/useGetEntityFacets.esm.js +1 -1
- package/dist/hooks/catalog/useGetEntityRefs.esm.js +1 -1
- package/dist/hooks/certifications/useAllCertifications.esm.js +1 -1
- package/dist/hooks/certifications/useCertificationDetails.esm.js +1 -1
- package/dist/hooks/certifications/useCertificationDetailsForTrack.esm.js +1 -1
- package/dist/hooks/checks/useCheck.esm.js +2 -0
- package/dist/hooks/checks/useDeleteCheck.esm.js +1 -1
- package/dist/hooks/checks/useGetChecks.esm.js +1 -1
- package/dist/hooks/checks/useSetManualResult.esm.js +1 -1
- package/dist/hooks/checks/useUpdateCheck.esm.js +1 -1
- package/dist/hooks/exemptions/useDeleteExemption.esm.js +1 -1
- package/dist/hooks/exemptions/useExemptCheckIds.esm.js +2 -0
- package/dist/hooks/exemptions/useSetEntityExempt.esm.js +1 -1
- package/dist/hooks/facets/useFacetFilters.esm.js +1 -1
- package/dist/hooks/graphqlKeys.esm.js +1 -1
- package/dist/hooks/tracks/useGetAllTracks.esm.js +1 -1
- package/dist/hooks/tracks/useTrack.esm.js +2 -0
- package/dist/hooks/tracks/useUpdateTrack.esm.js +1 -1
- package/dist/hooks/useConfirmationModal.esm.js +1 -1
- package/dist/hooks/useSoundcheckAlert.esm.js +1 -1
- package/dist/images/data-registry-blk.svg +36 -0
- package/dist/images/data-registry-wht.svg +36 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.esm.js +1 -1
- package/dist/routes.esm.js +1 -1
- package/dist/utils/colors.esm.js +2 -0
- package/dist/utils/export.esm.js +3 -3
- package/dist/utils/formatters.esm.js +2 -0
- package/dist/utils/validation.esm.js +1 -1
- package/package.json +25 -21
- package/dist/components/Badges/badge.esm.js +0 -2
- package/dist/components/CampaignForm/Steps/CampaignTrackStep.esm.js +0 -2
- package/dist/components/CheckPage/CheckStatusBar.esm.js +0 -2
- package/dist/components/CheckPage/FilterBar/FilterBar.esm.js +0 -2
- package/dist/components/CheckPage/StatusRow.esm.js +0 -2
- package/dist/components/ChecksErrors/ChecksErrors.esm.js +0 -2
- package/dist/components/ContextMenu/ContextMenu.esm.js +0 -2
- package/dist/components/DraggableChip/DraggableChip.esm.js +0 -2
- package/dist/components/DraggableChip/chipStyles.esm.js +0 -2
- package/dist/components/DroppableInput/DroppableInput.esm.js +0 -2
- package/dist/components/LevelCard/LevelCard.esm.js +0 -2
- package/dist/components/LevelCard/LevelTooltip.esm.js +0 -2
- package/dist/components/TrackForm/Steps/LevelsStep/ChecksSection/ChecksSection.esm.js +0 -2
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelChipsSection.esm.js +0 -2
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelsSection.esm.js +0 -2
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsStep.esm.js +0 -2
- package/dist/components/TrackPage/TrackLevelsChart.esm.js +0 -2
- package/dist/hooks/useContextMenu.esm.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{zodResolver as
|
|
1
|
+
import{jsxs as m,Fragment as y,jsx as o}from"react/jsx-runtime";import{zodResolver as b}from"@hookform/resolvers/zod";import{makeStyles as D,Paper as S,Divider as c}from"@material-ui/core";import{useForm as h,FormProvider as P}from"react-hook-form";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../../api.esm.js";import"../../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"react";import"../../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as T}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as L}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as E}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as w}from"../../../../routes.esm.js";import{FooterButtons as F}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as R}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as r}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as N,confirmationModalContent as I}from"../Common/utils.esm.js";import{IncidentsFactDetailsComponent as O}from"./IncidentsFactDetailsComponent.esm.js";import{mapConfigToPagerDutyCollectorConfig as _,defaultPagerDutyConfig as k,SERVICE_COLLECTOR_TYPE as x,STANDARDS_COLLECTOR_TYPE as B,INCIDENTS_COLLECTOR_TYPE as A,incidentsCollectorConfig as M,mapPagerDutyCollectorConfigToConfig as Y}from"./utils.esm.js";import{pagerDutyCollectorFormSchema as j}from"./validation.esm.js";const H=D(e=>({spacer:{height:e.spacing(8),width:"100%"},section:{marginBottom:e.spacing(2)}})),V=({disabled:e,selectedCollector:t})=>{const a=h({defaultValues:t?_(t.config):k(),mode:"onChange",resolver:b(j)}),{formState:{errors:i},handleSubmit:n}=a,s=H(),d=!!i.service||!!i.standards||!!i.incidents,{mutateAsync:p}=E(),[C,f]=L(w),{showModal:g}=T(),l=async u=>{if(!await g(I(t)))return;const v=Y(u);await p({collectorId:t.id,config:v})&&f()};return R(N(t)),m(y,{children:[o(S,{className:s.section,children:o(P,{...a,children:m("form",{onSubmit:n(l),children:[o(r,{name:x.toLowerCase(),label:"Service",description:"Collects details about PagerDuty service linked to an entity.",disabled:e}),o(c,{}),o(r,{name:B.toLowerCase(),label:"Standards",description:"Collects details about standards applied to a PagerDuty service linked to an entity.",disabled:e}),o(c,{}),o(r,{name:A.toLowerCase(),label:"Incidents",description:"Collects details about incidents associated with a PagerDuty service linked to an entity.",disabled:e,FactDetailsComponent:O,multipleCollectors:{enable:!0,defaultConfig:M()}})]})})}),o("div",{className:s.section,children:o(F,{onCancel:C,saveButtonText:"Save",isLoading:!1,onSave:n(l),disableSave:d})})]})};export{V as PagerDutyConfigurator};
|
|
2
2
|
//# sourceMappingURL=PagerDutyConfigurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as s,jsx as e}from"react/jsx-runtime";import{makeStyles as g,Typography as c,FormControl as u,FormGroup as T,FormControlLabel as b,Checkbox as C,FormHelperText as f}from"@material-ui/core";import{useState as S,useEffect as x}from"react";import{DEFAULT_INCIDENT_STATUSES as E,PAGERDUTY_COLLECTOR_FIELDS as v}from"./utils.esm.js";const F=g(t=>({caption:{marginTop:t.spacing(2),marginBottom:t.spacing(1)}})),k=({value:t,onChange:n,disabled:l,errors:i})=>{const m=F(),{statuses:a}=v.factDetails,[o,p]=S(t);x(()=>{n&&n(o)},[o,n]);const d=r=>{p({...o,[r.target.name]:r.target.checked})};return s("div",{children:[s("div",{className:m.caption,children:[e(c,{variant:"subtitle2",children:a.name}),e(c,{variant:"caption",color:"textSecondary",children:a.description})]}),s(u,{disabled:l,component:"fieldset",error:!!i?.message,children:[e(T,{children:Object.keys(E).map((r,h)=>e(b,{label:e(c,{variant:"subtitle2",children:r}),control:e(C,{checked:o[r],onChange:d,name:r})},h))}),e(f,{children:i?.message??a.helperText})]})]})};export{k as StatusesComponent};
|
|
2
2
|
//# sourceMappingURL=StatusesComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{validFactNameRegex as d,invalidFactNameErrorMessage as f}from"@spotify/backstage-plugin-soundcheck-common";import{z as e}from"zod";import{FIELD_IS_REQUIRED_MSG as g}from"../../../../utils/validation.esm.js";import{BaseCollectorSchema as S,CollectorOptionSchema as r}from"../Common/CollectorOption.esm.js";const i="Fact name is not unique",l="Max 100 characters",n="At least one status must be selected",_=S.extend({factDetails:e.strictObject({factName:e.string().min(1,g).max(100,l).regex(d,f),statuses:e.strictObject({triggered:e.boolean(),acknowledged:e.boolean(),resolved:e.boolean()}).refine(t=>t.triggered||t.acknowledged||t.resolved,{message:n})})}).strict(),E=e.strictObject({enabled:e.boolean(),collectors:e.array(_).superRefine((t,m)=>{const o=t.map(a=>a.factDetails.factName),c=o.filter((a,s)=>o.indexOf(a)!==s);c.length&&t.forEach((a,s)=>{c.includes(a.factDetails.factName)&&m.addIssue({code:e.ZodIssueCode.custom,message:i,path:[s,"factDetails","factName"]})})})}),u=e.strictObject({service:r,standards:r,incidents:E});export{i as FACT_NAME_IS_NOT_UNIQUE_MSG,l as MAX_100_CHARACTERS_MSG,n as NO_SELECTED_STATUSES,u as pagerDutyCollectorFormSchema};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as r,jsx as e}from"react/jsx-runtime";import{makeStyles as C,Box as F,Typography as m,Grid as l,TextField as x,IconButton as T}from"@material-ui/core";import v from"@material-ui/icons/Add";import I from"@material-ui/icons/Remove";import{useFormContext as y,useFieldArray as D,Controller as u}from"react-hook-form";import{FactDetailsComponent as A}from"./FactDetailsComponent.esm.js";import{DEFAULT_EXISTS_FACT_DATA as E,SCM_COLLECTOR_FIELDS as L}from"./utils.esm.js";const N=C(t=>({labelInput:{marginTop:0,width:"255px"},filePathInput:{marginTop:0,width:"420px"},caption:{margin:t.spacing(2,0)},helperText:{marginLeft:0}})),P=({name:t,disabled:i})=>{const a=N(),{filePath:s,label:p,exists:h}=L.factDetails,{control:o}=y(),{fields:f,insert:g,remove:b}=D({control:o,name:`${t}.data`});return r(F,{children:[e(A,{name:t,control:o,disabled:i}),r("div",{className:a.caption,children:[e(m,{variant:"subtitle1",children:h.filesSection.name}),e(m,{variant:"caption",children:h.filesSection.description})]}),e(l,{container:!0,spacing:0,direction:"column",children:f.map((S,d)=>r(l,{item:!0,container:!0,alignItems:"center",spacing:2,children:[r(l,{item:!0,children:[e(m,{variant:"subtitle2",children:p.name}),e(u,{name:`${t}.data.${d}.name`,control:o,render:({field:c,fieldState:{error:n}})=>e(x,{...c,type:"text",variant:"outlined",margin:"dense",placeholder:p.placeholder,className:a.labelInput,disabled:i,error:!!n,helperText:n?.message??" ",FormHelperTextProps:{className:a.helperText}})})]}),r(l,{item:!0,children:[e(m,{variant:"subtitle2",children:s.name}),e(u,{name:`${t}.data.${d}.path`,control:o,render:({field:c,fieldState:{error:n}})=>e(x,{...c,type:"text",variant:"outlined",margin:"dense",placeholder:s.placeholder,className:a.filePathInput,disabled:i,error:!!n,helperText:n?.message??" ",FormHelperTextProps:{className:a.helperText}})})]}),r(l,{item:!0,children:[e(T,{onClick:()=>b(d),disabled:i||f.length===1,children:e(I,{fontSize:"small"})}),e(T,{onClick:()=>g(d+1,E),disabled:i,children:e(v,{fontSize:"small"})})]})]},S.id))})]})};export{P as ExistsFactDetailsComponent};
|
|
2
2
|
//# sourceMappingURL=ExistsFactDetailsComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as n,jsx as e}from"react/jsx-runtime";import{makeStyles as T,Grid as c,Typography as s,Box as p,TextField as h}from"@material-ui/core";import{Controller as x}from"react-hook-form";import{FormFieldLabel as f}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{SCM_COLLECTOR_FIELDS as g}from"./utils.esm.js";const b=T(a=>({root:{paddingTop:a.spacing(1),alignItems:"flex-start"},factNameInput:{marginTop:0,width:"255px"},branchInput:{marginTop:0,width:"420px"},branchLabel:{height:"40px"},branchSection:{alignContent:"flex-end"},helperText:{marginLeft:0}})),N=({name:a,disabled:m,control:d})=>{const r=b(),{factName:l,branch:o}=g.factDetails;return n(c,{container:!0,spacing:2,className:r.root,children:[e(x,{name:`${a}.factName`,control:d,render:({field:i,fieldState:{error:t}})=>n(c,{item:!0,children:[e(f,{title:l.name}),e(s,{variant:"caption",children:l.helperText}),e(p,{children:e(h,{...i,type:"text",variant:"outlined",margin:"dense",placeholder:l.placeholder,className:r.factNameInput,disabled:m,error:!!t,helperText:t?.message??"",FormHelperTextProps:{className:r.helperText}})})]})}),e(x,{name:`${a}.branch`,control:d,render:({field:i,fieldState:{error:t}})=>e(c,{item:!0,className:r.branchSection,children:n(p,{children:[n(p,{children:[e(f,{title:o.name}),e(s,{variant:"caption",children:o.helperText})]}),e(h,{...i,type:"text",variant:"outlined",margin:"dense",placeholder:o.placeholder,className:r.branchInput,disabled:m,error:!!t,helperText:t?.message??"",FormHelperTextProps:{className:r.helperText}})]})})})]})};export{N as FactDetailsComponent};
|
|
2
2
|
//# sourceMappingURL=FactDetailsComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{makeStyles as I,Box as b,Typography as o,TextField as m,Grid as d,MenuItem as N,IconButton as P}from"@material-ui/core";import F from"@material-ui/icons/Add";import j from"@material-ui/icons/Remove";import{useFormContext as y,useFieldArray as C,Controller as h}from"react-hook-form";import{FactDetailsComponent as $}from"./FactDetailsComponent.esm.js";import{ELEMENT_TYPES as _,ARRAY_ELEMENT_TYPES as A,DEFAULT_JSON_FACT_DATA as L,SCM_COLLECTOR_FIELDS as D}from"./utils.esm.js";const w=I(r=>({filePathInput:{marginTop:0,width:"690px"},labelInput:{marginTop:0,width:"255px"},jsonPathInput:{marginTop:0,width:"300px"},typeInput:{marginTop:0,width:"150px"},helperText:{marginLeft:0},caption:{margin:r.spacing(2,0)},filePathSection:{marginTop:r.spacing(1)}})),H=({name:r,disabled:l})=>{const t=w(),{filePath:T,label:u,type:g,json:c}=D.factDetails,{control:s}=y(),{fields:S,insert:v,remove:E}=C({control:s,name:`${r}.data`});return a(b,{children:[e($,{name:r,control:s,disabled:l}),a("div",{className:t.filePathSection,children:[a(b,{children:[e(o,{variant:"subtitle2",children:T.name}),e(o,{variant:"caption",children:T.helperText})]}),e(h,{name:`${r}.path`,control:s,render:({field:x,fieldState:{error:n}})=>e(m,{...x,type:"text",variant:"outlined",margin:"dense",placeholder:T.placeholder,className:t.filePathInput,disabled:l,error:!!n,helperText:n?.message,FormHelperTextProps:{className:t.helperText}})})]}),a("div",{className:t.caption,children:[e(o,{variant:"subtitle1",children:c.jsonElementsSection.name}),e(o,{variant:"caption",children:c.jsonElementsSection.description})]}),e(d,{container:!0,spacing:0,direction:"column",children:S.map((x,n)=>a(d,{item:!0,container:!0,alignItems:"center",spacing:2,children:[a(d,{item:!0,children:[e(o,{variant:"subtitle2",children:u.name}),e(h,{name:`${r}.data.${n}.name`,control:s,render:({field:p,fieldState:{error:i}})=>e(m,{...p,type:"text",variant:"outlined",margin:"dense",placeholder:u.placeholder,className:t.labelInput,disabled:l,error:!!i,helperText:i?.message??" ",FormHelperTextProps:{className:t.helperText}})})]}),a(d,{item:!0,children:[e(o,{variant:"subtitle2",children:c.jsonPath.name}),e(h,{name:`${r}.data.${n}.jsonPath`,control:s,render:({field:p,fieldState:{error:i}})=>e(m,{...p,type:"text",variant:"outlined",margin:"dense",placeholder:c.jsonPath.placeholder,className:t.jsonPathInput,disabled:l,error:!!i,helperText:i?.message??" ",FormHelperTextProps:{className:t.helperText}})})]}),a(d,{item:!0,children:[e(o,{variant:"subtitle2",children:g.name}),e(h,{name:`${r}.data.${n}.type`,control:s,render:({field:p,fieldState:{error:i}})=>e(m,{...p,select:!0,type:"text",variant:"outlined",margin:"dense",placeholder:g.placeholder,className:t.typeInput,disabled:l,error:!!i,helperText:i?.message??" ",FormHelperTextProps:{className:t.helperText},children:[..._,...A].map(f=>e(N,{value:f,children:f},f))})})]}),a(d,{item:!0,children:[e(P,{onClick:()=>E(n),disabled:l||S.length===1,children:e(j,{fontSize:"small"})}),e(P,{onClick:()=>v(n+1,L),disabled:l,children:e(F,{fontSize:"small"})})]})]},x.id))})]})};export{H as JsonFactDetailsComponent};
|
|
2
2
|
//# sourceMappingURL=JsonFactDetailsComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{makeStyles as L,Box as m,Grid as d,Typography as a,TextField as h,RadioGroup as D,FormControlLabel as I,Radio as M,MenuItem as _,IconButton as E}from"@material-ui/core";import A from"@material-ui/icons/Add";import H from"@material-ui/icons/Remove";import{useState as R}from"react";import{useFormContext as w,useFieldArray as k,Controller as u}from"react-hook-form";import{FactDetailsComponent as z}from"./FactDetailsComponent.esm.js";import{ELEMENT_TYPES as j,DEFAULT_REGEX_FACT_DATA as G,SCM_COLLECTOR_FIELDS as B}from"./utils.esm.js";const x="CaptureGroupsMode",g="TrueFalseMode",O=L(i=>({textInput:{marginTop:0,width:"690px"},labelInput:{marginTop:0,width:"255px"},typeInput:{marginTop:0,width:"150px"},helperText:{marginLeft:0},caption:{margin:i.spacing(2,0)},regexSection:{padding:i.spacing(1,0)}})),q=({name:i,disabled:c})=>{const l=O(),{label:F,type:y,filePath:T,regex:n}=B.factDetails,{control:p}=w(),{fields:f,insert:C,remove:N}=k({control:p,name:`${i}.data`}),[v,$]=R(f.length?x:g),P=o=>{const r=o.target.value;$(r),r===x?C(0,G):r===g&&N()};return t(m,{children:[e(z,{name:i,control:p,disabled:c}),t(d,{container:!0,spacing:1,direction:"column",className:l.regexSection,children:[t(d,{item:!0,children:[t(m,{children:[e(a,{variant:"subtitle2",children:T.name}),e(a,{variant:"caption",children:T.helperText})]}),e(u,{name:`${i}.path`,control:p,render:({field:o,fieldState:{error:r}})=>e(h,{...o,type:"text",variant:"outlined",margin:"dense",placeholder:T.placeholder,className:l.textInput,disabled:c,error:!!r,helperText:r?.message??"",FormHelperTextProps:{className:l.helperText}})})]}),t(d,{item:!0,children:[t(m,{children:[e(a,{variant:"subtitle2",children:n.regex.name}),e(a,{variant:"caption",children:n.regex.helperText})]}),e(u,{name:`${i}.regex`,control:p,render:({field:o,fieldState:{error:r}})=>e(h,{...o,type:"text",variant:"outlined",margin:"dense",placeholder:n.regex.placeholder,className:l.textInput,disabled:c,error:!!r,helperText:r?.message??"",FormHelperTextProps:{className:l.helperText}})})]}),t(d,{item:!0,children:[t(m,{children:[e(a,{variant:"subtitle2",children:n.flags.name}),e(a,{variant:"caption",children:n.flags.helperText})]}),e(u,{name:`${i}.flags`,control:p,render:({field:o,fieldState:{error:r}})=>e(h,{...o,type:"text",variant:"outlined",margin:"dense",placeholder:n.flags.placeholder,className:l.textInput,disabled:c,error:!!r,helperText:r?.message??"",FormHelperTextProps:{className:l.helperText}})})]})]}),t(D,{row:!0,name:"regexMode",value:v,onChange:P,children:[e(I,{value:g,control:e(M,{}),label:e(a,{variant:"subtitle2",children:n.trueFalseMode.label})}),e(I,{value:x,control:e(M,{}),label:e(a,{variant:"subtitle2",children:n.captureGroupsMode.label})})]}),v===g&&e(a,{variant:"caption",children:n.trueFalseMode.description}),v===x&&t(m,{children:[e(a,{variant:"caption",children:n.captureGroupsMode.description}),t("div",{className:l.caption,children:[e(a,{variant:"subtitle2",children:n.captureGroupsSection.name}),e(a,{variant:"caption",children:n.captureGroupsSection.description})]}),e(d,{container:!0,spacing:0,direction:"column",children:f.map((o,r)=>t(d,{item:!0,container:!0,alignItems:"center",spacing:2,children:[t(d,{item:!0,children:[e(a,{variant:"subtitle2",children:F.name}),e(u,{name:`${i}.data.${r}.name`,control:p,render:({field:b,fieldState:{error:s}})=>e(h,{...b,type:"text",variant:"outlined",margin:"dense",placeholder:F.placeholder,className:l.labelInput,disabled:c,error:!!s,helperText:s?.message??" ",FormHelperTextProps:{className:l.helperText}})})]}),t(d,{item:!0,children:[e(a,{variant:"subtitle2",children:y.name}),e(u,{name:`${i}.data.${r}.type`,control:p,render:({field:b,fieldState:{error:s}})=>e(h,{...b,select:!0,type:"text",variant:"outlined",margin:"dense",placeholder:y.placeholder,className:l.typeInput,disabled:c,error:!!s,helperText:s?.message??" ",FormHelperTextProps:{className:l.helperText},children:j.map(S=>e(_,{value:S,children:S},S))})})]}),t(d,{item:!0,children:[e(E,{onClick:()=>N(r),disabled:c||f.length===1,children:e(H,{fontSize:"small"})}),e(E,{onClick:()=>C(r+1,G),disabled:c,children:e(A,{fontSize:"small"})})]})]},o.id))})]})]})};export{q as RegexFactDetailsComponent};
|
|
2
2
|
//# sourceMappingURL=RegexFactDetailsComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as f,Fragment as v,jsx as o}from"react/jsx-runtime";import{zodResolver as y}from"@hookform/resolvers/zod";import{makeStyles as O,Paper as T,Divider as d}from"@material-ui/core";import{useCallback as L,useMemo as R}from"react";import{useForm as N,FormProvider as D}from"react-hook-form";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../../api.esm.js";import"../../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as M}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as j}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as P}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as _}from"../../../../routes.esm.js";import{FooterButtons as w}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as J}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as s}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as Y,confirmationModalContent as B}from"../Common/utils.esm.js";import{ExistsFactDetailsComponent as k}from"./ExistsFactDetailsComponent.esm.js";import{JsonFactDetailsComponent as A}from"./JsonFactDetailsComponent.esm.js";import{RegexFactDetailsComponent as z}from"./RegexFactDetailsComponent.esm.js";import{mapConfigToScmCollectorConfig as H,defaultScmCollectorConfig as C,EXISTS_COLLECTOR_TYPE as I,REGEX_COLLECTOR_TYPE as V,JSON_COLLECTOR_TYPE as X,mapScmCollectorConfigToConfig as G}from"./utils.esm.js";import{scmCollectorFormSchema as U}from"./validation.esm.js";const q=O(i=>({spacer:{height:i.spacing(8),width:"100%"},section:{marginBottom:i.spacing(2)}})),K=({disabled:i,selectedCollector:t})=>{const g=L(async(e,...n)=>{const a={enabled:!1,collectors:[]},F={exists:e.exists.enabled?e.exists:a,json:e.json.enabled?e.json:a,regex:e.regex.enabled?e.regex:a};return y(U)(F,...n)},[]),l=N({defaultValues:t?H(t.config):C(),mode:"onChange",resolver:g}),r=R(()=>C(t.config),[t]),{formState:{isValid:u},handleSubmit:m}=l,c=q(),x=!u,{mutateAsync:b}=P(),[S,h]=j(_),{showModal:E}=M(),p=async e=>{if(!await E(B(t)))return;const n=G(e);await b({collectorId:t.id,config:n})&&h()};return J(Y(t)),f(v,{children:[o(T,{className:c.section,children:o(D,{...l,children:f("form",{onSubmit:m(p),children:[o(s,{name:I,label:"Exists",description:"Collects information on the existence of files within an entity's repository.",disabled:i,multipleCollectors:{enable:!0,defaultConfig:r.exists.collectors[0]},FactDetailsComponent:k}),o(d,{}),o(s,{name:V,label:"Regex",description:"Executes regular expressions against a specified file in an entity's repository and collects its capture groups.",disabled:i,multipleCollectors:{enable:!0,defaultConfig:r.regex.collectors[0]},FactDetailsComponent:z}),o(d,{}),o(s,{name:X,label:"JSON / YAML",description:"Collects data from a JSON/YAML file at specified JSON paths in an entity's repository.",disabled:i,multipleCollectors:{enable:!0,defaultConfig:r.json.collectors[0]},FactDetailsComponent:A})]})})}),o("div",{className:c.section,children:o(w,{onCancel:S,saveButtonText:"Save",isLoading:!1,onSave:m(p),disableSave:x,noMargin:!0})})]})};export{K as ScmConfigurator};
|
|
2
2
|
//# sourceMappingURL=ScmConfigurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{validNameRegex as
|
|
1
|
+
import{validFactNameRegex as N,invalidFactNameErrorMessage as h,validNameRegex as i,invalidNameErrorMessage as n}from"@spotify/backstage-plugin-soundcheck-common";import{z as e}from"zod";import{FIELD_IS_REQUIRED_MSG as a}from"../../../../utils/validation.esm.js";import{BaseCollectorSchema as _}from"../Common/CollectorOption.esm.js";const m="Fact name is not unique",r="Max 100 characters",x="Max 1000 characters",p="Invalid regex flags: at least one of g, i, m, s, u, or y is required.",u=/^[gimsuy]*$/,g=e.object({factName:e.string().min(1,a).max(100,r).regex(N,h),branch:e.string().optional()}),j=g.merge(e.object({data:e.array(e.strictObject({name:e.string().min(1,a).max(100,r).regex(i,n),path:e.string().min(1,a).max(1e3,x)}))})).strict(),E=g.merge(e.object({path:e.string().min(1,a),regex:e.string().min(1,a),flags:e.string().regex(u,p).optional(),data:e.array(e.strictObject({name:e.string().min(1,a).max(100,r).regex(i,n),type:e.string().min(1,a).max(100,r).regex(i,n).optional()})).optional()})).strict(),I=g.merge(e.object({path:e.string().min(1,a),data:e.array(e.strictObject({name:e.string().min(1,a).regex(i,n),jsonPath:e.string().min(1,a),type:e.string().min(1,a)}))})).strict(),f=s=>e.strictObject({enabled:e.boolean().optional(),collectors:e.array(_.extend({factDetails:s}))}),D=e.strictObject({exists:f(j),regex:f(E),json:f(I)}).superRefine((s,l)=>{const d=[...s.exists.collectors.map(t=>t.factDetails.factName),...s.regex.collectors.map(t=>t.factDetails.factName),...s.json.collectors.map(t=>t.factDetails.factName)],o=d.filter((t,c)=>d.indexOf(t)!==c);o.length&&(s.exists.collectors.forEach((t,c)=>{o.includes(t.factDetails.factName)&&l.addIssue({code:e.ZodIssueCode.custom,message:m,path:["exists","collectors",c,"factDetails","factName"]})}),s.regex.collectors.forEach((t,c)=>{o.includes(t.factDetails.factName)&&l.addIssue({code:e.ZodIssueCode.custom,message:m,path:["regex","collectors",c,"factDetails","factName"]})}),s.json.collectors.forEach((t,c)=>{o.includes(t.factDetails.factName)&&l.addIssue({code:e.ZodIssueCode.custom,message:m,path:["json","collectors",c,"factDetails","factName"]})}))});export{m as FACT_NAME_IS_NOT_UNIQUE_MSG,p as INVALID_REGEX_FLAGS_MSG,x as MAX_1000_CHARACTERS_MSG,r as MAX_100_CHARACTERS_MSG,D as scmCollectorFormSchema,u as validFlagsRegex};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as h,jsx as e}from"react/jsx-runtime";import{makeStyles as I,Typography as i,Box as s,TextField as S}from"@material-ui/core";import{useFormContext as T,Controller as v}from"react-hook-form";import"../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import{FormControlledMultipleAutocomplete as p}from"../../../FormControlledAutocomplete/FormControlledMultipleAutocomplete.esm.js";import{useLabelOptions as m}from"../../../FormControlledAutocomplete/useLabelOptions.esm.js";import"@material-ui/lab";import"react";import"../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{FormFieldLabel as n}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{ISSUE_STATUS_OPTIONS as x,ISSUE_SEVERITY_OPTIONS as b,ISSUE_TYPE_OPTIONS as N}from"./utils.esm.js";const O=I(t=>({root:{paddingTop:t.spacing(1)},formInput:{marginTop:0,width:"500px",marginBottom:t.spacing(2)},helperText:{marginLeft:0}})),E=({name:t,disabled:r})=>{const o=O(),{control:a}=T(),c=m(x.map(l=>({label:l,value:l}))),u=m(b.map(l=>({label:l,value:l}))),f=m(N.map(l=>({label:l,value:l})));return h("div",{className:o.root,children:[e(n,{title:"Fact Name"}),e(i,{variant:"caption",children:"Fact name must be unique"}),e(s,{children:e(v,{name:`${t}.factName`,control:a,render:({field:l,fieldState:{error:d}})=>e(S,{...l,type:"text",variant:"outlined",margin:"dense",placeholder:"Fact Name",className:o.formInput,disabled:r,error:!!d,helperText:d?.message,FormHelperTextProps:{className:o.helperText}})})}),e(n,{title:"Issue Statuses (Optional)"}),e(i,{variant:"caption",children:"If not provided issues with all statuses will be collected"}),e(s,{className:o.formInput,children:e(p,{name:`${t}.statuses`,control:a,fullWidth:!0,freeSolo:!1,disabled:r,placeholder:"Example: OPEN",...c})}),e(n,{title:"Issue Severities (Optional)"}),e(i,{variant:"caption",children:"If not provided issues with all severities will be collected"}),e(s,{className:o.formInput,children:e(p,{name:`${t}.severities`,control:a,fullWidth:!0,freeSolo:!1,disabled:r,placeholder:"Example: BLOCKER",...u})}),e(n,{title:"Issue Types (Optional)"}),e(i,{variant:"caption",children:"If not provided issues with all types will be collected"}),e(s,{className:o.formInput,children:e(p,{name:`${t}.types`,control:a,fullWidth:!0,freeSolo:!1,disabled:r,placeholder:"Example: VULNERABILITY",...f})})]})};export{E as IssuesFactDetailsInput};
|
|
2
|
+
//# sourceMappingURL=IssuesFactDetailsInput.esm.js.map
|
package/dist/components/CollectorPage/Configurators/SonarQube/MeasuresFactDetailsInput.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as p,jsx as e}from"react/jsx-runtime";import{makeStyles as d,Typography as s,Box as c,TextField as x}from"@material-ui/core";import{useFormContext as h,Controller as m}from"react-hook-form";import{MetricsInput as f}from"./MetricsInput.esm.js";import{SONARQUBE_COLLECTOR_FIELDS as u}from"./utils.esm.js";const T=d(r=>({root:{paddingTop:r.spacing(1)},textInput:{marginTop:0,width:"500px"},helperText:{marginLeft:0}})),g=({name:r,disabled:l})=>{const o=T(),{control:i}=h(),{factName:n}=u.factDetails;return p("div",{className:o.root,children:[e(s,{variant:"subtitle2",children:n.name}),e(s,{variant:"caption",children:n.helperText}),e(c,{children:e(m,{name:`${r}.factName`,control:i,render:({field:t,fieldState:{error:a}})=>e(x,{...t,type:"text",variant:"outlined",margin:"dense",placeholder:n.placeholder,className:o.textInput,disabled:l,error:!!a,helperText:a?.message,FormHelperTextProps:{className:o.helperText}})})}),e(m,{name:`${r}.metrics`,control:i,render:({field:t,fieldState:{error:a}})=>e(f,{disabled:l,value:t.value,onChange:t.onChange,errors:a})})]})};export{g as MeasuresFactDetailsInput};
|
|
2
2
|
//# sourceMappingURL=MeasuresFactDetailsInput.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as o,jsx as i}from"react/jsx-runtime";import{makeStyles as C,Typography as f,Grid as p,Chip as y,TextField as N}from"@material-ui/core";import{useState as x,useEffect as b}from"react";import{SONARQUBE_COLLECTOR_FIELDS as E}from"./utils.esm.js";const I=C(r=>({caption:{marginTop:r.spacing(2),marginBottom:r.spacing(1)},metricsInput:{width:"500px"},metricChips:{marginBottom:r.spacing(1)},helperText:{marginLeft:0}})),D=({value:r,onChange:s,disabled:d,errors:h})=>{const a=I(),{metrics:l}=E.factDetails,[t,u]=x(r),[n,g]=x("");b(()=>{s&&s(t)},[t,s]);const T=e=>{e.key==="Enter"&&(t?.includes(n.trim())||u(t?[...t,n.trim()]:[n.trim()]),g(""))},v=(e,c)=>{u(t?.filter(m=>m!==c))};return o("div",{children:[o("div",{className:a.caption,children:[i(f,{variant:"subtitle2",children:l.name}),i(f,{variant:"caption",children:l.helperText})]}),o(p,{container:!0,direction:"column",spacing:0,className:a.metricsInput,children:[i(p,{item:!0,children:t?.map((e,c)=>i(y,{label:e,disabled:d,size:"small",onDelete:m=>v(m,e),className:a.metricChips},`${e}-${c}`))}),i(p,{item:!0,children:i(N,{type:"text",variant:"outlined",margin:"dense",placeholder:l.placeholder,className:a.metricsInput,disabled:d,error:!!h,fullWidth:!0,value:n,onChange:e=>g(e.target.value),onKeyDown:T,helperText:h?.message,FormHelperTextProps:{className:a.helperText}})})]})]})};export{D as MetricsInput};
|
|
2
2
|
//# sourceMappingURL=MetricsInput.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{zodResolver as
|
|
1
|
+
import{jsxs as c,Fragment as S,jsx as o}from"react/jsx-runtime";import{zodResolver as h}from"@hookform/resolvers/zod";import{makeStyles as j,Paper as v,Divider as a}from"@material-ui/core";import{useForm as F,FormProvider as Q}from"react-hook-form";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../../api.esm.js";import"../../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"react";import"../../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as y}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as k}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as w}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as T}from"../../../../routes.esm.js";import{FooterButtons as D}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as I}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as i}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as M,confirmationModalContent as P}from"../Common/utils.esm.js";import{IssuesFactDetailsInput as x}from"./IssuesFactDetailsInput.esm.js";import{MeasuresFactDetailsInput as B}from"./MeasuresFactDetailsInput.esm.js";import{mapConfigToSonarQubeCollectorConfig as N,defaultSonarQubeConfig as R,issuesCollectorConfig as A,measuresCollectorConfig as H,mapSonarQubeCollectorConfigToConfig as z}from"./utils.esm.js";import{sonarQubeCollectorFormSchema as L}from"./validation.esm.js";const U=j(e=>({spacer:{height:e.spacing(8),width:"100%"},section:{marginBottom:e.spacing(2)}})),V=({disabled:e,selectedCollector:t})=>{const s=F({defaultValues:t?N(t.config):R(),mode:"onChange",resolver:h(L)}),{formState:{errors:r},handleSubmit:n}=s,l=U(),p=!!r.projects||!!r.projectTags||!!r.issues||!!r.measures,{mutateAsync:d}=w(),[u,f]=k(T),{showModal:C}=y(),m=async g=>{if(!await C(P(t)))return;const b=z(g);await d({collectorId:t.id,config:b})&&f()};return I(M(t)),c(S,{children:[o(v,{className:l.section,children:o(Q,{...s,children:c("form",{onSubmit:n(m),children:[o(i,{name:"projects",label:"Projects",description:"Collects details about SonarQube project linked to an entity.",disabled:e}),o(a,{}),o(i,{name:"projectTags",label:"Project Tags",description:"Collects details about tags set on a SonarQube project linked to an entity.",disabled:e}),o(a,{}),o(i,{name:"issues",label:"Issues",description:"Collects details about issues associated with a SonarQube project linked to an entity.",disabled:e,FactDetailsComponent:x,multipleCollectors:{enable:!0,defaultConfig:A(t.config)}}),o(a,{}),o(i,{name:"measures",label:"Measures",description:"Collects details about measures associated with a SonarQube project linked to an entity.",disabled:e,FactDetailsComponent:B,multipleCollectors:{enable:!0,defaultConfig:H(t.config)}})]})})}),o("div",{className:l.section,children:o(D,{onCancel:u,saveButtonText:"Save",isLoading:!1,onSave:n(m),disableSave:p})})]})};export{V as SonarQubeConfigurator};
|
|
2
2
|
//# sourceMappingURL=SonarQubeConfigurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{asArray as d}from"@spotify/backstage-plugin-soundcheck-common";import{defaultBaseCollectorOption as
|
|
1
|
+
import{asArray as d}from"@spotify/backstage-plugin-soundcheck-common";import{defaultBaseCollectorOption as u,defaultCollectorOption as O}from"../Common/CollectorOption.esm.js";import{mapBackendConfigToFormIntegrationConfig as p,mapFormIntegrationConfigToBackendConfig as m}from"../Common/utils.esm.js";const C="projects",E="project-tags",r="issues",f="measures",D=["OPEN","CONFIRMED","REOPENED","RESOLVED","CLOSED"],y=["BLOCKER","CRITICAL","MAJOR","MINOR","INFO"],L=["VULNERABILITY","BUG","CODE_SMELL"],T=["OPEN"],g=["ncloc","complexity","violations","open_issues"],I={factDetails:{factName:{name:"Fact Name",helperText:"Fact name must be unique",placeholder:"Fact Name"},metrics:{name:"Metrics",helperText:"Add more metrics to collect",placeholder:"Example: code_smells"}}},S=(t,s,c,o,i)=>({...u(t),factDetails:{factName:s??"",statuses:c??T,severities:o,types:i}}),N=(t,s,c)=>({...u(t),factDetails:{factName:s??"",metrics:c??g}}),_=t=>({projects:O(t),projectTags:O(t),issues:{enabled:!1,collectors:[S(t,r,T)]},measures:{enabled:!1,collectors:[N(t,f,g)]}});function R(t){const{projects:s,projectTags:c,issues:o,measures:i}=t;if(s.enabled||c.enabled||o.enabled||i.enabled){const l={},n=[];return l.collects=n,s.enabled&&n.push(m({factType:C,configOption:s})),c.enabled&&n.push(m({factType:E,configOption:c})),o.enabled&&o.collectors.forEach(a=>{n.push(m({factType:r,configOption:a,additionalParams:{factName:a.factDetails.factName,statuses:a.factDetails.statuses?.length?a.factDetails.statuses:void 0,severities:a.factDetails.severities?.length?a.factDetails.severities:void 0,types:a.factDetails.types?.length?a.factDetails.types:void 0}}))}),i.enabled&&i.collectors.forEach(a=>{n.push(m({factType:f,configOption:a,additionalParams:{factName:a.factDetails.factName,metrics:a.factDetails.metrics}}))}),l}return{collects:[]}}function b(t){const s=_(t);if(t){const c=d(t).flatMap(o=>o.collects);if(c){const o=d(c),i=o.find(e=>e.type===C);i&&(s.projects={...p({parentConfig:t,factTypeConfig:i}),enabled:!0});const l=o.find(e=>e.type===E);l&&(s.projectTags={...p({parentConfig:t,factTypeConfig:l}),enabled:!0});const n=o.filter(e=>e.type===r);n.length&&(s.issues={enabled:!0,collectors:n.map(e=>({...p({parentConfig:t,factTypeConfig:e}),factDetails:{factName:e.factName??r,statuses:e.statuses?.length?e.statuses:void 0,severities:e.severities?.length?e.severities:void 0,types:e.types?.length?e.types:void 0}}))});const a=o.filter(e=>e.type===f);a.length&&(s.measures={enabled:!0,collectors:a.map(e=>({...p({parentConfig:t,factTypeConfig:e}),factDetails:{factName:e.factName??f,metrics:e.metrics}}))})}}return s}export{T as DEFAULT_ISSUE_STATUSES,g as DEFAULT_METRICS,r as ISSUES_COLLECTOR_TYPE,y as ISSUE_SEVERITY_OPTIONS,D as ISSUE_STATUS_OPTIONS,L as ISSUE_TYPE_OPTIONS,f as MEASURES_COLLECTOR_TYPE,C as PROJECTS_COLLECTOR_TYPE,E as PROJECT_TAGS_COLLECTOR_TYPE,I as SONARQUBE_COLLECTOR_FIELDS,_ as defaultSonarQubeConfig,S as issuesCollectorConfig,b as mapConfigToSonarQubeCollectorConfig,R as mapSonarQubeCollectorConfigToConfig,N as measuresCollectorConfig};
|
|
2
2
|
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{validFactNameRegex as l,invalidFactNameErrorMessage as n}from"@spotify/backstage-plugin-soundcheck-common";import{z as e}from"zod";import{FIELD_IS_REQUIRED_MSG as f}from"../../../../utils/validation.esm.js";import{BaseCollectorSchema as u,CollectorOptionSchema as d}from"../Common/CollectorOption.esm.js";import{ISSUE_STATUS_OPTIONS as _,ISSUE_SEVERITY_OPTIONS as p,ISSUE_TYPE_OPTIONS as I}from"./utils.esm.js";const r="Fact name is not unique",o="Max 100 characters",S="At least one metric must be added",N=u.extend({factDetails:e.strictObject({factName:e.string().min(1,f).max(100,o).regex(l,n),statuses:e.array(e.enum(_)).optional(),severities:e.array(e.enum(p)).optional(),types:e.array(e.enum(I)).optional()})}).strict(),E=e.strictObject({enabled:e.boolean(),collectors:e.array(N)}),O=u.extend({factDetails:e.strictObject({factName:e.string().min(1,f).max(100,o).regex(l,n),metrics:e.array(e.string()).min(1,S)})}).strict(),g=e.strictObject({enabled:e.boolean(),collectors:e.array(O)}),T=e.strictObject({projects:d,projectTags:d,issues:E,measures:g}).superRefine((s,i)=>{const m=[...s.issues.collectors.map(t=>t.factDetails.factName),...s.measures.collectors.map(t=>t.factDetails.factName)],c=m.filter((t,a)=>m.indexOf(t)!==a);c.length&&s.issues.collectors.forEach((t,a)=>{c.includes(t.factDetails.factName)&&i.addIssue({code:e.ZodIssueCode.custom,message:r,path:["issues","collectors",a,"factDetails","factName"]})}),c.length&&s.measures.collectors.forEach((t,a)=>{c.includes(t.factDetails.factName)&&i.addIssue({code:e.ZodIssueCode.custom,message:r,path:["measures","collectors",a,"factDetails","factName"]})})});export{r as FACT_NAME_IS_NOT_UNIQUE_MSG,o as MAX_100_CHARACTERS_MSG,S as MIN_1_METRIC_MSG,T as sonarQubeCollectorFormSchema};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{Grid as i}from"@material-ui/core";import{useGetCollectors as d}from"../../../hooks/collectors/useGetCollectors.esm.js";import{CollectorListSkeleton as a}from"./CollectorListSkeleton.esm.js";import{ConfigurableCollectorIds as e,CollectorSummaryCard as n}from"./CollectorSummaryCard.esm.js";const s=()=>{const{data:t,isLoading:c}=d();return r(i,{container:!0,direction:"row",children:r(i,{container:!0,spacing:4,role:"list","aria-label":"checks",children:c?r(a,{}):t?.filter(o=>o.isConfigurable)?.sort((o,l)=>!e.includes(o.id)&&e.includes(l.id)?1:e.includes(o.id)&&!e.includes(l.id)?-1:(o.name??o.id).localeCompare(l.name??l.id))?.map(o=>r(i,{xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`collector card ${o.id}`,children:r(n,{collector:o})},o.id))})})};export{s as CollectorListPage};
|
|
2
2
|
//# sourceMappingURL=CollectorListPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as r,Fragment as e}from"react/jsx-runtime";import{Grid as o}from"@material-ui/core";import{Skeleton as i}from"@material-ui/lab";const l=()=>r(e,{children:Array.from({length:6},(m,t)=>r(o,{xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem",children:r(i,{variant:"rect",height:385})},`loading-${t}`))});export{l as CollectorListSkeleton};
|
|
2
2
|
//# sourceMappingURL=CollectorListSkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsx as p}from"react/jsx-runtime";import{makeStyles as g,useTheme as f}from"@material-ui/core";import s from"../../../images/azure-devops-rgb.svg";import c from"../../../images/azure-devops-white.svg";import n from"../../../images/bigquery-rgb.svg";import h from"../../../images/bigquery-white.svg";import l from"../../../images/cat-blk.svg";import u from"../../../images/cat-wht.svg";import d from"../../../images/data-registry-blk.svg";import b from"../../../images/data-registry-wht.svg";import y from"../../../images/dd_logo_h_rgb.svg";import k from"../../../images/dd_logo_h_white.svg";import q from"../../../images/GitHub_Logo.svg";import j from"../../../images/GitHub_Logo_White.svg";import w from"../../../images/gitlab-rgb.svg";import x from"../../../images/gitlab-white.svg";import B from"../../../images/http-rgb.svg";import z from"../../../images/http-white.svg";import I from"../../../images/jira-rgb.svg";import L from"../../../images/jira-white.svg";import S from"../../../images/k8s_blue.svg";import T from"../../../images/k8s_white.svg";import $ from"../../../images/new-relic-rgb.svg";import C from"../../../images/new-relic-white.svg";import D from"../../../images/pd-black.svg";import M from"../../../images/pd-white.svg";import N from"../../../images/SCM_DARK.svg";import A from"../../../images/SCM_LIGHT.svg";import E from"../../../images/sonarqube-rgb.svg";import F from"../../../images/sonarqube-white.svg";import G from"../../../images/soundcheck-black.svg";import H from"../../../images/soundcheck-white.svg";import K from"../../../images/tech-black.svg";import O from"../../../images/tech-white.svg";import{isDarkTheme as Q}from"../../Charts/chartUtils.esm.js";const t={github:q,gitlab:w,datadog:y,scm:A,pagerduty:D,catalog:l,soundcheck:G,techinsights:K,kubernetes:S,jira:I,sonarqube:E,newrelic:$,bigquery:n,azure:s,http:B,"data-registry":d},i={github:j,gitlab:x,datadog:k,scm:N,pagerduty:M,catalog:u,soundcheck:H,techinsights:O,kubernetes:T,jira:L,sonarqube:F,newrelic:C,bigquery:h,azure:c,http:z,"data-registry":b},R=new Set(["catalog","soundcheck","techinsights","sonarqube","data-registry"]),W=g(o=>({image:{objectFit:"contain",color:"white",height:o.spacing(5)-4,maxWidth:"100%",marginBottom:o.spacing(1.5)},tallImage:{height:o.spacing(6.5),marginBottom:o.spacing(0)}})),_=o=>!!t[o]&&!!i[o],v=({collectorId:o,noMargin:a})=>{const r=W(),e=f(),m=Q(e)?i[o]:t[o];return m?p("img",{src:m,alt:o,style:a?{marginBottom:0}:{},className:`${r.image} ${R.has(o)?r.tallImage:""}`}):null};export{v as CollectorLogo,_ as hasLogo};
|
|
2
2
|
//# sourceMappingURL=CollectorLogo.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as s,jsx as e}from"react/jsx-runtime";import{useRouteRef as N}from"@backstage/core-plugin-api";import{usePermission as I}from"@backstage/plugin-permission-react";import{makeStyles as k,CardContent as p,CardHeader as x,Typography as u,Divider as S,CardActions as T,Button as A}from"@material-ui/core";import{soundcheckCollectorUpdatePermission as B}from"@spotify/backstage-plugin-soundcheck-common";import{useNavigate as H}from"react-router-dom";import{integrationDetailsRouteRef as L}from"../../../routes.esm.js";import{SoundcheckMarkdownContent as R}from"../../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import{useSummaryCardStyles as $,Card as j}from"../../SummaryCard/SummaryCard.esm.js";import{hasLogo as w,CollectorLogo as D}from"./CollectorLogo.esm.js";const M=k(t=>({cardContent:{flex:1,paddingTop:t.spacing(1)},logoHeader:{paddingBottom:0,flex:0},headerContent:{display:"flex",alignItems:"center",height:t.spacing(5),marginBottom:t.spacing(1.5)},headerTypography:{marginBottom:0}})),d=["github","gitlab","scm","pagerduty","datadog","kubernetes","jira","sonarqube","newrelic","bigquery","catalog","azure","http","data-registry"],P=({collector:t})=>{const{description:h,id:o,isConfigurable:l,isEditable:c,name:f}=t,{loading:m,allowed:g}=I({permission:B}),y=H(),C=N(L),r=$(),i=M(),b=d.includes(o)&&l&&c&&!m&&g,v=()=>{y(C({integrationId:o}))};let a;m||!g?a="You don't have permissions to configure this integration.":l?c?d.includes(o)||(a="Integration can only be configured through YAML"):a="Integration is already configured via YAML and cannot be configured through the UI.":a="Integration is not configurable.";const n=f??o;return s(j,{"data-testid":o,className:r.card,children:[w(o)?e(p,{className:i.logoHeader,children:e(D,{collectorId:o})}):e(x,{title:n,titleTypographyProps:{className:`${r.summaryName} ${i.headerTypography}`},classes:{content:i.headerContent}}),s(p,{className:i.cardContent,children:[e(u,{variant:"body1",component:"div",children:e(R,{className:r.summaryDescription,content:h??""})}),e(u,{color:"textSecondary",variant:"body2",children:a})]}),b&&s("div",{children:[e(S,{}),e(T,{className:r.actionArea,children:e(A,{"aria-label":`${n}-edit`,"data-testid":`${n}-button`,size:"medium",role:"link",onClick:v,className:r.button,variant:"outlined",children:"Configure"})})]})]})};export{P as CollectorSummaryCard,d as ConfigurableCollectorIds};
|
|
2
2
|
//# sourceMappingURL=CollectorSummaryCard.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{makeStyles as t}from"@material-ui/core";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as e}from"../SoundcheckHeader/useHeader.esm.js";import{CollectorListPage as i}from"./CollectorListPage/CollectorListPage.esm.js";const a=t(o=>({container:{padding:o.spacing(3)}})),m=()=>{const o=a();return e(),r("div",{className:o.container,children:r(i,{})})};export{m as CollectorsPage};
|
|
2
2
|
//# sourceMappingURL=CollectorsPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{jsx as i,jsxs as a}from"react/jsx-runtime";import{parseEntityRef as s}from"@backstage/catalog-model";import{humanizeEntityRef as l}from"@backstage/plugin-catalog-react";import{makeStyles as f,Card as g,Typography as d}from"@material-ui/core";import h from"../../images/empty-state.svg";const u=f(e=>({card:{backgroundColor:e.palette.background.paper,border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius,display:"flex",padding:e.spacing(5)},container:{margin:"0 auto",display:"flex",flexDirection:"row",alignItems:"center",gap:e.spacing(5)},content:{width:"20rem",display:"flex",flexDirection:"column",gap:e.spacing(2)},header:{display:"flex",flexDirection:"column",gap:e.spacing(2)},action:{display:"inline-block"},img:{maxHeight:400}})),o=({title:e,description:r,imgSrc:t,action:c})=>{const n=u();return i(g,{className:n.card,children:a("div",{className:n.container,children:[a("div",{className:n.content,children:[a("header",{className:n.header,children:[i(d,{variant:"h5",children:e}),i(d,{color:"textSecondary",variant:"body1",children:r})]}),c&&i("div",{className:n.action,children:c})]}),i("div",{children:i("img",{src:t??h,className:n.img,alt:e})})]})})},p="No certifications available",y=({ownerEntityRef:e,selectGroupHint:r})=>{let t="There are no tracks configured that apply to this entity.";return e&&(t=`Looks like the group '${l(s(e),{defaultKind:"Group"})}' doesn't own any entities that have any applicable tracks configured. ${r}`),i(o,{title:p,description:t})},m="Missing entities",x=({ownerEntityRef:e,selectGroupHint:r})=>{if(!e)return null;const t=l(s(e),{defaultKind:"Group"});return i(o,{title:m,description:`The group '${t}' doesn't own any entities. ${r??""}`})};export{o as EmptyState,y as NoCertifications,x as NoEntities,p as noCertificationsTitle,m as noEntitiesTitle};
|
|
2
2
|
//# sourceMappingURL=EmptyState.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as T}from"react/jsx-runtime";import{makeStyles as F,FormControlLabel as O,Checkbox as z,Typography as A,Box as w,TextField as I}from"@material-ui/core";import N from"@material-ui/icons/CheckBox";import j from"@material-ui/icons/CheckBoxOutlineBlank";import B from"@material-ui/icons/ExpandMore";import{Autocomplete as E}from"@material-ui/lab";import{useState as G,useMemo as m,useCallback as p}from"react";import{useGetEntityRefs as D}from"../../hooks/catalog/useGetEntityRefs.esm.js";import{FormFieldLabel as H}from"../FormFieldLabel/FormFieldLabel.esm.js";import{ListboxVirtualized as M}from"../ListboxVirtualized/ListboxVirtualized.esm.js";const P=F({container:{padding:0},formControl:{flexGrow:1},label:{lineHeight:"1em"}}),Q=({label:d,values:o,onChange:n,disabled:f,filter:g,renderOption:b,renderTags:h})=>{const i=P(),[C,a]=G(!1),{data:t,isLoading:u,error:k}=D(g),s=m(()=>o?.map(l=>l.toLocaleLowerCase("en-US"))??[],[o]),x=p((l,r)=>{n(r),t&&t.every(c=>r.includes(c))&&a(!1)},[t,n]),y=p(()=>{n(o?.length?o:void 0)},[o,n]),L=p((l,r)=>b?.(l,r)??e(O,{onClick:c=>c.preventDefault(),control:e(z,{icon:e(j,{fontSize:"small"}),checkedIcon:e(N,{fontSize:"small"}),checked:r.selected}),label:l,classes:{label:i.label}}),[b,i.label]),S=m(()=>f||u||!o?.length&&!t?.length,[f,u,o?.length,t?.length]),v=m(()=>Array.from(new Set([...t??[],...s])),[t,s]);return k?e(A,{color:"error",children:"Failed to load entities"}):T(w,{pb:1,pt:1,className:i.container,children:[e(H,{title:d,docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/filters"}),e(E,{open:C,onOpen:()=>a(!0),onClose:()=>a(!1),className:i.formControl,multiple:!0,limitTags:4,disableCloseOnSelect:!0,"aria-label":d,options:v,value:s,onChange:x,onBlur:y,disabled:S,ListboxComponent:M,renderOption:L,renderTags:h,size:"small",popupIcon:e(B,{"data-testid":"selected-facets-expand"}),renderInput:l=>e(I,{...l,variant:"outlined"})})]})};export{Q as EntitiesAutocompletePicker};
|
|
2
|
+
//# sourceMappingURL=EntitiesAutocompletePicker.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useApi as
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{useApi as l}from"@backstage/core-plugin-api";import{entityPresentationApiRef as m,EntityRefLink as s}from"@backstage/plugin-catalog-react";import{Chip as o,Avatar as p}from"@material-ui/core";import{Skeleton as a}from"@material-ui/lab";import f from"react-use/esm/useAsync";const y=({entityOrRef:e,style:r})=>{const n=l(m),{value:i}=f(async()=>await n.forEntity(e).promise);return i?t(s,{entityRef:e,children:t(o,{size:"small",avatar:i.Icon?t(p,{children:t(i.Icon,{})}):void 0,label:i.primaryTitle,style:{cursor:"pointer",...r}})}):t(o,{size:"small",avatar:t(a,{variant:"circle",width:16,height:16}),label:t(a,{variant:"text",width:65}),style:r})};export{y as EntityChip};
|
|
2
2
|
//# sourceMappingURL=EntityChip.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useApi as
|
|
1
|
+
import{jsx as e,Fragment as l,jsxs as f}from"react/jsx-runtime";import{useApi as o,githubAuthApiRef as p,configApiRef as d}from"@backstage/core-plugin-api";import{identityApiRef as g}from"@backstage/frontend-plugin-api";import{useTemplateSecrets as u}from"@backstage/plugin-scaffolder-react";import{makeStyles as A}from"@material-ui/core";import{SpotifyLicenseBanner as h}from"@spotify/backstage-plugin-core";import y from"react-use/lib/useAsync";import{AlertProvider as k}from"../../hooks/useSoundcheckAlert.esm.js";import{soundcheckBackend as v,invalidLicenseMessage as E}from"../../utils/license.esm.js";import{CertificationsPage as L}from"../CertificationsPage/CertificationsPage.esm.js";const P=A(i=>({root:{"&:not(:first-child)":{marginTop:i.spacing(2)}}})),S=()=>{const i=P(),r=o(p),t=o(g),n=o(d).getOptionalStringArray("soundcheck.flags")?.includes("enable-fix-me"),{setSecrets:s}=u();return y(async()=>{const[a,c,m]=await Promise.all([n?r.getAccessToken(void 0,{optional:!0}):Promise.resolve(""),t.getProfileInfo(),t.getBackstageIdentity()]);s({GHE_LOGIN:m.userEntityRef.replace("default/",""),GHE_EMAIL:c.email,GHE_TOKEN:a})},[r,t]),e(l,{children:f(k,{children:[e(h,{backend:v,invalidLicenseMessage:E,inline:!0}),e("div",{className:i.root,children:e(L,{})})]})})};export{S as EntityContent};
|
|
2
2
|
//# sourceMappingURL=EntityContent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{entityPassRatesSummaryCsvFilename as o}from"../../utils/charts.esm.js";import"recharts";import"../Charts/ChartTypes.esm.js";import"../Charts/LineChart/LineChart.esm.js";import"@material-ui/core";import"../Charts/chartUtils.esm.js";import"luxon";import{useSummaryAggregationsContext as m}from"../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{EntityPassRateHistoryLineChart as n}from"../Charts/LineChart/EntityPassRateHistoryLineChart.esm.js";import"../Charts/BarChart/BarChart.esm.js";import"@backstage/catalog-model";import{OverviewChartCard as p}from"../OverviewChartCard/OverviewChartCard.esm.js";import"../OverviewChartCard/OverviewChartCardStyles.esm.js";import{overallEntityPassRatesToCsv as l}from"../TechHealthTabs/TechHealthExportFunctions.esm.js";const y=()=>{const{entityPassRatesOverviewTrends:{data:t,isLoading:r,isError:s}}=m(),a=t?.overallEntityPassRates?.length,i=!t?.overallEntityPassRates||!a||r||s;return e(p,{title:"Entity pass rate",subtitle:"By default, this chart shows the top 5 entities by pass rate for all teams with which you are associated. To see a different set of entities, use the filters.",chartSectionContent:e(n,{}),disableDataExport:i,csvFilename:o,csvData:l(t)})};export{y as EntityPassRateCard};
|
|
2
2
|
//# sourceMappingURL=EntityPassRateCard.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Link as
|
|
1
|
+
import{jsx as i,jsxs as c}from"react/jsx-runtime";import{Link as g,InfoCard as v}from"@backstage/core-components";import{useRouteRef as d}from"@backstage/core-plugin-api";import{useEntity as C}from"@backstage/plugin-catalog-react";import{Divider as R}from"@material-ui/core";import S from"@material-ui/core/styles/makeStyles";import{SpotifyLicenseBanner as I}from"@spotify/backstage-plugin-core";import{Fragment as L}from"react";import{useAllCertifications as w}from"../../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/catalog-model";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{usePlaylists as b}from"../../hooks/playlists/usePlaylists.esm.js";import{certificationTrackRouteRef as x,certificationPlaylistTrackRouteRef as E}from"../../routes.esm.js";import{soundcheckBackend as N,invalidLicenseMessage as j}from"../../utils/license.esm.js";import{AlertPanel as A}from"../AlertPanel/AlertPanel.esm.js";import"../CertificationSidebar/CertificationSidebar.esm.js";import{CertificationSummary as P}from"../CertificationSidebar/CertificationSummary.esm.js";import"@material-ui/lab";import"../CertificationSidebar/Check.esm.js";import"../CertificationSidebar/LevelSummary.esm.js";import{NoCertifications as T}from"../EmptyState/EmptyState.esm.js";import{CardSkeleton as B}from"./skeletons/CardSkeleton.esm.js";const m=S(t=>({certificationWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center"},infoCard:{display:"grid",gridRowGap:t.spacing(2)},emptyState:{overflow:"hidden"}})),n=({children:t,title:e})=>{const o=m();return i(v,{title:e,children:c("div",{className:o.infoCard,children:[i(I,{inline:!0,backend:N,invalidLicenseMessage:j}),t]})})},D=(t,e)=>t.find(o=>o.trackIds.some(a=>a===e))?.id??"",M=({title:t="Soundcheck"})=>{const{entity:e}=C(),o=m(),{data:a,isError:l,isLoading:p}=w(e),{data:s,isError:f,isLoading:k}=b(e),y=d(x),h=d(E);return l||f?i(n,{title:t,children:i(A,{severity:"error",title:"Error loading certifications"})}):p||k||!a||!s?i(n,{title:t,children:i(B,{})}):a.length?i(n,{title:t,children:a.map((r,u)=>c(L,{children:[c("div",{className:o.certificationWrapper,"data-testid":"soundcheck-track-row",children:[i(P,{name:r.track.name,badge:r.track.badge,trackType:r.track?.type},r.track.id),i(g,{to:r.track.type==="playlist"?h({playlistId:D(s,r.track.id),trackId:r.track.id}):y({trackId:r.track.id}),children:"View Details"})]}),u<a.length-1?i(R,{}):null]},r.track.name))}):i(n,{title:t,children:i("div",{className:o.emptyState,children:i(T,{})})})};export{M as Card,m as useStyles};
|
|
2
2
|
//# sourceMappingURL=Card.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{SoundcheckQueryClientProvider as o}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{Card as e}from"./Card.esm.js";const i=({title:t})=>r(o,{children:r(e,{title:t})});export{i as EntitySoundcheckCard};
|
|
2
2
|
//# sourceMappingURL=EntitySoundcheckCard.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsxs as o,Fragment as t,jsx as i}from"react/jsx-runtime";import"../../CertificationSidebar/CertificationSidebar.esm.js";import"../../CertificationSidebar/CertificationSummary.esm.js";import"react";import{CertificationSummarySkeleton as r}from"../../CertificationSidebar/skeletons/CertificationSummarySkeleton.esm.js";import"@material-ui/core";import"@material-ui/lab";import"../../CertificationSidebar/Check.esm.js";import"../../CertificationSidebar/LevelSummary.esm.js";const m=()=>o(t,{children:[i(r,{hideDescription:!0}),i(r,{hideDescription:!0})]});export{m as CardSkeleton};
|
|
2
2
|
//# sourceMappingURL=CardSkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{Router as r}from"./Router.esm.js";import{SoundcheckQueryClientProvider as t}from"./SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";const e=()=>o(t,{children:o(r,{})});export{e as EntitySoundcheckContent};
|
|
2
2
|
//# sourceMappingURL=EntitySoundcheckContent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{motion as t}from"framer-motion";const n={hidden:{height:0,opacity:0,overflow:"hidden"},visible:{height:"auto",opacity:1,overflow:"visible"}};function a({visible:i,...e}){return o(t.div,{...e,animate:i?"visible":"hidden",initial:"hidden",variants:n})}export{a as default};
|
|
2
2
|
//# sourceMappingURL=Expand.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Paper as
|
|
1
|
+
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{Paper as d,Grid as n,IconButton as f,Typography as h,Collapse as g}from"@material-ui/core";import{makeStyles as x}from"@material-ui/core/styles";import u from"@material-ui/icons/ArrowDropDown";import y from"@material-ui/icons/ArrowRight";import{useState as S}from"react";const N=x(t=>({root:{display:"flex",flexDirection:"column",gap:0},button:{marginLeft:-t.spacing(1)},title:{fontWeight:700,color:t.palette.text.primary,cursor:"pointer"}})),b=({title:t,alwaysExpanded:o=!1,children:c,className:m,elevation:s=1})=>{const[r,p]=S(o),i=N(),l=()=>{o||p(!r)};return a(d,{elevation:s,className:`${i.root} ${m??""}`,children:[a(n,{container:!0,alignItems:"center",spacing:0,children:[e(n,{item:!0,children:!o&&e(f,{onClick:l,className:i.button,children:r?e(u,{fontSize:"large"}):e(y,{fontSize:"large"})})}),e(n,{item:!0,children:e(h,{onClick:l,className:i.title,children:t})})]}),e(g,{in:r,children:c})]})};export{b as ExpandableSection};
|
|
2
2
|
//# sourceMappingURL=ExpandableSection.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsx as e,jsxs as o,Fragment as R}from"react/jsx-runtime";import{makeStyles as q,Box as n,Typography as i,Button as j}from"@material-ui/core";import{parseFactRef as X}from"@spotify/backstage-plugin-soundcheck-common";import{useMemo as f,useState as b,useEffect as Y,useCallback as Z}from"react";import{useGetEntityRefs as _}from"../../hooks/catalog/useGetEntityRefs.esm.js";import{useGetCollectors as ee}from"../../hooks/collectors/useGetCollectors.esm.js";import{useGetFactSchema as te}from"../../hooks/collectors/useGetFactSchema.esm.js";import{useGetFact as ae}from"../../hooks/useGetFact.esm.js";import{useGetPathResolvers as oe}from"../../hooks/useGetPathResolvers.esm.js";import{generateJsonPaths as ie}from"../CheckForm/utils/checkFormUtils.esm.js";import{hasLogo as ne,CollectorLogo as re}from"../CollectorsPage/CollectorListPage/CollectorLogo.esm.js";import{ExpandableSection as B}from"../ExpandableSection/ExpandableSection.esm.js";import{mapFiltersToCatalogFilter as le}from"../Filter/utils.esm.js";import"../Filter/FilterComponent.esm.js";import{emptyFilters as ce}from"../Filter/types.esm.js";import{FormattedPreview as C}from"../FormattedPreview/FormattedPreview.esm.js";import"../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"react-hook-form";import"../ListboxVirtualized/ListboxVirtualized.esm.js";import{useLabelOptions as se}from"../FormControlledAutocomplete/useLabelOptions.esm.js";import{ControlledAutocomplete as v}from"../FormControlledAutocomplete/ControlledAutocomplete.esm.js";import{LoadingIndicator as de}from"../LoadingIndicator/LoadingIndicator.esm.js";import{useFactOptions as pe}from"./useFactOptions.esm.js";const me=800,he=q(t=>({content:{padding:t.spacing(2,3),width:me},section:{margin:t.spacing(2,0)},expandedSection:{borderTop:`1px solid ${t.palette.divider}`,padding:t.spacing(0,2)},loading:{margin:t.spacing(2)},preview:{maxHeight:500,overflow:"auto",border:`1px solid ${t.palette.divider}`},pathSection:{display:"flex",alignItems:"center",margin:t.spacing(1,0)},testPathButton:{margin:t.spacing(1,1,.5,0)},collectorName:{fontSize:24}})),I=t=>{const g=!t||Object.values(t).every(d=>!d?.length)?{...ce(),selectedKinds:["Component","System"]}:t;return le(g)},ue=({factRef:t,updateFactRef:g,path:d,updatePath:T,entityRef:m,updateEntityRef:k,pathResolver:s,filters:G,onSave:P})=>{const a=he(),p=f(()=>{if(t)return X(t)},[t]),[S,L]=b(p?.source??null);Y(()=>{p?.source&&L(p.source)},[p?.source]);const[y,V]=b("jsonpath"),[F,w]=b(),[N,W]=b(),{data:O}=oe(),M=f(()=>O?.map(c=>c.id)??[],[O]),{data:h}=te(p?.source,p?.name,!0),D=f(()=>h?ie(h.schema):[],[h]),{data:x,isLoading:J}=ee(),$=x?.map(c=>c.id)?.sort()??[],{data:z,isLoading:A}=_(I(G),500),r=f(()=>x?.find(c=>c.id===S),[x,S]),{factOptions:H}=pe({selectedCollector:r}),{options:K,getOptionLabel:E}=se(H),{data:l,isLoading:u}=ae({factRef:t||"",entityRef:N||"",path:F,pathResolver:s??y??void 0},!!t&&!!N),Q=Z(()=>{w(d),W(m)},[m,d]),U=f(()=>!!r?.config?.cache,[r]);return e(n,{className:a.content,"data-testid":"fact-explorer",children:o(n,{children:[o(n,{children:[e(i,{variant:"subtitle1",children:"Select an Integration"}),e(v,{options:$,onChange:c=>{L(c),g("")},value:S,placeholder:"Integration",disabled:J,fullWidth:!0})]}),!!r&&e(R,{children:o(n,{className:a.section,children:[ne(r.id)?e(re,{noMargin:!0,collectorId:r.id}):o(i,{variant:"h5",className:a.collectorName,component:"div",children:[r.name??r.id," "]}),!!r.description&&e(i,{variant:"body2",children:r.description}),e(v,{options:K,onChange:g,value:t??null,placeholder:"Select Fact",getOptionLabel:E,noOptionsText:"No Facts",fullWidth:!0})]})}),!!t&&o(R,{children:[!!h?.schema&&e(n,{className:a.section,children:e(B,{elevation:1,title:"JSON Schema",children:e("div",{className:a.preview,children:e(C,{data:h.schema})})})}),o(n,{className:a.section,children:[e(i,{variant:"subtitle1",children:"Path Resolver"}),!s&&e(i,{variant:"caption",children:"Defaults to jsonpath"}),s?e(i,{variant:"body1",children:s}):e(v,{options:M,onChange:V,value:s??y,placeholder:"Path Resolver (Optional)",getOptionLabel:E,fullWidth:!0,disabled:!!s})]}),o(n,{className:a.section,children:[e(i,{variant:"subtitle1",children:"Path"}),e(v,{options:(s??y)==="jsonpath"?D:[],onChange:c=>{F&&w(void 0),T(c)},value:d??null,placeholder:"Path",fullWidth:!0,freeSolo:!0}),e("div",{className:a.pathSection,children:!!P&&e(j,{className:a.testPathButton,variant:"contained",onClick:()=>P({factRef:t,path:d??"",pathResolver:y??s??""}),disabled:!d,color:"primary",children:"Save"})})]})]}),!!t&&e(B,{elevation:0,title:"Sample Fact and Test Path",children:o(n,{className:a.expandedSection,children:[o(n,{marginBottom:1,children:[e(i,{variant:"subtitle1",children:"Select an Entity"}),o(i,{variant:"caption",children:["Fact will be sampled from this entity.",e("br",{}),"If you don't see the entity in the drop-down list, you can type its reference in the format ","<kind>:<namespace>/<name>","."]}),e(v,{options:z??[],onChange:k,value:m??null,placeholder:"Entity Selection",isLoading:A,freeSolo:!0,fullWidth:!0})]}),e(n,{children:e(j,{className:a.testPathButton,variant:"contained",onClick:Q,disabled:!m,color:"primary",children:"Sample Fact"})}),o(R,{children:[!!F&&!u&&o(n,{className:a.section,children:[e(i,{variant:"subtitle1",children:"Resolved Value"}),l?.resolvedValue!==null&&l?.resolvedValue!==void 0?e(n,{className:a.preview,children:e(C,{data:l?.resolvedValue})}):e(i,{color:"textSecondary",variant:"body2",children:"Could not resolve path"})]}),!!N&&o(n,{className:a.section,children:[e(i,{variant:"subtitle1",children:"Fact Data"}),U&&e(i,{variant:"caption",children:"Uses cache when available."}),!!u&&e("div",{className:a.loading,children:e(de,{})}),!u&&!!l?.fact&&e(n,{className:a.preview,children:e(C,{data:l?.fact?.data})}),!u&&!!l?.collectionError&&o(i,{color:"textSecondary",variant:"body2",children:["Failed to collect:"," ",l?.collectionError?.errorMessage]}),!u&&!l?.fact&&!l?.collectionError&&o(i,{color:"textSecondary",variant:"body2",children:["Fact ",t," unavailable for entity ",m]})]})]})]})})]})})};export{ue as FactExplorer,I as toEntityFilterQuery};
|
|
2
2
|
//# sourceMappingURL=FactExplorer.esm.js.map
|