@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{makeStyles as
|
|
1
|
+
import{jsxs as c,jsx as l,Fragment as K}from"react/jsx-runtime";import{makeStyles as w,FormControlLabel as G,Checkbox as q,Box as L,Typography as F,Divider as O,Tabs as P,Tab as p,Grid as f,Button as x}from"@material-ui/core";import W from"@material-ui/icons/Add";import E from"@material-ui/icons/Remove";import{useState as H}from"react";import{useFormContext as J,useFieldArray as M,useWatch as Q,Controller as y}from"react-hook-form";import{validateCacheConfig as U}from"../../../../utils/collectors.esm.js";import"lodash";import"../../../Frequency/types.esm.js";import"../../../Frequency/util.esm.js";import"../../../Frequency/FrequencyComponent.esm.js";import{CacheConfigComponent as X}from"../../../CacheConfig/CacheConfigComponent.esm.js";import"@backstage/catalog-model";import"@spotify/backstage-plugin-soundcheck-common";import{FilterComponent as Y}from"../../../Filter/FilterComponent.esm.js";import{CollectorSchedulingOptions as Z}from"./CollectorSchedulingOptions.esm.js";const _=w(e=>({root:{padding:e.spacing(1.5,6)},tabsContainer:{marginRight:16},tab:{height:"64px",textAlign:"left"},contentContainer:{width:"100%",padding:e.spacing(1)},divider:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},checkBox:{marginRight:e.spacing(1)},buttonsContainer:{marginTop:e.spacing(1),marginBottom:e.spacing(2)}})),g="FactDetails",u="Schedule",N="Filters",k="Caching",ee=({name:e,label:C,description:S,disabled:s,FactDetailsComponent:m,multipleCollectors:r})=>{const{control:d,formState:D}=J(),$=D.errors?.[e],{fields:B,insert:V,remove:A}=M({control:d,name:r?.enable?`${e}.collectors`:e}),h=r?.enable?B:[{id:e}],v=m?g:u,[o,b]=H(Array(h.length).fill(v)),T=(i,a,n)=>{b([...o.slice(0,n),a,...o.slice(n+1)])},R=i=>{V(i+1,r?.defaultConfig),b([...o.slice(0,i+1),v,...o.slice(i+1)])},j=i=>{A(i),b([...o.slice(0,i),...o.slice(i+1)])},z=Q({control:d,name:`${e}.enabled`}),t=_();return c("div",{className:t.root,children:[l(y,{name:`${e}.enabled`,control:d,render:({field:i})=>l(G,{control:l(q,{...i,checked:i.value,"data-testid":`${e}-switch`,disabled:s,className:t.checkBox}),label:c(L,{display:"flex",flexDirection:"column",children:[l(F,{variant:"body1",component:"span",children:l("b",{children:`${C}`})}),l(F,{variant:"caption",color:"textSecondary",component:"p",children:`${S}`})]})})}),z&&l("div",{children:h.map((i,a)=>c("div",{children:[a!==0&&l(O,{className:t.divider}),c(P,{orientation:"horizontal",variant:"scrollable",value:o[a],onChange:(n,I)=>T(n,I,a),className:t.tabsContainer,children:[m&&l(p,{label:"Fact Details",value:g,className:t.tab}),l(p,{label:"Schedule",value:u,className:t.tab}),l(p,{label:"Filters",value:N,className:t.tab}),l(p,{label:"Caching",value:k,className:t.tab})]}),c("div",{className:t.contentContainer,children:[o[a]===g&&m&&l(m,{name:r?.enable?`${e}.collectors.${a}.factDetails`:`${e}.factDetails`,disabled:s}),o[a]===u&&l(K,{children:l(Z,{name:r?.enable?`${e}.collectors.${a}`:e})}),o[a]===N&&l(Y,{disabled:s,filterName:r?.enable?`${e}.collectors.${a}.filters.filter`:`${e}.filters.filter`,keyValueFilterName:r?.enable?`${e}.collectors.${a}.filters.keyValueFilter`:`${e}.filters.keyValueFilter`,excludeFilterName:r?.enable?`${e}.collectors.${a}.filters.excludeFilter`:`${e}.filters.excludeFilter`,excludeKeyValueFilterName:r?.enable?`${e}.collectors.${a}.filters.excludeKeyValueFilter`:`${e}.filters.excludeKeyValueFilter`}),o[a]===k&&l(y,{name:r?.enable?`${e}.collectors.${a}.cacheConfig`:`${e}.cacheConfig`,control:d,rules:{validate:U},render:({field:n})=>l(X,{disabled:s,value:n.value,onChange:n.onChange,errors:r?.enable?$?.collectors?.[a]?.cacheConfig:$?.cacheConfig})})]}),r?.enable&&c(f,{container:!0,spacing:1,className:t.buttonsContainer,children:[h.length>1&&l(f,{item:!0,children:l(x,{startIcon:l(E,{}),onClick:()=>j(a),disabled:s,variant:"outlined",size:"small",color:"secondary",children:"Remove"})}),l(f,{item:!0,children:c(x,{startIcon:l(W,{}),onClick:()=>R(a),disabled:s,variant:"outlined",size:"small",color:"primary",children:["Add ",C]})})]})]},i.id))})]})};export{ee as FactCollectionConfig};
|
|
2
2
|
//# sourceMappingURL=FactCollectionConfig.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{mapToCacheConfig as c,mapCacheConfigToHumanDurationOrBoolean as f}from"../../../CacheConfig/utils.esm.js";import"../../../CacheConfig/CacheConfigComponent.esm.js";import{mapCatalogFilterToFilters as
|
|
1
|
+
import{mapToCacheConfig as c,mapCacheConfigToHumanDurationOrBoolean as f}from"../../../CacheConfig/utils.esm.js";import"../../../CacheConfig/CacheConfigComponent.esm.js";import{mapCatalogFilterToFilters as a,mapCatalogFilterToFormKeyValueFilters as o,mapFiltersToCatalogFilter as r}from"../../../Filter/utils.esm.js";import"../../../Filter/FilterComponent.esm.js";import"../../../Frequency/types.esm.js";import{mapHumanDurationOrCronToFrequency as n,mapFrequencyToHumanDurationOrCron as l}from"../../../Frequency/util.esm.js";import"../../../Frequency/FrequencyComponent.esm.js";const u=e=>({title:e.name??e.id,description:e.description,docLink:`https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/${e.id}`}),p=e=>({title:"Update Integration",message:`Are you sure you want to update the ${e.name} integration? This will overwrite any configurations currently saved in the database. Configs saved this way will have priority over anything configured in YAML.`,error:!1}),s=({configOption:e,factType:i,additionalParams:t={}})=>({type:i,frequency:l(e.frequency),filter:r(e.filters.filter,e.filters.keyValueFilter),exclude:r(e.filters.excludeFilter,e.filters.excludeKeyValueFilter),cache:f(e.cacheConfig),batchSize:e.batchSize??void 0,initialDelay:e.initialDelay?l(e.initialDelay):void 0,...t}),d=({parentConfig:e,factTypeConfig:i})=>{const t=i.initialDelay??e.initialDelay;return{frequency:n(i.frequency??e.frequency),filters:{filter:a(i.filter??e.filter),keyValueFilter:o(i.filter??e.filter),excludeFilter:a(i.exclude??e.exclude),excludeKeyValueFilter:o(i.exclude??e.exclude)},cacheConfig:c(i.cache??e.cache),batchSize:i.batchSize??e.batchSize,initialDelay:t?n(t):void 0}};export{u as collectorHeaderContent,p as confirmationModalContent,d as mapBackendConfigToFormIntegrationConfig,s as mapFormIntegrationConfigToBackendConfig};
|
|
2
2
|
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{AzureDevOpsConfigurator as i}from"./AzureDevOps/AzureDevOpsConfigurator.esm.js";import{BigQueryConfigurator as a}from"./BigQuery/BigQueryConfigurator.esm.js";import{CatalogConfigurator as m}from"./Catalog/CatalogConfigurator.esm.js";import{DataDogConfigurator as e}from"./DataDog/DataDogConfigurator.esm.js";import{DataRegistryConfigurator as f}from"./DataRegistry/DataRegistryConfigurator.esm.js";import{GithubConfigurator as u}from"./Github/GithubConfigurator.esm.js";import{GitlabConfigurator as g}from"./Gitlab/GitlabConfigurator.esm.js";import{HttpConfigurator as n}from"./HTTP/HttpConfigurator.esm.js";import{JiraConfigurator as p}from"./Jira/JiraConfigurator.esm.js";import{KubernetesConfigurator as C}from"./Kubernetes/KubernetesConfigurator.esm.js";import{NewRelicConfigurator as s}from"./NewRelic/NewRelicConfigurator.esm.js";import{PagerDutyConfigurator as c}from"./PagerDuty/PagerDutyConfigurator.esm.js";import{ScmConfigurator as l}from"./SCM/ScmConfigurator.esm.js";import{SonarQubeConfigurator as b}from"./SonarQube/SonarQubeConfigurator.esm.js";const d={github:u,gitlab:g,scm:l,pagerduty:c,datadog:e,kubernetes:C,jira:p,sonarqube:b,newrelic:s,bigquery:a,catalog:m,azure:i,http:n,"data-registry":f},y=({selectedCollector:r})=>{const o=d[r?.id];return t(o,{selectedCollector:r})};export{y as Configurator};
|
|
2
2
|
//# sourceMappingURL=Configurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as s,Fragment as C,jsx as o}from"react/jsx-runtime";import{makeStyles as D,Paper as b,Divider as h}from"@material-ui/core";import{useForm as S,FormProvider as j}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 F}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as L}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as k}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 x}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as c}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as B,confirmationModalContent as N}from"../Common/utils.esm.js";import{mapConfigToDataDogCollectorConfig as O,defaultDataDogConfig as M,mapDataDogCollectorConfigToConfig as P}from"./utils.esm.js";const T=D(e=>({spacer:{height:e.spacing(8),width:"100%"},section:{marginBottom:e.spacing(2)}})),H=({disabled:e,selectedCollector:i})=>{const t=S({defaultValues:i?O(i.config):M(),mode:"onChange"}),{formState:{errors:r},handleSubmit:a}=t,n=T(),l=!!r.serviceDefinition||!!r.serviceLevelObjective,{mutateAsync:d}=L(),[f,p]=F(k),{showModal:g}=y(),m=async v=>{if(!await g(N(i)))return;const u=P(v);await d({collectorId:i.id,config:u})&&p()};return x(B(i)),s(C,{children:[o(b,{className:n.section,children:o(j,{...t,children:s("form",{onSubmit:a(m),children:[o(c,{name:"serviceDefinition",label:"Service Definition",description:"Collects details about Datadog service linked to an entity.",disabled:e}),o(h,{}),o(c,{name:"serviceLevelObjective",label:"Service Level Objective",description:"Collects details about SLOs configured for a Datadog service linked to an entity.",disabled:e})]})})}),o("div",{className:n.section,children:o(w,{onCancel:f,saveButtonText:"Save",isLoading:!1,onSave:a(m),disableSave:l})})]})};export{H as DataDogConfigurator};
|
|
2
2
|
//# sourceMappingURL=DataDogConfigurator.esm.js.map
|
package/dist/components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as C,Fragment as u,jsx as o}from"react/jsx-runtime";import{makeStyles as h,Paper as S}from"@material-ui/core";import{useForm as y,FormProvider as v}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 R}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as b}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as D}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as B}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 w}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as x}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as N,confirmationModalContent as T}from"../Common/utils.esm.js";import{mapConfigToDataRegistryCollectorConfig as M,defaultDataRegistryConfig as P,mapDataRegistryCollectorConfigToConfig as j}from"./utils.esm.js";const k=h(t=>({spacer:{height:t.spacing(8),width:"100%"},section:{marginBottom:t.spacing(2)},form:{marginBottom:t.spacing(2)}})),H=({disabled:t,selectedCollector:e})=>{const r=y({defaultValues:e?M(e.config):P(),mode:"onChange"}),{formState:{errors:n},handleSubmit:i}=r,a=k(),s=!!n.datasetSchema,{mutateAsync:c}=D(),[l,p]=b(B),{showModal:f}=R(),m=async d=>{if(!await f(T(e)))return;const g=j(d);await c({collectorId:e.id,config:g})&&p()};return w(N(e)),C(u,{children:[o(S,{className:a.form,children:o(v,{...r,children:o("form",{onSubmit:i(m),children:o(x,{name:"datasetSchema",label:"Dataset Schema",description:"Collects fields (name, type, description) from a dataset in Data Registry.",disabled:t})})})}),o("div",{className:a.section,children:o(F,{onCancel:l,saveButtonText:"Save",isLoading:!1,onSave:i(m),disableSave:s})})]})};export{H as DataRegistryConfigurator};
|
|
2
|
+
//# sourceMappingURL=DataRegistryConfigurator.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{asArray as f}from"@spotify/backstage-plugin-soundcheck-common";import{defaultCollectorOption as s}from"../Common/CollectorOption.esm.js";import{mapBackendConfigToFormIntegrationConfig as p,mapFormIntegrationConfigToBackendConfig as g}from"../Common/utils.esm.js";const n="dataset-schema",i=o=>({datasetSchema:s({...o,filter:[{kind:["Api"],"spec.type":["dataset"]}]})});function l(o){const{datasetSchema:t}=o;if(t.enabled){const e={},a=[];return e.collects=a,a.push(g({factType:n,configOption:t})),e}return{collects:[]}}function C(o){const t=i(o);if(o){const e=o.collects;if(e)for(const a of f(e)){const r=a.type,c={...p({factTypeConfig:a,parentConfig:o}),enabled:!0};r===n&&(t.datasetSchema=c)}}return t}export{n as DATASET_SCHEMA_COLLECTOR_TYPE,i as defaultDataRegistryConfig,C as mapConfigToDataRegistryCollectorConfig,l as mapDataRegistryCollectorConfigToConfig};
|
|
2
|
+
//# sourceMappingURL=utils.esm.js.map
|
package/dist/components/CollectorPage/Configurators/Github/CodeScanningAlertsFactDetails.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Typography as
|
|
1
|
+
import{jsxs as u,jsx as e}from"react/jsx-runtime";import{Typography as n,Box as m,TextField as c}from"@material-ui/core";import{useFormContext as S,Controller as s}from"react-hook-form";import{FormControlledAutocomplete as p}from"../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{useLabelOptions as f}from"../../../FormControlledAutocomplete/useLabelOptions.esm.js";import"react";import{FormFieldLabel as d}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{useStyles as x}from"./GithubConfigurator.esm.js";import{CODE_SCANNING_ALERTS_STATE_OPTIONS as T,CODE_SCANNING_ALERTS_SEVERITY_OPTIONS as v}from"./types.esm.js";const b=({name:r,disabled:a})=>{const l=x(),{control:i}=S(),h=f(T.map(t=>({label:t,value:t}))),N=f(v.map(t=>({label:t,value:t})));return u("div",{className:l.root,children:[e(d,{title:"Fact Name"}),e(n,{variant:"caption",children:"Fact name must be unique"}),e(m,{children:e(s,{name:`${r}.factName`,control:i,render:({field:t,fieldState:{error:o}})=>e(c,{...t,type:"text",variant:"outlined",margin:"dense",placeholder:"Fact Name",className:l.formInput,disabled:a,error:!!o,helperText:o?.message,FormHelperTextProps:{className:l.helperText}})})}),e(d,{title:"Code Scanning Tool Name"}),e(n,{variant:"caption",children:"Optional, if not provided results by all code scanning tools will be collected"}),e(m,{children:e(s,{name:`${r}.toolName`,control:i,render:({field:t,fieldState:{error:o}})=>e(c,{...t,type:"text",variant:"outlined",margin:"dense",placeholder:"Example: CodeQL",className:l.formInput,disabled:a,error:!!o,helperText:o?.message,FormHelperTextProps:{className:l.helperText}})})}),e(d,{title:"Code Scanning Alert State"}),e(n,{variant:"caption",children:"Optional, if not provided code scanning alerts with all states will be collected"}),e(m,{className:l.formInput,children:e(p,{name:`${r}.state`,control:i,fullWidth:!0,freeSolo:!1,disabled:a,placeholder:"Example: open",...h})}),e(d,{title:"Code Scanning Alert Severity"}),e(n,{variant:"caption",children:"Optional, if not provided code scanning alerts with all severities will be collected"}),e(m,{className:l.formInput,children:e(p,{name:`${r}.severity`,control:i,fullWidth:!0,freeSolo:!1,disabled:a,placeholder:"Example: critical",...N})})]})};export{b as CodeScanningAlertsFactDetails};
|
|
2
2
|
//# sourceMappingURL=CodeScanningAlertsFactDetails.esm.js.map
|
package/dist/components/CollectorPage/Configurators/Github/DependabotAlertsFactDetails.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Typography as
|
|
1
|
+
import{jsxs as h,jsx as e}from"react/jsx-runtime";import{Typography as i,Box as m,TextField as u}from"@material-ui/core";import{useFormContext as b,Controller as T}from"react-hook-form";import"../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import{FormControlledMultipleAutocomplete as d}from"../../../FormControlledAutocomplete/FormControlledMultipleAutocomplete.esm.js";import{useLabelOptions as s}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{useStyles as v}from"./GithubConfigurator.esm.js";import{DEPENDABOT_ALERTS_STATE_OPTIONS as x,DEPENDABOT_ALERTS_SEVERITY_OPTIONS as N}from"./types.esm.js";const S=({name:r,disabled:o})=>{const l=v(),{control:a}=b(),c=s(x.map(t=>({label:t,value:t}))),f=s(N.map(t=>({label:t,value:t})));return h("div",{className:l.root,children:[e(n,{title:"Fact Name"}),e(i,{variant:"caption",children:"Fact name must be unique"}),e(m,{children:e(T,{name:`${r}.factName`,control:a,render:({field:t,fieldState:{error:p}})=>e(u,{...t,type:"text",variant:"outlined",margin:"dense",placeholder:"Fact Name",className:l.formInput,disabled:o,error:!!p,helperText:p?.message,FormHelperTextProps:{className:l.helperText}})})}),e(n,{title:"Dependabot Alert States"}),e(i,{variant:"caption",children:"Optional, if not provided dependabot alerts with all states will be collected"}),e(m,{className:l.formInput,children:e(d,{name:`${r}.states`,control:a,fullWidth:!0,freeSolo:!1,disabled:o,placeholder:"Example: open",...c})}),e(n,{title:"Dependabot Alert Severities"}),e(i,{variant:"caption",children:"Optional, if not provided dependabot alerts with all severities will be collected"}),e(m,{className:l.formInput,children:e(d,{name:`${r}.severities`,control:a,fullWidth:!0,freeSolo:!1,disabled:o,placeholder:"Example: critical",...f})})]})};export{S as DependabotAlertsFactDetails};
|
|
2
2
|
//# sourceMappingURL=DependabotAlertsFactDetails.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{zodResolver as
|
|
1
|
+
import{jsxs as d,Fragment as S,jsx as e}from"react/jsx-runtime";import{zodResolver as A}from"@hookform/resolvers/zod";import{makeStyles as F,Paper as v,Divider as r}from"@material-ui/core";import{useForm as D,FormProvider as R}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 B}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as L}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as T}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as x}from"../../../../routes.esm.js";import{FooterButtons as N}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as P}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as i}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as w,confirmationModalContent as G}from"../Common/utils.esm.js";import{CodeScanningAlertsFactDetails as E}from"./CodeScanningAlertsFactDetails.esm.js";import{DependabotAlertsFactDetails as I}from"./DependabotAlertsFactDetails.esm.js";import{SecretScanningAlertsFactDetails as M}from"./SecretScanningAlertsFactDetails.esm.js";import{SecurityAdvisoriesFactDetails as O}from"./SecurityAdvisoriesFactDetails.esm.js";import{mapConfigToGithubCollectorConfig as _,defaultGithubConfig as j,DEFAULT_NEW_COLLECTOR_CONFIG as n,mapGithubCollectorConfigToConfig as k}from"./utils.esm.js";import{githubCollectorFormSchema as H}from"./validation.esm.js";const p=F(o=>({spacer:{height:o.spacing(8),width:"100%"},section:{marginBottom:o.spacing(2)},form:{marginBottom:o.spacing(2)},root:{paddingTop:o.spacing(1)},formInput:{marginTop:0,marginBottom:o.spacing(2),width:"500px"},helperText:{marginLeft:0}})),U=({disabled:o,selectedCollector:a})=>{const s=D({defaultValues:a?_(a.config):j(),mode:"onChange",resolver:A(H)}),{formState:{errors:t},handleSubmit:l}=s,c=p(),f=!!t.branchProtections||!!t.branchRules||!!t.codeScanningAlerts||!!t.dependabotAlerts||!!t.repositoryDetails||!!t.repositoryLanguages||!!t.secretScanningAlerts||!!t.securityAdvisories,{mutateAsync:u}=T(),[g,b]=L(x),{showModal:C}=B(),m=async y=>{if(!await C(G(a)))return;const h=k(y);await u({collectorId:a.id,config:h})&&b()};return P(w(a)),d(S,{children:[e(v,{className:c.form,children:e(R,{...s,children:d("form",{onSubmit:l(m),children:[e(i,{name:"branchProtections",label:"Branch Protections",description:"Collects branch protection information from an entity's repository.",disabled:o}),e(r,{}),e(i,{name:"branchRules",label:"Branch Rules",description:"Collects branch rules information from an entity's repository.",disabled:o}),e(r,{}),e(i,{name:"codeScanningAlerts",label:"Code Scanning Alerts",description:"Collects details about code scanning alerts for an entity's repository.",disabled:o,FactDetailsComponent:E,multipleCollectors:{enable:!0,defaultConfig:n}}),e(r,{}),e(i,{name:"dependabotAlerts",label:"Dependabot Alerts",description:"Collects details about dependabot alerts for an entity's repository.",disabled:o,FactDetailsComponent:I,multipleCollectors:{enable:!0,defaultConfig:n}}),e(r,{}),e(i,{name:"repositoryDetails",label:"Repository Details",description:"Collects details about an entity's repository.",disabled:o}),e(r,{}),e(i,{name:"repositoryLanguages",label:"Repository Languages",description:"Collects details about the languages used in an entity's repository.",disabled:o}),e(r,{}),e(i,{name:"secretScanningAlerts",label:"Secret Scanning Alerts",description:"Collects details about secret scanning alerts for an entity's repository.",disabled:o,FactDetailsComponent:M,multipleCollectors:{enable:!0,defaultConfig:n}}),e(r,{}),e(i,{name:"securityAdvisories",label:"Security Advisories",description:"Collects details about security advisories for an entity's repository.",disabled:o,FactDetailsComponent:O,multipleCollectors:{enable:!0,defaultConfig:n}})]})})}),e("div",{className:c.section,children:e(N,{onCancel:g,saveButtonText:"Save",isLoading:!1,onSave:l(m),disableSave:f})})]})};export{U as GithubConfigurator,p as useStyles};
|
|
2
2
|
//# sourceMappingURL=GithubConfigurator.esm.js.map
|
package/dist/components/CollectorPage/Configurators/Github/SecretScanningAlertsFactDetails.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Typography as
|
|
1
|
+
import{jsxs as f,jsx as e}from"react/jsx-runtime";import{Typography as i,Box as n,TextField as S}from"@material-ui/core";import{useFormContext as u,Controller as h}from"react-hook-form";import{FormControlledAutocomplete as N}from"../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import{FormControlledMultipleAutocomplete as T}from"../../../FormControlledAutocomplete/FormControlledMultipleAutocomplete.esm.js";import{useLabelOptions as p}from"../../../FormControlledAutocomplete/useLabelOptions.esm.js";import"@material-ui/lab";import"react";import"../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{FormFieldLabel as m}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{useStyles as v}from"./GithubConfigurator.esm.js";import{SECRET_SCANNING_ALERTS_STATE_OPTIONS as x,SECRET_SCANNING_ALERTS_VALIDITY_OPTIONS as b}from"./types.esm.js";const A=({name:r,disabled:o})=>{const l=v(),{control:a}=u(),s=p(x.map(t=>({label:t,value:t}))),d=p(b.map(t=>({label:t,value:t})));return f("div",{className:l.root,children:[e(m,{title:"Fact Name"}),e(i,{variant:"caption",children:"Fact name must be unique"}),e(n,{children:e(h,{name:`${r}.factName`,control:a,render:({field:t,fieldState:{error:c}})=>e(S,{...t,type:"text",variant:"outlined",margin:"dense",placeholder:"Fact Name",className:l.formInput,disabled:o,error:!!c,helperText:c?.message,FormHelperTextProps:{className:l.helperText}})})}),e(m,{title:"Secret Scanning Alert State"}),e(i,{variant:"caption",children:"Optional, if not provided secret scanning alerts with all states will be collected"}),e(n,{className:l.formInput,children:e(N,{name:`${r}.state`,control:a,fullWidth:!0,freeSolo:!1,disabled:o,placeholder:"Example: open",...s})}),e(m,{title:"Secret Scanning Alert Validities"}),e(i,{variant:"caption",children:"Optional, if not provided secret scanning alerts with all validities will be collected"}),e(n,{className:l.formInput,children:e(T,{name:`${r}.validities`,control:a,fullWidth:!0,freeSolo:!1,disabled:o,placeholder:"Example: active",...d})})]})};export{A as SecretScanningAlertsFactDetails};
|
|
2
2
|
//# sourceMappingURL=SecretScanningAlertsFactDetails.esm.js.map
|
package/dist/components/CollectorPage/Configurators/Github/SecurityAdvisoriesFactDetails.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Typography as
|
|
1
|
+
import{jsxs as d,jsx as e}from"react/jsx-runtime";import{Typography as m,Box as s,TextField as c}from"@material-ui/core";import{useFormContext as u,Controller as f}from"react-hook-form";import{FormControlledAutocomplete as h}from"../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{useLabelOptions as x}from"../../../FormControlledAutocomplete/useLabelOptions.esm.js";import"react";import{FormFieldLabel as n}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{useStyles as S}from"./GithubConfigurator.esm.js";import{SECURITY_ADVISORIES_STATE_OPTIONS as F}from"./types.esm.js";const b=({name:o,disabled:l})=>{const t=S(),{control:i}=u(),p=x(F.map(r=>({label:r,value:r})));return d("div",{className:t.root,children:[e(n,{title:"Fact Name"}),e(m,{variant:"caption",children:"Fact name must be unique"}),e(s,{children:e(f,{name:`${o}.factName`,control:i,render:({field:r,fieldState:{error:a}})=>e(c,{...r,type:"text",variant:"outlined",margin:"dense",placeholder:"Fact Name",className:t.formInput,disabled:l,error:!!a,helperText:a?.message,FormHelperTextProps:{className:t.helperText}})})}),e(n,{title:"Security Advisory State"}),e(m,{variant:"caption",children:"Optional, if not provided security advisories with all states will be collected"}),e(s,{className:t.formInput,children:e(h,{name:`${o}.state`,control:i,fullWidth:!0,freeSolo:!1,disabled:l,placeholder:"Example: published",...p})})]})};export{b as SecurityAdvisoriesFactDetails};
|
|
2
2
|
//# sourceMappingURL=SecurityAdvisoriesFactDetails.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{validFactNameRegex as i,invalidFactNameErrorMessage as n}from"@spotify/backstage-plugin-soundcheck-common";import{z as e}from"zod";import{FIELD_IS_REQUIRED_MSG as m}from"../../../../utils/validation.esm.js";import{BaseCollectorSchema as A,CollectorOptionSchema as S}from"../Common/CollectorOption.esm.js";import{CODE_SCANNING_ALERTS_STATE_OPTIONS as d,CODE_SCANNING_ALERTS_SEVERITY_OPTIONS as _,DEPENDABOT_ALERTS_STATE_OPTIONS as E,DEPENDABOT_ALERTS_SEVERITY_OPTIONS as f,SECRET_SCANNING_ALERTS_STATE_OPTIONS as T,SECRET_SCANNING_ALERTS_VALIDITY_OPTIONS as O,SECURITY_ADVISORIES_STATE_OPTIONS as I,BRANCH_PROTECTIONS_FACT_NAME as u,BRANCH_RULES_FACT_NAME as g,REPOSITORY_DETAILS_FACT_NAME as p,REPOSITORY_LANGUAGES_FACT_NAME as b}from"./types.esm.js";const o="Fact name is not unique",r="Max 100 characters",D=A.merge(e.object({factDetails:e.strictObject({factName:e.string().min(1,m).max(100,r).regex(i,n),toolName:e.string().optional(),state:e.enum(d).or(e.literal("")).optional(),severity:e.enum(_).or(e.literal("")).optional()})})).strict(),R=A.merge(e.object({factDetails:e.strictObject({factName:e.string().min(1,m).max(100,r).regex(i,n),states:e.array(e.enum(E)).optional(),severities:e.array(e.enum(f)).optional()})})).strict(),C=A.merge(e.object({factDetails:e.strictObject({factName:e.string().min(1,m).max(100,r).regex(i,n),state:e.enum(T).or(e.literal("")).optional(),validities:e.array(e.enum(O)).optional()})})).strict(),h=A.merge(e.object({factDetails:e.strictObject({factName:e.string().min(1,m).max(100,r).regex(i,n),state:e.enum(I).or(e.literal("")).optional()})})).strict(),y=e.strictObject({branchProtections:S,branchRules:S,codeScanningAlerts:e.strictObject({enabled:e.boolean(),collectors:e.array(D)}),dependabotAlerts:e.strictObject({enabled:e.boolean(),collectors:e.array(R)}),repositoryDetails:S,repositoryLanguages:S,secretScanningAlerts:e.strictObject({enabled:e.boolean(),collectors:e.array(C)}),securityAdvisories:e.strictObject({enabled:e.boolean(),collectors:e.array(h)})}).superRefine((c,l)=>{const N=[u,g,p,b,...c.codeScanningAlerts.collectors.map(t=>t.factDetails.factName),...c.dependabotAlerts.collectors.map(t=>t.factDetails.factName),...c.secretScanningAlerts.collectors.map(t=>t.factDetails.factName),...c.securityAdvisories.collectors.map(t=>t.factDetails.factName)],s=N.filter((t,a)=>N.indexOf(t)!==a);s.length&&(c.codeScanningAlerts.collectors.forEach((t,a)=>{s.includes(t.factDetails.factName)&&l.addIssue({code:e.ZodIssueCode.custom,message:o,path:["codeScanningAlerts","collectors",a,"factDetails","factName"]})}),c.dependabotAlerts.collectors.forEach((t,a)=>{s.includes(t.factDetails.factName)&&l.addIssue({code:e.ZodIssueCode.custom,message:o,path:["dependabotAlerts","collectors",a,"factDetails","factName"]})}),c.secretScanningAlerts.collectors.forEach((t,a)=>{s.includes(t.factDetails.factName)&&l.addIssue({code:e.ZodIssueCode.custom,message:o,path:["secretScanningAlerts","collectors",a,"factDetails","factName"]})}),c.securityAdvisories.collectors.forEach((t,a)=>{s.includes(t.factDetails.factName)&&l.addIssue({code:e.ZodIssueCode.custom,message:o,path:["securityAdvisories","collectors",a,"factDetails","factName"]})}))});export{o as FACT_NAME_IS_NOT_UNIQUE_MSG,r as MAX_100_CHARACTERS_MSG,y as githubCollectorFormSchema};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as l,Fragment as h,jsx as o}from"react/jsx-runtime";import{makeStyles as j,Paper as v,Divider as c}from"@material-ui/core";import{useForm as P,FormProvider as S}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 B}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as F}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as w}from"../../../../routes.esm.js";import{FooterButtons as x}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as D}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as r}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as G,confirmationModalContent as L}from"../Common/utils.esm.js";import{mapConfigToGitlabCollectorConfig as N,defaultGitlabConfig as T,mapGitlabCollectorConfigToConfig as M}from"./utils.esm.js";const k=j(t=>({spacer:{height:t.spacing(8),width:"100%"},section:{marginBottom:t.spacing(2)},form:{marginBottom:t.spacing(2)}})),H=({disabled:t,selectedCollector:e})=>{const a=P({defaultValues:e?N(e.config):T(),mode:"onChange"}),{formState:{errors:i},handleSubmit:n}=a,m=k(),p=!!i.branchProtections||!!i.projectDetails||!!i.projectLanguages,{mutateAsync:d}=F(),[f,g]=B(w),{showModal:u}=y(),s=async C=>{if(!await u(L(e)))return;const b=M(C);await d({collectorId:e.id,config:b})&&g()};return D(G(e)),l(h,{children:[o(v,{className:m.form,children:o(S,{...a,children:l("form",{onSubmit:n(s),children:[o(r,{name:"branchProtections",label:"Branch Protections",description:"Collects branch protection information from an entity's project.",disabled:t}),o(c,{}),o(r,{name:"projectDetails",label:"Project Details",description:"Collects details about an entity's project.",disabled:t}),o(c,{}),o(r,{name:"projectLanguages",label:"Project Languages",description:"Collects details about the languages used in an entity's project.",disabled:t})]})})}),o("div",{className:m.section,children:o(x,{onCancel:f,saveButtonText:"Save",isLoading:!1,onSave:n(s),disableSave:p})})]})};export{H as GitlabConfigurator};
|
|
2
2
|
//# sourceMappingURL=GitlabConfigurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as b,Fragment as v,jsx as o}from"react/jsx-runtime";import{zodResolver as F}from"@hookform/resolvers/zod";import{makeStyles as S,Paper as q}from"@material-ui/core";import{useCallback as H}from"react";import{useForm as R,FormProvider as T}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 w}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as x}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as y}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as B}from"../../../../routes.esm.js";import{FooterButtons as N}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as P}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as k}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as M,confirmationModalContent as j}from"../Common/utils.esm.js";import{RequestFactDetailsComponent as A}from"./RequestFactDetailsComponent.esm.js";import{mapConfigToHttpCollectorConfig as D,defaultHttpConfig as V,defaultRequestCollectorConfig as z,mapHttpCollectorConfigToConfig as I}from"./utils.esm.js";import{httpCollectorFormSchema as L}from"./validation.esm.js";const U=S(e=>({spacer:{height:e.spacing(8),width:"100%"},section:{marginBottom:e.spacing(2)}})),E=({disabled:e,selectedCollector:t})=>{const s=H(async(r,...i)=>{const g={enabled:!1,collectors:[]},h={request:r.request.enabled?r.request:g};return F(L)(h,...i)},[]),a=R({defaultValues:t?D(t.config):V(),mode:"onChange",resolver:s}),{formState:{isValid:c},handleSubmit:n}=a,m=U(),p=!c,{mutateAsync:f}=y(),[d,u]=x(B),{showModal:C}=w(),l=async r=>{if(!await C(j(t)))return;const i=I(r);await f({collectorId:t.id,config:i})&&u()};return P(M(t)),b(v,{children:[o(q,{className:m.section,children:o(T,{...a,children:o("form",{onSubmit:n(l),children:o(k,{name:"request",label:"Request",description:"Collects data from HTTP endpoint.",disabled:e,FactDetailsComponent:A,multipleCollectors:{enable:!0,defaultConfig:z()}})})})}),o("div",{className:m.section,children:o(N,{onCancel:d,saveButtonText:"Save",isLoading:!1,onSave:n(l),disableSave:p})})]})};export{E as HttpConfigurator};
|
|
2
2
|
//# sourceMappingURL=HttpConfigurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{Grid as l,TextField as h,MenuItem as T,FormHelperText as y,Typography as q,IconButton as g}from"@material-ui/core";import k from"@material-ui/icons/Add";import b from"@material-ui/icons/Remove";import N from"classnames";import{highlight as H,languages as I}from"prismjs";import"prismjs/components/prism-json";import{useFormContext as v,useFieldArray as S,Controller as c}from"react-hook-form";import P from"react-simple-code-editor";import{FormFieldLabel as p}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{useStyles as F}from"./RequestFactDetailsComponent.esm.js";import{HTTP_METHOD_OPTIONS as $,defaultNewHeaderConfig as C}from"./utils.esm.js";const R=({name:s,disabled:n})=>{const r=F(),{control:d}=v(),{fields:u,insert:f,remove:x}=S({control:d,name:`${s}.headers`});return a(l,{container:!0,spacing:1,direction:"column",className:r.root,children:[a(l,{item:!0,children:[e(p,{title:"Target Plugin ID (Optional)",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/http#request-required"}),e(c,{name:`${s}.targetPluginId`,control:d,render:({field:o,fieldState:{error:t}})=>e(h,{...o,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Example: soundcheck",className:r.textInput,disabled:n,error:!!t,helperText:t?.message??"Specify if calling a plugin's API to use {{targetPluginBaseUrl}} and {{targetPluginAuthToken}} template tags",FormHelperTextProps:{className:r.helperText}})})]}),a(l,{item:!0,children:[e(p,{title:"Request URL",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/http#request-required"}),a(l,{container:!0,spacing:1,direction:"row",children:[e(l,{item:!0,xs:2,children:e(c,{name:`${s}.method`,control:d,render:({field:o,fieldState:{error:t}})=>e(h,{...o,fullWidth:!0,select:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Method",className:r.textInput,disabled:n,error:!!t,helperText:t?.message??"Method",FormHelperTextProps:{className:r.helperText},children:$.map(i=>e(T,{value:i,children:i},i))})})}),e(l,{item:!0,xs:10,children:e(c,{name:`${s}.url`,control:d,render:({field:o,fieldState:{error:t}})=>e(h,{...o,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Example: https://api.example.com/{{entity.metadata.name}}/get",className:r.textInput,disabled:n,error:!!t,helperText:t?.message??"Request URL can use liquid template language",FormHelperTextProps:{className:r.helperText}})})})]})]}),a(l,{item:!0,children:[e(p,{title:"Request Body (Optional)",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/http#request-required"}),e(c,{name:`${s}.body`,control:d,render:({field:o,fieldState:{error:t}})=>a("div",{children:[e("div",{className:N(r.jsonInput,t?r.jsonInputError:void 0),children:e(P,{...o,highlight:i=>H(i??"",I.json,"json"),onValueChange:o.onChange,padding:10,disabled:n,placeholder:"Request Body",textareaClassName:r.jsonTextarea})}),e(y,{className:r.helperText,error:!!t,children:t?.message??"Request body can use liquid template language"})]})})]}),e(l,{item:!0,children:a(l,{container:!0,spacing:0,direction:"column",children:[e(p,{title:"Request Headers (Optional)",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/http#request-required"}),e(q,{color:"textSecondary",variant:"caption",children:"Header keys and values can use liquid template language"}),u.map((o,t)=>a(l,{item:!0,container:!0,alignItems:"center",spacing:2,children:[a(l,{item:!0,xs:5,children:[e(p,{title:"Key"}),e(c,{name:`${s}.headers.${t}.key`,control:d,render:({field:i,fieldState:{error:m}})=>e(h,{...i,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Header Key",className:r.textInput,disabled:n,error:!!m,helperText:m?.message??" ",FormHelperTextProps:{className:r.helperText}})})]}),a(l,{item:!0,xs:5,children:[e(p,{title:"Value"}),e(c,{name:`${s}.headers.${t}.value`,control:d,render:({field:i,fieldState:{error:m}})=>e(h,{...i,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Header Value",className:r.textInput,disabled:n,error:!!m,helperText:m?.message??" ",FormHelperTextProps:{className:r.helperText}})})]}),a(l,{item:!0,xs:2,children:[e(g,{onClick:()=>x(t),disabled:n||u.length===1,children:e(b,{fontSize:"small"})}),e(g,{onClick:()=>f(t+1,C()),disabled:n,children:e(k,{fontSize:"small"})})]})]},o.id))]})})]})};export{R as HttpRequestComponent};
|
|
2
2
|
//# sourceMappingURL=HttpRequestComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Grid as
|
|
1
|
+
import{jsxs as n,jsx as e}from"react/jsx-runtime";import{Grid as s,TextField as c,FormHelperText as h}from"@material-ui/core";import f from"classnames";import{highlight as g,languages as u}from"prismjs";import"prismjs/components/prism-json";import{useFormContext as x,Controller as m}from"react-hook-form";import S from"react-simple-code-editor";import{FormFieldLabel as p}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{HttpStatusesInput as T}from"./HttpStatusesInput.esm.js";import{useStyles as N}from"./RequestFactDetailsComponent.esm.js";const C=({name:a,disabled:l})=>{const r=N(),{control:i}=x();return n(s,{container:!0,spacing:1,direction:"column",className:r.root,children:[n(s,{item:!0,children:[e(p,{title:"Transform Response (Optional)",docLink:"https://docs.jsonata.org/overview.html"}),e(m,{name:`${a}.transform`,control:i,render:({field:t,fieldState:{error:o}})=>e(c,{...t,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"JSONata expression",className:r.textInput,disabled:l,error:!!o,helperText:o?.message??"JSONata expression to transform the original HTTP response",FormHelperTextProps:{className:r.helperText}})})]}),n(s,{item:!0,children:[e(p,{title:"Response JSON Schema (Optional)",docLink:"https://json-schema.org/docs"}),e(m,{name:`${a}.schema`,control:i,render:({field:t,fieldState:{error:o}})=>n("div",{children:[e("div",{className:f(r.jsonInput,o?r.jsonInputError:void 0),children:e(S,{...t,highlight:d=>g(d??"",u.json,"json"),onValueChange:t.onChange,padding:10,disabled:l,placeholder:"JSON Schema",textareaClassName:r.jsonTextarea})}),e(h,{className:r.helperText,error:!!o,children:o?.message??"JSON schema of the final HTTP response"})]})})]}),n(s,{item:!0,children:[e(p,{title:"Empty Response on Status Codes (Optional)"}),e(m,{name:`${a}.emptyOnStatuses`,control:i,render:({field:t,fieldState:{error:o}})=>e(T,{disabled:l,value:t.value,onChange:t.onChange,errors:o,helperText:"Collect an empty fact instead of throwing a collection error"})})]})]})};export{C as HttpResponseComponent};
|
|
2
2
|
//# sourceMappingURL=HttpResponseComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Grid as n,TextField as c}from"@material-ui/core";import
|
|
1
|
+
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{Grid as n,TextField as c}from"@material-ui/core";import{useFormContext as f,Controller as m}from"react-hook-form";import{FormFieldLabel as p}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{HttpStatusesInput as h}from"./HttpStatusesInput.esm.js";import{useStyles as x}from"./RequestFactDetailsComponent.esm.js";const g=({name:i,disabled:s})=>{const l=x(),{control:d}=f(),u=(e,r)=>{if(e.target.value){const a=parseInt(e.target.value,10)??null;r({...e,target:{...e.target,value:a}})}else r({...e,target:{...e.target,value:null}})};return o(n,{container:!0,spacing:1,direction:"column",className:l.root,children:[o(n,{item:!0,children:[t(p,{title:"Max Number of Retries (Optional)"}),t(m,{name:`${i}.maxRetries`,control:d,render:({field:e,fieldState:{error:r}})=>t(c,{...e,fullWidth:!0,onChange:a=>u(a,e.onChange),type:"number",variant:"outlined",margin:"dense",placeholder:"Example: 3",className:l.textInput,disabled:s,error:!!r,helperText:r?.message??"If not provided failed requests won't be retried",FormHelperTextProps:{className:l.helperText}})})]}),o(n,{item:!0,children:[t(p,{title:"Retry Delay in Milliseconds (Optional)"}),t(m,{name:`${i}.retryDelay`,control:d,render:({field:e,fieldState:{error:r}})=>t(c,{...e,fullWidth:!0,onChange:a=>u(a,e.onChange),type:"number",variant:"outlined",margin:"dense",placeholder:"Example: 60000",className:l.textInput,disabled:s,error:!!r,helperText:r?.message??"If not provided failed requests will be retried immediately",FormHelperTextProps:{className:l.helperText}})})]}),o(n,{item:!0,children:[t(p,{title:"Retry on Status Codes (Optional)"}),t(m,{name:`${i}.retryOnStatuses`,control:d,render:({field:e,fieldState:{error:r}})=>t(h,{disabled:s,value:e.value,onChange:e.onChange,errors:r,helperText:"If not provided all failed requests will be retried"})})]})]})};export{g as HttpRetriesComponent};
|
|
2
2
|
//# sourceMappingURL=HttpRetriesComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as b,jsx as o}from"react/jsx-runtime";import{makeStyles as x,Box as c,Chip as g,TextField as T,FormControlLabel as C,Checkbox as S}from"@material-ui/core";import N from"@material-ui/icons/CheckBox";import v from"@material-ui/icons/CheckBoxOutlineBlank";import{Autocomplete as k}from"@material-ui/lab";import{useState as I,useEffect as L}from"react";import{ListboxVirtualized as z}from"../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{HTTP_STATUSES as p}from"./utils.esm.js";const H=x(a=>({statusInput:{marginTop:0},statusChips:{marginBottom:a.spacing(1)},helperText:{marginLeft:0}})),E=({value:a,onChange:i,disabled:r,errors:m,helperText:d})=>{const n=H(),[s,u]=I(a??[]);L(()=>{i&&i(s.map(e=>Number(e)))},[s,i]);const f=(e,t)=>{u(s?.filter(l=>l!==t))},h=(e,t)=>{const l=t.length?t[t.length-1]:void 0;l&&isNaN(Number(l))||u(t)};return b(c,{children:[o(c,{children:s.map(e=>o(g,{label:e,size:"small",className:n.statusChips,onDelete:t=>f(t,e),clickable:!1,disabled:r},e))}),o(k,{disableCloseOnSelect:!0,fullWidth:!0,multiple:!0,freeSolo:!0,popupIcon:null,renderTags:()=>null,disabled:r,options:p.map(e=>e.value),getOptionLabel:e=>p.find(t=>t.value===e)?.label??"",value:s,onChange:(e,t)=>h(e,t),ListboxComponent:z,ListboxProps:{itemHeight:40},renderInput:e=>o(T,{...e,variant:"outlined",margin:"dense",className:n.statusInput,placeholder:"Example: 500",disabled:r,error:!!m,helperText:m?.message??d,FormHelperTextProps:{className:n.helperText}}),renderOption:(e,{selected:t})=>o(C,{onClick:l=>l.preventDefault(),control:o(S,{icon:o(v,{fontSize:"small"}),checkedIcon:o(N,{fontSize:"small"}),checked:t,disabled:r}),label:p.find(l=>l.value===e)?.label??""})})]})};export{E as HttpStatusesInput};
|
|
2
2
|
//# sourceMappingURL=HttpStatusesInput.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as p,jsx as e}from"react/jsx-runtime";import{makeStyles as x,Box as h,TextField as f,Tabs as b,Tab as i}from"@material-ui/core";import{useState as g}from"react";import{useFormContext as C,Controller as T}from"react-hook-form";import{FormFieldLabel as v}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{HttpRequestComponent as F}from"./HttpRequestComponent.esm.js";import{HttpResponseComponent as N}from"./HttpResponseComponent.esm.js";import{HttpRetriesComponent as R}from"./HttpRetriesComponent.esm.js";const d=x(t=>({root:{paddingTop:t.spacing(1),width:"800px"},textInput:{marginTop:0},jsonInput:{marginTop:0,width:"100%",minHeight:"100px",maxHeight:"300px",overflowY:"scroll",outline:`1px solid ${t.palette.action.disabled}`,borderRadius:"4px",display:"grid","&:hover":{outlineColor:t.palette.textContrast}},jsonInputError:{outlineColor:t.palette.error.main,"&:hover":{outlineColor:t.palette.error.main}},jsonTextarea:{outline:"none"},helperText:{marginLeft:0}}));function s({children:t,value:r,index:o,className:l}){return e("div",{hidden:r!==o,className:l,children:r===o&&t})}const H=({name:t,disabled:r})=>{const o=d(),{control:l}=C(),[n,u]=g(0),c=(m,a)=>{u(a)};return p(h,{className:o.root,children:[e(v,{title:"Fact Name"}),e(T,{name:`${t}.factName`,control:l,render:({field:m,fieldState:{error:a}})=>e(f,{...m,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Fact Name",className:o.textInput,disabled:r,error:!!a,helperText:a?.message??"Fact name must be unique",FormHelperTextProps:{className:o.helperText}})}),p(b,{value:n,onChange:c,children:[e(i,{label:"Request"}),e(i,{label:"Response"}),e(i,{label:"Retries"})]}),e(s,{value:n,index:0,children:e(F,{name:`${t}.request`,disabled:r})}),e(s,{value:n,index:1,children:e(N,{name:`${t}.response`,disabled:r})}),e(s,{value:n,index:2,children:e(R,{name:`${t}.retries`,disabled:r})})]})};export{H as RequestFactDetailsComponent,d as useStyles};
|
|
2
2
|
//# sourceMappingURL=RequestFactDetailsComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{validFactNameRegex as m,invalidFactNameErrorMessage as p}from"@spotify/backstage-plugin-soundcheck-common";import{z as t}from"zod";import{FIELD_IS_REQUIRED_MSG as i}from"../../../../utils/validation.esm.js";import{BaseCollectorSchema as u}from"../Common/CollectorOption.esm.js";const n="Fact name is not unique",c="Max 100 characters",f=t.strictObject({method:t.enum(["POST","GET"]).optional(),url:t.string().min(1,i),headers:t.array(t.strictObject({key:t.string().optional(),value:t.string().optional()})),body:t.string().optional(),targetPluginId:t.string().optional()}),b=t.strictObject({transform:t.string().optional(),schema:t.string().optional(),emptyOnStatuses:t.array(t.number()).optional()}),d=t.strictObject({maxRetries:t.number().min(0).optional().nullable(),retryDelay:t.number().min(0).optional().nullable(),retryOnStatuses:t.array(t.number()).optional()}),g=u.extend({factDetails:t.strictObject({factName:t.string().min(1,i).max(100,c).regex(m,p),request:f,response:b,retries:d})}).strict(),O=t.strictObject({enabled:t.boolean(),collectors:t.array(g).superRefine((r,l)=>{const o=r.map(e=>e.factDetails.factName),s=o.filter((e,a)=>o.indexOf(e)!==a);s.length&&r.forEach((e,a)=>{s.includes(e.factDetails.factName)&&l.addIssue({code:t.ZodIssueCode.custom,message:n,path:[a,"factDetails","factName"]})})})}),S=t.strictObject({request:O});export{n as FACT_NAME_IS_NOT_UNIQUE_MSG,c as MAX_100_CHARACTERS_MSG,S as httpCollectorFormSchema};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as i,jsx as e}from"react/jsx-runtime";import{makeStyles as h,Grid as s,Typography as d,TextField as c}from"@material-ui/core";import{useFormContext as T,Controller as x}from"react-hook-form";import{JIRA_COLLECTOR_FIELDS as f}from"./utils.esm.js";const u=h(a=>({root:{paddingTop:a.spacing(1)},textInput:{marginTop:0,width:"500px"},helperText:{marginLeft:0}})),g=({name:a,disabled:m})=>{const t=u(),{factName:l,jql:o}=f.factDetails,{control:p}=T();return i(s,{container:!0,spacing:1,direction:"column",className:t.root,children:[i(s,{item:!0,children:[e(d,{variant:"subtitle2",children:l.name}),e(x,{name:`${a}.factName`,control:p,render:({field:n,fieldState:{error:r}})=>e(c,{...n,type:"text",variant:"outlined",margin:"dense",placeholder:l.placeholder,className:t.textInput,disabled:m,error:!!r,helperText:r?.message??l.helperText,FormHelperTextProps:{className:t.helperText}})})]}),i(s,{item:!0,children:[e(d,{variant:"subtitle2",children:o.name}),e(x,{name:`${a}.jql`,control:p,render:({field:n,fieldState:{error:r}})=>e(c,{...n,type:"text",variant:"outlined",margin:"dense",placeholder:o.placeholder,className:t.textInput,disabled:m,error:!!r,helperText:r?.message??o.helperText,FormHelperTextProps:{className:t.helperText}})})]})]})};export{g as IssuesSearchFactDetailsComponent};
|
|
2
2
|
//# sourceMappingURL=IssuesSearchFactDetailsComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as C,Fragment as g,jsx as o}from"react/jsx-runtime";import{zodResolver as h}from"@hookform/resolvers/zod";import{makeStyles as S,Paper as v}from"@material-ui/core";import{useForm as b,FormProvider as F}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 J}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as w}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as x}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as B}from"../../../../routes.esm.js";import{FooterButtons as N}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 y}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as I,confirmationModalContent as M}from"../Common/utils.esm.js";import{IssuesSearchFactDetailsComponent as P}from"./IssuesSearchFactDetailsComponent.esm.js";import{mapConfigToJiraCollectorConfig as R,defaultJiraConfig as T,issueSearchCollectorConfig as k,mapJiraCollectorConfigToConfig as D}from"./utils.esm.js";import{jiraCollectorFormSchema as H}from"./validation.esm.js";const z=S(t=>({spacer:{height:t.spacing(8),width:"100%"},section:{marginBottom:t.spacing(2)}})),A=({disabled:t,selectedCollector:e})=>{const r=b({defaultValues:e?R(e.config):T(),mode:"onChange",resolver:h(H)}),{formState:{errors:s},handleSubmit:i}=r,a=z(),n=!!s.issuesSearch,{mutateAsync:l}=x(),[c,p]=w(B),{showModal:f}=J(),m=async d=>{if(!await f(M(e)))return;const u=D(d);await l({collectorId:e.id,config:u})&&p()};return j(I(e)),C(g,{children:[o(v,{className:a.section,children:o(F,{...r,children:o("form",{onSubmit:i(m),children:o(y,{name:"issuesSearch",label:"Issues Search",description:"Collects details about Jira issues.",disabled:t,FactDetailsComponent:P,multipleCollectors:{enable:!0,defaultConfig:k()}})})})}),o("div",{className:a.section,children:o(N,{onCancel:c,saveButtonText:"Save",isLoading:!1,onSave:i(m),disableSave:n})})]})};export{A as JiraConfigurator};
|
|
2
2
|
//# sourceMappingURL=JiraConfigurator.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 d}from"../Common/CollectorOption.esm.js";const r="Fact name is not unique",i="Max 100 characters",_=d.extend({factDetails:e.strictObject({factName:e.string().min(1,f).max(100,i).regex(l,n),jql:e.string().optional()})}).strict(),S=e.strictObject({enabled:e.boolean(),collectors:e.array(_).superRefine((c,m)=>{const s=c.map(t=>t.factDetails.factName),o=s.filter((t,a)=>s.indexOf(t)!==a);o.length&&c.forEach((t,a)=>{o.includes(t.factDetails.factName)&&m.addIssue({code:e.ZodIssueCode.custom,message:r,path:[a,"factDetails","factName"]})})})}),p=e.strictObject({issuesSearch:S});export{r as FACT_NAME_IS_NOT_UNIQUE_MSG,i as MAX_100_CHARACTERS_MSG,p as jiraCollectorFormSchema};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{zodResolver as
|
|
1
|
+
import{jsxs as n,Fragment as b,jsx as o}from"react/jsx-runtime";import{zodResolver as h}from"@hookform/resolvers/zod";import{makeStyles as v,Paper as S,Divider as F}from"@material-ui/core";import{useForm as R,FormProvider as K}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 w}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as x}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as y}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as B}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 L}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as c}from"../Common/FactCollectionConfig.esm.js";import{defaultCollectorOption as N}from"../Common/CollectorOption.esm.js";import{collectorHeaderContent as O,confirmationModalContent as T}from"../Common/utils.esm.js";import{KubernetesFactDetails as j}from"./KubernetesFactDetails.esm.js";import{mapConfigToKubernetesCollectorConfig as k,defaultKubernetesConfig as I,K8S_COLLECTOR_FIELDS as M,mapKubernetesCollectorConfigToConfig as P}from"./utils.esm.js";import{customResourceFormSchema as E}from"./validation.esm.js";const H=v(t=>({spacer:{height:t.spacing(8),width:"100%"},section:{marginBottom:t.spacing(2)}})),V=({disabled:t,selectedCollector:e})=>{const r=R({defaultValues:e?k(e.config):I(),mode:"onChange",resolver:h(E)}),a=H(),{mutateAsync:p}=y(),[d,f]=x(B),{isValid:u}=r.formState,{showModal:C}=w(),s=async m=>{if(!await C(T(e)))return;const i=P(m);await p({collectorId:e.id,config:i})&&f()};return L(O(e)),n(b,{children:[o(S,{className:a.section,children:o(K,{...r,children:n("form",{onSubmit:r.handleSubmit(s),children:[Object.entries(M).map(([m,i],l,g)=>n("div",{children:[o(c,{name:m,label:i.label,description:i.description,disabled:t}),l<g.length-1&&o(F,{})]},l)),o(c,{name:"customResources",label:"Custom Resources",description:"Collect facts from a kubernetes custom resource associated with an entity.",disabled:t,FactDetailsComponent:j,multipleCollectors:{enable:!0,defaultConfig:N(e.config)}})]})})}),o("div",{className:a.section,children:o(D,{onCancel:d,saveButtonText:"Save",isLoading:!1,onSave:r.handleSubmit(s),disableSave:!u})})]})};export{V as KubernetesConfigurator};
|
|
2
2
|
//# sourceMappingURL=KubernetesConfigurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as s,jsx as t}from"react/jsx-runtime";import{makeStyles as i,Grid as r}from"@material-ui/core";import{useFormContext as p}from"react-hook-form";import{FormControlledTextField as l}from"../../../FormControlledTextField/FormControlledTextField.esm.js";import{FormFieldLabel as n}from"../../../FormFieldLabel/FormFieldLabel.esm.js";const m=i(o=>({root:{paddingTop:o.spacing(1)},textInput:{marginTop:0,width:500},helperText:{marginLeft:0}})),u=({name:o,disabled:c})=>{const e=m(),{control:a}=p();return s(r,{container:!0,spacing:1,direction:"column",className:e.root,children:[s(r,{item:!0,children:[t(n,{title:"Fact Name"}),t(l,{control:a,placeholder:"Input a unique fact name",name:`${o}.factName`,className:e.textInput,helperTextClassName:e.helperText,disabled:c})]}),s(r,{item:!0,children:[t(n,{title:"Group",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/kubernetes#custom-resources"}),t(l,{control:a,placeholder:"Custom resource api group",name:`${o}.customResource.group`,className:e.textInput,helperTextClassName:e.helperText,disabled:c})]}),s(r,{item:!0,children:[t(n,{title:"Api Version",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/kubernetes#custom-resources"}),t(l,{control:a,placeholder:"Custom resource api version",name:`${o}.customResource.apiVersion`,className:e.textInput,helperTextClassName:e.helperText,disabled:c})]}),s(r,{item:!0,children:[t(n,{title:"Plural",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/kubernetes#custom-resources"}),t(l,{control:a,placeholder:"Custom resource plural",name:`${o}.customResource.plural`,className:e.textInput,helperTextClassName:e.helperText,disabled:c})]})]})};export{u as KubernetesFactDetails};
|
|
2
2
|
//# sourceMappingURL=KubernetesFactDetails.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{validFactNameRegex as l,invalidFactNameErrorMessage as f}from"@spotify/backstage-plugin-soundcheck-common";import{z as e}from"zod";import{FIELD_IS_REQUIRED_MSG as p}from"../../../../utils/validation.esm.js";import{BaseCollectorSchema as u,CollectorOptionSchema as t}from"../Common/CollectorOption.esm.js";const i="Fact name is not unique",m="Max 100 characters",d=u.extend({enabled:e.boolean(),factDetails:e.strictObject({factName:e.string().min(1,p).max(100,m).regex(l,f),customResource:e.strictObject({group:e.string(),apiVersion:e.string(),plural:e.string()})})}).strict(),g=e.strictObject({enabled:e.boolean(),collectors:e.array(d).superRefine((c,n)=>{const o=c.map(s=>s.factDetails.factName),r=o.filter((s,a)=>o.indexOf(s)!==a);r.length&&c.forEach((s,a)=>{r.includes(s.factDetails.factName)&&n.addIssue({code:e.ZodIssueCode.custom,message:i,path:[a,"factDetails","factName"]})})})}),_=e.strictObject({deployments:t,hpas:t,ingresses:t,podDisruptionBudgets:t,pods:t,services:t,statefulSets:t,customResources:g});export{i as FACT_NAME_IS_NOT_UNIQUE_MSG,m as MAX_100_CHARACTERS_MSG,_ as customResourceFormSchema};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as m,Fragment as w,jsx as o}from"react/jsx-runtime";import{makeStyles as b,Paper as S,Divider as s}from"@material-ui/core";import{useForm as N,FormProvider as y}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 R}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as v}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as B}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as F}from"../../../../routes.esm.js";import{FooterButtons as x}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as P}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as r}from"../Common/FactCollectionConfig.esm.js";import{collectorHeaderContent as E,confirmationModalContent as M}from"../Common/utils.esm.js";import{mapConfigToNewRelicCollectorConfig as T,defaultNewRelicConfig as j,mapNewRelicCollectorConfigToConfig as k}from"./utils.esm.js";const H=b(e=>({spacer:{height:e.spacing(8),width:"100%"},section:{marginBottom:e.spacing(2)},form:{marginBottom:e.spacing(2)}})),A=({disabled:e,selectedCollector:i})=>{const a=N({defaultValues:i?T(i.config):j(),mode:"onChange"}),{formState:{errors:t},handleSubmit:n}=a,c=H(),p=!!t.entity||!!t.entitySearch||!!t.policiesSearch,{mutateAsync:d}=B(),[f,g]=v(F),{showModal:u}=R(),l=async C=>{if(!await u(M(i)))return;const h=k(C);await d({collectorId:i.id,config:h})&&g()};return P(E(i)),m(w,{children:[o(S,{className:c.form,children:o(y,{...a,children:m("form",{onSubmit:n(l),children:[o(r,{name:"entity",label:"Entity",description:"Collects details about New Relic entity with a specific id.",disabled:e}),o(s,{}),o(r,{name:"entitySearch",label:"Entity Search",description:"Collects details about New Relic entities with a specific tag.",disabled:e}),o(s,{}),o(r,{name:"policiesSearch",label:"Policies Search",description:"Collects details about New Relic policies for a specific account.",disabled:e})]})})}),o("div",{className:c.section,children:o(x,{onCancel:f,saveButtonText:"Save",isLoading:!1,onSave:n(l),disableSave:p})})]})};export{A as NewRelicConfigurator};
|
|
2
2
|
//# sourceMappingURL=NewRelicConfigurator.esm.js.map
|
package/dist/components/CollectorPage/Configurators/PagerDuty/IncidentsFactDetailsComponent.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as m,jsx as e}from"react/jsx-runtime";import{makeStyles as p,Typography as d,TextField as c}from"@material-ui/core";import{useFormContext as x,Controller as i}from"react-hook-form";import{StatusesComponent as f}from"./StatusesComponent.esm.js";import{PAGERDUTY_COLLECTOR_FIELDS as h}from"./utils.esm.js";const T=p(t=>({root:{paddingTop:t.spacing(1)},textInput:{marginTop:0,width:"255px"},helperText:{marginLeft:0}})),u=({name:t,disabled:l})=>{const a=T(),{control:s}=x(),{factName:n}=h.factDetails;return m("div",{className:a.root,children:[e(d,{variant:"subtitle2",children:n.name}),e(i,{name:`${t}.factName`,control:s,render:({field:r,fieldState:{error:o}})=>e(c,{...r,type:"text",variant:"outlined",margin:"dense",placeholder:n.placeholder,className:a.textInput,disabled:l,error:!!o,helperText:o?.message??n.helperText,FormHelperTextProps:{className:a.helperText}})}),e(i,{name:`${t}.statuses`,control:s,render:({field:r,fieldState:{error:o}})=>e(f,{disabled:l,value:r.value,onChange:r.onChange,errors:o})})]})};export{u as IncidentsFactDetailsComponent};
|
|
2
2
|
//# sourceMappingURL=IncidentsFactDetailsComponent.esm.js.map
|