@spotify/backstage-plugin-soundcheck 0.14.3 → 0.14.5
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 +26 -0
- package/config.d.ts +14 -0
- package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
- package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignInsightsPage.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignStatusHistoryTile.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignStatusTile.esm.js +1 -1
- package/dist/components/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/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/CheckCard/CheckCard.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/CheckForm/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +1 -1
- package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
- package/dist/components/CheckForm/utils/checkFormUtils.esm.js +1 -1
- package/dist/components/CheckPage/CheckDetailsView.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +1 -1
- package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/CollectorOption.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/CollectorSchedulingOptions.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Common/FactCollectionConfig.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataDog/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Gitlab/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/NewRelic/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/FactCollectionConfig.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/validation.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/EntitySoundcheckCard/Card.esm.js +1 -1
- package/dist/components/LevelCard/LevelCard.esm.js +1 -1
- package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageHeader.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
- package/dist/components/PassRateTable/PassRateTable.esm.js +2 -2
- package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +1 -1
- package/dist/components/Router.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +1 -1
- package/dist/components/TechHealth/TechHealth.esm.js +1 -1
- package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +1 -1
- package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +1 -1
- package/dist/components/TrackCreatePage/TrackCreatePage.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/FilterBar/util.esm.js +2 -0
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
- package/dist/components/TrackPage/TrackPage.esm.js +1 -1
- package/dist/hooks/certifications/useProgramOverviewForOwner.esm.js +1 -1
- package/dist/hooks/checks/useUpdateCheck.esm.js +1 -1
- package/dist/hooks/facets/useFacetFilters.esm.js +1 -1
- package/dist/hooks/facets/useFacetsForOwner.esm.js +1 -1
- package/dist/hooks/graphqlKeys.esm.js +1 -1
- package/dist/hooks/groups/useAllGroups.esm.js +1 -1
- package/dist/hooks/groups/useUsersGroupClaims.esm.js +1 -1
- package/dist/hooks/tracks/useCreateTrack.esm.js +1 -1
- package/dist/hooks/tracks/useDeleteTrack.esm.js +1 -1
- package/dist/hooks/tracks/useUpdateTrack.esm.js +1 -1
- package/dist/utils/export.esm.js +3 -3
- package/dist/utils/getGroupFilterFromConfig.esm.js +2 -0
- package/package.json +21 -20
- package/dist/components/CampaignDetailsPage/CampaignDetailRow.esm.js +0 -2
- package/dist/components/CampaignDetailsPage/CampaignDetails.esm.js +0 -2
- package/dist/components/OverviewPage/CampaignBanner/CampaignArea.esm.js +0 -2
- package/dist/components/OverviewPage/CampaignBanner/CampaignBanner.esm.js +0 -2
- package/dist/components/OverviewPage/CampaignBanner/useCampaignBannerStyles.esm.js +0 -2
- package/dist/components/OverviewPage/CampaignBanner/utils.esm.js +0 -2
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spotify/backstage-plugin-soundcheck",
|
|
3
3
|
"description": "Ensure quality, reliability and alignment of software development with codified checks and guidance.",
|
|
4
|
-
"version": "0.14.
|
|
4
|
+
"version": "0.14.5",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"homepage": "https://backstage.spotify.com",
|
|
7
7
|
"main": "./dist/index.esm.js",
|
|
@@ -55,15 +55,16 @@
|
|
|
55
55
|
"prepare": "yarn generate"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@backstage/catalog-client": "^1.
|
|
59
|
-
"@backstage/catalog-model": "^1.7.
|
|
60
|
-
"@backstage/
|
|
61
|
-
"@backstage/core-
|
|
62
|
-
"@backstage/core-
|
|
63
|
-
"@backstage/
|
|
64
|
-
"@backstage/plugin-
|
|
65
|
-
"@backstage/plugin-
|
|
66
|
-
"@backstage/plugin-
|
|
58
|
+
"@backstage/catalog-client": "^1.9.0",
|
|
59
|
+
"@backstage/catalog-model": "^1.7.2",
|
|
60
|
+
"@backstage/config": "^1.3.1",
|
|
61
|
+
"@backstage/core-compat-api": "^0.3.4",
|
|
62
|
+
"@backstage/core-components": "^0.16.2",
|
|
63
|
+
"@backstage/core-plugin-api": "^1.10.2",
|
|
64
|
+
"@backstage/frontend-plugin-api": "^0.9.3",
|
|
65
|
+
"@backstage/plugin-catalog-react": "^1.15.0",
|
|
66
|
+
"@backstage/plugin-permission-react": "^0.4.29",
|
|
67
|
+
"@backstage/plugin-scaffolder-react": "^1.14.2",
|
|
67
68
|
"@backstage/types": "^1.2.0",
|
|
68
69
|
"@date-io/luxon": "^1.0.0",
|
|
69
70
|
"@hookform/resolvers": "^3.3.2",
|
|
@@ -72,8 +73,8 @@
|
|
|
72
73
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
73
74
|
"@material-ui/pickers": "3.3.11",
|
|
74
75
|
"@mui/styles": "^5.14.7",
|
|
75
|
-
"@spotify/backstage-plugin-core": "^0.8.
|
|
76
|
-
"@spotify/backstage-plugin-soundcheck-common": "^0.14.
|
|
76
|
+
"@spotify/backstage-plugin-core": "^0.8.4",
|
|
77
|
+
"@spotify/backstage-plugin-soundcheck-common": "^0.14.5",
|
|
77
78
|
"@tanstack/react-query": "^4.6.1",
|
|
78
79
|
"@types/react-csv": "^1.1.6",
|
|
79
80
|
"@uiw/react-md-editor": "3.20.10",
|
|
@@ -107,20 +108,20 @@
|
|
|
107
108
|
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
|
|
108
109
|
},
|
|
109
110
|
"devDependencies": {
|
|
110
|
-
"@backstage/cli": "^0.29.
|
|
111
|
-
"@backstage/core-app-api": "^1.15.
|
|
112
|
-
"@backstage/dev-utils": "^1.1.
|
|
111
|
+
"@backstage/cli": "^0.29.4",
|
|
112
|
+
"@backstage/core-app-api": "^1.15.3",
|
|
113
|
+
"@backstage/dev-utils": "^1.1.5",
|
|
113
114
|
"@backstage/e2e-test-utils": "^0.1.1",
|
|
114
|
-
"@backstage/frontend-test-utils": "^0.2.
|
|
115
|
-
"@backstage/test-utils": "^1.7.
|
|
115
|
+
"@backstage/frontend-test-utils": "^0.2.4",
|
|
116
|
+
"@backstage/test-utils": "^1.7.3",
|
|
116
117
|
"@graphql-codegen/cli": "^5.0.0",
|
|
117
118
|
"@graphql-codegen/typescript": "^4.0.0",
|
|
118
119
|
"@graphql-codegen/typescript-graphql-request": "^6.0.0",
|
|
119
120
|
"@graphql-codegen/typescript-operations": "^4.0.0",
|
|
120
121
|
"@playwright/test": "^1.32.3",
|
|
121
|
-
"@sp4b-dev/test-utils": "^0.0.
|
|
122
|
-
"@spotify/backstage-plugin-core-common": "^0.6.
|
|
123
|
-
"@spotify/backstage-plugin-soundcheck-node": "^0.8.
|
|
122
|
+
"@sp4b-dev/test-utils": "^0.0.10",
|
|
123
|
+
"@spotify/backstage-plugin-core-common": "^0.6.4",
|
|
124
|
+
"@spotify/backstage-plugin-soundcheck-node": "^0.8.6",
|
|
124
125
|
"@testing-library/jest-dom": "^6.0.0",
|
|
125
126
|
"@testing-library/react": "^14.0.0",
|
|
126
127
|
"@testing-library/user-event": "^14.0.0",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"@material-ui/core";import{makeStyles as o}from"@material-ui/core/styles";import"react";o(t=>({detailRow:{marginBottom:t.spacing(1),"&:last-child":{marginBottom:0}},label:{fontWeight:"bold",color:t.palette.text.primary},value:{marginLeft:t.spacing(1)}}));
|
|
2
|
-
//# sourceMappingURL=CampaignDetailRow.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"@backstage/plugin-catalog-react";import"@material-ui/core";import{makeStyles as o}from"@material-ui/core/styles";import"react";import"./CampaignDetailRow.esm.js";o(n=>({innerContainer:{padding:n.spacing(0,1),fontSize:n.typography.body2.fontSize},sectionLabel:{marginBottom:n.spacing(1)},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}}));const e=n=>new Date(n).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"});export{e as convertToReadableDate};
|
|
2
|
-
//# sourceMappingURL=CampaignDetails.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useRouteRef as c}from"@backstage/core-plugin-api";import{makeStyles as s,Grid as l,Accordion as g,AccordionSummary as d,Typography as f,AccordionDetails as E}from"@material-ui/core";import u from"@material-ui/icons/ExpandMore";import e from"react";import{Link as y}from"react-router-dom";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{useGetCampaigns as h}from"../../../hooks/campaigns/useGetCampaigns.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{campaignsPageRouteRef as x}from"../../../routes.esm.js";import{OVERVIEW_CAMPAIGNS_COUNT as m}from"../OverviewPageContent.esm.js";import{CampaignBanner as C}from"./CampaignBanner.esm.js";const A=s(a=>({campaignsGrid:{margin:`0 0 ${a.spacing(3)}px`,border:`1px solid ${a.palette.divider}`},campaignsCard:{display:"flex",width:"100%",flexDirection:"column",padding:a.spacing(2),gap:a.spacing(2)},campaignsLink:{textAlign:"center",margin:`${a.spacing(1)}rem 0 ${a.spacing(1)}`}})),R=({ownerEntityRef:a})=>{const i=A(),n=c(x),{data:o}=h({orderAlphabetical:"default",searchByOwner:a,searchByStatus:"active"},!!a),t=o?.edges.map(r=>r.node),p=t?.slice(0,m);return e.createElement(e.Fragment,null,t&&t.length>0&&e.createElement(l,{item:!0,xs:12,className:i.campaignsGrid},e.createElement(g,{style:{boxShadow:"none"}},e.createElement(d,{expandIcon:e.createElement(u,null)},e.createElement(f,{variant:"h6"},"Campaigns")),e.createElement(E,null,e.createElement("div",{className:i.campaignsCard},p?.map(r=>e.createElement("div",{key:r.id},e.createElement(C,{campaign:r})))),t.length>m&&e.createElement(y,{to:n(),className:i.campaignsLink},"More Campaigns")))))};export{R as CampaignArea};
|
|
2
|
-
//# sourceMappingURL=CampaignArea.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useRouteRef as u}from"@backstage/core-plugin-api";import{EntityRefLink as L}from"@backstage/plugin-catalog-react";import{Typography as t,Button as M,Menu as B,MenuItem as E}from"@material-ui/core";import O from"@material-ui/icons/ArrowDropDown";import z from"@material-ui/icons/ArrowDropUp";import e,{useState as $}from"react";import{useNavigate as j}from"react-router-dom";import{useEntityPassRateTrend as q}from"../../../hooks/aggregations/useEntityPassRateTrend.esm.js";import{campaignDetailsRouteRef as A,campaignEditRouteRef as F}from"../../../routes.esm.js";import{convertToReadableDate as p}from"../../CampaignDetailsPage/CampaignDetails.esm.js";import{Loading as Q}from"../../TechHealth/Loading/Loading.esm.js";import{useCampaignBannerStyles as V}from"./useCampaignBannerStyles.esm.js";import{calculateOverallPassPercent as W,calculatePassingEntities as G}from"./utils.esm.js";const H=l=>{if(l?.edges.length){const a=G(l);return e.createElement(t,{variant:"body2"},a,"/",l.edges.length)}return e.createElement(t,{variant:"body2"},"No progress found.")},J=({campaign:l})=>{const a=V(),v=u(A),f=u(F),m=j(),[n,c]=$(null),o=150,g=l.track.levels.flatMap(({checks:s})=>s.map(({id:T})=>T)),{data:N,isLoading:b,isError:y}=q({filter:{tracks:[{trackId:l.track.id}],checkIds:{included:g},numberOfDays:void 0}}),i=N?.individualEntityPassRates??{totalCount:0,edges:[],pageInfo:{hasNextPage:!1,hasPreviousPage:!1}},C=s=>{c(s.currentTarget)},R=()=>{c(null)},h=()=>{m(f({campaignId:l.id}))},x=()=>{m(v({campaignId:l.id}))};if(b)return e.createElement("div",{"data-testid":"loading-indicator"},e.createElement(Q,null));if(y)return e.createElement(t,{color:"error"},"Failed to load campaigns progress.");const k=i.edges.length?W(i):0,w=H(i),{name:P,description:r,ownerEntityRef:D,targetCompletionDate:I,startDate:S,supportChannel:d}=l;return e.createElement("div",{className:a.campaignCards},e.createElement("div",{className:a.campaignCard},e.createElement("div",{className:a.flexRow,style:{justifyContent:"space-between"}},e.createElement("div",{className:a.flexColumn},e.createElement(t,{variant:"h5"},P),e.createElement(t,{variant:"body1",className:a.description},r.length>o?`${r.substring(0,o)}...`:r)),e.createElement("div",null,e.createElement(M,{variant:"text","aria-controls":"menu","aria-haspopup":"true",onClick:C},e.createElement("div",{className:a.actions},e.createElement("div",{className:a.actionsText},"Actions"),e.createElement("div",{className:a.flexRow},n?e.createElement(z,{fontSize:"small"}):e.createElement(O,{fontSize:"small"})))),e.createElement(B,{id:"campaign-menu",anchorEl:n,keepMounted:!0,open:!!n,onClose:R,classes:{list:a.menuList}},e.createElement(E,{onClick:x},"View"),e.createElement(E,{onClick:h},"Edit")))),e.createElement("div",{className:a.detailSection},e.createElement("div",{className:a.flexColumn},e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Owner:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},e.createElement(L,{className:a.ownerLink,entityRef:D}))),d&&e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Support Channel:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},d))),e.createElement("div",{className:a.flexColumn},e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Start Date:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},p(S))),e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Target Completion Date:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},p(I)))),e.createElement("div",{className:a.flexRow,style:{minWidth:"300px"}},e.createElement("div",{className:a.flexColumn},e.createElement(t,{variant:"subtitle1",className:a.label},"Checks Passing"),e.createElement(t,{variant:"body2"},k,"%")),e.createElement("div",{className:a.flexColumn},e.createElement(t,{variant:"subtitle1",className:a.label},"Entities Complete"),w)))))};export{J as CampaignBanner};
|
|
2
|
-
//# sourceMappingURL=CampaignBanner.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{makeStyles as i}from"@material-ui/core";const a=i(e=>({campaignCards:{display:"flex",flexDirection:"column"},campaignCard:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,padding:e.spacing(2),gap:e.spacing(5),borderRadius:e.shape.borderRadius},actions:{display:"flex",alignItems:"center",gap:e.spacing(1)},actionsText:{textTransform:"lowercase","&:first-letter":{textTransform:"uppercase"}},flexRow:{display:"flex",gap:e.spacing(1)},campaignDescription:{textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},progress:{display:"flex",alignItems:"center",gap:e.spacing(1),width:"90%"},flexColumn:{width:"100%",display:"flex",flexDirection:"column",gap:e.spacing(1)},detailSection:{display:"flex",flexDirection:"row",justifyContent:"space-between",gap:e.spacing(.5)},label:{fontWeight:"bold",color:e.palette.text.primary},value:{marginTop:"2px"},description:{maxWidth:"90%"},menuList:{backgroundColor:e.palette.background.paper},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}}));export{a as useCampaignBannerStyles};
|
|
2
|
-
//# sourceMappingURL=useCampaignBannerStyles.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const a=e=>{let s=0;return e?.edges.forEach(({node:t})=>{s+=t.snapshotPassRate}),Math.round(s/(e?.edges.length??1))},n=e=>e?.edges.filter(({node:s})=>s.snapshotPassRate===100).length;export{a as calculateOverallPassPercent,n as calculatePassingEntities};
|
|
2
|
-
//# sourceMappingURL=utils.esm.js.map
|