@spotify/backstage-plugin-soundcheck 0.22.1 → 0.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/alpha/apis.esm.js +1 -1
- package/dist/alpha/plugin.esm.js +1 -1
- package/dist/alpha.d.ts +1 -10
- package/dist/api.esm.js +1 -1
- package/dist/components/Badges/StatusBadge.esm.js +1 -1
- package/dist/components/CertificationSidebar/Check.esm.js +1 -1
- package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
- package/dist/components/CheckDetails/CheckPullRequest.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRun.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfWorkItemsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/QueryFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpRequestComponent.esm.js +1 -1
- package/dist/components/FixWithAiKAButton/FixWithAiKAButton.esm.js +1 -1
- package/dist/hooks/fixMe/useFixMe.esm.js +1 -1
- package/dist/hooks/fixWithAika/useFixWithAika.esm.js +1 -1
- package/dist/hooks/remedy/useRemediesForCheck.esm.js +1 -1
- package/dist/hooks/remedy/useRemediesForEntity.esm.js +1 -1
- package/dist/hooks/remedy/useRemedyTrackerApi.esm.js +2 -0
- package/dist/index.d.ts +2 -12
- package/dist/index.esm.js +1 -1
- package/dist/plugin.esm.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @spotify/backstage-plugin-soundcheck
|
|
2
2
|
|
|
3
|
+
## 0.22.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated `RemedyTrackerApi` API blueprint: added `runAction` method.
|
|
8
|
+
- Deleted No-op implementation of RemedyTrackerApi
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
- @spotify/backstage-plugin-soundcheck-common@0.21.2
|
|
11
|
+
|
|
3
12
|
## 0.22.1
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/alpha/apis.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ApiBlueprint as
|
|
1
|
+
import{ApiBlueprint as i,discoveryApiRef as c,fetchApiRef as o}from"@backstage/frontend-plugin-api";import{soundcheckApiRef as r,SoundcheckApi as f}from"../api.esm.js";const t=i.make({params:e=>e({api:r,deps:{discoveryApi:c,fetchApi:o},factory:p=>new f(p)})});export{t as soundcheckApi};
|
|
2
2
|
//# sourceMappingURL=apis.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
|
|
1
|
+
import{createFrontendPlugin as t}from"@backstage/frontend-plugin-api";import{soundcheckApi as n}from"./apis.esm.js";import{entitySoundcheckContent as e,entitySoundcheckCard as o,groupSoundcheckContent as r}from"./entity-content.esm.js";import{azureIntegration as i,bigqueryIntegration as a,catalogIntegration as g,datadogIntegration as c,dataRegistryIntegration as u,githubIntegration as d,gitlabIntegration as I,httpIntegration as m,jiraIntegration as p,kubernetesIntegration as s,newrelicIntegration as h,pagerdutyIntegration as k,scmIntegration as f,sonarqubeIntegration as l}from"./integrations.esm.js";import{soundcheckRoutingPage as b,soundcheckOverviewPage as y}from"./pages.esm.js";import{soundcheckSidebarItem as S}from"./sidebar-item.esm.js";var v=t({pluginId:"soundcheck",extensions:[b,y,n,e,o,r,S,i,a,g,c,u,d,I,m,p,s,h,k,f,l]});export{v as default};
|
|
2
2
|
//# sourceMappingURL=plugin.esm.js.map
|
package/dist/alpha.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as react from 'react';
|
|
2
1
|
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
2
|
+
import * as react from 'react';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @public
|
|
@@ -7,15 +7,6 @@ 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
|
-
}>;
|
|
19
10
|
"integration:soundcheck/azure": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
20
11
|
kind: "integration";
|
|
21
12
|
name: "azure";
|
package/dist/api.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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};
|
|
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=i=>"response"in i&&"errors"in i.response,p=i=>"response"in i&&"message"in i.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 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 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}),r=Uint8Array.from(atob(s.hierarchy),h=>h.charCodeAt(0)),n=y.inflate(r),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"});export{d as SoundcheckApi,w as remedyTrackerApiRef,g as soundcheckApiRef};
|
|
2
2
|
//# sourceMappingURL=api.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,Fragment as C,jsxs as d}from"react/jsx-runtime";import{makeStyles as b,useTheme as y,Box as v,Tooltip as z}from"@material-ui/core";import
|
|
1
|
+
import{jsx as e,Fragment as C,jsxs as d}from"react/jsx-runtime";import{makeStyles as b,useTheme as y,Box as v,Tooltip as z}from"@material-ui/core";import $ from"@material-ui/icons/Check";import x from"@material-ui/icons/Close";import N from"@material-ui/icons/HelpOutline";import W from"@material-ui/icons/PriorityHigh";import w from"classnames";import{CircularProgressbarWithChildren as p,buildStyles as c}from"react-circular-progressbar";import"react-circular-progressbar/dist/styles.css";const f=24,L=15,h=s=>s==="small"?1:2,S=b(s=>({root:{position:"relative",display:"inline-block",alignItems:"center",justifyContent:"center",cursor:"default",lineHeight:0,width:({size:t})=>`${f*h(t)}px`,height:({size:t})=>`${f*h(t)}px`},icon:{color:s.palette.background.default,fontSize:({size:t})=>L*h(t)}})),j=({className:s,status:t,size:g="small",hideTooltip:k})=>{const l=S({size:g}),n=y();if(!t)return e(C,{});const o=t.passed+t.failed+t.warning+t.error+t.notReported,r=o?t.passed/o*100:0,a=o?t.warning/o*100:0,i=o?(t.failed+t.error)/o*100:0,m=100-r-a-i,u=e(v,{className:w(s,l.root),role:"img","aria-label":`${r} badge`,children:d(p,{value:r,strokeWidth:r<100?15:50,styles:c({pathColor:n.palette.success.main,trailColor:"transparent",strokeLinecap:"butt",rotation:0}),children:[r===100&&e($,{className:l.icon}),r<100&&d(p,{value:a,strokeWidth:a<100?15:50,styles:c({pathColor:n.palette.warning.main,trailColor:"transparent",strokeLinecap:"butt",rotation:r/100}),children:[a===100&&e(W,{className:l.icon}),a<100&&d(p,{value:i,strokeWidth:i<100?15:50,styles:c({pathColor:n.palette.error.main,trailColor:"transparent",strokeLinecap:"butt",rotation:(r+a)/100}),children:[i===100&&e(x,{className:l.icon}),i<100&&e(p,{value:m,strokeWidth:m<100?15:50,styles:c({pathColor:n.palette.divider,trailColor:"transparent",strokeLinecap:"butt",rotation:(r+a+i)/100}),children:m===100&&e(N,{className:l.icon})})]})]})]})});return k?u:e(z,{title:`${t.passed}/${o} checks passed (${Math.round(r)}%)`,children:u})};export{j as StatusBadge};
|
|
2
2
|
//# sourceMappingURL=StatusBadge.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as u}from"react/jsx-runtime";import{stringifyEntityRef as A}from"@backstage/catalog-model";import{useEntity as E}from"@backstage/plugin-catalog-react";import{Flex as $}from"@backstage/ui";import{makeStyles as
|
|
1
|
+
import{jsx as e,jsxs as u}from"react/jsx-runtime";import{stringifyEntityRef as A}from"@backstage/catalog-model";import{useEntity as E}from"@backstage/plugin-catalog-react";import{Flex as $}from"@backstage/ui";import{makeStyles as w,Box as l,Typography as B,Tooltip as F,IconButton as S,CircularProgress as T}from"@material-ui/core";import W from"@material-ui/icons/Refresh";import z from"classnames";import{Link as j}from"react-router-dom";import{ResultState as f}from"../../graphql/generated/index.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import{useCheck as G}from"../../hooks/checks/useCheck.esm.js";import"react";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetExemption as L}from"../../hooks/exemptions/useGetExemption.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import{useExecuteCheck as q}from"../../hooks/checks/useExecuteCheck.esm.js";import{useFixWithAika as K}from"../../hooks/fixWithAika/useFixWithAika.esm.js";import{CheckIcon as P}from"../CheckIcon/CheckIcon.esm.js";import{FixWithAiKAButton as _}from"../FixWithAiKAButton/FixWithAiKAButton.esm.js";import{RelativeTime as D}from"../RelativeTime/RelativeTime.esm.js";const k=w(t=>({root:{display:"flex",width:"100%",gridTemplateColumns:"auto 1fr auto auto auto auto",gridColumnGap:t.spacing(.5),padding:t.spacing(1),alignItems:"center","&.selected":{backgroundColor:t.palette.action.hover},"&:hover, &:active, &:focus":{backgroundColor:t.palette.action.hover}},checkIcon:{height:20}})),H=({className:t,href:r,name:i,children:c})=>r?e(j,{"aria-label":`select check ${i}`,to:r,className:t,children:c}):e("div",{className:t,children:c}),J=({result:t,name:r,id:i,timestamp:c,isExecutable:s=!0,selected:y=!1,href:x})=>{const h=k(),g=z(h.root,{selected:y}),{data:p}=G(i),{entity:n}=E(),m=A(n),{mutateAsync:b,isLoading:a}=q(),{data:d}=L(m,i),C=async()=>{if(!(!n||!i))try{await b({checkerId:i,entityRef:m,shouldRefreshFacts:!0})}catch{}},I=!n||!i||!s||a||!!d?.exemption||t===f.NotApplicable,R=()=>{const o="Cannot execute check";return n?i?s?a?`${o} - check is already executing.`:d?.exemption?`${o} - entity has been exempted from this check.`:t===f.NotApplicable?`${o} - check is not applicable to entity.`:"Execute Check":`${o} - check is not executable by Soundcheck`:`${o} - no check id.`:`${o} - no entity.`},{showAikaButton:N,pullRequest:v}=K({result:t,type:p?.type,rule:p?.rule});return e(H,{href:x,className:g,name:r,children:u(l,{display:"flex",alignItems:"center",width:"100%",children:[e(P,{className:h.checkIcon,result:t}),e(l,{ml:1,flex:1,minWidth:0,children:e(B,{variant:"body2",noWrap:!0,children:r})}),u($,{align:"center",gap:"2",children:[c&&!a?e(l,{children:e(D,{timestamp:c,showIcon:!1})}):null,!a&&e(l,{children:e(F,{title:R(),children:e("span",{children:e(S,{size:"small",color:"inherit",onClick:C,disabled:I,"aria-label":"Execute Check",children:e(W,{fontSize:"small"})})})})}),a&&e(l,{children:e(T,{color:"inherit",size:"1em"})}),N&&!v&&e(_,{checkReference:{entityRef:m,checkId:i,checkName:r}})]})]})})};export{J as Check,k as useStyles};
|
|
2
2
|
//# sourceMappingURL=Check.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t,jsxs as o,Fragment as
|
|
1
|
+
import{jsx as t,jsxs as o,Fragment as O}from"react/jsx-runtime";import{stringifyEntityRef as R}from"@backstage/catalog-model";import{useEntity as W}from"@backstage/plugin-catalog-react";import{makeStyles as $,Box as l,Typography as c,Button as x,Tooltip as q}from"@material-ui/core";import{Alert as v}from"@material-ui/lab";import{useState as b}from"react";import{CheckerType as U,ResultState as d}from"../../graphql/generated/index.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import{useCheck as G}from"../../hooks/checks/useCheck.esm.js";import{useCheckDetails as J}from"../../hooks/checks/useCheckDetails.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetExemption as V}from"../../hooks/exemptions/useGetExemption.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import{useSetManualResult as _}from"../../hooks/checks/useSetManualResult.esm.js";import{useFixWithAika as H}from"../../hooks/fixWithAika/useFixWithAika.esm.js";import{AlertPanel as K}from"../AlertPanel/AlertPanel.esm.js";import{CheckResultInputPopup as Q}from"../CertificationSidebar/CheckResultInputPopup.esm.js";import{ExemptionJustificationDialog as X}from"../CertificationSidebar/ExemptionJustificationDialog.esm.js";import{RelativeTime as Y}from"../RelativeTime/RelativeTime.esm.js";import{SoundcheckMarkdownContentDeprecated as Z}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js";import"@backstage/core-components";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js";import{CheckPullRequest as tt}from"./CheckPullRequest.esm.js";import{ResultStateBox as et}from"./ResultStateBox.esm.js";import{CheckDetailsSkeleton as it}from"./skeletons/CheckDetailsSkeleton.esm.js";const h=$(e=>({root:{padding:`${e.spacing(3)}px ${e.spacing(5)}px`},title:{fontWeight:"normal",fontSize:e.typography.h5.fontSize},description:{padding:`${e.spacing(3)}px 0`},subtitle:{fontWeight:"normal",fontSize:e.typography.h6.fontSize},topBar:{display:"flex",justifyContent:"space-between",marginBottom:e.spacing(2)},exemptButton:{marginLeft:e.spacing(1)},exemptAlert:{marginBottom:e.spacing(2)}})),E=({setPopupDisplayed:e})=>{const i=h();return t(x,{className:i.exemptButton,size:"small",onClick:()=>e(!0),"aria-label":"Set Check Status Button",children:"Set Check Status"})},B=({isExempt:e,setPopupDisplayed:i})=>{const r=h();return t(q,{title:e?"Remove Exemption":"Set Exempt From Check",children:t(x,{className:r.exemptButton,size:"small",color:"inherit",onClick:()=>i(!0),"aria-label":"Exempt From Check",children:e?"Remove Exemption":"Add Exemption"})})},rt=({trackId:e,checkId:i})=>{const r=h(),{entity:m}=W(),{data:u,isLoading:N,isError:w}=J(m,e,i),[D,y]=b(!1),[A,f]=b(!1),k=R(m),{data:a,isLoading:T}=V(k,i??""),{data:n}=G(i),{showAikaButton:I,pullRequest:s}=H({result:u?.result,type:n?.type,rule:n?.rule,entityRef:k,checkId:n?.id}),{mutateAsync:z}=_();if(w)return t(l,{padding:2,children:t(K,{severity:"error",title:"Error loading check details"})});if(N||!e||!i)return t(it,{});if(!u)return null;const g=n?.type===U.Manual,{name:S,description:P,result:p,timestamp:C,details:j}=u,F=async(L,M)=>{!m||!i||await z({checkId:i,entityRef:k,justification:M,state:L})};return o("div",{className:r.root,"data-testid":"check-details-view",children:[o("div",{className:r.topBar,children:[t(c,{variant:"h2",className:r.title,children:S}),o(l,{display:"flex",alignItems:"center",children:[C?t(Y,{timestamp:C,description:"Last updated"}):null,g&&!a?.exemption&&p!==d.NotReported&&t(E,{setPopupDisplayed:f}),!T&&p!==d.NotApplicable&&t(B,{isExempt:!!a?.exemption,setPopupDisplayed:y})]})]}),t(X,{entityRef:R(m),checkId:i,isOpen:D,setIsOpen:y}),t(Q,{isOpen:A,setIsOpen:f,setCallback:F}),!a?.exemption&&p===d.Exempt&&t(v,{className:r.exemptAlert,severity:"warning",variant:"outlined",children:"This check's exemption for this entity was recently removed. The recent exemption state will clear once the check has been run."}),!!a?.exemption&&t(l,{marginBottom:2,children:t(v,{className:r.exemptAlert,severity:"warning",variant:"outlined",children:"This entity has been exempted from this check."})}),g&&!a?.exemption&&p===d.NotReported?o(l,{children:[t(c,{children:"This check is manual and must have its state set by a user."}),t(l,{marginTop:1,children:t(x,{variant:"contained",color:"primary",onClick:()=>f(!0),"aria-label":"Set Check Status",size:"small",children:"Set Check Status"})})]}):o(O,{children:[t(c,{className:r.subtitle,children:"Most Recent Result:"}),t(et,{name:S,state:p,details:j,templateRef:n?.templateRef??void 0}),I&&s&&t(tt,{title:s.label,branch:s.provider,onView:()=>s.prUrl&&window.open(s.prUrl,"_blank")})]}),o("div",{className:r.description,"data-testid":"soundcheck-check-details-description",children:[t(c,{variant:"h3",className:r.subtitle,children:"Description"}),t(Z,{content:P})]})]})};export{rt as CheckDetails,B as ExemptDialogButton,E as SetCheckStatusButton,h as useStyles};
|
|
2
2
|
//# sourceMappingURL=CheckDetails.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as c,jsx as e}from"react/jsx-runtime";import{Flex as n,Card as d,CardBody as
|
|
1
|
+
import{jsxs as c,jsx as e}from"react/jsx-runtime";import{Flex as n,Card as d,CardBody as h,Text as l,Box as r,Button as u}from"@backstage/ui";import{makeStyles as m}from"@material-ui/core";import{RiCornerDownRightFill as b,RiTriangleLine as g}from"@remixicon/react";const o=m(()=>({arrowIcon:{color:"var(--bui-fg-disabled)"},card:{borderLeft:"var(--bui-space-1) solid var(--bui-fg-success)"},statusIcon:{color:"var(--bui-fg-success)"},button:{background:"var(--bui-fg-success)"}})),f=({title:s,branch:t,onView:a})=>{const i=o();return c(n,{gap:"4",mt:"4",children:[e(b,{size:32,className:i.arrowIcon}),e(d,{className:i.card,children:e(h,{children:c(n,{gap:"4",direction:"column",align:"start",children:[c(n,{align:"center",gap:"2",children:[e(g,{className:i.statusIcon}),e(l,{weight:"bold",children:"Pull Request created by Fleetshift"})]}),c(r,{children:[e(r,{children:e(l,{color:"secondary",children:"Title"})}),e(r,{children:e(l,{children:s})})]}),c(r,{children:[e(r,{children:e(l,{color:"secondary",children:"Branch"})}),e(r,{children:e(l,{children:t})})]}),e(u,{className:i.button,onClick:a,children:"View Pull Request"})]})})})]})};export{f as CheckPullRequest,o as useStyles};
|
|
2
2
|
//# sourceMappingURL=CheckPullRequest.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as m,jsx as e,Fragment as D}from"react/jsx-runtime";import{makeStyles as
|
|
1
|
+
import{jsxs as m,jsx as e,Fragment as D}from"react/jsx-runtime";import{makeStyles as w,Tooltip as z,Box as n,IconButton as B,CircularProgress as F}from"@material-ui/core";import I from"@material-ui/icons/Refresh";import{useState as r,useCallback as S}from"react";import{useExecuteCheck as j}from"../../hooks/checks/useExecuteCheck.esm.js";import{CheckIcon as v}from"../CheckIcon/CheckIcon.esm.js";import"../SoundcheckDialog/SoundcheckDialog.esm.js";import{CheckDryRunDialogButton as A}from"./CheckDryRunDialogButton.esm.js";import"./CheckDryRunDetails.esm.js";import"./CheckDryRunContext.esm.js";import"../CheckForm/utils/checkFormUtils.esm.js";const E=w(()=>({root:{display:"flex",alignItems:"center"},buttonWrapper:{height:24}})),N=({entityRef:s,check:l,refreshFact:c=!1})=>{const{mutateAsync:o}=j(),[i,f]=r(),[p,d]=r(null),[a,u]=r(!1),[y,R]=r(),[k,b]=r(),[g,x]=r(),h=E(),C=S(async()=>{if(a)return;u(!0);const t=await o({entityRef:s,checker:l,dryRun:!0,shouldRefreshFacts:c}).catch(W=>{});t?.details&&d(t.details),t?.facts&&R(t.facts),t?.ruleResults&&b(t.ruleResults),t?.applicabilityResults&&x(t.applicabilityResults),f(t?.result),u(!1)},[l,s,o,a,c]);return m("div",{className:h.root,children:[i&&e("span",{className:h.buttonWrapper,"aria-label":"check result",children:e(v,{result:i})}),e(z,{arrow:!0,placement:"top",title:e(n,{children:a?m(D,{children:[e(n,{children:"Executing dry run..."}),e(n,{children:c?"Refreshing facts for dry run can take a significant amount of time.":"Dry run can take additional time if facts are not cached."})]}):`Dry runs will ${c?"refresh facts":"use cached facts if available"}.`}),children:e("span",{children:e(B,{size:"small",color:"inherit",onClick:C,disabled:a,"aria-label":"refresh",children:a?e(F,{size:16}):e(I,{fontSize:"small"})})})}),i&&e(A,{entityRef:s,check:l,checkResult:{checkResult:i,details:p},facts:y,ruleResults:k,applicabilityResults:g})]})};export{N as CheckDryRun};
|
|
2
2
|
//# sourceMappingURL=CheckDryRun.esm.js.map
|
package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfWorkItemsComponent.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as a,jsx as e,Fragment as y}from"react/jsx-runtime";import{makeStyles as I,Box as T,Grid as n,Typography as d,TextField as h,FormHelperText as
|
|
1
|
+
import{jsxs as a,jsx as e,Fragment as y}from"react/jsx-runtime";import{makeStyles as I,Box as T,Grid as n,Typography as d,TextField as h,FormHelperText as v,IconButton as x}from"@material-ui/core";import C from"@material-ui/icons/Add";import N from"@material-ui/icons/Remove";import q from"classnames";import{highlight as F,languages as L}from"prismjs";import"prismjs/components/prism-sql";import{useFormContext as S,useFieldArray as k,Controller as c}from"react-hook-form";import w from"react-simple-code-editor";import{FormFieldLabel as $}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import*as E from"../Common/css/prism-dark-sql.css.esm.js";import{numberOfWorkItemsDataConfig as H}from"./utils.esm.js";const W=I(r=>({...E,root:{paddingTop:r.spacing(1)},factNameInput:{marginTop:0,width:"450px"},labelInput:{marginTop:0,width:"255px"},labelInputArea:{height:"40px"},queryInput:{marginTop:0,width:"420px",minHeight:"40px",maxHeight:"300px",overflowY:"scroll",outline:`1px solid ${r.palette.action.disabled}`,borderRadius:"4px",display:"grid","&:hover":{outlineColor:r.palette.textContrast}},queryInputError:{outlineColor:r.palette.error.main,"&:hover":{outlineColor:r.palette.error.main}},queryTextarea:{outline:"none"},helperText:{marginLeft:0},caption:{margin:r.spacing(2,0)}})),z=({name:r,disabled:l})=>{const t=W(),{control:m}=S(),{fields:u,insert:g,remove:f}=k({control:m,name:`${r}.data`});return a(T,{className:t.root,children:[e(c,{name:`${r}.factName`,control:m,render:({field:p,fieldState:{error:i}})=>a(n,{item:!0,children:[e(d,{variant:"subtitle2",children:"Fact Name"}),e(h,{...p,type:"text",variant:"outlined",margin:"dense",placeholder:"Fact Name",className:t.factNameInput,disabled:l,error:!!i,helperText:i?.message??"Fact name must be unique",FormHelperTextProps:{className:t.helperText}})]})}),a("div",{className:t.caption,children:[e(d,{variant:"subtitle1",children:"Queries"}),e(d,{variant:"caption",children:"List the WIQL syntax queries to filter work items by"})]}),e(n,{container:!0,spacing:0,direction:"column",children:u.map((p,i)=>a(n,{item:!0,container:!0,spacing:2,children:[a(n,{item:!0,children:[e(d,{variant:"subtitle2",children:"Label"}),e(c,{name:`${r}.data.${i}.name`,control:m,render:({field:s,fieldState:{error:o}})=>e(h,{...s,type:"text",variant:"outlined",margin:"dense",placeholder:"Label",className:t.labelInput,disabled:l,error:!!o,helperText:o?.message??" ",InputProps:{className:t.labelInputArea},FormHelperTextProps:{className:t.helperText}})})]}),a(n,{item:!0,children:[e($,{title:"WIQL Query",docLink:"https://learn.microsoft.com/en-us/azure/devops/boards/queries/wiql-syntax?view=azure-devops"}),e(c,{name:`${r}.data.${i}.query`,control:m,render:({field:s,fieldState:{error:o}})=>a(y,{children:[e("div",{className:q(t.queryInput,o?t.queryInputError:void 0),children:e(w,{...s,highlight:b=>F(b,L.sql,"sql"),onValueChange:s.onChange,padding:10,disabled:l,placeholder:"Example: SELECT [System.Id] FROM WorkItem",textareaClassName:t.queryTextarea})}),e(v,{className:t.helperText,error:!!o,children:o?.message??" "})]})})]}),a(n,{item:!0,alignContent:"center",children:[e(x,{onClick:()=>f(i),disabled:l||u.length===1,children:e(N,{fontSize:"small"})}),e(x,{onClick:()=>g(i+1,H()),disabled:l,children:e(C,{fontSize:"small"})})]})]},p.id))})]})};export{z as NumberOfWorkItemsComponent};
|
|
2
2
|
//# sourceMappingURL=NumberOfWorkItemsComponent.esm.js.map
|
package/dist/components/CollectorPage/Configurators/BigQuery/QueryFactDetailsComponent.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as a,jsx as e,Fragment as T}from"react/jsx-runtime";import{makeStyles as b,Box as C,Grid as n,Typography as m,TextField as h,FormHelperText as N,Tooltip as v,IconButton as g}from"@material-ui/core";import
|
|
1
|
+
import{jsxs as a,jsx as e,Fragment as T}from"react/jsx-runtime";import{makeStyles as b,Box as C,Grid as n,Typography as m,TextField as h,FormHelperText as N,Tooltip as v,IconButton as g}from"@material-ui/core";import F from"@material-ui/icons/Add";import S from"@material-ui/icons/Remove";import I from"classnames";import{highlight as q,languages as E}from"prismjs";import"prismjs/components/prism-sql";import{useFormContext as $,useFieldArray as D,Controller as p}from"react-hook-form";import L from"react-simple-code-editor";import{FormControlledSelect as x}from"../../../FormControlledSelect/FormControlledSelect.esm.js";import{FormFieldLabel as _}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import*as k from"../Common/css/prism-dark-sql.css.esm.js";import{DATA_TYPES as H,FOREIGN_KEY_OPTIONS as P,DEFAULT_SCHEMA_ITEM as j}from"./utils.esm.js";const w=b(t=>({...k,root:{paddingTop:t.spacing(1)},textInput:{marginTop:0,width:"580px"},queryCaption:{width:"580px",display:"block"},queryInput:{marginTop:0,width:"580px",minHeight:"100px",maxHeight:"300px",overflowY:"scroll",outline:`1px solid ${t.palette.action.disabled}`,borderRadius:"6px",display:"grid","&:hover":{outlineColor:t.palette.textContrast}},queryInputError:{outlineColor:t.palette.error.main,"&:hover":{outlineColor:t.palette.error.main}},queryTextarea:{outline:"none"},caption:{margin:t.spacing(2,0)},nameInput:{marginTop:0,display:"inline"},selectInput:{marginTop:0,width:"150px"},helperText:{marginLeft:0}})),O=({name:t,disabled:o})=>{const i=w(),{control:l}=$(),{fields:u,insert:y,remove:f}=D({control:l,name:`${t}.schema`});return a(C,{children:[a(n,{container:!0,spacing:1,direction:"column",className:i.root,children:[a(n,{item:!0,children:[e(m,{variant:"subtitle2",children:"Fact Name"}),e(p,{name:`${t}.factName`,control:l,render:({field:d,fieldState:{error:r}})=>e(h,{...d,type:"text",variant:"outlined",margin:"dense",placeholder:"Fact Name",className:i.textInput,disabled:o,error:!!r,helperText:r?.message??"Fact name must be unique",FormHelperTextProps:{className:i.helperText}})})]}),a(n,{item:!0,children:[e(m,{variant:"subtitle2",children:"GCP Project ID (Optional)"}),e(p,{name:`${t}.projectId`,control:l,render:({field:d,fieldState:{error:r}})=>e(h,{...d,type:"text",variant:"outlined",margin:"dense",placeholder:"Project ID",className:i.textInput,disabled:o,error:!!r,helperText:r?.message??"Google Cloud project ID",FormHelperTextProps:{className:i.helperText}})})]}),a(n,{item:!0,children:[e(_,{title:"SQL Query (GoogleSQL)",docLink:"https://cloud.google.com/bigquery/docs/introduction-sql"}),e(m,{variant:"caption",className:i.queryCaption,children:"The query can be parameterized, supported named parameters are @entity_refs and @entity_names (the values will be resolved automatically)"}),e(p,{name:`${t}.query`,control:l,render:({field:d,fieldState:{error:r}})=>a(T,{children:[e("div",{className:I(i.queryInput,r?i.queryInputError:void 0),children:e(L,{...d,highlight:s=>q(s,E.sql,"sql"),onValueChange:d.onChange,padding:10,disabled:o,placeholder:"Example: SELECT * FROM [bigquery-data:catalog.entities] WHERE entity_ref IN UNNEST(@entity_refs)",textareaClassName:i.queryTextarea})}),e(N,{className:i.helperText,error:!!r,children:r?.message??"Consider updating the collector's batch size to schedule the query for multiple entities at once"})]})})]})]}),a("div",{className:i.caption,children:[e(m,{variant:"subtitle1",children:"Output Schema"}),e(m,{variant:"caption",children:"List the columns returned by the query"})]}),e(n,{container:!0,spacing:0,direction:"column",children:u.map((d,r)=>a(n,{item:!0,container:!0,alignItems:"center",spacing:2,children:[a(n,{item:!0,children:[e(m,{variant:"subtitle2",children:"Column Name"}),e(p,{name:`${t}.schema.${r}.name`,control:l,render:({field:s,fieldState:{error:c}})=>e(h,{...s,type:"text",variant:"outlined",margin:"dense",placeholder:"Column Name",className:i.nameInput,disabled:o,error:!!c,helperText:c?.message??" ",FormHelperTextProps:{className:i.helperText}})})]}),a(n,{item:!0,children:[e(m,{variant:"subtitle2",children:"Data Type"}),e(p,{name:`${t}.schema.${r}.type`,control:l,render:({field:s,fieldState:{error:c}})=>e(x,{...s,control:l,placeholder:"Data Type",options:H,disabled:o,helperText:c?.message??" "})})]}),a(n,{item:!0,children:[e(v,{placement:"top",title:"Select a value if the column is a foreign key that references a catalog entity field",children:e(m,{variant:"subtitle2",children:"Foreign Key"})}),e(p,{name:`${t}.schema.${r}.foreignKey`,control:l,render:({field:s,fieldState:{error:c}})=>e(x,{...s,control:l,placeholder:"Foreign Key",options:P,disabled:o,helperText:c?.message??" "})})]}),a(n,{item:!0,children:[e(g,{onClick:()=>f(r),disabled:o||u.length===1,children:e(S,{fontSize:"small"})}),e(g,{onClick:()=>y(r+1,j),disabled:o,children:e(F,{fontSize:"small"})})]})]},d.id))})]})};export{O as QueryFactDetailsComponent};
|
|
2
2
|
//# sourceMappingURL=QueryFactDetailsComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{Grid as l,TextField as h,MenuItem as T,FormHelperText as y,Typography as k,IconButton as g}from"@material-ui/core";import q from"@material-ui/icons/Add";import
|
|
1
|
+
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{Grid as l,TextField as h,MenuItem as T,FormHelperText as y,Typography as k,IconButton as g}from"@material-ui/core";import q from"@material-ui/icons/Add";import b from"@material-ui/icons/Remove";import N from"classnames";import{highlight as H,languages as I}from"prismjs";import"prismjs/components/prism-json";import{useFormContext as v,useFieldArray as S,Controller as c}from"react-hook-form";import F from"react-simple-code-editor";import{FormFieldLabel as p}from"../../../FormFieldLabel/FormFieldLabel.esm.js";import{useStyles as P}from"./RequestFactDetailsComponent.esm.js";import{HTTP_METHOD_OPTIONS as C,defaultNewHeaderConfig as R}from"./utils.esm.js";const $=({name:s,disabled:n})=>{const r=P(),{control:d}=v(),{fields:u,insert:f,remove:x}=S({control:d,name:`${s}.headers`});return a(l,{container:!0,spacing:1,direction:"column",className:r.root,children:[a(l,{item:!0,children:[e(p,{title:"Target Plugin ID (Optional)",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/http#request-required"}),e(c,{name:`${s}.targetPluginId`,control:d,render:({field:o,fieldState:{error:t}})=>e(h,{...o,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Example: soundcheck",className:r.textInput,disabled:n,error:!!t,helperText:t?.message??"Specify if calling a plugin's API to use {{targetPluginBaseUrl}} and {{targetPluginAuthToken}} template tags",FormHelperTextProps:{className:r.helperText}})})]}),a(l,{item:!0,children:[e(p,{title:"Request URL",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/http#request-required"}),a(l,{container:!0,spacing:1,direction:"row",children:[e(l,{item:!0,xs:2,children:e(c,{name:`${s}.method`,control:d,render:({field:o,fieldState:{error:t}})=>e(h,{...o,fullWidth:!0,select:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Method",className:r.textInput,disabled:n,error:!!t,helperText:t?.message??"Method",FormHelperTextProps:{className:r.helperText},children:C.map(i=>e(T,{value:i,children:i},i))})})}),e(l,{item:!0,xs:10,children:e(c,{name:`${s}.url`,control:d,render:({field:o,fieldState:{error:t}})=>e(h,{...o,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Example: https://api.example.com/{{entity.metadata.name}}/get",className:r.textInput,disabled:n,error:!!t,helperText:t?.message??"Request URL can use liquid template language",FormHelperTextProps:{className:r.helperText}})})})]})]}),a(l,{item:!0,children:[e(p,{title:"Request Body (Optional)",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/http#request-required"}),e(c,{name:`${s}.body`,control:d,render:({field:o,fieldState:{error:t}})=>a("div",{children:[e("div",{className:N(r.jsonInput,t?r.jsonInputError:void 0),children:e(F,{...o,highlight:i=>H(i??"",I.json,"json"),onValueChange:o.onChange,padding:10,disabled:n,placeholder:"Request Body",textareaClassName:r.jsonTextarea})}),e(y,{className:r.helperText,error:!!t,children:t?.message??"Request body can use liquid template language"})]})})]}),e(l,{item:!0,children:a(l,{container:!0,spacing:0,direction:"column",children:[e(p,{title:"Request Headers (Optional)",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/http#request-required"}),e(k,{color:"textSecondary",variant:"caption",children:"Header keys and values can use liquid template language"}),u.map((o,t)=>a(l,{item:!0,container:!0,alignItems:"center",spacing:2,children:[a(l,{item:!0,xs:5,children:[e(p,{title:"Key"}),e(c,{name:`${s}.headers.${t}.key`,control:d,render:({field:i,fieldState:{error:m}})=>e(h,{...i,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Header Key",className:r.textInput,disabled:n,error:!!m,helperText:m?.message??" ",FormHelperTextProps:{className:r.helperText}})})]}),a(l,{item:!0,xs:5,children:[e(p,{title:"Value"}),e(c,{name:`${s}.headers.${t}.value`,control:d,render:({field:i,fieldState:{error:m}})=>e(h,{...i,fullWidth:!0,type:"text",variant:"outlined",margin:"dense",placeholder:"Header Value",className:r.textInput,disabled:n,error:!!m,helperText:m?.message??" ",FormHelperTextProps:{className:r.helperText}})})]}),a(l,{item:!0,xs:2,children:[e(g,{onClick:()=>x(t),disabled:n||u.length===1,children:e(b,{fontSize:"small"})}),e(g,{onClick:()=>f(t+1,R()),disabled:n,children:e(q,{fontSize:"small"})})]})]},o.id))]})})]})};export{$ as HttpRequestComponent};
|
|
2
2
|
//# sourceMappingURL=HttpRequestComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as e,jsxs as n}from"react/jsx-runtime";import{Button as o,Flex as c,Text as a}from"@backstage/ui";import{RiSparkling2Line as l}from"@remixicon/react";import{useRemedyTrackerApi as m}from"../../hooks/remedy/useRemedyTrackerApi.esm.js";const p=({checkReference:i})=>{const r=m();return e(o,{variant:"secondary",onClick:t=>{t.preventDefault(),r.runAction(i)},children:n(c,{align:"center",gap:"2",children:[e(a,{weight:"bold",children:"Fix with Aika"})," ",e(l,{})]})})};export{p as FixWithAiKAButton};
|
|
2
2
|
//# sourceMappingURL=FixWithAiKAButton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{REMEDY_STATUS as
|
|
1
|
+
import{REMEDY_STATUS as n}from"@spotify/backstage-plugin-soundcheck-common";import{CheckerType as C}from"../../graphql/generated/index.esm.js";import{useRemediesForCheck as q}from"../remedy/useRemediesForCheck.esm.js";import"react-use/lib/useAsync";import"@backstage/core-plugin-api";import"../../api.esm.js";import{useFeatureFlag as p}from"../useFeatureFlag.esm.js";const F=e=>(e?.failed??0)>0;function S({isPortal:e,isPortalAiFm:i,type:l,rule:s,checkStatus:f}){const a=l===C.Manual,r=!!s&&!a;return e&&i&&F(f)&&r}const R=e=>{if(!e)return;const i="Fleetshift: ";if(e.startsWith(i))return e.slice(i.length).trim()||void 0;const l=e.match(/^Fleetshift shift \((.*)\)$/);if(l){const s=l[1]?.trim();return!s||s==="unknown"?void 0:s}},x=({type:e,rule:i,checkStatus:l,checkId:s})=>{const f=p("portal"),a=p("portal-ai-fm"),{value:r}=q(s),h=(r?.length??0)>0,g=r?.some(({status:t})=>t===n.IN_PROGRESS)??!1,o=r?.filter(({prUrl:t})=>t),d=o?.length,k=o?.filter(({status:t})=>t===n.RESOLVED).length,P=o?.filter(({status:t})=>t===n.FAILED).length,E=o?.filter(({status:t})=>t===n.IN_PROGRESS).length,c=S({isPortal:f,isPortalAiFm:a,type:e,rule:i,checkStatus:l,hasShift:h});let u;if(c){const t=r?.[0]?.label,m=R(t);h?m?u=`/fleetshift/shifts/${m}`:u="/fleetshift/shifts":u=`/fleetshift/new?source=${s}`}return{showFixMeButton:c,hasShift:h,isRunning:g,href:u,pullRequests:o,pullRequestsCount:d,mergedPullRequestsCount:k,failedPullRequestsCount:P,openPullRequestsCount:E}};export{R as extractShiftNameFromLabel,F as isCheckFailed,S as isFixMeEligible,x as useFixMe};
|
|
2
2
|
//# sourceMappingURL=useFixMe.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ResultState as
|
|
1
|
+
import{REMEDY_STATUS as R}from"@spotify/backstage-plugin-soundcheck-common";import{ResultState as h,CheckerType as k}from"../../graphql/generated/index.esm.js";import{useFeatureFlag as e}from"../useFeatureFlag.esm.js";import"react-use/lib/useAsync";import"@backstage/core-plugin-api";import"../../api.esm.js";import{useRemediesForEntity as y}from"../remedy/useRemediesForEntity.esm.js";const F=({result:r,type:i,rule:o,entityRef:p,checkId:u})=>{const a=e("portal"),l=e("portal-ai-fm"),m=r===h.Failed,s=i===k.Manual,f=a&&l&&m&&!!o&&!s,{value:n}=y({entityRef:p??"",checkId:u??""}),c=n?.filter(({prUrl:t})=>t)?.filter(t=>t.status===R.IN_PROGRESS)?.[0];return{showAikaButton:f,pullRequest:c}};export{F as useFixWithAika};
|
|
2
2
|
//# sourceMappingURL=useFixWithAika.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from"react-use/lib/useAsync";import{useRemedyTrackerApi as m}from"./useRemedyTrackerApi.esm.js";const t=e=>{const r=m();return o(()=>r.getRemediesForCheck(e),[e,r])};export{t as useRemediesForCheck};
|
|
2
2
|
//# sourceMappingURL=useRemediesForCheck.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r from"react-use/lib/useAsync";import{useRemedyTrackerApi as o}from"./useRemedyTrackerApi.esm.js";const i=t=>{const e=o();return r(()=>e.getRemediesForEntity(t),[t.entityRef,t.checkId,t.trackId,e])};export{i as useRemediesForEntity};
|
|
2
2
|
//# sourceMappingURL=useRemediesForEntity.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApiHolder as e}from"@backstage/core-plugin-api";import{remedyTrackerApiRef as r}from"../../api.esm.js";const o={getRemediesForCheck:async()=>[],getRemediesForEntity:async()=>[],runAction:async()=>{}},t=()=>e().get(r)??o;export{t as useRemedyTrackerApi};
|
|
2
|
+
//# sourceMappingURL=useRemedyTrackerApi.esm.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
3
3
|
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
4
4
|
import { RouteRef } from '@backstage/frontend-plugin-api';
|
|
5
|
-
import { RemedyTrackerApi
|
|
5
|
+
import { RemedyTrackerApi } from '@spotify/backstage-plugin-soundcheck-common';
|
|
6
6
|
import * as react from 'react';
|
|
7
7
|
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
8
8
|
import { JsonObject } from '@backstage/types';
|
|
@@ -82,16 +82,6 @@ interface EntitySoundcheckCardProps {
|
|
|
82
82
|
* @public
|
|
83
83
|
*/
|
|
84
84
|
declare const remedyTrackerApiRef: _backstage_frontend_plugin_api.ApiRef<RemedyTrackerApi>;
|
|
85
|
-
/**
|
|
86
|
-
* No-op implementation of RemedyTrackerApi that returns empty arrays.
|
|
87
|
-
* Used as the default fallback when no provider (e.g. Fleetshift) is installed.
|
|
88
|
-
*
|
|
89
|
-
* @public
|
|
90
|
-
*/
|
|
91
|
-
declare class NoOpRemedyTrackerClient implements RemedyTrackerApi {
|
|
92
|
-
getRemediesForCheck(_checkId: string): Promise<Array<Remedy>>;
|
|
93
|
-
getRemediesForEntity(_ref: CheckReference): Promise<Array<Remedy>>;
|
|
94
|
-
}
|
|
95
85
|
|
|
96
86
|
/**
|
|
97
87
|
* Create Soundcheck integration extensions that are routable React page components.
|
|
@@ -202,4 +192,4 @@ declare function useUpdateCollectorConfig(): _tanstack_react_query.UseMutationRe
|
|
|
202
192
|
config?: JsonObject;
|
|
203
193
|
}, unknown>;
|
|
204
194
|
|
|
205
|
-
export { CampaignActionBlueprint, EntitySoundcheckCard, type EntitySoundcheckCardProps, EntitySoundcheckContent, GroupSoundcheckContent, IntegrationPageBlueprint,
|
|
195
|
+
export { CampaignActionBlueprint, EntitySoundcheckCard, type EntitySoundcheckCardProps, EntitySoundcheckContent, GroupSoundcheckContent, IntegrationPageBlueprint, type OverviewPageProps, SoundcheckOverviewPage, SoundcheckRoutingPage, remedyTrackerApiRef, soundcheckPlugin, useGetCollectors, useUpdateCollectorConfig };
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{EntitySoundcheckCard as u,EntitySoundcheckContent as a,GroupSoundcheckContent as d,SoundcheckOverviewPage as f,SoundcheckRoutingPage as g,soundcheckPlugin as k}from"./plugin.esm.js";import"react/jsx-runtime";import"./components/SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import"./components/EntitySoundcheckCard/Card.esm.js";import{
|
|
1
|
+
import{EntitySoundcheckCard as u,EntitySoundcheckContent as a,GroupSoundcheckContent as d,SoundcheckOverviewPage as f,SoundcheckRoutingPage as g,soundcheckPlugin as k}from"./plugin.esm.js";import"react/jsx-runtime";import"./components/SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import"./components/EntitySoundcheckCard/Card.esm.js";import{remedyTrackerApiRef as C}from"./api.esm.js";import{IntegrationPageBlueprint as x}from"./blueprints/IntegrationPageBlueprint.esm.js";import{CampaignActionBlueprint as s}from"./blueprints/CampaignActionBlueprint.esm.js";import{useGetCollectors as y}from"./hooks/collectors/useGetCollectors.esm.js";import{useUpdateCollectorConfig as A}from"./hooks/collectors/useUpdateCollectorConfig.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"./hooks/graphqlKeys.esm.js";import"./hooks/useSoundcheckAlert.esm.js";export{s as CampaignActionBlueprint,u as EntitySoundcheckCard,a as EntitySoundcheckContent,d as GroupSoundcheckContent,x as IntegrationPageBlueprint,f as SoundcheckOverviewPage,g as SoundcheckRoutingPage,C as remedyTrackerApiRef,k as soundcheckPlugin,y as useGetCollectors,A as useUpdateCollectorConfig};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/plugin.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createPlugin as
|
|
1
|
+
import{createPlugin as c,createApiFactory as r,discoveryApiRef as u,fetchApiRef as p,createRoutableExtension as t,createComponentExtension as d}from"@backstage/core-plugin-api";import{soundcheckApiRef as a,SoundcheckApi as m}from"./api.esm.js";import{entityRootRouteRef as n,certificationRouteRef as h,groupRootRouteRef as R,rootRouteRef as i}from"./routes.esm.js";const o=c({id:"soundcheck",apis:[r({api:a,deps:{discoveryApi:u,fetchApi:p},factory:e=>new m(e)})],routes:{entityContent:n,entityCertification:h}}),k=o.provide(t({name:"EntitySoundcheckContent",component:()=>import("./components/EntitySoundcheckContent.esm.js").then(e=>e.EntitySoundcheckContent),mountPoint:n})),f=o.provide(d({name:"EntitySoundcheckCard",component:{lazy:()=>import("./components/EntitySoundcheckCard/index.esm.js").then(e=>e.EntitySoundcheckCard)}})),v=o.provide(t({name:"GroupSoundcheckContent",component:()=>import("./components/OverviewPage/index.esm.js").then(e=>e.FixedGroupOverviewPage),mountPoint:R})),y=o.provide(t({name:"SoundcheckOverviewPage",component:()=>import("./components/OverviewPage/index.esm.js").then(e=>e.OverviewPage),mountPoint:i})),g=o.provide(t({name:"SoundcheckRoutingPage",component:()=>import("./components/RoutingPage/index.esm.js").then(e=>e.RoutingPage),mountPoint:i}));export{f as EntitySoundcheckCard,k as EntitySoundcheckContent,v as GroupSoundcheckContent,y as SoundcheckOverviewPage,g as SoundcheckRoutingPage,o as soundcheckPlugin};
|
|
2
2
|
//# sourceMappingURL=plugin.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spotify/backstage-plugin-soundcheck",
|
|
3
3
|
"description": "Ensure quality, reliability and alignment of software development with codified checks and guidance.",
|
|
4
|
-
"version": "0.22.
|
|
4
|
+
"version": "0.22.2",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"homepage": "https://backstage.spotify.com",
|
|
7
7
|
"main": "./dist/index.esm.js",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"@nivo/treemap": "^0.99.0",
|
|
86
86
|
"@remixicon/react": "^4.6.0",
|
|
87
87
|
"@spotify/backstage-plugin-core": "^0.8.15",
|
|
88
|
-
"@spotify/backstage-plugin-soundcheck-common": "^0.21.
|
|
88
|
+
"@spotify/backstage-plugin-soundcheck-common": "^0.21.2",
|
|
89
89
|
"@tanstack/react-query": "^4.6.1",
|
|
90
90
|
"@uiw/react-md-editor": "3.20.10",
|
|
91
91
|
"classnames": "^2.3.2",
|