@spotify/backstage-plugin-soundcheck 0.21.0 → 0.22.1
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 +41 -0
- package/dist/alpha/apis.esm.js +1 -1
- package/dist/alpha/integrations.esm.js +1 -1
- package/dist/alpha/pages.esm.js +1 -1
- package/dist/alpha/plugin.esm.js +1 -1
- package/dist/alpha.d.ts +76 -22
- package/dist/api.esm.js +1 -1
- package/dist/blueprints/CampaignActionBlueprint.esm.js +2 -0
- package/dist/blueprints/IntegrationPageBlueprint.esm.js +1 -1
- package/dist/components/AccordionSection/AccordionSection.esm.js +2 -0
- package/dist/components/Alert/Alert.esm.js +1 -1
- package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
- package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +1 -1
- package/dist/components/CampaignPage/CampaignActionsContext.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignPageBUI.esm.js +1 -1
- package/dist/components/CampaignPage/CampaignTechInsightsExplorerPage.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPageBUI.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/CertificationSidebar.esm.js +1 -1
- package/dist/components/CertificationSidebar/Check.esm.js +1 -1
- package/dist/components/CertificationSidebar/ExemptionJustificationDialog.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/PlaylistContext.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/CheckPullRequest.esm.js +2 -0
- package/dist/components/CheckDryRun/CheckDryRun.esm.js +1 -1
- package/dist/components/CheckForm/CheckForm.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckDetailsStep.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/CheckPage/CheckEditPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTableBUI.esm.js +1 -1
- package/dist/components/CheckPage/CheckPageBUI.esm.js +1 -1
- package/dist/components/CheckPage/ExemptionsTableBUI.esm.js +1 -1
- package/dist/components/CheckSelection/CheckSelection.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/CheckTemplatesPageBUI.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/TemplateCategoryBUI.esm.js +1 -1
- package/dist/components/ChecksPage/ChecksListPageBUI.esm.js +1 -1
- package/dist/components/ChecksTable/ChecksTable.esm.js +1 -1
- package/dist/components/ChecksTable/FixMeCell.esm.js +2 -0
- package/dist/components/ChecksTable/PullRequestsTable.esm.js +2 -0
- package/dist/components/CollectorPage/CollectorDetailsPageBUI.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorDetailsPageDeprecated.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.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 +1 -1
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.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/Jira/JiraConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.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/CollectorsPage/IntegrationLogoBUI.esm.js +1 -1
- package/dist/components/CollectorsPage/IntegrationsListPageBUI.esm.js +1 -1
- package/dist/components/CreateNewTrackPage/CreateNewTrackPage.esm.js +2 -0
- package/dist/components/EmptyState/EmptyStateNoTracks.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
- package/dist/components/FactExplorer/useFactOptions.esm.js +1 -1
- package/dist/components/FilterSidebar/useTrackFilterSidebar.esm.js +1 -1
- package/dist/components/FilterSidebar/util.esm.js +1 -1
- package/dist/components/FixMeButton/FixMeButton.esm.js +2 -0
- package/dist/components/FixWithAiKAButton/FixWithAiKAButton.esm.js +2 -0
- package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +1 -1
- package/dist/components/GroupSelectorBUI/GroupSelectList.esm.js +1 -1
- package/dist/components/GroupSelectorBUI/GroupSelectorBUI.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/visualizations/hierarchyToNivo.esm.js +1 -1
- package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
- package/dist/components/LoadingIcon/LoadingIcon.esm.js +2 -0
- package/dist/components/Menus/useCampaignActions.esm.js +1 -1
- package/dist/components/Menus/useCheckActions.esm.js +1 -1
- package/dist/components/Menus/useTrackActions.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
- package/dist/components/ProgressBar/ProgressBar.esm.js +2 -0
- package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +1 -1
- package/dist/components/RelativeTime/RelativeTime.esm.js +1 -1
- package/dist/components/Router.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPageBUI.esm.js +1 -1
- package/dist/components/SendCampaignNotificationDialog/SendCampaignNotificationDialogBUI.esm.js +1 -1
- package/dist/components/SoundcheckHeader/SoundcheckHeaderBUI.esm.js +1 -1
- package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js +1 -1
- package/dist/components/Stepper/Stepper.esm.js +1 -1
- package/dist/components/TableRowWithOwner/TableRowWithOwner.esm.js +1 -1
- package/dist/components/TechInsights/TechInsightsPageBUI.esm.js +1 -1
- package/dist/components/TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js +1 -1
- package/dist/components/TimePeriodBar/TimePeriodBarBUI.esm.js +1 -1
- package/dist/components/TopAndBottomPerformingTeams/TopAndBottomPerformingTeams.esm.js +1 -1
- package/dist/components/TopFailingChecksTable/TopFailingChecksTableBUI.esm.js +1 -1
- package/dist/components/TrackBuilderPage/TrackBuilderPage.esm.js +1 -1
- package/dist/components/TrackBuilderPage/components/CheckItem/CheckItem.esm.js +2 -0
- package/dist/components/TrackBuilderPage/components/IntegrationTags/IntegrationTags.esm.js +2 -0
- package/dist/components/TrackBuilderPage/components/RunChecksStep/RunChecksStep.esm.js +2 -0
- package/dist/components/TrackBuilderPage/components/SelectProviderStep/SelectProviderStep.esm.js +2 -0
- package/dist/components/TrackBuilderPage/components/SelectTracksStep/SelectTracksStep.esm.js +2 -0
- package/dist/components/TrackBuilderPage/components/TrackAccordion/TrackAccordion.esm.js +2 -0
- package/dist/components/TrackBuilderPage/components/TrackBuilderStatus/TrackBuilderStatus.esm.js +2 -0
- package/dist/components/TrackBuilderPage/hooks/useTrackBuilderStatus.esm.js +2 -0
- package/dist/components/TrackBuilderPage/hooks/useTrackCheckExecutions.esm.js +2 -0
- package/dist/components/TrackBuilderPage/utils.esm.js +4 -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/utils/useTrackForm.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTableBUI.esm.js +1 -1
- package/dist/components/TrackPage/TrackHistoryChartBUI.esm.js +1 -1
- package/dist/components/TrackPage/TrackPageBUI.esm.js +1 -1
- package/dist/components/TrackPage/TrackTechInsightsExplorerPage.esm.js +1 -1
- package/dist/components/TracksPage/TracksListPageBUI.esm.js +1 -1
- package/dist/components/ViewPullRequests/ViewPullRequests.esm.js +2 -0
- package/dist/contexts/UserProvider.esm.js +1 -1
- package/dist/graphql/generated/index.esm.js +168 -85
- package/dist/hooks/catalog/useGetEntityRefs.esm.js +1 -1
- package/dist/hooks/fixMe/useFixMe.esm.js +2 -0
- package/dist/hooks/fixWithAika/useFixWithAika.esm.js +2 -0
- package/dist/hooks/graphqlKeys.esm.js +1 -1
- package/dist/hooks/groups/useGroupOptions.esm.js +1 -1
- package/dist/hooks/remedy/useRemediesForCheck.esm.js +2 -0
- package/dist/hooks/remedy/useRemediesForEntity.esm.js +2 -0
- package/dist/hooks/tracks/useDeleteTrack.esm.js +1 -1
- package/dist/hooks/tracks/useOutOfBoxTracks.esm.js +2 -0
- package/dist/hooks/tracks/useSaveOutOfBoxTracks.esm.js +2 -0
- package/dist/hooks/tracks/useTracksApplicableToGroup.esm.js +1 -1
- package/dist/index.d.ts +52 -3
- package/dist/index.esm.js +1 -1
- package/dist/plugin.esm.js +1 -1
- package/dist/routes.esm.js +1 -1
- package/package.json +24 -24
- package/dist/components/Badge/Badge.esm.js +0 -2
- package/dist/components/TrackBuilderPage/RunFirstCheckStep.esm.js +0 -2
- package/dist/components/TrackBuilderPage/SelectTracksStep.esm.js +0 -2
- package/dist/components/TrackBuilderPage/mockData.esm.js +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# @spotify/backstage-plugin-soundcheck
|
|
2
2
|
|
|
3
|
+
## 0.22.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Integrated API calls into Soundcheck 'Fix With Fleetshift' flows.
|
|
8
|
+
- Added `RemedyTrackerApi` API blueprint.
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
- @spotify/backstage-plugin-soundcheck-common@0.21.1
|
|
12
|
+
|
|
13
|
+
## 0.22.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- Added CampaignActionBlueprint extension point for external plugins to inject actions
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependency `backstage` to `1.48.0`.
|
|
22
|
+
- Updated dependency `@graphql-codegen/add` to `^6.0.0`.
|
|
23
|
+
Updated dependency `@graphql-codegen/cli` to `^6.0.0`.
|
|
24
|
+
Updated dependency `@graphql-codegen/typescript` to `^5.0.0`.
|
|
25
|
+
Updated dependency `@graphql-codegen/typescript-resolvers` to `^5.0.0`.
|
|
26
|
+
Updated dependency `@graphql-codegen/fragment-matcher` to `^6.0.0`.
|
|
27
|
+
Updated dependency `@graphql-codegen/introspection` to `^5.0.0`.
|
|
28
|
+
Updated dependency `@graphql-codegen/typescript-operations` to `^5.0.0`.
|
|
29
|
+
Updated dependency `@graphql-codegen/near-operation-file-preset` to `^4.0.0`.
|
|
30
|
+
- Resolved an issue where, in certain scenarios, the "Configure" button was incorrectly disabled for integrations with a custom No-Code UI.
|
|
31
|
+
- Soundcheck - Fixes an issue that could display entity references instead of names in Soundcheck tables.
|
|
32
|
+
- Fixed an issue where the SonarQube integration displayed an error in the UI after clicking "Configure".
|
|
33
|
+
- Dropdowns in Soundcheck no longer auto select values when hovered over and not clicked
|
|
34
|
+
- Launch Spotify Track Templates feature.
|
|
35
|
+
- Fix Soundcheck track overview filtering for multiple selected owners.
|
|
36
|
+
- Soundcheck - Fixed an issue where the fact-explorer could show an empty fact if fact collection failed.
|
|
37
|
+
- Updated dependencies
|
|
38
|
+
- Updated dependencies
|
|
39
|
+
- Updated dependencies
|
|
40
|
+
- Updated dependencies
|
|
41
|
+
- @spotify/backstage-plugin-core@0.8.15
|
|
42
|
+
- @spotify/backstage-plugin-soundcheck-common@0.21.0
|
|
43
|
+
|
|
3
44
|
## 0.21.0
|
|
4
45
|
|
|
5
46
|
### Minor Changes
|
package/dist/alpha/apis.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ApiBlueprint as
|
|
1
|
+
import{ApiBlueprint as r,discoveryApiRef as i,fetchApiRef as c}from"@backstage/frontend-plugin-api";import{soundcheckApiRef as a,SoundcheckApi as o,remedyTrackerApiRef as m,NoOpRemedyTrackerClient as d}from"../api.esm.js";const t=r.make({params:e=>e({api:a,deps:{discoveryApi:i,fetchApi:c},factory:p=>new o(p)})}),f=r.make({name:"remedy-tracker",params:e=>e({api:m,deps:{},factory:()=>new d})});export{f as remedyTrackerApi,t as soundcheckApi};
|
|
2
2
|
//# sourceMappingURL=apis.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{IntegrationPageBlueprint as t}from"../blueprints/IntegrationPageBlueprint.esm.js";const r=t.make({name:"azure",params:{integrationId:"azure",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"azure"}))}}),o=t.make({name:"bigquery",params:{integrationId:"bigquery",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"bigquery"}))}}),n=t.make({name:"catalog",params:{integrationId:"catalog",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"catalog"}))}}),i=t.make({name:"datadog",params:{integrationId:"datadog",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"datadog"}))}}),l=t.make({name:"data-registry",params:{integrationId:"data-registry",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"data-registry"}))}}),g=t.make({name:"github",params:{integrationId:"github",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"github"}))}}),c=t.make({name:"gitlab",params:{integrationId:"gitlab",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"gitlab"}))}}),m=t.make({name:"http",params:{integrationId:"http",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"http"}))}}),d=t.make({name:"jira",params:{integrationId:"jira",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"jira"}))}}),s=t.make({name:"kubernetes",params:{integrationId:"kubernetes",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"kubernetes"}))}}),I=t.make({name:"newrelic",params:{integrationId:"newrelic",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"newrelic"}))}}),p=t.make({name:"pagerduty",params:{integrationId:"pagerduty",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"pagerduty"}))}}),y=t.make({name:"scm",params:{integrationId:"scm",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"scm"}))}}),u=t.make({name:"sonarqube",params:{integrationId:"sonarqube",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"sonarqube"}))}});export{r as azureIntegration,o as bigqueryIntegration,n as catalogIntegration,l as dataRegistryIntegration,i as datadogIntegration,g as githubIntegration,c as gitlabIntegration,m as httpIntegration,d as jiraIntegration,s as kubernetesIntegration,I as newrelicIntegration,p as pagerdutyIntegration,y as scmIntegration,u as sonarqubeIntegration};
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{IntegrationPageBlueprint as t}from"../blueprints/IntegrationPageBlueprint.esm.js";import"../blueprints/CampaignActionBlueprint.esm.js";const r=t.make({name:"azure",params:{integrationId:"azure",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"azure"}))}}),o=t.make({name:"bigquery",params:{integrationId:"bigquery",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"bigquery"}))}}),n=t.make({name:"catalog",params:{integrationId:"catalog",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"catalog"}))}}),i=t.make({name:"datadog",params:{integrationId:"datadog",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"datadog"}))}}),l=t.make({name:"data-registry",params:{integrationId:"data-registry",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"data-registry"}))}}),g=t.make({name:"github",params:{integrationId:"github",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"github"}))}}),c=t.make({name:"gitlab",params:{integrationId:"gitlab",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"gitlab"}))}}),m=t.make({name:"http",params:{integrationId:"http",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"http"}))}}),d=t.make({name:"jira",params:{integrationId:"jira",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"jira"}))}}),s=t.make({name:"kubernetes",params:{integrationId:"kubernetes",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"kubernetes"}))}}),I=t.make({name:"newrelic",params:{integrationId:"newrelic",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"newrelic"}))}}),p=t.make({name:"pagerduty",params:{integrationId:"pagerduty",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"pagerduty"}))}}),y=t.make({name:"scm",params:{integrationId:"scm",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"scm"}))}}),u=t.make({name:"sonarqube",params:{integrationId:"sonarqube",loader:async()=>import("../components/CollectorPage/CollectorPage.esm.js").then(a=>e(a.CollectorPage,{collectorId:"sonarqube"}))}});export{r as azureIntegration,o as bigqueryIntegration,n as catalogIntegration,l as dataRegistryIntegration,i as datadogIntegration,g as githubIntegration,c as gitlabIntegration,m as httpIntegration,d as jiraIntegration,s as kubernetesIntegration,I as newrelicIntegration,p as pagerdutyIntegration,y as scmIntegration,u as sonarqubeIntegration};
|
|
2
2
|
//# sourceMappingURL=integrations.esm.js.map
|
package/dist/alpha/pages.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as n}from"react/jsx-runtime";import{convertLegacyRouteRef as i,compatWrapper as r}from"@backstage/core-compat-api";import{PageBlueprint as c,createExtensionInput as m,coreExtensionData as e}from"@backstage/frontend-plugin-api";import{integrationIdExtensionDataRef as g}from"../blueprints/IntegrationPageBlueprint.esm.js";import{campaignActionLabelDataRef as p,campaignActionIdDataRef as u,campaignActionHrefDataRef as f}from"../blueprints/CampaignActionBlueprint.esm.js";import{rootRouteRef as s}from"../routes.esm.js";const d=c.makeWithOverrides({name:"SoundcheckRoutingPage",inputs:{integrations:m([e.routePath,e.reactElement,e.routeRef.optional(),g]),campaignActions:m([p,u,f])},factory(o,{config:R,inputs:a}){return o({routeRef:i(s),path:"/soundcheck",loader:()=>import("../components/RoutingPage/RoutingPage.esm.js").then(h=>r(n(h.RoutingPage,{title:R.title,integrations:a.integrations.map(t=>({integrationId:t.get(g),routePath:t.get(e.routePath),routeRef:t.get(e.routeRef)})),campaignActions:a.campaignActions.map(t=>({label:t.get(p),id:t.get(u),href:t.get(f)}))})))})}}),l=c.make({name:"overview",params:{routeRef:i(s),path:"/soundcheck",loader:()=>import("../components/OverviewPage/index.esm.js").then(o=>r(n(o.OverviewPage,{})))}});export{l as soundcheckOverviewPage,d as soundcheckRoutingPage};
|
|
2
2
|
//# sourceMappingURL=pages.esm.js.map
|
package/dist/alpha/plugin.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createFrontendPlugin as t}from"@backstage/frontend-plugin-api";import{soundcheckApi as n}from"./apis.esm.js";import{entitySoundcheckContent as
|
|
1
|
+
import{createFrontendPlugin as t}from"@backstage/frontend-plugin-api";import{soundcheckApi as n,remedyTrackerApi as e}from"./apis.esm.js";import{entitySoundcheckContent as r,entitySoundcheckCard as o,groupSoundcheckContent as i}from"./entity-content.esm.js";import{azureIntegration as a,bigqueryIntegration as g,catalogIntegration as c,datadogIntegration as u,dataRegistryIntegration as d,githubIntegration as I,gitlabIntegration as m,httpIntegration as p,jiraIntegration as s,kubernetesIntegration as h,newrelicIntegration as k,pagerdutyIntegration as f,scmIntegration as l,sonarqubeIntegration as b}from"./integrations.esm.js";import{soundcheckRoutingPage as y,soundcheckOverviewPage as S}from"./pages.esm.js";import{soundcheckSidebarItem as v}from"./sidebar-item.esm.js";var C=t({pluginId:"soundcheck",extensions:[y,S,n,e,r,o,i,v,a,g,c,u,d,I,m,p,s,h,k,f,l,b]});export{C as default};
|
|
2
2
|
//# sourceMappingURL=plugin.esm.js.map
|
package/dist/alpha.d.ts
CHANGED
|
@@ -7,12 +7,21 @@ import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api'
|
|
|
7
7
|
* The Soundcheck plugin for use within Backstage´s new frontend system
|
|
8
8
|
*/
|
|
9
9
|
declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin<{}, {}, {
|
|
10
|
+
"api:soundcheck/remedy-tracker": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
11
|
+
kind: "api";
|
|
12
|
+
name: "remedy-tracker";
|
|
13
|
+
config: {};
|
|
14
|
+
configInput: {};
|
|
15
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
16
|
+
inputs: {};
|
|
17
|
+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
18
|
+
}>;
|
|
10
19
|
"integration:soundcheck/azure": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
11
20
|
kind: "integration";
|
|
12
21
|
name: "azure";
|
|
13
22
|
config: {};
|
|
14
23
|
configInput: {};
|
|
15
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
24
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
16
25
|
optional: true;
|
|
17
26
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
18
27
|
inputs: {};
|
|
@@ -28,7 +37,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
28
37
|
name: "bigquery";
|
|
29
38
|
config: {};
|
|
30
39
|
configInput: {};
|
|
31
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
40
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
32
41
|
optional: true;
|
|
33
42
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
34
43
|
inputs: {};
|
|
@@ -44,7 +53,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
44
53
|
name: "catalog";
|
|
45
54
|
config: {};
|
|
46
55
|
configInput: {};
|
|
47
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
56
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
48
57
|
optional: true;
|
|
49
58
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
50
59
|
inputs: {};
|
|
@@ -60,7 +69,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
60
69
|
name: "datadog";
|
|
61
70
|
config: {};
|
|
62
71
|
configInput: {};
|
|
63
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
72
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
64
73
|
optional: true;
|
|
65
74
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
66
75
|
inputs: {};
|
|
@@ -76,7 +85,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
76
85
|
name: "data-registry";
|
|
77
86
|
config: {};
|
|
78
87
|
configInput: {};
|
|
79
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
88
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
80
89
|
optional: true;
|
|
81
90
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
82
91
|
inputs: {};
|
|
@@ -92,7 +101,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
92
101
|
name: "github";
|
|
93
102
|
config: {};
|
|
94
103
|
configInput: {};
|
|
95
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
104
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
96
105
|
optional: true;
|
|
97
106
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
98
107
|
inputs: {};
|
|
@@ -108,7 +117,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
108
117
|
name: "gitlab";
|
|
109
118
|
config: {};
|
|
110
119
|
configInput: {};
|
|
111
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
120
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
112
121
|
optional: true;
|
|
113
122
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
114
123
|
inputs: {};
|
|
@@ -124,7 +133,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
124
133
|
name: "http";
|
|
125
134
|
config: {};
|
|
126
135
|
configInput: {};
|
|
127
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
136
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
128
137
|
optional: true;
|
|
129
138
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
130
139
|
inputs: {};
|
|
@@ -140,7 +149,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
140
149
|
name: "jira";
|
|
141
150
|
config: {};
|
|
142
151
|
configInput: {};
|
|
143
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
152
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
144
153
|
optional: true;
|
|
145
154
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
146
155
|
inputs: {};
|
|
@@ -156,7 +165,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
156
165
|
name: "kubernetes";
|
|
157
166
|
config: {};
|
|
158
167
|
configInput: {};
|
|
159
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
168
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
160
169
|
optional: true;
|
|
161
170
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
162
171
|
inputs: {};
|
|
@@ -172,7 +181,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
172
181
|
name: "newrelic";
|
|
173
182
|
config: {};
|
|
174
183
|
configInput: {};
|
|
175
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
184
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
176
185
|
optional: true;
|
|
177
186
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
178
187
|
inputs: {};
|
|
@@ -188,7 +197,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
188
197
|
name: "pagerduty";
|
|
189
198
|
config: {};
|
|
190
199
|
configInput: {};
|
|
191
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
200
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
192
201
|
optional: true;
|
|
193
202
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
194
203
|
inputs: {};
|
|
@@ -204,7 +213,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
204
213
|
name: "scm";
|
|
205
214
|
config: {};
|
|
206
215
|
configInput: {};
|
|
207
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
216
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
208
217
|
optional: true;
|
|
209
218
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
210
219
|
inputs: {};
|
|
@@ -220,7 +229,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
220
229
|
name: "sonarqube";
|
|
221
230
|
config: {};
|
|
222
231
|
configInput: {};
|
|
223
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
232
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
224
233
|
optional: true;
|
|
225
234
|
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "soundcheck.integrationId", {}>;
|
|
226
235
|
inputs: {};
|
|
@@ -250,22 +259,43 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
250
259
|
}>;
|
|
251
260
|
"page:soundcheck/SoundcheckRoutingPage": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
252
261
|
config: {
|
|
253
|
-
title: string | undefined;
|
|
254
262
|
path: string | undefined;
|
|
263
|
+
title: string | undefined;
|
|
255
264
|
};
|
|
256
265
|
configInput: {
|
|
257
|
-
title?: string | undefined;
|
|
266
|
+
title?: string | undefined | undefined;
|
|
258
267
|
path?: string | undefined | undefined;
|
|
259
268
|
};
|
|
260
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
269
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
270
|
+
optional: true;
|
|
271
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {
|
|
272
|
+
optional: true;
|
|
273
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
261
274
|
optional: true;
|
|
262
275
|
}>;
|
|
263
276
|
inputs: {
|
|
264
|
-
|
|
277
|
+
pages: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
278
|
+
optional: true;
|
|
279
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.title", {
|
|
280
|
+
optional: true;
|
|
281
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
265
282
|
optional: true;
|
|
266
283
|
}>, {
|
|
267
284
|
singleton: false;
|
|
268
285
|
optional: false;
|
|
286
|
+
internal: false;
|
|
287
|
+
}>;
|
|
288
|
+
integrations: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "soundcheck.integrationId", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
289
|
+
optional: true;
|
|
290
|
+
}>, {
|
|
291
|
+
singleton: false;
|
|
292
|
+
optional: false;
|
|
293
|
+
internal: false;
|
|
294
|
+
}>;
|
|
295
|
+
campaignActions: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "soundcheck.campaignAction.label", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "soundcheck.campaignAction.id", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(campaignId: string) => string, "soundcheck.campaignAction.href", {}>, {
|
|
296
|
+
singleton: false;
|
|
297
|
+
optional: false;
|
|
298
|
+
internal: false;
|
|
269
299
|
}>;
|
|
270
300
|
};
|
|
271
301
|
kind: "page";
|
|
@@ -273,8 +303,11 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
273
303
|
params: {
|
|
274
304
|
defaultPath?: [Error: `Use the 'path' param instead`];
|
|
275
305
|
path: string;
|
|
276
|
-
|
|
306
|
+
title?: string;
|
|
307
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
308
|
+
loader?: () => Promise<react.JSX.Element>;
|
|
277
309
|
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
310
|
+
noHeader?: boolean;
|
|
278
311
|
};
|
|
279
312
|
}>;
|
|
280
313
|
"page:soundcheck/overview": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
@@ -282,19 +315,40 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
282
315
|
name: "overview";
|
|
283
316
|
config: {
|
|
284
317
|
path: string | undefined;
|
|
318
|
+
title: string | undefined;
|
|
285
319
|
};
|
|
286
320
|
configInput: {
|
|
321
|
+
title?: string | undefined;
|
|
287
322
|
path?: string | undefined;
|
|
288
323
|
};
|
|
289
|
-
output: _backstage_frontend_plugin_api.ExtensionDataRef<
|
|
324
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
325
|
+
optional: true;
|
|
326
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {
|
|
327
|
+
optional: true;
|
|
328
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
290
329
|
optional: true;
|
|
291
330
|
}>;
|
|
292
|
-
inputs: {
|
|
331
|
+
inputs: {
|
|
332
|
+
pages: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
333
|
+
optional: true;
|
|
334
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.title", {
|
|
335
|
+
optional: true;
|
|
336
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
337
|
+
optional: true;
|
|
338
|
+
}>, {
|
|
339
|
+
singleton: false;
|
|
340
|
+
optional: false;
|
|
341
|
+
internal: false;
|
|
342
|
+
}>;
|
|
343
|
+
};
|
|
293
344
|
params: {
|
|
294
345
|
defaultPath?: [Error: `Use the 'path' param instead`];
|
|
295
346
|
path: string;
|
|
296
|
-
|
|
347
|
+
title?: string;
|
|
348
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
349
|
+
loader?: () => Promise<react.JSX.Element>;
|
|
297
350
|
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
351
|
+
noHeader?: boolean;
|
|
298
352
|
};
|
|
299
353
|
}>;
|
|
300
354
|
}>;
|
package/dist/api.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createApiRef as u}from"@backstage/core-plugin-api";import{GraphQLClient as y}from"graphql-request";import o from"pako";import{getSdk as l}from"./graphql/generated/index.esm.js";const g=u({id:"plugin.soundcheck"}),k=i=>"response"in i&&"errors"in i.response,p=i=>"response"in i&&"message"in i.response;class w{#a;#s;#t;constructor(t){this.#a=t.fetchApi,this.#s=t.discoveryApi;const e=new y("/graphql",{fetch:async(a,s)=>{const r=`${await this.#s.getBaseUrl("soundcheck")}${a}`;return this.#a.fetch(r,s)}});this.#t=l(e)}#r=t=>k(t)?t.response?.errors?.[0].message??`${t}`:p(t)?t.response.message:`${t}`;#e=async t=>{try{return await t()}catch(e){throw new Error(`Error from Soundcheck backend: ${this.#r(e)}`)}};async getMultipleTrackStatuses(t){return this.#e(async()=>{const{multipleTrackStatuses:e}=await this.#t.getMultipleTrackStatuses({input:t});return e})}async getAllCertifications(t,e=!1,a=!1){return this.#e(async()=>{const{certifications:s}=await this.#t.getAllCertifications({entityRef:t,includeFilteredChecks:e,includeDraftTracks:a});return s})}async getCertificationDetails(t,e=!1,a=!1){return this.#e(async()=>{const{certifications:s}=await this.#t.getCertificationDetails({entityRef:t,includeFilteredChecks:e,includeDraftTracks:a});return s})}async getCertificationDetailsForTrack(t,e,a){return this.#e(async()=>{const{trackCertification:s}=await this.#t.getCertificationDetailsForTrack({entityRef:t,trackId:e,includeFilteredChecks:a});return s})}async getCheckResultDetails(t,e,a){return this.#e(async()=>{const{checkResult:s}=await this.#t.getCheckResultDetails({entityRef:t,trackId:e,checkId:a});return s})}async getFacetsForOwner(t){return this.#e(async()=>{const{facetsForOwner:e}=await this.#t.getFacetsForOwner({ownerEntityRef:t});return e})}async getTrackOverviewForOwner(t,e,a,s,r){return this.#e(async()=>{const{trackOverviewForOwner:n}=await this.#t.getTrackOverviewForOwner({ownerEntityRef:t,facet:e,first:a,after:s,entitySearch:r});return n})}async getTracks(t){return this.#e(async()=>{const{tracks:e}=await this.#t.getTracks({filter:t});return e})}async getTracksApplicableEntityCount(t,e){return this.#e(async()=>{const{tracks:a}=await this.#t.getTracksApplicableEntityCount({filter:t,groupRef:e});return a?.edges?.map(({node:s})=>({id:s.id,applicableEntityCount:s.applicableEntityCount??0}))})}async getTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.getTrack({id:t});return e})}async createTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.createTrack({input:t});return e})}async updateTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.updateTrack({input:t});return e})}async deleteTrack(t){return this.#e(async()=>{const{trackDeleted:e}=await this.#t.deleteTrack({trackId:t});return e})}async importTracks(t){return this.#e(async()=>{const{status:e}=await this.#t.importTracks({tracks:t});return e})}async recertifyTrack(t,e,a){return this.#e(async()=>{const{trackRecertified:s}=await this.#t.recertifyTrack({trackId:t,numberOfDays:e,loggedInUserRef:a});return s})}async getPlaylists(t){return this.#e(async()=>{const{playlists:e}=await this.#t.getPlaylists({entityRef:t});return e})}async getOperators(){return this.#e(async()=>{const{operators:t}=await this.#t.getOperators();return t})}async getCheck(t){return this.#e(async()=>(await this.#t.getCheck({id:t})).check)}async getChecks(t){return this.#e(async()=>{const{checkers:e}=await this.#t.getCheckers({filter:t});return e})}async getExecutableChecks(){return this.#e(async()=>{const{executableChecks:t}=await this.#t.getExecutableChecks();return t})}async createCheck(t){return this.#e(async()=>{const{check:e}=await this.#t.createCheck({input:t});return e})}async updateCheck(t){return this.#e(async()=>{const{check:e}=await this.#t.updateCheck({input:t});return e})}async deleteCheck(t){return this.#e(async()=>await this.#t.deleteChecker({checkerId:t}))}async executeCheck(t){return this.#e(async()=>{const{result:e}=await this.#t.executeCheck({input:t});return e})}async importChecks(t){return this.#e(async()=>{const{status:e}=await this.#t.importCheckers({checkers:t});return e})}async setEntityExempt(t){return this.#e(async()=>{const{setEntityExempt:e}=await this.#t.setEntityExempt({input:t});return e})}async setManualCheckResult(t){return this.#e(async()=>await this.#t.setManualCheckResult({input:t}))}async deleteExemption(t,e){return this.#e(async()=>await this.#t.deleteExemption({checkId:t,entityRef:e}))}async getExemption(t,e){return this.#e(async()=>await this.#t.getExemption({checkId:t,entityRef:e}))}async getExemptions(t,e,a,s,r){return this.#e(async()=>await this.#t.getExemptions({checkId:t,first:e,after:a,last:s,before:r}))}async getExemptCheckIds(t,e){return this.#e(async()=>await this.#t.getExemptCheckIds({entityRef:t,trackId:e}))}async getCollectors(t){return this.#e(async()=>{const{collectors:e}=await this.#t.getCollectors({ids:t});return e})}async getFactSchema(t,e){if(!(!t||!e))return this.#e(async()=>{const{factSchema:a}=await this.#t.getFactSchemas({collectorId:t,factName:e});return a})}async updateCollectorConfig(t){return this.#e(async()=>{const{collector:e}=await this.#t.updateCollectorConfig({input:t});return e})}async deleteCollectorConfig(t){return this.#e(async()=>await this.#t.deleteCollectorConfig({collectorId:t}))}async getOverallCheckPassRates(t){return this.#e(async()=>await this.#t.getOverallCheckPassRates({filter:t}))}async getIndividualCheckPassRates(t){return this.#e(async()=>await this.#t.getIndividualCheckPassRates({filter:t}))}async getOverallTrackPassRate(t){return this.#e(async()=>await this.#t.getOverallTrackPassRate({filter:t}))}async getIndividualTrackPassRate(t){return this.#e(async()=>await this.#t.getIndividualTrackPassRate({filter:t}))}async getOverallEntityPassRates(t){return this.#e(async()=>await this.#t.getOverallEntityPassRates({filter:t}))}async getIndividualEntityPassRates(t){return this.#e(async()=>await this.#t.getIndividualEntityPassRates({input:t}))}async getOverallGroupPassRates(t){return this.#e(async()=>await this.#t.getOverallGroupPassRates({input:t}))}async getIndividualGroupPassRates(t){return this.#e(async()=>await this.#t.getIndividualGroupPassRates({input:t}))}async getTrackEntities(t){return this.#e(async()=>await this.#t.getTrackEntities({input:t}))}async getCampaigns(t,e){return this.#e(async()=>{const{campaigns:a}=await this.#t.getCampaigns({filter:t,byTrackIds:e});return a})}async createCampaign(t){return this.#e(async()=>{const{campaign:e}=await this.#t.createCampaign({input:t});return e})}async updateCampaign(t){return this.#e(async()=>{const{campaign:e}=await this.#t.updateCampaign({input:t});return e})}async deleteCampaign(t){return this.#e(async()=>{const{campaignDeleted:e}=await this.#t.deleteCampaign({campaignId:t});return e})}async sendCampaignNotification(t){return this.#e(async()=>{const{sendCampaignNotification:e}=await this.#t.sendCampaignNotification({input:t});return e})}async archiveCampaign(t){return this.#e(async()=>{const{campaignArchived:e}=await this.#t.archiveCampaign({campaignId:t});return e})}async getCampaignOwners(){return this.#e(async()=>{const{campaignOwners:t}=await this.#t.getCampaignOwners();return t})}async getCheckOwners(){return this.#e(async()=>{const{checkOwners:t}=await this.#t.getCheckOwners();return t})}async getTrackOwners(){return this.#e(async()=>{const{trackOwners:t}=await this.#t.getTrackOwners();return t})}async getCertificationStatus(t){return this.#e(async()=>this.#t.getCertificationStatus({input:t}))}async getCertificationStatusHistory(t){return this.#e(async()=>this.#t.getCertificationStatusHistory({input:t}))}async getTrackStatusHistory(t){return this.#e(async()=>(await this.#t.getTrackStatusHistory({input:t})).trackStatusHistory)}async getTrackStatusHistories(t){return this.#e(async()=>(await this.#t.getTrackStatusHistories({input:t})).trackStatusHistories)}async getCheckStatus(t){return this.#e(async()=>(await this.#t.getCheckStatus({input:t})).checkStatus)}async getCheckStatuses(t){return this.#e(async()=>(await this.#t.getCheckStatuses({input:t})).checkStatuses)}async getCheckStatusHistory(t){return this.#e(async()=>(await this.#t.getCheckStatusHistory({input:t})).checkStatusHistory)}async getCheckStatusHistoriesMultiFilter(t){return this.#e(async()=>(await this.#t.getCheckStatusHistoriesMultiFilter({input:t})).checkStatusHistoriesMultiFilter)}async getCheckStatusHistories(t){return this.#e(async()=>(await this.#t.getCheckStatusHistories({input:t})).checkStatusHistories)}async getCheckEntities(t){return this.#e(async()=>await this.#t.getCheckEntities({input:t}))}async getSavedViews(t){return this.#e(async()=>await this.#t.getSavedViews({input:t}))}async saveView(t){return this.#e(async()=>{const{saveView:e}=await this.#t.saveView({input:t});return e})}async deleteView(t){return this.#e(async()=>{const{deleteView:e}=await this.#t.deleteView({input:t});return e})}async getPathResolvers(){return this.#e(async()=>{const{pathResolvers:t}=await this.#t.getPathResolvers();return t})}async getCheckTemplates(){return this.#e(async()=>{const{checkerTemplates:t}=await this.#t.getCheckTemplates();return t})}async getFact(t){return this.#e(async()=>{const{fact:e}=await this.#t.getFact(t);return e})}async getGroupTypeHierarchy(){return this.#e(async()=>{const{groupTypeHierarchy:t}=await this.#t.getGroupTypeHierarchy();return t})}async getGroupHierarchy(t,e,a){return this.#e(async()=>{const{groupHierarchy:s}=await this.#t.getGroupHierarchy({groupRef:t,ownedEntitiesFilter:e,includeParent:a}),r=Uint8Array.from(atob(s.hierarchy),h=>h.charCodeAt(0)),n=o.inflate(r),c=new TextDecoder("utf-8").decode(n);return{hierarchy:JSON.parse(c)}})}async getHierarchicalTrackStatus(t,e){return this.#e(async()=>{const{hierarchicalTrackStatus:a}=await this.#t.getHierarchicalTrackStatus({trackId:t,groupRef:e});return a})}async getHierarchicalTrackStatuses(t,e){return this.#e(async()=>{const{hierarchicalTrackStatuses:a}=await this.#t.getHierarchicalTrackStatuses({trackIds:t,groupRef:e});return a})}async recordLoadTime(t){return this.#e(async()=>await this.#t.recordLoadTime({input:{metricType:t.metricType,routeName:t.routeName,loadTimeMs:t.loadTimeMs,additionalAttributes:t.additionalAttributes}}))}}export{w as SoundcheckApi,g as soundcheckApiRef};
|
|
1
|
+
import{createApiRef as c}from"@backstage/core-plugin-api";import{GraphQLClient as o}from"graphql-request";import y from"pako";import{getSdk as l}from"./graphql/generated/index.esm.js";const g=c({id:"plugin.soundcheck"}),k=r=>"response"in r&&"errors"in r.response,p=r=>"response"in r&&"message"in r.response;class d{#a;#s;#t;constructor(t){this.#a=t.fetchApi,this.#s=t.discoveryApi;const e=new o("/graphql",{fetch:async(a,s)=>{const i=`${await this.#s.getBaseUrl("soundcheck")}${a}`;return this.#a.fetch(i,s)}});this.#t=l(e)}#r=t=>k(t)?t.response?.errors?.[0].message??`${t}`:p(t)?t.response.message:`${t}`;#e=async t=>{try{return await t()}catch(e){throw new Error(`Error from Soundcheck backend: ${this.#r(e)}`)}};async getMultipleTrackStatuses(t){return this.#e(async()=>{const{multipleTrackStatuses:e}=await this.#t.getMultipleTrackStatuses({input:t});return e})}async getAllCertifications(t,e=!1,a=!1){return this.#e(async()=>{const{certifications:s}=await this.#t.getAllCertifications({entityRef:t,includeFilteredChecks:e,includeDraftTracks:a});return s})}async getCertificationDetails(t,e=!1,a=!1){return this.#e(async()=>{const{certifications:s}=await this.#t.getCertificationDetails({entityRef:t,includeFilteredChecks:e,includeDraftTracks:a});return s})}async getCertificationDetailsForTrack(t,e,a){return this.#e(async()=>{const{trackCertification:s}=await this.#t.getCertificationDetailsForTrack({entityRef:t,trackId:e,includeFilteredChecks:a});return s})}async getCheckResultDetails(t,e,a){return this.#e(async()=>{const{checkResult:s}=await this.#t.getCheckResultDetails({entityRef:t,trackId:e,checkId:a});return s})}async getFacetsForOwner(t){return this.#e(async()=>{const{facetsForOwner:e}=await this.#t.getFacetsForOwner({ownerEntityRef:t});return e})}async getTrackOverviewForOwner(t,e,a,s,i){return this.#e(async()=>{const{trackOverviewForOwner:n}=await this.#t.getTrackOverviewForOwner({ownerEntityRef:t,facet:e,first:a,after:s,entitySearch:i});return n})}async getTracks(t){return this.#e(async()=>{const{tracks:e}=await this.#t.getTracks({filter:t});return e})}async getTracksApplicableEntityCount(t,e){return this.#e(async()=>{const{tracks:a}=await this.#t.getTracksApplicableEntityCount({filter:t,groupRef:e});return a?.edges?.map(({node:s})=>({id:s.id,applicableEntityCount:s.applicableEntityCount??0}))})}async getTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.getTrack({id:t});return e})}async createTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.createTrack({input:t});return e})}async updateTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.updateTrack({input:t});return e})}async deleteTrack(t){return this.#e(async()=>{const{trackDeleted:e}=await this.#t.deleteTrack({trackId:t});return e})}async importTracks(t){return this.#e(async()=>{const{status:e}=await this.#t.importTracks({tracks:t});return e})}async recertifyTrack(t,e,a){return this.#e(async()=>{const{trackRecertified:s}=await this.#t.recertifyTrack({trackId:t,numberOfDays:e,loggedInUserRef:a});return s})}async getPlaylists(t){return this.#e(async()=>{const{playlists:e}=await this.#t.getPlaylists({entityRef:t});return e})}async getOperators(){return this.#e(async()=>{const{operators:t}=await this.#t.getOperators();return t})}async getCheck(t){return this.#e(async()=>(await this.#t.getCheck({id:t})).check)}async getChecks(t){return this.#e(async()=>{const{checkers:e}=await this.#t.getCheckers({filter:t});return e})}async getExecutableChecks(){return this.#e(async()=>{const{executableChecks:t}=await this.#t.getExecutableChecks();return t})}async createCheck(t){return this.#e(async()=>{const{check:e}=await this.#t.createCheck({input:t});return e})}async updateCheck(t){return this.#e(async()=>{const{check:e}=await this.#t.updateCheck({input:t});return e})}async deleteCheck(t){return this.#e(async()=>await this.#t.deleteChecker({checkerId:t}))}async executeCheck(t){return this.#e(async()=>{const{result:e}=await this.#t.executeCheck({input:t});return e})}async importChecks(t){return this.#e(async()=>{const{status:e}=await this.#t.importCheckers({checkers:t});return e})}async setEntityExempt(t){return this.#e(async()=>{const{setEntityExempt:e}=await this.#t.setEntityExempt({input:t});return e})}async setManualCheckResult(t){return this.#e(async()=>await this.#t.setManualCheckResult({input:t}))}async deleteExemption(t,e){return this.#e(async()=>await this.#t.deleteExemption({checkId:t,entityRef:e}))}async getExemption(t,e){return this.#e(async()=>await this.#t.getExemption({checkId:t,entityRef:e}))}async getExemptions(t,e,a,s,i){return this.#e(async()=>await this.#t.getExemptions({checkId:t,first:e,after:a,last:s,before:i}))}async getExemptCheckIds(t,e){return this.#e(async()=>await this.#t.getExemptCheckIds({entityRef:t,trackId:e}))}async getCollectors(t){return this.#e(async()=>{const{collectors:e}=await this.#t.getCollectors({ids:t});return e})}async getFactSchema(t,e){if(!(!t||!e))return this.#e(async()=>{const{factSchema:a}=await this.#t.getFactSchemas({collectorId:t,factName:e});return a})}async updateCollectorConfig(t){return this.#e(async()=>{const{collector:e}=await this.#t.updateCollectorConfig({input:t});return e})}async deleteCollectorConfig(t){return this.#e(async()=>await this.#t.deleteCollectorConfig({collectorId:t}))}async getOverallCheckPassRates(t){return this.#e(async()=>await this.#t.getOverallCheckPassRates({filter:t}))}async getIndividualCheckPassRates(t){return this.#e(async()=>await this.#t.getIndividualCheckPassRates({filter:t}))}async getOverallTrackPassRate(t){return this.#e(async()=>await this.#t.getOverallTrackPassRate({filter:t}))}async getIndividualTrackPassRate(t){return this.#e(async()=>await this.#t.getIndividualTrackPassRate({filter:t}))}async getOverallEntityPassRates(t){return this.#e(async()=>await this.#t.getOverallEntityPassRates({filter:t}))}async getIndividualEntityPassRates(t){return this.#e(async()=>await this.#t.getIndividualEntityPassRates({input:t}))}async getOverallGroupPassRates(t){return this.#e(async()=>await this.#t.getOverallGroupPassRates({input:t}))}async getIndividualGroupPassRates(t){return this.#e(async()=>await this.#t.getIndividualGroupPassRates({input:t}))}async getTrackEntities(t){return this.#e(async()=>await this.#t.getTrackEntities({input:t}))}async getCampaigns(t,e){return this.#e(async()=>{const{campaigns:a}=await this.#t.getCampaigns({filter:t,byTrackIds:e});return a})}async createCampaign(t){return this.#e(async()=>{const{campaign:e}=await this.#t.createCampaign({input:t});return e})}async updateCampaign(t){return this.#e(async()=>{const{campaign:e}=await this.#t.updateCampaign({input:t});return e})}async deleteCampaign(t){return this.#e(async()=>{const{campaignDeleted:e}=await this.#t.deleteCampaign({campaignId:t});return e})}async sendCampaignNotification(t){return this.#e(async()=>{const{sendCampaignNotification:e}=await this.#t.sendCampaignNotification({input:t});return e})}async archiveCampaign(t){return this.#e(async()=>{const{campaignArchived:e}=await this.#t.archiveCampaign({campaignId:t});return e})}async getCampaignOwners(){return this.#e(async()=>{const{campaignOwners:t}=await this.#t.getCampaignOwners();return t})}async getCheckOwners(){return this.#e(async()=>{const{checkOwners:t}=await this.#t.getCheckOwners();return t})}async getTrackOwners(){return this.#e(async()=>{const{trackOwners:t}=await this.#t.getTrackOwners();return t})}async getCertificationStatus(t){return this.#e(async()=>this.#t.getCertificationStatus({input:t}))}async getCertificationStatusHistory(t){return this.#e(async()=>this.#t.getCertificationStatusHistory({input:t}))}async getTrackStatusHistory(t){return this.#e(async()=>(await this.#t.getTrackStatusHistory({input:t})).trackStatusHistory)}async getTrackStatusHistories(t){return this.#e(async()=>(await this.#t.getTrackStatusHistories({input:t})).trackStatusHistories)}async getCheckStatus(t){return this.#e(async()=>(await this.#t.getCheckStatus({input:t})).checkStatus)}async getCheckStatuses(t){return this.#e(async()=>(await this.#t.getCheckStatuses({input:t})).checkStatuses)}async getCheckStatusHistory(t){return this.#e(async()=>(await this.#t.getCheckStatusHistory({input:t})).checkStatusHistory)}async getCheckStatusHistoriesMultiFilter(t){return this.#e(async()=>(await this.#t.getCheckStatusHistoriesMultiFilter({input:t})).checkStatusHistoriesMultiFilter)}async getCheckStatusHistories(t){return this.#e(async()=>(await this.#t.getCheckStatusHistories({input:t})).checkStatusHistories)}async getCheckEntities(t){return this.#e(async()=>await this.#t.getCheckEntities({input:t}))}async getSavedViews(t){return this.#e(async()=>await this.#t.getSavedViews({input:t}))}async saveView(t){return this.#e(async()=>{const{saveView:e}=await this.#t.saveView({input:t});return e})}async deleteView(t){return this.#e(async()=>{const{deleteView:e}=await this.#t.deleteView({input:t});return e})}async getPathResolvers(){return this.#e(async()=>{const{pathResolvers:t}=await this.#t.getPathResolvers();return t})}async getCheckTemplates(){return this.#e(async()=>{const{checkerTemplates:t}=await this.#t.getCheckTemplates();return t})}async getOutOfBoxTracks(){return this.#e(async()=>{const{outOfBoxTracks:t}=await this.#t.getOutOfBoxTracks();return t})}async saveOutOfBoxTracks(t){return this.#e(async()=>{const{status:e}=await this.#t.saveOutOfBoxTracks(t);return e})}async getFact(t){return this.#e(async()=>{const{fact:e}=await this.#t.getFact(t);return e})}async getGroupTypeHierarchy(){return this.#e(async()=>{const{groupTypeHierarchy:t}=await this.#t.getGroupTypeHierarchy();return t})}async getGroupHierarchy(t,e,a){return this.#e(async()=>{const{groupHierarchy:s}=await this.#t.getGroupHierarchy({groupRef:t,ownedEntitiesFilter:e,includeParent:a}),i=Uint8Array.from(atob(s.hierarchy),h=>h.charCodeAt(0)),n=y.inflate(i),u=new TextDecoder("utf-8").decode(n);return{hierarchy:JSON.parse(u)}})}async getHierarchicalTrackStatus(t,e){return this.#e(async()=>{const{hierarchicalTrackStatus:a}=await this.#t.getHierarchicalTrackStatus({trackId:t,groupRef:e});return a})}async getHierarchicalTrackStatuses(t,e){return this.#e(async()=>{const{hierarchicalTrackStatuses:a}=await this.#t.getHierarchicalTrackStatuses({trackIds:t,groupRef:e});return a})}async recordLoadTime(t){return this.#e(async()=>await this.#t.recordLoadTime({input:{metricType:t.metricType,routeName:t.routeName,loadTimeMs:t.loadTimeMs,additionalAttributes:t.additionalAttributes}}))}}const w=c({id:"plugin.soundcheck.remedy-tracker"});class C{async getRemediesForCheck(t){return[]}async getRemediesForEntity(t){return[]}}export{C as NoOpRemedyTrackerClient,d as SoundcheckApi,w as remedyTrackerApiRef,g as soundcheckApiRef};
|
|
2
2
|
//# sourceMappingURL=api.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createExtensionDataRef as t,createExtensionBlueprint as d}from"@backstage/frontend-plugin-api";const a=t().with({id:"soundcheck.campaignAction.label"}),i=t().with({id:"soundcheck.campaignAction.id"}),n=t().with({id:"soundcheck.campaignAction.href"}),p=d({kind:"campaign-action",attachTo:{id:"page:soundcheck/SoundcheckRoutingPage",input:"campaignActions"},output:[a,i,n],dataRefs:{label:a,id:i,href:n},*factory({label:c,id:e,href:o}){yield a(c),yield i(e),yield n(o)}});export{p as CampaignActionBlueprint,n as campaignActionHrefDataRef,i as campaignActionIdDataRef,a as campaignActionLabelDataRef};
|
|
2
|
+
//# sourceMappingURL=CampaignActionBlueprint.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{compatWrapper as u}from"@backstage/core-compat-api";import{createExtensionDataRef as c,createExtensionBlueprint as l,coreExtensionData as t,ExtensionBoundary as s}from"@backstage/frontend-plugin-api";import{lazy as f}from"react";import"@backstage/core-plugin-api";import"@backstage/plugin-permission-react";import"@backstage/ui";import"@spotify/backstage-plugin-soundcheck-common";import"react-helmet";import"react-router-dom";import"../routes.esm.js";import"../components/CampaignPage/CampaignPageBUI.esm.js";import"../components/CampaignPage/CampaignActionsContext.esm.js";import"../components/CampaignPage/CampaignTechInsightsExplorerPage.esm.js";import"../components/CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js";import"../components/CampaignsPage/CampaignListPageBUI.esm.js";import"../contexts/TrackFormContext.esm.js";import"../contexts/CheckFormContext.esm.js";import"../contexts/CampaignFormContext.esm.js";import"../contexts/UserProvider.esm.js";import"@backstage/catalog-model";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"react-use/lib/useLocalStorage";import"../graphql/generated/index.esm.js";import"react-use/lib/useAsync";import"../components/CampaignForm/CampaignForm.esm.js";import"@remixicon/react";import"../components/SoundcheckHeader/SoundcheckHeader.esm.js";import"../components/SoundcheckHeader/SoundcheckHeaderContext.esm.js";import"../components/Loading/Loading.esm.js";import"../components/PageWarningMessage/PageWarningMessage.esm.js";import"../components/CampaignsPage/CampaignEmptyState.esm.js";import"uuid";import"@backstage/core-components";import"react-hook-form";import"../utils/formStyles.esm.js";import"@material-ui/core";import"@material-ui/icons/Search";import"../components/SoundcheckDialog/SoundcheckDialog.esm.js";import"../components/FactExplorer/FactExplorer.esm.js";import"../components/FactExplorer/FactExplorerContext.esm.js";import"../components/FormStepper/FormStepper.esm.js";import"../components/CheckForm/FormFields/CheckNameInput/CheckNameInput.esm.js";import"../components/CheckForm/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js";import"../components/FormMarkdownInput/FormMarkdownInput.esm.js";import"../components/CheckForm/utils/checkFormUtils.esm.js";import"../components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js";import"../components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js";import"../components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js";import"../components/CheckForm/FormFields/RuleInput/Expressions/ExpressionBox.esm.js";import"../components/CheckForm/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js";import"@material-ui/icons/Close";import"@material-ui/icons/Delete";import"@material-ui/icons/List";import"../components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"../components/CheckForm/FormFields/RuleInput/Conditions/styles.esm.js";import"../components/CheckForm/FormFields/RuleInput/Conditions/ValueListInput.esm.js";import"../components/CheckForm/FormFields/RuleInput/Conditions/ConditionList.esm.js";import"../components/CheckForm/FormFields/CheckScheduleSection/ScheduleSection.esm.js";import"../components/CheckForm/FormFields/CheckPathResolverInput.esm.js";import"../components/CheckForm/Steps/CheckDetailsStep.esm.js";import"../components/CheckForm/Steps/CheckRulesStep.esm.js";import"../components/CheckForm/Steps/CheckApplicabilityStep.esm.js";import"../components/CheckForm/Steps/CheckReviewStep.esm.js";import"../components/CheckForm/types/ExpressionType.esm.js";import"../components/Frequency/types.esm.js";import"../components/Frequency/util.esm.js";import"../components/Frequency/FrequencyComponent.esm.js";import"../components/CheckForm/types/Path.esm.js";import"@hookform/resolvers/zod";import"../components/CheckForm/utils/validation.esm.js";import"../components/LoadingIndicator/LoadingIndicator.esm.js";import"../components/CheckPage/CheckPageBUI.esm.js";import"../components/ChecksPage/ChecksListPageBUI.esm.js";import"../components/CheckTemplatesPage/CheckTemplatesPageBUI.esm.js";import"../components/CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js";import"../components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js";import"../components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js";import"../components/CollectorPage/Configurators/Catalog/CatalogConfigurator.esm.js";import"../components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js";import"../components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js";import"../components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js";import"../components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js";import"../components/CollectorPage/Configurators/HTTP/HttpConfigurator.esm.js";import"../components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js";import"../components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js";import"../components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js";import"../components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js";import"../components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js";import"../components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js";import"../components/CollectorPage/CollectorDetailsPageBUI.esm.js";import"../components/CollectorPage/CollectorDetailsPageDeprecated.esm.js";import"../components/CollectorsPage/IntegrationsListPageBUI.esm.js";import"../components/CreateNewTrackPage/CreateNewTrackPage.esm.js";import"../components/OverviewPage/OverviewPageContent.esm.js";import"../components/TechInsights/TechInsightsPageBUI.esm.js";import"../components/TrackBuilderPage/TrackBuilderPage.esm.js";import"lodash";import"../components/Filter/FilterComponent.esm.js";import"../components/TrackForm/Steps/LevelsStep/LevelsStepNew.esm.js";import"../components/TrackForm/Steps/TrackDetailsStep/TrackDetailsStep.esm.js";import"../components/TrackForm/utils/validation.esm.js";import"../components/TrackPage/TrackPageBUI.esm.js";import"../components/TrackPage/TrackTechInsightsExplorerPage.esm.js";import"../components/TracksPage/TracksListPageBUI.esm.js";import"@spotify/backstage-plugin-core";import"../components/SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{RoutingPageWrapper as g}from"../components/RoutingPage/RoutingPageWrapper.esm.js";const o=c().with({id:"soundcheck.integrationId"}),h=l({kind:"integration",attachTo:{id:"app/routes",input:"routes"},output:[t.routePath,t.reactElement,t.routeRef.optional(),o],dataRefs:{integrationId:o},*factory({integrationId:i,loader:m,path:e,routeRef:p},{node:n}){const a=f(()=>m().then(d=>({default:()=>d})));yield t.routePath(e??`/soundcheck/integrations/${i}/edit`),yield t.reactElement(u(r(s,{node:n,children:r(g,{children:r(a,{})})}))),p&&(yield t.routeRef(p)),yield o(i)}});export{h as IntegrationPageBlueprint,o as integrationIdExtensionDataRef};
|
|
2
2
|
//# sourceMappingURL=IntegrationPageBlueprint.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as x,jsx as d}from"react/jsx-runtime";import{Accordion as h,AccordionTrigger as m,AccordionPanel as E,Box as f}from"@backstage/ui";import{useState as u,useCallback as g}from"react";const A=({header:c,children:i,panelClassName:l,isExpanded:e,onExpandedChange:r,defaultExpanded:o=!1})=>{const[s,p]=u(o),n=e??s,t=g(a=>{e===void 0&&p(a),r?.(a)},[e,r]);return x(h,{defaultExpanded:o,isExpanded:n,onExpandedChange:()=>t(!n),children:[d(m,{children:c}),n&&d(E,{children:d(f,{className:l,children:i})})]})};export{A as AccordionSection};
|
|
2
|
+
//# sourceMappingURL=AccordionSection.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r,jsxs as o}from"react/jsx-runtime";import{makeStyles as b}from"@material-ui/core";import{RiInformationLine as
|
|
1
|
+
import{jsx as r,jsxs as o}from"react/jsx-runtime";import{makeStyles as b}from"@material-ui/core";import{RiInformationLine as d,RiCheckLine as t,RiErrorWarningLine as m,RiCloseCircleLine as u}from"@remixicon/react";const v={info:{icon:r(d,{}),bg:"var(--bui-bg-primary)",border:"var(--bui-fg-primary)",color:"var(--bui-fg-primary)"},success:{icon:r(t,{}),bg:"var(--bui-bg-success)",border:"var(--bui-fg-success)",color:"var(--bui-fg-success)"},warning:{icon:r(m,{}),bg:"var(--bui-bg-warning)",border:"var(--bui-fg-warning)",color:"var(--bui-fg-warning)"},error:{icon:r(u,{}),bg:"var(--bui-bg-danger)",border:"var(--bui-fg-danger)",color:"var(--bui-fg-danger)"}},f=b(()=>({title:{margin:"0 0 0.5rem",fontWeight:"bold"},description:{margin:0,lineHeight:"var(--bui-space-5)"}})),p=({title:i,children:n,variant:a="info"})=>{const e=f(),{icon:c,bg:s,border:g,color:l}=v[a];return r("div",{role:"alert",style:{margin:"1rem 0",padding:"1rem",backgroundColor:s,border:`1px solid ${g}`,borderRadius:"var(--bui-radius-3)"},children:o("div",{style:{display:"flex",gap:"1rem",alignItems:"flex-start",color:l},children:[r("div",{children:c}),o("div",{children:[i&&r("h4",{className:e.title,children:i}),r("p",{className:e.description,children:n})]})]})})};export{p as Alert};
|
|
2
2
|
//# sourceMappingURL=Alert.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as c,Fragment as g,jsx as o}from"react/jsx-runtime";import{useRouteRef as f}from"@backstage/core-plugin-api";import{HeaderPage as u}from"@backstage/ui";import{useEffect as d}from"react";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{CampaignFormProvider as e,useCampaignFormContext as C}from"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";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{useCreateCampaign as l}from"../../hooks/campaigns/useCreateCampaign.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as h}from"../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{campaignsPageRouteRef as i}from"../../routes.esm.js";import{CampaignForm as k}from"../CampaignForm/CampaignForm.esm.js";import{DocLinkButton as b}from"../DocLinkButton/DocLinkButton.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as y}from"../SoundcheckHeader/useHeader.esm.js";const x=()=>{const{setIsLoading:t}=C(),{mutateAsync:m,isLoading:r}=l();d(()=>{t(r)},[t,r]);const[a,
|
|
1
|
+
import{jsxs as c,Fragment as g,jsx as o}from"react/jsx-runtime";import{useRouteRef as f}from"@backstage/core-plugin-api";import{HeaderPage as u}from"@backstage/ui";import{useEffect as d}from"react";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{CampaignFormProvider as e,useCampaignFormContext as C}from"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";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{useCreateCampaign as l}from"../../hooks/campaigns/useCreateCampaign.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as h}from"../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsync";import{campaignsPageRouteRef as i}from"../../routes.esm.js";import{CampaignForm as k}from"../CampaignForm/CampaignForm.esm.js";import{DocLinkButton as b}from"../DocLinkButton/DocLinkButton.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as y}from"../SoundcheckHeader/useHeader.esm.js";const x=()=>{const{setIsLoading:t}=C(),{mutateAsync:m,isLoading:r}=l();d(()=>{t(r)},[t,r]);const[a,p]=h(i),s=async n=>{await m(n,{onSuccess:p})};return y({title:"Create a Campaign",description:"Create, monitor, and manage software updates or system transitions.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/campaigns"}),o(e,{children:o(k,{onSave:s,onCancel:a})})},F=()=>{const t=f(i);return c(g,{children:[o(u,{title:"Create Campaign",breadcrumbs:[{label:"All Campaigns",href:t()}],customActions:o(b,{href:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/campaigns/"})}),o(e,{children:o(x,{})})]})};export{F as CampaignCreatePage};
|
|
2
2
|
//# sourceMappingURL=CampaignCreatePage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{zodResolver as s}from"@hookform/resolvers/zod";import{useMemo as n}from"react";import{useForm as u}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 f}from"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{useGetChecksMap as c}from"../../../hooks/tracks/useGetChecksMap.esm.js";import{DEFAULT_FORM_VALUES as g}from"../utils/campaignFormUtils.esm.js";import{campaignFormSchema as l}from"../utils/validation.esm.js";import{mapCampaignToFormValues as C,mapCampaignFormDataToCampaignInput as d}from"./utils.esm.js";const F=(r,o)=>{const
|
|
1
|
+
import{zodResolver as s}from"@hookform/resolvers/zod";import{useMemo as n}from"react";import{useForm as u}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 f}from"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"../../../graphql/generated/index.esm.js";import"react-use/lib/useAsync";import{useGetChecksMap as c}from"../../../hooks/tracks/useGetChecksMap.esm.js";import{DEFAULT_FORM_VALUES as g}from"../utils/campaignFormUtils.esm.js";import{campaignFormSchema as l}from"../utils/validation.esm.js";import{mapCampaignToFormValues as C,mapCampaignFormDataToCampaignInput as d}from"./utils.esm.js";const F=(r,o)=>{const t=n(()=>o?C(o):g,[o]),a=u({defaultValues:t,mode:"onChange",resolver:s(l)}),{showModal:e}=f(),{checksMap:i}=c();return{formMethods:a,onSubmit:async m=>{if(!await e({title:"Save Campaign",message:`Are you sure you want to save campaign: ${m.detailsStep.name}?`,error:!1}))return;const p=d(m,o,i);r(p)}}};export{F as useCampaignForm};
|
|
2
2
|
//# sourceMappingURL=useCampaignForm.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{createContext as o,useContext as i}from"react";const n=o([]);function c({actions:r,children:t}){return e(n.Provider,{value:r,children:t})}function a(){return i(n)}export{c as CampaignActionsProvider,a as useExternalCampaignActions};
|
|
2
|
+
//# sourceMappingURL=CampaignActionsContext.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as o,Fragment as W}from"react/jsx-runtime";import{parseEntityRef as Fe}from"@backstage/catalog-model";import{useRouteRef as R}from"@backstage/core-plugin-api";import{usePermission as Ne}from"@backstage/plugin-permission-react";import{Container as T,HeaderPage as Re,Box as m,Flex as Y,Text as u,Grid as P}from"@backstage/ui";import{makeStyles as Pe}from"@material-ui/core";import{toEntityFilterQuery as xe,soundcheckCampaignReadPermission as Ae}from"@spotify/backstage-plugin-soundcheck-common";import{isEmpty as He}from"lodash";import{DateTime as S}from"luxon";import{useState as b,useMemo as v,useEffect as Z}from"react";import{useParams as Oe,useSearchParams as De}from"react-router-dom";import Ke from"react-use/lib/useDebounce";import _e from"react-use/lib/useLocalStorage";import{useCheckStatuses as Me}from"../../hooks/aggregations/useCheckStatuses.esm.js";import{useFilters as je}from"../../hooks/filters/useFilters.esm.js";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as Be}from"../../hooks/campaigns/useGetCampaigns.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as Ge}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as Ue}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import{useLCPReporting as Ve}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as $e}from"../../hooks/useLoadTimeReporting.esm.js";import{campaignsPageRouteRef as qe,campaignOverviewRouteRef as Qe,campaignExplorerRouteRef as We}from"../../routes.esm.js";import{DescriptionCard as Ye}from"../Cards/DescriptionCard/DescriptionCard.esm.js";import{HistoricalTrackStatusCard as Ze}from"../Cards/HistoricalTrackStatusCard/HistoricalTrackStatusCard.esm.js";import"../Cards/TrackStatusCard/TrackStatusCard.esm.js";import{ChecksTable as ze}from"../ChecksTable/ChecksTable.esm.js";import{ChipSelector as Je}from"../ChipSelector/ChipSelector.esm.js";import{EmptyStateBUI as z}from"../EmptyState/EmptyStateBUI.esm.js";import"../FilterSidebar/FilterSidebar.esm.js";import"../FilterSidebar/StateFilter.esm.js";import{useTrackFilterSidebar as Xe}from"../FilterSidebar/useTrackFilterSidebar.esm.js";import{toFilter as ei,CERTIFICATION_STATUS_MAP as ii}from"../FilterSidebar/util.esm.js";import{LoadingTableSkeleton as ti}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{SimpleMenu as ri}from"../Menus/SimpleMenu.esm.js";import{useCampaignActions as ai}from"../Menus/useCampaignActions.esm.js";import{PageCustomActions as oi}from"../PageCustomActions/PageCustomActions.esm.js";import{SendCampaignNotificationDialogBUI as si}from"../SendCampaignNotificationDialog/SendCampaignNotificationDialogBUI.esm.js";import{TopFailingChecksTableBUI as ni}from"../TopFailingChecksTable/TopFailingChecksTableBUI.esm.js";import{TrackEntitiesTableBUI as ci}from"../TrackPage/TrackEntitiesTable/TrackEntitiesTableBUI.esm.js";import{CampaignStatusCard as mi}from"./CampaignStatusCard.esm.js";const li=Pe(()=>({container:{marginBottom:"var(--bui-space-12)"},tableContent:{margin:"var(--bui-space-3) 0 0"},tabPanel:{padding:"var(--bui-space-6) 0 0"},tabs:{margin:"0 0 var(--bui-space-12)"},cards:{margin:"0 0 var(--bui-space-12)",display:"flex",gridGap:"var(--bui-space-4)"}})),a={CHECKS:"Checks",TOP_FAILING_CHECKS:"Top Failing Checks",ENTITIES:"Entities"},di={checks:a.CHECKS,"top-failing-checks":a.TOP_FAILING_CHECKS,entities:a.ENTITIES},pi={[a.CHECKS]:"checks",[a.TOP_FAILING_CHECKS]:"top-failing-checks",[a.ENTITIES]:"entities"},hi=()=>{const{owners:l,lifecycles:d,types:p,systems:h,certificationStatuses:x}=Xe(),{campaignId:s}=Oe(),J=R(qe),[n,C]=De(),[c,A]=b(n.get("search")||""),[H,X]=b(""),[O,ee]=b(()=>{const i=n.get("section"),I=i?di[i]:null;return new Set([I??a.CHECKS])}),y=O.values().next().value??a.CHECKS;Ke(()=>{X(c);const i=new URLSearchParams(n.toString());c?i.set("search",c):i.delete("search"),C(i,{replace:!0})},300,[c]);const D=v(()=>({routeName:"soundcheck-campaign-insights",additionalAttributes:{campaignId:s||"",filtersApplied:l.length+d.length+p.length+h.length,ownersFilter:l?.join(",")||"",lifecyclesFilter:d?.join(",")||"",typesFilter:p?.join(",")||"",systemsFilter:h?.join(",")||"",campaignsSearch:H||""}}),[s,l,d,p,h,H]),{reportContentLoaded:K}=$e(D),{reporter:ie}=Ve(D),f=li(),k=v(()=>ei({lifecycles:d,owners:l,types:p,systems:h}),[d,l,p,h]),{data:te,isLoading:g,isError:re}=Be({ids:[s],first:1}),t=te?.edges?.[0]?.node,{actions:_,showNotificationDialog:M,setShowNotificationDialog:ae}=ai(t??void 0),r=t?.track,oe=v(()=>r?.levels.flatMap(i=>i.checks),[r?.levels]),se=Array.from(new Set(r?.levels.flatMap(i=>i.checks).map(i=>i.id)??[])),{data:j,isLoading:ne}=Me({trackId:r?.id,checkIds:se,filter:k},!!r),ce=v(()=>xe(r?.filter),[r]),{filters:me,selected:le,setSelected:de,onRemoveTag:pe,selectedTags:he}=je({entityFilterQuery:ce,hasCertificationStatusFilters:!0}),{data:B,isLoading:w,isError:fe}=Ge({trackId:r?.id??"",filter:k},!!t),ge=S.fromISO(t?.startDate),ue=Math.max(Math.ceil(S.now().diff(ge,"days").days),1),{data:G,isLoading:Se,isError:Ce}=Ue({trackId:r?.id??"",filter:k,numberOfDays:ue},!!t),L=re||fe||Ce,{loading:ye,allowed:Ee}=Ne({permission:Ae,resourceRef:s}),U=ie?.getLCPValue();Z(()=>{!g&&!w&&K({lcp:U})},[g,w,K,U]);const[E,V]=b(!1),[F,N]=_e("campaign-overview-search-params","");Z(()=>{!E&&n?.toString()?(F!==n.toString()&&N(n.toString()),V(!0)):E?E&&F!==n.toString()&&N(n.toString()):V(!0)},[n,C,N,F,E]);const Ie=i=>{ee(i),A("");const I=i.values().next().value,Q=I?pi[I]:void 0;Q?C({section:Q},{replace:!0}):C({},{replace:!0})},Te=R(Qe),be=R(We);if(g)return e(T,{className:f.container,children:e(ti,{})});if(!g&&!t)return e(T,{className:f.container,children:e(z,{title:"Campaign not found",body:`There is no campaign with the requested id: ${s}.`})});if(!ye&&!Ee)return e(T,{className:f.container,children:e(z,{title:"Cannot view campaign",body:`No permission to view campaign with the requested id: ${s}.`})});const $=t?.ownerEntityRef,ve=$?Fe($).name:void 0,ke=S.fromISO(t?.startDate),q=S.fromISO(t?.targetCompletionDate),we=S.now(),Le=Math.max(Math.ceil(q.diff(we,"days").days),0);return o(W,{children:[e(Re,{title:t?.name,customActions:e(ri,{disabled:!_.length,placement:"left top",menuActions:_,label:"Campaign Actions"}),breadcrumbs:[{label:"Campaigns",href:J()}],tabs:[{id:"overview",label:"Campaign Overview",href:s?Te({campaignId:s}):""},{id:"explorer",label:"Tech Insights Explorer",href:s?be({campaignId:s}):""}]}),o(T,{className:f.container,children:[o(m,{className:f.cards,children:[e(Ye,{description:t?.description??void 0,owner:ve,isError:L,isLoading:g}),e(mi,{campaign:t,status:B,history:G,isError:L,isLoading:w,children:o(W,{children:[o(Y,{align:"baseline",mt:"3",children:[e(u,{as:"h1",variant:"title-medium",weight:"bold",children:Le}),e(u,{variant:"body-small",children:"Days remaining"})]}),o(P.Root,{children:[o(P.Item,{children:[e(m,{children:e(u,{color:"secondary",variant:"body-small",children:"Start date"})}),e(m,{children:e(u,{variant:"body-small",children:ke.toLocaleString({month:"short",day:"numeric",year:"numeric"})})})]}),o(P.Item,{children:[e(m,{children:e(u,{color:"secondary",variant:"body-small",children:"End date"})}),e(m,{children:e(u,{variant:"body-small",children:q.toLocaleString({month:"short",day:"numeric",year:"numeric"})})})]})]})]})}),e(Ze,{track:t?.track,history:G,isCampaign:!0,isError:L,isLoading:Se})]}),r&&o(m,{children:[o(Y,{justify:"between",children:[e(m,{minWidth:"16rem",children:e(Je,{options:["Checks","Top Failing Checks","Entities"],selected:O,ariaLabel:"Sections",onSelectionChange:Ie})}),e(oi,{searchValue:c,setSearchValue:i=>A(i),filters:me,selected:le,setSelected:de,onRemoveTag:pe,selectedTags:he,showSearch:y!==a.ENTITIES})]}),o(m,{className:f.tableContent,children:[y===a.CHECKS&&e(ze,{trackId:r.id,checks:oe,checkStatuses:j,isLoading:g||ne,searchValue:c}),y===a.TOP_FAILING_CHECKS&&e(ni,{track:r,checkStatuses:j,certificationStatus:B?.certificationStatus,searchValue:c}),y===a.ENTITIES&&e(ci,{isCampaign:!0,track:r,lifecycles:d,owners:l,types:p,systems:h,certificationStatus:He(x)?void 0:ii[x[0]],searchValue:c})]})]}),t&&M&&e(si,{campaign:t,isOpen:M,handleClose:()=>ae(!1)})]})]})};export{hi as CampaignPageBUI};
|
|
1
|
+
import{jsx as e,jsxs as o,Fragment as W}from"react/jsx-runtime";import{parseEntityRef as Fe}from"@backstage/catalog-model";import{useRouteRef as R}from"@backstage/core-plugin-api";import{usePermission as Ne}from"@backstage/plugin-permission-react";import{Container as T,HeaderPage as Re,Box as m,Flex as Y,Text as u,Grid as P}from"@backstage/ui";import{makeStyles as Pe}from"@material-ui/core";import{toEntityFilterQuery as xe,soundcheckCampaignReadPermission as Ae}from"@spotify/backstage-plugin-soundcheck-common";import{isEmpty as He}from"lodash";import{DateTime as S}from"luxon";import{useState as b,useMemo as v,useEffect as Z}from"react";import{useParams as Oe,useSearchParams as De}from"react-router-dom";import Ke from"react-use/lib/useDebounce";import _e from"react-use/lib/useLocalStorage";import{useCheckStatuses as Me}from"../../hooks/aggregations/useCheckStatuses.esm.js";import{useFilters as je}from"../../hooks/filters/useFilters.esm.js";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as Be}from"../../hooks/campaigns/useGetCampaigns.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as Ge}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as Ue}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsync";import{useLCPReporting as Ve}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as $e}from"../../hooks/useLoadTimeReporting.esm.js";import{campaignsPageRouteRef as qe,campaignOverviewRouteRef as Qe,campaignExplorerRouteRef as We}from"../../routes.esm.js";import{DescriptionCard as Ye}from"../Cards/DescriptionCard/DescriptionCard.esm.js";import{HistoricalTrackStatusCard as Ze}from"../Cards/HistoricalTrackStatusCard/HistoricalTrackStatusCard.esm.js";import"../Cards/TrackStatusCard/TrackStatusCard.esm.js";import{ChecksTable as ze}from"../ChecksTable/ChecksTable.esm.js";import{ChipSelector as Je}from"../ChipSelector/ChipSelector.esm.js";import{EmptyStateBUI as z}from"../EmptyState/EmptyStateBUI.esm.js";import"../FilterSidebar/FilterSidebar.esm.js";import"../FilterSidebar/StateFilter.esm.js";import{useTrackFilterSidebar as Xe}from"../FilterSidebar/useTrackFilterSidebar.esm.js";import{toFilter as ei,CERTIFICATION_STATUS_MAP as ii}from"../FilterSidebar/util.esm.js";import{LoadingTableSkeleton as ti}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{SimpleMenu as ri}from"../Menus/SimpleMenu.esm.js";import{useCampaignActions as ai}from"../Menus/useCampaignActions.esm.js";import{PageCustomActions as oi}from"../PageCustomActions/PageCustomActions.esm.js";import{SendCampaignNotificationDialogBUI as si}from"../SendCampaignNotificationDialog/SendCampaignNotificationDialogBUI.esm.js";import{TopFailingChecksTableBUI as ni}from"../TopFailingChecksTable/TopFailingChecksTableBUI.esm.js";import{TrackEntitiesTableBUI as ci}from"../TrackPage/TrackEntitiesTable/TrackEntitiesTableBUI.esm.js";import{CampaignStatusCard as mi}from"./CampaignStatusCard.esm.js";const li=Pe(()=>({container:{marginBottom:"var(--bui-space-12)"},tableContent:{margin:"var(--bui-space-3) 0 0"},tabPanel:{padding:"var(--bui-space-6) 0 0"},tabs:{margin:"0 0 var(--bui-space-12)"},cards:{margin:"0 0 var(--bui-space-12)",display:"flex",gridGap:"var(--bui-space-4)"}})),a={CHECKS:"Checks",TOP_FAILING_CHECKS:"Top Failing Checks",ENTITIES:"Entities"},di={checks:a.CHECKS,"top-failing-checks":a.TOP_FAILING_CHECKS,entities:a.ENTITIES},pi={[a.CHECKS]:"checks",[a.TOP_FAILING_CHECKS]:"top-failing-checks",[a.ENTITIES]:"entities"},hi=()=>{const{owners:l,lifecycles:d,types:p,systems:h,certificationStatuses:x}=Xe(),{campaignId:s}=Oe(),J=R(qe),[n,C]=De(),[c,A]=b(n.get("search")||""),[H,X]=b(""),[O,ee]=b(()=>{const i=n.get("section"),I=i?di[i]:null;return new Set([I??a.CHECKS])}),y=O.values().next().value??a.CHECKS;Ke(()=>{X(c);const i=new URLSearchParams(n.toString());c?i.set("search",c):i.delete("search"),C(i,{replace:!0})},300,[c]);const D=v(()=>({routeName:"soundcheck-campaign-insights",additionalAttributes:{campaignId:s||"",filtersApplied:l.length+d.length+p.length+h.length,ownersFilter:l?.join(",")||"",lifecyclesFilter:d?.join(",")||"",typesFilter:p?.join(",")||"",systemsFilter:h?.join(",")||"",campaignsSearch:H||""}}),[s,l,d,p,h,H]),{reportContentLoaded:K}=$e(D),{reporter:ie}=Ve(D),f=li(),k=v(()=>ei({lifecycles:d,owners:l,types:p,systems:h}),[d,l,p,h]),{data:te,isLoading:g,isError:re}=Be({ids:[s],first:1}),t=te?.edges?.[0]?.node,{actions:_,showNotificationDialog:M,setShowNotificationDialog:ae}=ai(t??void 0),r=t?.track,oe=v(()=>r?.levels.flatMap(i=>i.checks),[r?.levels]),se=Array.from(new Set(r?.levels.flatMap(i=>i.checks).map(i=>i.id)??[])),{data:j,isLoading:ne}=Me({trackId:r?.id,checkIds:se,filter:k},!!r),ce=v(()=>xe(r?.filter),[r]),{filters:me,selected:le,setSelected:de,onRemoveTag:pe,selectedTags:he}=je({entityFilterQuery:ce,hasCertificationStatusFilters:!0}),{data:B,isLoading:w,isError:fe}=Ge({trackId:r?.id??"",filter:k},!!t),ge=S.fromISO(t?.startDate),ue=Math.max(Math.ceil(S.now().diff(ge,"days").days),1),{data:G,isLoading:Se,isError:Ce}=Ue({trackId:r?.id??"",filter:k,numberOfDays:ue},!!t),L=re||fe||Ce,{loading:ye,allowed:Ee}=Ne({permission:Ae,resourceRef:s}),U=ie?.getLCPValue();Z(()=>{!g&&!w&&K({lcp:U})},[g,w,K,U]);const[E,V]=b(!1),[F,N]=_e("campaign-overview-search-params","");Z(()=>{!E&&n?.toString()?(F!==n.toString()&&N(n.toString()),V(!0)):E?E&&F!==n.toString()&&N(n.toString()):V(!0)},[n,C,N,F,E]);const Ie=i=>{ee(i),A("");const I=i.values().next().value,Q=I?pi[I]:void 0;Q?C({section:Q},{replace:!0}):C({},{replace:!0})},Te=R(Qe),be=R(We);if(g)return e(T,{className:f.container,children:e(ti,{})});if(!g&&!t)return e(T,{className:f.container,children:e(z,{title:"Campaign not found",body:`There is no campaign with the requested id: ${s}.`})});if(!ye&&!Ee)return e(T,{className:f.container,children:e(z,{title:"Cannot view campaign",body:`No permission to view campaign with the requested id: ${s}.`})});const $=t?.ownerEntityRef,ve=$?Fe($).name:void 0,ke=S.fromISO(t?.startDate),q=S.fromISO(t?.targetCompletionDate),we=S.now(),Le=Math.max(Math.ceil(q.diff(we,"days").days),0);return o(W,{children:[e(Re,{title:t?.name,customActions:e(ri,{disabled:!_.length,placement:"left top",menuActions:_,label:"Campaign Actions"}),breadcrumbs:[{label:"Campaigns",href:J()}],tabs:[{id:"overview",label:"Campaign Overview",href:s?Te({campaignId:s}):""},{id:"explorer",label:"Tech Insights Explorer",href:s?be({campaignId:s}):""}]}),o(T,{className:f.container,children:[o(m,{className:f.cards,children:[e(Ye,{description:t?.description??void 0,owner:ve,isError:L,isLoading:g}),e(mi,{campaign:t,status:B,history:G,isError:L,isLoading:w,children:o(W,{children:[o(Y,{align:"baseline",mt:"3",children:[e(u,{as:"h1",variant:"title-medium",weight:"bold",children:Le}),e(u,{variant:"body-small",children:"Days remaining"})]}),o(P.Root,{children:[o(P.Item,{children:[e(m,{children:e(u,{color:"secondary",variant:"body-small",children:"Start date"})}),e(m,{children:e(u,{variant:"body-small",children:ke.toLocaleString({month:"short",day:"numeric",year:"numeric"})})})]}),o(P.Item,{children:[e(m,{children:e(u,{color:"secondary",variant:"body-small",children:"End date"})}),e(m,{children:e(u,{variant:"body-small",children:q.toLocaleString({month:"short",day:"numeric",year:"numeric"})})})]})]})]})}),e(Ze,{track:t?.track,history:G,isCampaign:!0,isError:L,isLoading:Se})]}),r&&o(m,{children:[o(Y,{justify:"between",children:[e(m,{minWidth:"16rem",children:e(Je,{options:["Checks","Top Failing Checks","Entities"],selected:O,ariaLabel:"Sections",onSelectionChange:Ie})}),e(oi,{searchValue:c,setSearchValue:i=>A(i),filters:me,selected:le,setSelected:de,onRemoveTag:pe,selectedTags:he,showSearch:y!==a.ENTITIES})]}),o(m,{className:f.tableContent,children:[y===a.CHECKS&&e(ze,{trackId:r.id,checks:oe,checkStatuses:j,isLoading:g||ne,searchValue:c}),y===a.TOP_FAILING_CHECKS&&e(ni,{track:r,checkStatuses:j,certificationStatus:B?.certificationStatus,searchValue:c}),y===a.ENTITIES&&e(ci,{isCampaign:!0,track:r,lifecycles:d,owners:l,types:p,systems:h,certificationStatus:He(x)?void 0:ii[x[0]],searchValue:c})]})]}),t&&M&&e(si,{campaign:t,isOpen:M,handleClose:()=>ae(!1)})]})]})};export{hi as CampaignPageBUI};
|
|
2
2
|
//# sourceMappingURL=CampaignPageBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as c,Fragment as j}from"react/jsx-runtime";import{useRouteRef as b,useApi as M}from"@backstage/core-plugin-api";import{entityPresentationApiRef as $}from"@backstage/plugin-catalog-react";import{usePermission as z}from"@backstage/plugin-permission-react";import{Container as d,HeaderPage as J,Box as v,Flex as K,SearchField as Q}from"@backstage/ui";import{makeStyles as W}from"@material-ui/core";import{soundcheckCampaignReadPermission as X}from"@spotify/backstage-plugin-soundcheck-common";import{useState as k,useMemo as C,useEffect as Y}from"react";import{useParams as Z,useSearchParams as _}from"react-router-dom";import ee from"react-use/lib/useDebounce";import{useGroupHierarchy as ie}from"../../hooks/heirarchy/useGroupHierarchy.esm.js";import{useHierarchicalTrackStatus as re}from"../../hooks/heirarchy/useHierarchicalTrackStatus.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as ae}from"../../hooks/campaigns/useGetCampaigns.esm.js";import{useGetAllTracks as oe}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsync";import{useLCPReporting as te}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as ne}from"../../hooks/useLoadTimeReporting.esm.js";import{campaignsPageRouteRef as me,campaignOverviewRouteRef as se,campaignExplorerRouteRef as pe}from"../../routes.esm.js";import{EmptyStateBUI as x}from"../EmptyState/EmptyStateBUI.esm.js";import{hierarchyToNivo as ce}from"../HierarchicalTechInsightsPage/visualizations/hierarchyToNivo.esm.js";import{LoadingTableSkeleton as de}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{SimpleMenu as le}from"../Menus/SimpleMenu.esm.js";import{useCampaignActions as ge}from"../Menus/useCampaignActions.esm.js";import{SendCampaignNotificationDialogBUI as fe}from"../SendCampaignNotificationDialog/SendCampaignNotificationDialogBUI.esm.js";import{TechInsightsExplorerTable as ue}from"../TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js";import{TechInsightsGroupSelector as he}from"../TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js";import{TopAndBottomPerformingTeams as be}from"../TopAndBottomPerformingTeams/TopAndBottomPerformingTeams.esm.js";const ve=W(()=>({container:{marginBottom:"var(--bui-space-12)"},teams:{margin:"0 0 var(--bui-space-12)"},tableContent:{margin:"var(--bui-space-3) 0 0"},filters:{width:"25rem",marginLeft:"auto"}})),Ce=()=>{const o=ve(),{campaignId:i}=Z(),[l,A]=_(),[n,y]=k(l.get("search")||""),r=l.get("group"),[g,E]=k(""),B=b(me);ee(()=>{E(n);const a=new URLSearchParams(l.toString());n?a.set("search",n):a.delete("search"),A(a,{replace:!0})},300,[n]);const S=C(()=>({routeName:"soundcheck-tech-insights-explorer",additionalAttributes:{campaignId:i||"",group:r||"",groupsSearch:g||""}}),[i,r,g]),{reportContentLoaded:R}=ne(S),{reporter:G}=te(S),{data:D,isLoading:s}=ae({ids:[i],first:1}),t=D?.edges?.[0]?.node,{actions:w,showNotificationDialog:I,setShowNotificationDialog:F}=ge(t??void 0),m=t?.track,N=M($),{data:T}=oe({}),f=C(()=>T?.edges.find(a=>a.node.id===m?.id)?.node,[T?.edges,m?.id]),{data:L,isLoading:u}=ie(r||void 0,{enabled:!!r&&!!m?.id&&!!f,ownedEntitiesFilter:f?.filter??void 0}),{loading:H,allowed:O}=z({permission:X,resourceRef:i}),{data:h,isLoading:p}=re({trackId:m?.id??"",groupRef:r??"",skip:!m?.id}),U=C(()=>{if(!r)return;const a=L?.[r];return a?ce(a,h||null,()=>"var(--bui-fg-primary)",N,void 0):void 0},[L,N,r,h]),P=G?.getLCPValue();Y(()=>{!s&&!u&&!p&&R({lcp:P})},[s,u,p,R,P]);const q=b(se),V=b(pe);return s?e(d,{className:o.container,children:e(de,{})}):!s&&!t?e(d,{className:o.container,children:e(x,{title:"Campaign not found",body:`There is no campaign with the requested id: ${i}.`})}):!H&&!O?e(d,{className:o.container,children:e(x,{title:"Cannot view campaign",body:`No permission to view campaign with the requested id: ${i}.`})}):c(j,{children:[e(J,{title:t?.name,customActions:e(le,{disabled:!w.length,placement:"left top",menuActions:w,label:"Campaign Actions"}),breadcrumbs:[{label:"Campaigns",href:B()}],tabs:[{id:"overview",label:"Campaign Overview",href:i?q({campaignId:i}):""},{id:"explorer",label:"Tech Insights Explorer",href:i?V({campaignId:i}):""}]}),c(d,{className:o.container,children:[e(v,{className:o.teams,children:e(be,{trackStatus:h??void 0,isLoading:p,campaignId:i})}),c(v,{children:[c(K,{align:"center",gap:"3",className:o.filters,children:[e(he,{}),e(Q,{value:n,onChange:y,"aria-label":"Search",placeholder:"Search"})]}),e(v,{className:o.tableContent,children:e(ue,{tableData:U,isLoading:u||p,selectedGroup:r??void 0,searchValue:g,trackId:f?.id,campaignId:i})})]}),t&&I&&e(fe,{campaign:t,isOpen:I,handleClose:()=>F(!1)})]})]})};export{Ce as CampaignTechInsightsExplorerPage};
|
|
2
2
|
//# sourceMappingURL=CampaignTechInsightsExplorerPage.esm.js.map
|