@spotify/backstage-plugin-soundcheck 0.13.0 → 0.14.0
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 +42 -0
- package/alpha/package.json +1 -1
- package/dist/alpha/pages.esm.js +1 -1
- package/dist/alpha.d.ts +1 -1
- package/dist/api.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/NoLevelBadge.esm.js +5 -1
- package/dist/components/Badges/PlaylistBadge.esm.js +1 -1
- package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +2 -0
- package/dist/components/CampaignDetailsPage/CampaignChecks.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignDetailRow.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignDetails.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignDetailsPage.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignMilestones.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignProgress.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/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/CampaignMilestonesStep.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/CampaignsPage/CampaignEmptyState.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.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/CertificationAccordion/CertificationAccordion.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/CertificationsPage/CertificationsPage.esm.js +1 -1
- package/dist/components/CheckCard/CheckCard.esm.js +1 -1
- package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +2 -0
- package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRun.esm.js +2 -0
- package/dist/components/CheckDryRun/CheckDryRunContext.esm.js +2 -0
- package/dist/components/CheckDryRun/CheckDryRunDetails.esm.js +2 -0
- package/dist/components/CheckDryRun/CheckDryRunDialog.esm.js +2 -0
- package/dist/components/CheckDryRun/CheckDryRunDialogButton.esm.js +2 -0
- package/dist/components/CheckDryRun/checkDryRunUtils.esm.js +2 -0
- 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 +2 -0
- 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 +2 -0
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListContext.esm.js +2 -0
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListInput.esm.js +2 -0
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/styles.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/useRuleOptions.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/RuleInput/useRuleInputHandlers.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckReviewStep.esm.js +2 -0
- package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +1 -1
- package/dist/components/CheckForm/types/ExpressionType.esm.js +1 -1
- package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
- package/dist/components/CheckForm/utils/checkFormUtils.esm.js +1 -1
- package/dist/components/CheckForm/utils/validation.esm.js +1 -1
- package/dist/components/CheckIcon/CheckIcon.esm.js +1 -1
- package/dist/components/CheckPage/CheckDetailsView.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
- package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusBar.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
- package/dist/components/CheckPage/FilterBar/FilterBar.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +2 -0
- package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +1 -1
- package/dist/components/ChecksPage/ChecksPage.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/Common/CollectorOption.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Common/FactCollectionConfig.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Configurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/DataDog/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Jira/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Jira/validation.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Kubernetes/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/IncidentsFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/StatusesComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/validation.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/ExistsFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/FactCollectionConfig.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/FactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/JsonFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/RegexFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/validation.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/MeasuresFactDetailsInput.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/MetricsInput.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/validation.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.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/EntitySoundcheckCard/Card.esm.js +1 -1
- package/dist/components/ExpandableSection/ExpandableSection.esm.js +2 -0
- package/dist/components/FactExplorer/FactExplorer.esm.js +2 -0
- package/dist/components/FactExplorer/FactExplorerContext.esm.js +2 -0
- package/dist/components/FactExplorer/FactExplorerDialog.esm.js +2 -0
- package/dist/components/FactExplorer/useFactOptions.esm.js +2 -0
- package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/EntityTableToolbar.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
- package/dist/components/Filter/utils.esm.js +1 -1
- package/dist/components/FooterButtons/FooterButtons.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +2 -0
- package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +2 -0
- package/dist/components/FormControlledAutocomplete/useLabelOptions.esm.js +2 -0
- package/dist/components/FormFieldLabel/FormFieldLabel.esm.js +2 -0
- package/dist/components/FormStepper/FormStepper.esm.js +1 -1
- package/dist/components/FormattedPreview/FormattedPreview.esm.js +4 -0
- package/dist/components/Frequency/FrequencyComponent.esm.js +1 -1
- package/dist/components/LevelCard/LevelCard.esm.js +1 -1
- package/dist/components/ListboxVirtualized/ListboxVirtualized.esm.js +2 -0
- package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +1 -1
- package/dist/components/OverviewPage/CampaignBanner/CampaignBanner.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/EntityRefCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/HighestLevelBadge.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTableHeader.esm.js +1 -1
- package/dist/components/PassRateTable/PassRateTable.esm.js +3 -1
- package/dist/components/QuickstartPage/HowDoIListItem.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickStartChecksCard.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickstartCardBase.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickstartCollectorConfigurationsCard.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickstartPage.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickstartTracksCard.esm.js +2 -0
- package/dist/components/QuickstartPage/WelcomeHelpSection.esm.js +7 -0
- package/dist/components/QuickstartPage/WelcomeModal.esm.js +2 -0
- package/dist/components/QuickstartPage/styles.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPage.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 +2 -0
- package/dist/components/SoundcheckHeader/Breadcrumbs.esm.js +2 -0
- package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +2 -0
- package/dist/components/SoundcheckHeader/SoundcheckHeaderContext.esm.js +2 -0
- package/dist/components/SoundcheckHeader/headerUtil.esm.js +2 -0
- package/dist/components/SoundcheckHeader/useHeader.esm.js +2 -0
- package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
- package/dist/components/TechHealth/TechHealth.esm.js +1 -1
- package/dist/components/TechHealthTabs/ActionColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
- package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +2 -0
- package/dist/components/{EditTrackPage/EditTrackPage.esm.js → TrackEditPage/TrackEditPage.esm.js} +2 -2
- package/dist/components/TrackEditPage/TrackEditView.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/ChecksSection/ChecksSection.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDescriptionInput/TrackDescriptionInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDocumentationUrlInput/TrackDocumentationUrlInput.esm.js +1 -1
- 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/trackFormUtils.esm.js +1 -1
- package/dist/components/TrackForm/utils/validation.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/utils.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/TracksPage/TrackListPage/TrackListPage.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/graphql/generated/index.esm.js +99 -33
- package/dist/hooks/catalog/useGetEntityRefs.esm.js +2 -0
- package/dist/hooks/checks/useCheckTemplates.esm.js +2 -0
- package/dist/hooks/checks/useExecuteCheck.esm.js +1 -1
- package/dist/hooks/checks/useGetChecks.esm.js +1 -1
- package/dist/hooks/collectors/useGetFactSchema.esm.js +1 -1
- package/dist/hooks/collectors/useUpdateCollectorConfig.esm.js +1 -1
- package/dist/hooks/graphqlKeys.esm.js +1 -1
- package/dist/hooks/useGetFact.esm.js +2 -0
- package/dist/hooks/useGetPathResolvers.esm.js +2 -0
- package/dist/images/gitlab-rgb.svg +1 -0
- package/dist/images/gitlab-white.svg +1 -0
- package/dist/images/jira-rgb.svg +25 -0
- package/dist/images/jira-white.svg +25 -0
- package/dist/images/sonarqube-rgb.svg +14 -0
- package/dist/images/sonarqube-white.svg +14 -0
- package/dist/index.d.ts +1 -1
- package/dist/plugin.esm.js +1 -1
- package/dist/routes.esm.js +1 -1
- package/dist/utils/export.esm.js +3 -3
- package/dist/utils/formStyles.esm.js +1 -1
- package/dist/utils/validation.esm.js +1 -1
- package/package.json +20 -17
- package/dist/components/CampaignForm/CampaignFormDescription.esm.js +0 -2
- package/dist/components/CampaignsPage/AddCampaignView.esm.js +0 -2
- package/dist/components/CheckForm/CheckFormDescription.esm.js +0 -2
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js +0 -2
- package/dist/components/ChecksPage/AddCheckView.esm.js +0 -2
- package/dist/components/CollectorPage/Configurators/Github/FactCollectionConfig.esm.js +0 -2
- package/dist/components/EditTrackPage/EditTrackView.esm.js +0 -2
- package/dist/components/FormControlledSelect/FormControlledSelect.esm.js +0 -2
- package/dist/components/FullScreenDialog/FullScreenDialog.esm.js +0 -2
- package/dist/components/RoutingPage/Breadcrumbs.esm.js +0 -2
- package/dist/components/RoutingPage/utils.esm.js +0 -2
- package/dist/components/TracksPage/AddTrackView.esm.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as i}from"@material-ui/core/styles";const a=i(t=>({root:{overflow:"hidden",display:"flex"},card:{padding:t.spacing(3),display:"flex",gap:t.spacing(2.5)},buttonChoices:{margin:"20px 0","& button":{marginRight:"10px"}},backButton:{color:t.palette.text.primary},filters:{display:"flex",gap:t.spacing(1),flexDirection:"column"},stepLabel:{cursor:"pointer !important"},stepper:{width:"100%"},formWrapper:{paddingTop:t.spacing(2),maxWidth:1920}}));export{a as formStyles};
|
|
2
2
|
//# sourceMappingURL=formStyles.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
import{z as e}from"zod";import{TimeUnit as n}from"../components/Frequency/types.esm.js";import"../components/Frequency/util.esm.js";import"../components/Frequency/FrequencyComponent.esm.js";import{validateCacheConfig as r}from"./collectors.esm.js";import{validateFrequency as a}from"./frequency.esm.js";const s="At least one check is required",o="This field is required",i=e.nativeEnum(n),c=e.strictObject({enabled:e.boolean(),hasDuration:e.boolean(),unit:i.optional(),value:e.number().min(1,"Value must be greater than 0.").optional()}).refine(t=>r(t)===!0,t=>({message:r(t)})),m=e.strictObject({type:e.enum(["HumanDuration","cron"]),unit:i.optional(),value:e.number().min(1,"Value must be greater than 0.").optional(),cron:e.string().optional()}).refine(t=>a(t)===!0,t=>({message:a(t)})),l=e.strictObject({selectedKinds:e.string().array(),selectedTypes:e.string().array(),selectedLifecycles:e.string().array(),selectedOwners:e.string().array(),selectedSystems:e.string().array(),selectedTags:e.string().array()});export{s as CHECK_IS_REQUIRED_MSG,c as CacheConfigSchema,o as FIELD_IS_REQUIRED_MSG,l as FiltersSchema,m as FrequencySchema};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spotify/backstage-plugin-soundcheck",
|
|
3
3
|
"description": "Ensure quality, reliability and alignment of software development with codified checks and guidance.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.14.0",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"homepage": "https://backstage.spotify.com",
|
|
7
7
|
"main": "./dist/index.esm.js",
|
|
@@ -44,14 +44,14 @@
|
|
|
44
44
|
"prepare": "yarn generate"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@backstage/catalog-client": "^1.6.
|
|
48
|
-
"@backstage/catalog-model": "^1.
|
|
49
|
-
"@backstage/core-compat-api": "^0.2.
|
|
50
|
-
"@backstage/core-components": "^0.14.
|
|
47
|
+
"@backstage/catalog-client": "^1.6.6",
|
|
48
|
+
"@backstage/catalog-model": "^1.6.0",
|
|
49
|
+
"@backstage/core-compat-api": "^0.2.8",
|
|
50
|
+
"@backstage/core-components": "^0.14.10",
|
|
51
51
|
"@backstage/core-plugin-api": "^1.9.3",
|
|
52
|
-
"@backstage/frontend-plugin-api": "^0.
|
|
53
|
-
"@backstage/plugin-catalog-react": "^1.12.
|
|
54
|
-
"@backstage/plugin-permission-react": "^0.4.
|
|
52
|
+
"@backstage/frontend-plugin-api": "^0.7.0",
|
|
53
|
+
"@backstage/plugin-catalog-react": "^1.12.3",
|
|
54
|
+
"@backstage/plugin-permission-react": "^0.4.25",
|
|
55
55
|
"@backstage/types": "^1.1.1",
|
|
56
56
|
"@date-io/luxon": "^1.0.0",
|
|
57
57
|
"@hookform/resolvers": "^3.3.2",
|
|
@@ -59,8 +59,9 @@
|
|
|
59
59
|
"@material-ui/icons": "^4.9.1",
|
|
60
60
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
61
61
|
"@material-ui/pickers": "3.3.11",
|
|
62
|
-
"@
|
|
63
|
-
"@spotify/backstage-plugin-
|
|
62
|
+
"@mui/icons-material": "^5.11.16",
|
|
63
|
+
"@spotify/backstage-plugin-core": "^0.8.0",
|
|
64
|
+
"@spotify/backstage-plugin-soundcheck-common": "^0.14.0",
|
|
64
65
|
"@tanstack/react-query": "^4.6.1",
|
|
65
66
|
"@types/react-csv": "^1.1.6",
|
|
66
67
|
"@uiw/react-md-editor": "3.20.10",
|
|
@@ -88,22 +89,24 @@
|
|
|
88
89
|
},
|
|
89
90
|
"peerDependencies": {
|
|
90
91
|
"react": "^16.13.1 || ^17.0.0 || ^18.0.0",
|
|
92
|
+
"react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
|
|
91
93
|
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
|
|
92
94
|
},
|
|
93
95
|
"devDependencies": {
|
|
94
|
-
"@backstage/cli": "^0.
|
|
95
|
-
"@backstage/core-app-api": "^1.14.
|
|
96
|
-
"@backstage/dev-utils": "^1.0.
|
|
96
|
+
"@backstage/cli": "^0.27.0",
|
|
97
|
+
"@backstage/core-app-api": "^1.14.2",
|
|
98
|
+
"@backstage/dev-utils": "^1.0.37",
|
|
97
99
|
"@backstage/e2e-test-utils": "^0.1.1",
|
|
98
|
-
"@backstage/frontend-test-utils": "^0.1.
|
|
99
|
-
"@backstage/test-utils": "^1.5.
|
|
100
|
+
"@backstage/frontend-test-utils": "^0.1.12",
|
|
101
|
+
"@backstage/test-utils": "^1.5.10",
|
|
100
102
|
"@graphql-codegen/cli": "^5.0.0",
|
|
101
103
|
"@graphql-codegen/typescript": "^4.0.0",
|
|
102
104
|
"@graphql-codegen/typescript-graphql-request": "^6.0.0",
|
|
103
105
|
"@graphql-codegen/typescript-operations": "^4.0.0",
|
|
104
106
|
"@playwright/test": "^1.32.3",
|
|
105
|
-
"@sp4b-dev/test-utils": "^0.0.
|
|
106
|
-
"@spotify/backstage-plugin-core-common": "^0.
|
|
107
|
+
"@sp4b-dev/test-utils": "^0.0.6",
|
|
108
|
+
"@spotify/backstage-plugin-core-common": "^0.6.0",
|
|
109
|
+
"@spotify/backstage-plugin-soundcheck-node": "^0.8.0",
|
|
107
110
|
"@testing-library/jest-dom": "^6.0.0",
|
|
108
111
|
"@testing-library/react": "^14.0.0",
|
|
109
112
|
"@testing-library/user-event": "^14.0.0",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useRouteRef as i}from"@backstage/core-plugin-api";import{makeStyles as r,Typography as a,Button as m}from"@material-ui/core";import e from"react";import{useNavigate as s}from"react-router-dom";import{techHealthRouteRef as l}from"../../routes.esm.js";const c=r(t=>({container:{display:"flex",gap:t.spacing(1),flexDirection:"column"},link:{fontWeight:"bold",padding:0,color:t.palette.text.primary,"&:hover":{textDecoration:"underline",transform:"none"}},list:{marginTop:0},listItem:{marginBottom:t.spacing(1)}})),p=()=>{const t=c(),n=i(l),o=s();return e.createElement("div",{className:t.container},e.createElement(a,{variant:"h6"},"Creating campaigns"),e.createElement(a,{variant:"body1"},"A Campaign is a focused short term initiative."),e.createElement(a,{variant:"body1"},"You can create campaigns, assign them to teams that own software components, and track them towards a completion milestone via the"," ",e.createElement(m,{variant:"text",color:"primary",onClick:()=>o(n()),className:t.link},"Tech Health")," ","page."),e.createElement(a,{variant:"body1"},"Some use cases for campaigns include:"),e.createElement("div",null,e.createElement("ul",{className:t.list},e.createElement("li",{className:t.listItem},e.createElement(a,{variant:"body1"},"When your organization wants to upgrade Spring libraries to use a specific version of Spring Boot.")),e.createElement("li",null,e.createElement(a,{variant:"body1"},"When your organization wants to remove unneeded data endpoints to save costs.")))))};export{p as CampaignFormDescription};
|
|
2
|
-
//# sourceMappingURL=CampaignFormDescription.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import m,{useEffect as p}from"react";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{useCampaignFormContext as n}from"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";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{useCreateCampaign as s}from"../../hooks/campaigns/useCreateCampaign.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{CampaignForm as c}from"../CampaignForm/CampaignForm.esm.js";import{FullScreenDialog as l}from"../FullScreenDialog/FullScreenDialog.esm.js";const d=()=>{const{hideModal:o,showAddModal:r,setIsLoading:t}=n(),{mutateAsync:i,isLoading:e}=s();return p(()=>{t(e)},[t,e]),m.createElement(l,{title:"Create a Campaign",open:r,handleClose:o},m.createElement(c,{onSave:async a=>{await i(a,{onSuccess:()=>o()})},onCancel:o}))};export{d as AddCampaignView};
|
|
2
|
-
//# sourceMappingURL=AddCampaignView.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Typography as t,Link as a}from"@material-ui/core";import e from"react";const n=()=>e.createElement("div",{style:{display:"flex",gap:"10px",flexDirection:"column"}},e.createElement(t,{variant:"h6"},"Creating and managing checks"),e.createElement(t,{variant:"body1"},"Checks are entities created from four components: facts, paths, operators and values. These components are then organized via a boolean calculator in the UI."),e.createElement(t,{variant:"body1"},"To create a check, select the components that you want to use, organize them into rules and give your check a meaningful name and a description."),e.createElement(t,{variant:"body1"},"Once created, you will be able to manage and edit your track on its detail page. See our"," ",e.createElement(a,{target:"_blank",href:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/checks#check-fields"},"check documentation")," ","for more details."));export{n as CheckFormDescription};
|
|
2
|
-
//# sourceMappingURL=CheckFormDescription.esm.js.map
|
package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{makeStyles as x,TextField as C}from"@material-ui/core";import{Autocomplete as I}from"@material-ui/lab";import i from"react";import{Controller as S}from"react-hook-form";const c=x(t=>({clearIndicator:{marginRight:t.spacing(1)},helperText:{marginLeft:0},noMargin:{margin:0}})),T=({name:t,rules:p,label:d,control:g,options:u,getOptionLabel:h,getOptionValue:o,onChange:s,disabled:f,placeholder:b})=>{const n=c();return i.createElement(S,{name:t,control:g,rules:p,render:({field:m,fieldState:l})=>i.createElement(I,{...m,freeSolo:!0,autoSelect:!0,"data-testid":`${t}-autocomplete`,style:{minWidth:250},disabled:f,options:u,getOptionLabel:h,classes:{clearIndicator:n.clearIndicator},renderInput:a=>i.createElement(C,{...a,variant:"outlined",label:d,error:l.invalid,placeholder:b,FormHelperTextProps:{className:n.helperText},margin:"dense",className:n.noMargin,helperText:l.error?l.error.message:null}),onChange:(a,e)=>{const r=o?o(e):e;s?.(r),m.onChange(r)},onInputChange:(a,e)=>{const r=o?o(e):e;s?.(r)}})})};export{T as ControlledAutocomplete,c as useStyles};
|
|
2
|
-
//# sourceMappingURL=ControlledAutocomplete.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import c,{useEffect as s}from"react";import"../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as a}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{useCreateCheck as n}from"../../hooks/checks/useCreateCheck.esm.js";import{CheckForm as p}from"../CheckForm/CheckForm.esm.js";import"@material-ui/core";import"../CheckForm/Steps/CheckDetailsStep.esm.js";import"../CheckForm/Steps/CheckRulesStep.esm.js";const d=()=>{const{hideModal:e,showAddModal:r,setIsLoading:o}=a(),{mutateAsync:m,isLoading:t}=n();return s(()=>{o(t)},[o,t]),c.createElement(p,{title:"Create a Check",open:r,onSave:async i=>{await m(i,{onSuccess:()=>e()})},onClose:()=>e()})};export{d as AddCheckView};
|
|
2
|
-
//# sourceMappingURL=AddCheckView.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{makeStyles as b,FormControlLabel as h,Switch as f,Box as E,Typography as s,Tabs as y,Tab as i}from"@material-ui/core";import e,{useState as x}from"react";import{useWatch as F,Controller as o}from"react-hook-form";import{validateCacheConfig as k}from"../../../../utils/collectors.esm.js";import{validateFrequency as N}from"../../../../utils/frequency.esm.js";import"lodash";import"../../../Frequency/types.esm.js";import"../../../Frequency/util.esm.js";import{FrequencyComponent as T}from"../../../Frequency/FrequencyComponent.esm.js";import{CacheConfigComponent as q}from"../../../CacheConfig/CacheConfigComponent.esm.js";import{FilterComponent as w}from"../../../Filter/FilterComponent.esm.js";const S=b(a=>({root:{padding:a.spacing(1)},tabsContainer:{marginRight:16},tab:{height:"64px",textAlign:"left"},contentContainer:{width:"100%",padding:a.spacing(1)},divider:{marginTop:a.spacing(8),marginBottom:a.spacing(8)},switchTrack:{backgroundColor:`${a.palette.primary.main} !important`}})),$=({name:a,label:d,description:p,control:l,disabled:c,errors:m})=>{const[r,g]=x(0),C=F({control:l,name:`${a}.enabled`}),u=(t,v)=>{g(v)},n=S();return e.createElement("div",{className:n.root},e.createElement(o,{name:`${a}.enabled`,control:l,render:({field:t})=>e.createElement(h,{control:e.createElement(f,{...t,checked:t.value,"data-testid":`${a}-switch`,classes:{track:t.value?n.switchTrack:void 0}}),label:e.createElement(E,{display:"flex",flexDirection:"column"},e.createElement(s,{variant:"body1",component:"span"},e.createElement("b",null,`${d}`)),e.createElement(s,{variant:"caption",color:"textSecondary",component:"p"},`${p}`))})}),C&&e.createElement("div",null,e.createElement(y,{orientation:"horizontal",variant:"scrollable",value:r,onChange:u,className:n.tabsContainer},e.createElement(i,{label:"Frequency",className:n.tab}),e.createElement(i,{label:"Filters",className:n.tab}),e.createElement(i,{label:"Caching",className:n.tab})),e.createElement("div",{className:n.contentContainer},r===0&&e.createElement("div",null,e.createElement(o,{name:`${a}.frequency`,control:l,rules:{validate:N},render:({field:t})=>e.createElement(T,{disabled:c,value:t.value,onChange:t.onChange,errors:m?.frequency})})),r===1&&e.createElement("div",null,e.createElement(o,{name:`${a}.filters`,control:l,render:({field:t})=>e.createElement(w,{disabled:c,value:t.value,onChange:t.onChange})})),r===2&&e.createElement("div",null,e.createElement(o,{name:`${a}.cacheConfig`,control:l,rules:{validate:k},render:({field:t})=>e.createElement(q,{disabled:c,value:t.value,onChange:t.onChange,errors:m?.cacheConfig})})))))};export{$ as FactCollectionConfig};
|
|
2
|
-
//# sourceMappingURL=FactCollectionConfig.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import u,{useEffect as i,useCallback as f}from"react";import{useTrackFormContext as k}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";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"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as E}from"../../hooks/useNavigateBack.esm.js";import{useUpdateTrack as T}from"../../hooks/tracks/useUpdateTrack.esm.js";import{tracksPageRouteRef as g}from"../../routes.esm.js";import{TrackForm as w}from"../TrackForm/TrackForm.esm.js";const S=({track:t,canEdit:p})=>{const{setSelectedItem:m,setIsLoading:a,selectedItem:n,showReadOnlyModal:e}=k(),{mutateAsync:c,isLoading:s}=T();i(()=>a(s),[a,s]);const o=!p||!t.isEditable;i(()=>{o?e(t):m(t)},[t,m,o,e]);const[y,r]=E(g),l=f(async d=>{await c(d,{onSuccess:r})},[r,c]);return i(()=>{},[t,e,o]),n?u.createElement(w,{handleClose:r,title:`${o?"View":"Edit"} Track`,open:!0,onSave:l}):null};export{S as EditTrackView};
|
|
2
|
-
//# sourceMappingURL=EditTrackView.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{makeStyles as v,FormControl as E,InputLabel as f,Select as k,MenuItem as c,FormHelperText as y}from"@material-ui/core";import e from"react";import{Controller as h}from"react-hook-form";const x=v(l=>({helperText:{marginLeft:0},selectField:{width:"100%",display:"flex",alignItems:"center"},menuBackground:{backgroundColor:l.palette.background.paper}})),F=({name:l,control:d,selectLabel:r,options:i,disabled:p,rules:u,style:b,helperText:n,placeholder:o})=>{const a=x();return e.createElement(h,{name:l,control:d,rules:u,render:({field:s,fieldState:t})=>e.createElement(E,{variant:"outlined",style:b??{minWidth:200},error:t.invalid},r&&e.createElement(f,{id:`${l}-select-label`},r),e.createElement(k,{...s,className:a.selectField,disabled:p,error:t.invalid,"data-testid":`${l}-select`,labelId:`${l}-select-label`,label:r,displayEmpty:!0,value:s.value??"",MenuProps:{classes:{paper:a.menuBackground}},margin:"dense"},o&&e.createElement(c,{value:"",disabled:!0},o),i?.map(({value:m,label:g})=>e.createElement(c,{key:m,value:m},g))),(n||t.error)&&e.createElement(y,{className:a.helperText},t.error?t.error.message:n))})};export{F as FormControlledSelect};
|
|
2
|
-
//# sourceMappingURL=FormControlledSelect.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{withStyles as n,Dialog as c,Slide as i,AppBar as p,Toolbar as d,Typography as m,IconButton as s,Box as f}from"@material-ui/core";import{makeStyles as u}from"@material-ui/core/styles";import g from"@material-ui/icons/Close";import t from"react";const h=u(e=>({appBar:{position:"relative",color:`${e.palette.text.primary} !important`,backgroundColor:`${e.palette.background.default} !important`},title:{flex:1,fontSize:e.typography.h6.fontSize},closeIcon:{marginRight:e.spacing(2)},content:{flex:"1 0 auto",padding:e.spacing(2),margin:"0 0 5rem",overflowX:"hidden",overflowY:"hidden","& .wmde-markdown-var":{"--color-canvas-default":e.palette.background.paper,"--color-border-default":e.palette.border},"& .wmde-markdown":{"--color-canvas-default":e.palette.background.paper}}})),b=n({paperFullScreen:{padding:0}})(c),S=t.forwardRef(function(e,r){return t.createElement(i,{direction:"up",ref:r,...e})}),k=({open:e,handleClose:r,title:o,children:l})=>{const a=h();return t.createElement(b,{fullScreen:!0,open:e,onClose:r,TransitionComponent:S,className:a.title},t.createElement(p,{className:a.appBar},t.createElement(d,null,t.createElement(m,{className:a.title,"data-testid":`dialog-${o}`},o),t.createElement(s,{"data-testid":"close-dialog",edge:"end",color:"inherit",onClick:r,"aria-label":"close",className:a.closeIcon},t.createElement(g,null)))),t.createElement(f,{className:a.content},l))};export{k as FullScreenDialog};
|
|
2
|
-
//# sourceMappingURL=FullScreenDialog.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Breadcrumbs as s,Link as n}from"@backstage/core-components";import{useRouteRef as i}from"@backstage/core-plugin-api";import{makeStyles as p,Typography as f}from"@material-ui/core";import o from"react";import{useLocation as u}from"react-router-dom";import{rootRouteRef as b}from"../../routes.esm.js";const g=p(e=>({breadcrumbs:{marginTop:e.spacing(2),color:e.page.fontColor},link:{color:e.page.fontColor,textDecoration:"none",fontStyle:"normal",fontWeight:"bold"},text:{fontStyle:"normal",fontWeight:"normal"}})),y=({pages:e})=>{const a=i(b),t=g(),l=u().pathname===a();return o.createElement(s,{className:t.breadcrumbs},!l&&o.createElement(n,{className:t.link,to:a()},"Home"),e.map(({title:m,path:r},c)=>r?o.createElement(n,{className:t.link,to:r,key:r,relative:"path"},m):o.createElement(f,{className:t.text,key:`${c}`},m)))};export{y as Breadcrumbs};
|
|
2
|
-
//# sourceMappingURL=Breadcrumbs.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const a=e=>{const c={"^/soundcheck/campaigns$":"Campaigns","^/soundcheck/tracks$":"Tracks","^/soundcheck/tracks/[^/]+$":"Track Details","^/soundcheck/checks$":"Checks","^/soundcheck/collectors$":"Collectors","^/soundcheck/tech-health$":"Tech Health","^/soundcheck/tech-health/campaigns":"Campaigns","^/soundcheck/tech-health/checks":"Checks","^/soundcheck/tech-health/tracks":"Tracks","^/soundcheck/tech-health/entities":"Entities","^/soundcheck/tech-health/teams":"Teams"};for(const[t,s]of Object.entries(c))if(new RegExp(t).test(e))return s;return null},o=e=>e.split("/").filter(c=>c).map((c,t,s)=>{const h=`/${s.slice(0,t+1).join("/")}`,n=a(h);if(n)return h===e?{title:n}:{path:h,title:n}}).filter(c=>!!c);export{o as generateBreadcrumbs};
|
|
2
|
-
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import a,{useEffect as p}from"react";import{useTrackFormContext as s}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";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"../../hooks/useSoundcheckAlert.esm.js";import{useCreateTrack as c}from"../../hooks/tracks/useCreateTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{TrackForm as n}from"../TrackForm/TrackForm.esm.js";const d=()=>{const{setIsLoading:o,setShowAddModal:t,showAddModal:e}=s(),{mutateAsync:m,isLoading:r}=c();return p(()=>{o(r)},[o,r]),a.createElement(n,{handleClose:()=>t(!1),title:"Create Track",open:e,onSave:async i=>{await m(i,{onSuccess:()=>t(!1)})}})};export{d as AddTrackView};
|
|
2
|
-
//# sourceMappingURL=AddTrackView.esm.js.map
|