From 861ee5810352ccc604e2b301f327eaffdc7a5b20 Mon Sep 17 00:00:00 2001 From: Tiago Barbosa Date: Fri, 19 Jul 2024 15:39:36 +0100 Subject: [PATCH 1/7] refactor: improve code readibility Signed-off-by: Tiago Barbosa --- src/components/PagerDutyPage/MappingTable.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/PagerDutyPage/MappingTable.tsx b/src/components/PagerDutyPage/MappingTable.tsx index 0f276c2..9047159 100644 --- a/src/components/PagerDutyPage/MappingTable.tsx +++ b/src/components/PagerDutyPage/MappingTable.tsx @@ -190,9 +190,9 @@ export const MappingTable = ({ mutationFn: async (mapping: PagerDutyEntityMapping) => { return await pagerDutyApi.storeServiceMapping( mapping.serviceId, - mapping.integrationKey || "", + mapping.integrationKey ?? "", mapping.entityRef, - mapping.account || "" + mapping.account ?? "" ); }, }); From 7a92f275d4d250296dee6888bccc6ac3f7dd64c3 Mon Sep 17 00:00:00 2001 From: Tiago Barbosa Date: Wed, 24 Jul 2024 23:34:34 +0100 Subject: [PATCH 2/7] chore: updated backstage packages to version 1.29.1 Signed-off-by: Tiago Barbosa --- backstage.json | 2 +- package.json | 24 +- yarn.lock | 1143 ++++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 973 insertions(+), 196 deletions(-) diff --git a/backstage.json b/backstage.json index d73cded..f1035c0 100644 --- a/backstage.json +++ b/backstage.json @@ -1,3 +1,3 @@ { - "version": "1.27.7" + "version": "1.29.1" } diff --git a/package.json b/package.json index 6ff33f4..bc1809d 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,9 @@ "types": "dist/index.d.ts" }, "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "pagerduty", + "pluginPackages": "pagerduty" }, "homepage": "https://github.com/pagerduty/backstage-plugin", "repository": { @@ -34,12 +36,12 @@ }, "dependencies": { "@backstage/catalog-model": "^1.5.0", - "@backstage/core-components": "^0.14.7", - "@backstage/core-plugin-api": "^1.9.2", + "@backstage/core-components": "^0.14.9", + "@backstage/core-plugin-api": "^1.9.3", "@backstage/errors": "^1.2.4", - "@backstage/plugin-catalog-react": "^1.12.0", - "@backstage/plugin-home-react": "^0.1.13", - "@backstage/theme": "^0.5.5", + "@backstage/plugin-catalog-react": "^1.12.2", + "@backstage/plugin-home-react": "^0.1.15", + "@backstage/theme": "^0.5.6", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", "@material-ui/core": "^4.12.2", @@ -48,7 +50,7 @@ "@mui/icons-material": "^5.15.19", "@mui/material": "^5.15.19", "@mui/x-date-pickers": "^7.6.1", - "@pagerduty/backstage-plugin-common": "0.2.0", + "@pagerduty/backstage-plugin-common": "0.2.1-next.5", "@tanstack/react-query": "^5.40.1", "classnames": "^2.2.6", "luxon": "^3.4.1", @@ -63,10 +65,10 @@ "react-router-dom": "^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.26.6", - "@backstage/core-app-api": "^1.12.5", - "@backstage/dev-utils": "^1.0.32", - "@backstage/test-utils": "^1.5.5", + "@backstage/cli": "^0.26.11", + "@backstage/core-app-api": "^1.14.0", + "@backstage/dev-utils": "^1.0.35", + "@backstage/test-utils": "^1.5.8", "@commitlint/cli": "^17.7.1", "@commitlint/config-conventional": "^17.7.0", "@testing-library/dom": "^8.0.0", diff --git a/yarn.lock b/yarn.lock index 35af09a..dd81e74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1630,22 +1630,22 @@ __metadata: languageName: node linkType: hard -"@backstage/app-defaults@npm:^1.5.5": - version: 1.5.5 - resolution: "@backstage/app-defaults@npm:1.5.5" - dependencies: - "@backstage/core-app-api": ^1.12.5 - "@backstage/core-components": ^0.14.7 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/plugin-permission-react": ^0.4.22 - "@backstage/theme": ^0.5.4 +"@backstage/app-defaults@npm:^1.5.8": + version: 1.5.8 + resolution: "@backstage/app-defaults@npm:1.5.8" + dependencies: + "@backstage/core-app-api": ^1.14.0 + "@backstage/core-components": ^0.14.9 + "@backstage/core-plugin-api": ^1.9.3 + "@backstage/plugin-permission-react": ^0.4.24 + "@backstage/theme": ^0.5.6 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 peerDependencies: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: fcaddf694896131d00fff964833b516c038fa05f2c6d74eef7f7e6695734999adb4162365c614f42b9ffac7ce4ec1de2d892691e9096713e1eb4ead9f29722fd + checksum: a6de9684bbce9662e8b907be8fc344ae12f771dba012ff4e49a3349d49d0a027e3d8fed21cc1c66dafcb341180c37ebe9b14b308cc02b2abc612e5184743b4ac languageName: node linkType: hard @@ -1673,44 +1673,45 @@ __metadata: languageName: node linkType: hard -"@backstage/cli-common@npm:^0.1.13": - version: 0.1.13 - resolution: "@backstage/cli-common@npm:0.1.13" - checksum: 0c7dd2e888012f2d419f0a07c637ccad9d622b6e69c6454bc16a0e6621fac8bac9672cfd49636e31c6abb3ef7c084e428223c45bd8a02751e79776b33a375881 +"@backstage/cli-common@npm:^0.1.14": + version: 0.1.14 + resolution: "@backstage/cli-common@npm:0.1.14" + checksum: 6c5031ae31f08b405e5e59105d98e43dc6d865f960e5d016067267ecabccd5a892ab65d59d5b9e31850dccddb9eb29e06bf360ab6be8f7949991561ddb163fcb languageName: node linkType: hard -"@backstage/cli-node@npm:^0.2.5": - version: 0.2.5 - resolution: "@backstage/cli-node@npm:0.2.5" +"@backstage/cli-node@npm:^0.2.7": + version: 0.2.7 + resolution: "@backstage/cli-node@npm:0.2.7" dependencies: - "@backstage/cli-common": ^0.1.13 + "@backstage/cli-common": ^0.1.14 "@backstage/errors": ^1.2.4 "@backstage/types": ^1.1.1 "@manypkg/get-packages": ^1.1.3 - "@yarnpkg/parsers": ^3.0.0-rc.4 + "@yarnpkg/parsers": ^3.0.0 fs-extra: ^11.2.0 semver: ^7.5.3 zod: ^3.22.4 - checksum: 4007377a0c9f9258b3ba1aa8006aa6a6810e794a30ff1bf83a06b6a374fd4d27e1d3632de3a41b9f65eb268517147e792d25a21b8a01dbbbfcfd78fc005f86c4 + checksum: 7f605c885c6073074f179df6cd47041cdb7b736557b11c2298165a55ab8b4d2028a0c85335f5cd655ab5d6570a695c2bcea83e4c79ca636eedc309fcc24f1d84 languageName: node linkType: hard -"@backstage/cli@npm:^0.26.6": - version: 0.26.6 - resolution: "@backstage/cli@npm:0.26.6" +"@backstage/cli@npm:^0.26.11": + version: 0.26.11 + resolution: "@backstage/cli@npm:0.26.11" dependencies: "@backstage/catalog-model": ^1.5.0 - "@backstage/cli-common": ^0.1.13 - "@backstage/cli-node": ^0.2.5 + "@backstage/cli-common": ^0.1.14 + "@backstage/cli-node": ^0.2.7 "@backstage/config": ^1.2.0 - "@backstage/config-loader": ^1.8.0 + "@backstage/config-loader": ^1.8.1 "@backstage/errors": ^1.2.4 "@backstage/eslint-plugin": ^0.1.8 - "@backstage/integration": ^1.11.0 + "@backstage/integration": ^1.13.0 "@backstage/release-manifests": ^0.0.11 "@backstage/types": ^1.1.1 "@manypkg/get-packages": ^1.1.3 + "@module-federation/enhanced": ^0.1.19 "@octokit/graphql": ^5.0.0 "@octokit/graphql-schema": ^13.7.0 "@octokit/oauth-app": ^4.2.0 @@ -1737,7 +1738,7 @@ __metadata: "@typescript-eslint/eslint-plugin": ^6.12.0 "@typescript-eslint/parser": ^6.7.2 "@yarnpkg/lockfile": ^1.1.0 - "@yarnpkg/parsers": ^3.0.0-rc.4 + "@yarnpkg/parsers": ^3.0.0 bfj: ^8.0.0 buffer: ^6.0.3 chalk: ^4.0.0 @@ -1748,7 +1749,7 @@ __metadata: css-loader: ^6.5.1 ctrlc-windows: ^2.1.0 diff: ^5.0.0 - esbuild: ^0.20.0 + esbuild: ^0.21.0 esbuild-loader: ^4.0.0 eslint: ^8.6.0 eslint-config-prettier: ^9.0.0 @@ -1815,7 +1816,7 @@ __metadata: "@vitejs/plugin-react": ^4.0.4 vite: ^4.4.9 vite-plugin-html: ^3.2.0 - vite-plugin-node-polyfills: ^0.21.0 + vite-plugin-node-polyfills: ^0.22.0 peerDependenciesMeta: "@vitejs/plugin-react": optional: true @@ -1827,15 +1828,15 @@ __metadata: optional: true bin: backstage-cli: bin/backstage-cli - checksum: 8006e935cc1b6b11a7da8b0b963bc90ab565ada8920cc7b20940eeca8ca1e7aa083aad38aa7a37296552b90bdfb73a58e0fc925f08c6eae9e2df384208b2c37a + checksum: 328525101cfa824722e7bdace20dbdb8f7ef55a1eb3b7084f03394177db5f13fe3e49a4746d07ae5d7fbb9ee45f01f239bb19cf4f59f28bf5c8093c395caea0f languageName: node linkType: hard -"@backstage/config-loader@npm:^1.8.0": - version: 1.8.0 - resolution: "@backstage/config-loader@npm:1.8.0" +"@backstage/config-loader@npm:^1.8.1": + version: 1.8.1 + resolution: "@backstage/config-loader@npm:1.8.1" dependencies: - "@backstage/cli-common": ^0.1.13 + "@backstage/cli-common": ^0.1.14 "@backstage/config": ^1.2.0 "@backstage/errors": ^1.2.4 "@backstage/types": ^1.1.1 @@ -1851,7 +1852,7 @@ __metadata: node-fetch: ^2.6.7 typescript-json-schema: ^0.63.0 yaml: ^2.0.0 - checksum: 7d90491c53320cb0545d02112368d3029552acc40788d8bc420fe16a80cd13c0928794e50a0cd49399446891b8a66c3d77164f5aea8f1a2cabfeb181c2b1bd98 + checksum: cdc783b85a3f6ac132e674ba952b97f22f76954f813c83756c581b56ff190bc429866da62b2df7dce6721ce919c9dcbd491578b7f42c788e38b5a62e3621cb8d languageName: node linkType: hard @@ -1865,12 +1866,12 @@ __metadata: languageName: node linkType: hard -"@backstage/core-app-api@npm:^1.12.5": - version: 1.12.5 - resolution: "@backstage/core-app-api@npm:1.12.5" +"@backstage/core-app-api@npm:^1.14.0": + version: 1.14.0 + resolution: "@backstage/core-app-api@npm:1.14.0" dependencies: "@backstage/config": ^1.2.0 - "@backstage/core-plugin-api": ^1.9.2 + "@backstage/core-plugin-api": ^1.9.3 "@backstage/types": ^1.1.1 "@backstage/version-bridge": ^1.0.8 "@types/prop-types": ^15.7.3 @@ -1886,18 +1887,18 @@ __metadata: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 1766b8a6af12191cebc1af32827a564bd654e371d22bfb5a88a0e58921692cd15917e88c6efe136196a979b617809ae522ee96c23785c41bc9856e5de54d75ab + checksum: 40c517e43908c070c2bcff5c27e1fabd68bd50df2da3befd9f6e3b6b8e4627484bd53a9ed7ab41a19b706830afba0d82799621dadc96aa3946b601ddcdca019e languageName: node linkType: hard -"@backstage/core-components@npm:^0.14.7": - version: 0.14.7 - resolution: "@backstage/core-components@npm:0.14.7" +"@backstage/core-components@npm:^0.14.9": + version: 0.14.9 + resolution: "@backstage/core-components@npm:0.14.9" dependencies: "@backstage/config": ^1.2.0 - "@backstage/core-plugin-api": ^1.9.2 + "@backstage/core-plugin-api": ^1.9.3 "@backstage/errors": ^1.2.4 - "@backstage/theme": ^0.5.4 + "@backstage/theme": ^0.5.6 "@backstage/version-bridge": ^1.0.8 "@date-io/core": ^1.3.13 "@material-table/core": ^3.1.0 @@ -1935,13 +1936,13 @@ __metadata: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: e3906347c197d741dbff24d20af5cd0117e4bf1667c34a4a3a70d8c0f3c0c92bd768b53c417ca78f8b87560a3623f497938f531be86c8727f83822a11e9aa4e5 + checksum: cf89c9e19dd33270bdc2bb9e7d89487c71b78e6645dcef9a6ac0d1df67b52e4eee61f2873abe093ed921d756a75f97e870c294aa5c2a730598e520b06e38b41f languageName: node linkType: hard -"@backstage/core-plugin-api@npm:^1.9.2": - version: 1.9.2 - resolution: "@backstage/core-plugin-api@npm:1.9.2" +"@backstage/core-plugin-api@npm:^1.9.3": + version: 1.9.3 + resolution: "@backstage/core-plugin-api@npm:1.9.3" dependencies: "@backstage/config": ^1.2.0 "@backstage/errors": ^1.2.4 @@ -1953,22 +1954,22 @@ __metadata: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 2df505c14853b3b35b8644d66f3e58d235bc6ee7f7b81785ec163aa9f089fc03a6c03e3b191d001b247f19d97063e02e585d67661720a8b6a13ab67a2403c218 + checksum: 490295c126eff7f7f3107565097bc3dbdda5b72e52301a6c47fab91429961aff5757ba91208cbe12c37f90d429703919ab6067a30c394249ec792d900308d309 languageName: node linkType: hard -"@backstage/dev-utils@npm:^1.0.32": - version: 1.0.32 - resolution: "@backstage/dev-utils@npm:1.0.32" +"@backstage/dev-utils@npm:^1.0.35": + version: 1.0.35 + resolution: "@backstage/dev-utils@npm:1.0.35" dependencies: - "@backstage/app-defaults": ^1.5.5 + "@backstage/app-defaults": ^1.5.8 "@backstage/catalog-model": ^1.5.0 - "@backstage/core-app-api": ^1.12.5 - "@backstage/core-components": ^0.14.7 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/integration-react": ^1.1.27 - "@backstage/plugin-catalog-react": ^1.12.0 - "@backstage/theme": ^0.5.4 + "@backstage/core-app-api": ^1.14.0 + "@backstage/core-components": ^0.14.9 + "@backstage/core-plugin-api": ^1.9.3 + "@backstage/integration-react": ^1.1.29 + "@backstage/plugin-catalog-react": ^1.12.2 + "@backstage/theme": ^0.5.6 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 @@ -1977,7 +1978,7 @@ __metadata: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: e1e3892c3c1e74115e45caa5b102bdc4797076da5dacffb042d5333a87aefad9f32b33b572b0c94cee6995aa44aee2c7dd23b104e8b9116b0dca6627490edab6 + checksum: ee0f09611c419468c8b4580cdfda580c36119a6a29291fb9d15592a9f4aa0c8d8a5a764c77f8b05c4a8b895f04dd0db96468f4394817ef19e54cb0dae4b6025c languageName: node linkType: hard @@ -2001,12 +2002,12 @@ __metadata: languageName: node linkType: hard -"@backstage/frontend-plugin-api@npm:^0.6.5": - version: 0.6.5 - resolution: "@backstage/frontend-plugin-api@npm:0.6.5" +"@backstage/frontend-plugin-api@npm:^0.6.7": + version: 0.6.7 + resolution: "@backstage/frontend-plugin-api@npm:0.6.7" dependencies: - "@backstage/core-components": ^0.14.7 - "@backstage/core-plugin-api": ^1.9.2 + "@backstage/core-components": ^0.14.9 + "@backstage/core-plugin-api": ^1.9.3 "@backstage/types": ^1.1.1 "@backstage/version-bridge": ^1.0.8 "@material-ui/core": ^4.12.4 @@ -2017,17 +2018,17 @@ __metadata: peerDependencies: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: be880b5a3bb86d4e2c32a90ca64265b529901dabcdcbf5a87b5cbdfd68fc347297359550da195034e671e074db9db7c659d663d4fd46ed3836896bd1878fae2f + checksum: cf7485aedcae02c5855a62adea6fffcfad256d614731ade38d2bebd5f98e91aa5d1020cd9ac25b74d67d2681c010addff4a89d5be1e2deb2e688bf1915134c32 languageName: node linkType: hard -"@backstage/integration-react@npm:^1.1.27": - version: 1.1.27 - resolution: "@backstage/integration-react@npm:1.1.27" +"@backstage/integration-react@npm:^1.1.29": + version: 1.1.29 + resolution: "@backstage/integration-react@npm:1.1.29" dependencies: "@backstage/config": ^1.2.0 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/integration": ^1.11.0 + "@backstage/core-plugin-api": ^1.9.3 + "@backstage/integration": ^1.13.0 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@types/react": ^16.13.1 || ^17.0.0 @@ -2035,13 +2036,13 @@ __metadata: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 136bdfeb7c4ba91eb2405a82ae99fd5d935056d7fe77064bf799a8d375a2b5c645e0df7deaee7e1e0ad6fb48dcac94c82e4b29e3d3a00f80555116b1902102b2 + checksum: add10ad8c108933354037f9d74ec554174d2af53d74a031e12ed01e98bd51481413b93c694460cf045b3bae818dd18b5efa061fc60c210e145e4629e0cb227b7 languageName: node linkType: hard -"@backstage/integration@npm:^1.11.0": - version: 1.11.0 - resolution: "@backstage/integration@npm:1.11.0" +"@backstage/integration@npm:^1.13.0": + version: 1.13.0 + resolution: "@backstage/integration@npm:1.13.0" dependencies: "@azure/identity": ^4.0.0 "@backstage/config": ^1.2.0 @@ -2052,35 +2053,35 @@ __metadata: git-url-parse: ^14.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - checksum: 57ea46e57da004cdab41e82f558105f78f84f65d58163e93363dc775d42ab29401d3a38390ace012bf388eec57350d432a415d8fed27e57419e21522044fcc33 + checksum: 2b824261b0d30771e54515f8571c2af0b4c64f5cd3d1f990c234152b19e81d1e4ddbbbfae2a0b74f44abbfb67f52609c7eee9dc9fbb61d5f0076acaa80b3e670 languageName: node linkType: hard -"@backstage/plugin-catalog-common@npm:^1.0.23": - version: 1.0.23 - resolution: "@backstage/plugin-catalog-common@npm:1.0.23" +"@backstage/plugin-catalog-common@npm:^1.0.25": + version: 1.0.25 + resolution: "@backstage/plugin-catalog-common@npm:1.0.25" dependencies: "@backstage/catalog-model": ^1.5.0 - "@backstage/plugin-permission-common": ^0.7.13 - "@backstage/plugin-search-common": ^1.2.11 - checksum: 071456b301689b9b349bdb1bea0d81cc41b0e8055e68096655a0abd198ea21afdc27bda7135d5c800ba8074fbc20d2d8d3a2244578fa8f6547205bee57c31c3d + "@backstage/plugin-permission-common": ^0.8.0 + "@backstage/plugin-search-common": ^1.2.13 + checksum: 37078811a78423accc078ae43d1572de6e74e0daff6b03a3d6f30d3ce37e71d30f60ac90aea5cf442ca0d2123259b267b37b966e29aa4f2dba08845d562d0e68 languageName: node linkType: hard -"@backstage/plugin-catalog-react@npm:^1.12.0": - version: 1.12.0 - resolution: "@backstage/plugin-catalog-react@npm:1.12.0" +"@backstage/plugin-catalog-react@npm:^1.12.2": + version: 1.12.2 + resolution: "@backstage/plugin-catalog-react@npm:1.12.2" dependencies: "@backstage/catalog-client": ^1.6.5 "@backstage/catalog-model": ^1.5.0 - "@backstage/core-components": ^0.14.7 - "@backstage/core-plugin-api": ^1.9.2 + "@backstage/core-components": ^0.14.9 + "@backstage/core-plugin-api": ^1.9.3 "@backstage/errors": ^1.2.4 - "@backstage/frontend-plugin-api": ^0.6.5 - "@backstage/integration-react": ^1.1.27 - "@backstage/plugin-catalog-common": ^1.0.23 - "@backstage/plugin-permission-common": ^0.7.13 - "@backstage/plugin-permission-react": ^0.4.22 + "@backstage/frontend-plugin-api": ^0.6.7 + "@backstage/integration-react": ^1.1.29 + "@backstage/plugin-catalog-common": ^1.0.25 + "@backstage/plugin-permission-common": ^0.8.0 + "@backstage/plugin-permission-react": ^0.4.24 "@backstage/types": ^1.1.1 "@backstage/version-bridge": ^1.0.8 "@material-ui/core": ^4.12.2 @@ -2099,31 +2100,31 @@ __metadata: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 8079c6c1f4c5b07df5cfb2873f4c3ba16759a3a1ac36a1e1ff61fb428cece5baca40b5c2bc41a2d402ad9a60e73fd545c0a95eec274189423f40a04551a5f337 + checksum: 8570e71e56e89cc8ba890ad9cd1f2ce22147635e9a326703291ee8a75d704086c4a31cd11b2b2c3eb54f3e1dc82822b1bc7b9317e8c6d81f6ab9758c2c01ec5a languageName: node linkType: hard -"@backstage/plugin-home-react@npm:^0.1.13": - version: 0.1.13 - resolution: "@backstage/plugin-home-react@npm:0.1.13" +"@backstage/plugin-home-react@npm:^0.1.15": + version: 0.1.15 + resolution: "@backstage/plugin-home-react@npm:0.1.15" dependencies: - "@backstage/core-components": ^0.14.7 - "@backstage/core-plugin-api": ^1.9.2 + "@backstage/core-components": ^0.14.9 + "@backstage/core-plugin-api": ^1.9.3 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 - "@rjsf/utils": 5.18.2 + "@rjsf/utils": 5.18.5 "@types/react": ^16.13.1 || ^17.0.0 peerDependencies: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 0532b0d4d884d02442f0619b067aa2bb948f82c42c9825d2d40a5cb5664d53e00ebab34c728117f219ba48d291f6f395ba1c9b21f6e6fe112ff266986b599276 + checksum: f2da10bce7fc7721ea65eaea7154c50419155027f1afaa7d8e8ee557d562c3b41d0cc40ba9efd48429e53a6c8820a38864fcaaeaca39fc815bf6ffc4e44e5d08 languageName: node linkType: hard -"@backstage/plugin-permission-common@npm:^0.7.13": - version: 0.7.13 - resolution: "@backstage/plugin-permission-common@npm:0.7.13" +"@backstage/plugin-permission-common@npm:^0.8.0": + version: 0.8.0 + resolution: "@backstage/plugin-permission-common@npm:0.8.0" dependencies: "@backstage/config": ^1.2.0 "@backstage/errors": ^1.2.4 @@ -2131,34 +2132,34 @@ __metadata: cross-fetch: ^4.0.0 uuid: ^9.0.0 zod: ^3.22.4 - checksum: 3abea60e1016d352b99700d331af39b8c2b6f84ce7e19e02026f909e53a709b23c1ac9fadc591658252c458bb4d381545574ca66374db0912efe6640c8d58020 + checksum: 03d706cf764d65319fd32156438b6f826568c7d51e79fc6e7cd951b023017a1e07c7380f2babec7efd2ed96f441485ee68072d06fb5e42a1bf7aba7cd1f6ce6f languageName: node linkType: hard -"@backstage/plugin-permission-react@npm:^0.4.22": - version: 0.4.22 - resolution: "@backstage/plugin-permission-react@npm:0.4.22" +"@backstage/plugin-permission-react@npm:^0.4.24": + version: 0.4.24 + resolution: "@backstage/plugin-permission-react@npm:0.4.24" dependencies: "@backstage/config": ^1.2.0 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/plugin-permission-common": ^0.7.13 + "@backstage/core-plugin-api": ^1.9.3 + "@backstage/plugin-permission-common": ^0.8.0 "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 swr: ^2.0.0 peerDependencies: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: c91ad5a336358ae3a2e6030e7ea7a8584735544a14aa6ada061ca0c01ee32b2e16bd2fe24c9327cbdb959eec185bac045b1211b0a03a5c9d45b350f0a6c031ca + checksum: 6fa895f4a25f7f08642f64a9b4b41e5f3adfbf3c3f1ede9e1abc7bb08f532d9d0c9baf9f08b472fff54803a2c2aaeff2306b5e6d1514193a2407af4b12433d3a languageName: node linkType: hard -"@backstage/plugin-search-common@npm:^1.2.11": - version: 1.2.11 - resolution: "@backstage/plugin-search-common@npm:1.2.11" +"@backstage/plugin-search-common@npm:^1.2.13": + version: 1.2.13 + resolution: "@backstage/plugin-search-common@npm:1.2.13" dependencies: - "@backstage/plugin-permission-common": ^0.7.13 + "@backstage/plugin-permission-common": ^0.8.0 "@backstage/types": ^1.1.1 - checksum: 861ba64fd733511bad58d2b3f6b2af60426d71b8e8d74838b85a15a5870d54c0de984681a33f5adb8e97284da9167655982bcf5e543436d0f4160a2c0cbece1f + checksum: 0c7b7b791b648e874081b845488f636791754bc4da1a4780b49e7281cc6294bcad0a9feab9fd7dd5f6a583b5fce372e704f440ad7bc33ab828ebd2afc5344504 languageName: node linkType: hard @@ -2171,16 +2172,16 @@ __metadata: languageName: node linkType: hard -"@backstage/test-utils@npm:^1.5.5": - version: 1.5.5 - resolution: "@backstage/test-utils@npm:1.5.5" +"@backstage/test-utils@npm:^1.5.8": + version: 1.5.8 + resolution: "@backstage/test-utils@npm:1.5.8" dependencies: "@backstage/config": ^1.2.0 - "@backstage/core-app-api": ^1.12.5 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/plugin-permission-common": ^0.7.13 - "@backstage/plugin-permission-react": ^0.4.22 - "@backstage/theme": ^0.5.4 + "@backstage/core-app-api": ^1.14.0 + "@backstage/core-plugin-api": ^1.9.3 + "@backstage/plugin-permission-common": ^0.8.0 + "@backstage/plugin-permission-react": ^0.4.24 + "@backstage/theme": ^0.5.6 "@backstage/types": ^1.1.1 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 @@ -2193,13 +2194,13 @@ __metadata: react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 5977885a62bf783c68b6d50ee627e36dc60f34aee53ae69289d864455f4b5b9369fe3e2dc3ba44a1db99ee679003a6168e044279a18038bbe50c6269406ebdbe + checksum: a2b3e1de152f0fd5b1faf0a67b6c90f53d8d87a98d262d1a1b6fd64aeac08e84b4a1b9f4c92b0822199df3eae8a27df7eaec5e91ebc9f4698a5d4b71e6a3fa4e languageName: node linkType: hard -"@backstage/theme@npm:^0.5.4, @backstage/theme@npm:^0.5.5": - version: 0.5.5 - resolution: "@backstage/theme@npm:0.5.5" +"@backstage/theme@npm:^0.5.6": + version: 0.5.6 + resolution: "@backstage/theme@npm:0.5.6" dependencies: "@emotion/react": ^11.10.5 "@emotion/styled": ^11.10.5 @@ -2209,7 +2210,7 @@ __metadata: "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 react: ^16.13.1 || ^17.0.0 || ^18.0.0 react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 - checksum: a5ba7b39d41773a4a73a07d1a9a6bcf0815835a196a31c1ec1d5eac61ec801bfe875f31823a6ae6aa5033b21bd04b4fa692fd3fddc71a12e2126b1d222738b34 + checksum: 44df17faa1a41ff9922fef425a6b846cc7bde55af41183f48c6993fb8b8c2b2177a4219faa66cb258c15df6d9500a1c7ae9ff47b51c4b79740739726704d1150 languageName: node linkType: hard @@ -2631,6 +2632,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/android-arm64@npm:0.20.2" @@ -2638,6 +2646,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/android-arm@npm:0.20.2" @@ -2645,6 +2660,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/android-x64@npm:0.20.2" @@ -2652,6 +2674,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/darwin-arm64@npm:0.20.2" @@ -2659,6 +2688,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/darwin-x64@npm:0.20.2" @@ -2666,6 +2702,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/freebsd-arm64@npm:0.20.2" @@ -2673,6 +2716,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/freebsd-x64@npm:0.20.2" @@ -2680,6 +2730,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-arm64@npm:0.20.2" @@ -2687,6 +2744,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-arm@npm:0.20.2" @@ -2694,6 +2758,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-ia32@npm:0.20.2" @@ -2701,6 +2772,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-loong64@npm:0.20.2" @@ -2708,6 +2786,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-mips64el@npm:0.20.2" @@ -2715,6 +2800,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-ppc64@npm:0.20.2" @@ -2722,6 +2814,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-riscv64@npm:0.20.2" @@ -2729,6 +2828,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-s390x@npm:0.20.2" @@ -2736,6 +2842,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-x64@npm:0.20.2" @@ -2743,6 +2856,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/netbsd-x64@npm:0.20.2" @@ -2750,6 +2870,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/openbsd-x64@npm:0.20.2" @@ -2757,6 +2884,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/sunos-x64@npm:0.20.2" @@ -2764,6 +2898,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/win32-arm64@npm:0.20.2" @@ -2771,6 +2912,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/win32-ia32@npm:0.20.2" @@ -2778,6 +2926,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/win32-x64@npm:0.20.2" @@ -2785,6 +2940,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -3488,6 +3650,145 @@ __metadata: languageName: node linkType: hard +"@module-federation/dts-plugin@npm:0.1.21": + version: 0.1.21 + resolution: "@module-federation/dts-plugin@npm:0.1.21" + dependencies: + "@module-federation/managers": 0.1.21 + "@module-federation/sdk": 0.1.21 + "@module-federation/third-party-dts-extractor": 0.1.21 + adm-zip: ^0.5.10 + ansi-colors: ^4.1.3 + axios: ^1.6.7 + chalk: 3.0.0 + fs-extra: 9.1.0 + isomorphic-ws: 5.0.0 + koa: 2.11.0 + lodash.clonedeepwith: 4.5.0 + log4js: 6.9.1 + node-schedule: 2.1.1 + rambda: ^9.1.0 + ws: 8.17.0 + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ^1.0.24 + peerDependenciesMeta: + vue-tsc: + optional: true + checksum: ec4cd030a25617698754cbac2da5463f8942cdd0a64bdc95f6ff5fd29fff6b88cf3db90e53e6b260cd3593893fe6ee2d6e149d0a46698eb7f9cc19a9df26193d + languageName: node + linkType: hard + +"@module-federation/enhanced@npm:^0.1.19": + version: 0.1.21 + resolution: "@module-federation/enhanced@npm:0.1.21" + dependencies: + "@module-federation/dts-plugin": 0.1.21 + "@module-federation/managers": 0.1.21 + "@module-federation/manifest": 0.1.21 + "@module-federation/rspack": 0.1.21 + "@module-federation/runtime-tools": 0.1.21 + "@module-federation/sdk": 0.1.21 + upath: 2.0.1 + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ^1.0.24 + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true + checksum: bc0ff541db1066b290b3ad9ab868437dc3d0754b9d06ab263f8fb7f54e08238eae9232a482a681dd6152e4a175578d65df9f27fe181fc8fb602d7cc1ae34807d + languageName: node + linkType: hard + +"@module-federation/managers@npm:0.1.21": + version: 0.1.21 + resolution: "@module-federation/managers@npm:0.1.21" + dependencies: + "@module-federation/sdk": 0.1.21 + find-pkg: 2.0.0 + fs-extra: 9.1.0 + checksum: 5f230d5795d86dfd68c404ee2b7a1264950c283a4b1c6f4ee9cc9579fabb413718dfbc1ff726b9c213f9d3223d944dd38dd9d04b700962e6398c3c3728d6323e + languageName: node + linkType: hard + +"@module-federation/manifest@npm:0.1.21": + version: 0.1.21 + resolution: "@module-federation/manifest@npm:0.1.21" + dependencies: + "@module-federation/dts-plugin": 0.1.21 + "@module-federation/managers": 0.1.21 + "@module-federation/sdk": 0.1.21 + chalk: 3.0.0 + find-pkg: 2.0.0 + checksum: cef2011875f14e853a355626ae1dbc8ae3b0714d31140e329b5dd71525782b08c2e1d6ca45276a563bb3c3b7f7c4e64a31f0698ef12606f05aa6da46e759f345 + languageName: node + linkType: hard + +"@module-federation/rspack@npm:0.1.21": + version: 0.1.21 + resolution: "@module-federation/rspack@npm:0.1.21" + dependencies: + "@module-federation/dts-plugin": 0.1.21 + "@module-federation/managers": 0.1.21 + "@module-federation/manifest": 0.1.21 + "@module-federation/runtime-tools": 0.1.21 + "@module-federation/sdk": 0.1.21 + checksum: 55516285e23f4ca7127afafb14af667defbe46dc3224f85d7e07edbc8937d7fac909dfebc2f9dd73120b99bbe5135372cf0fbbe282990d80e6953a60dfa4c93e + languageName: node + linkType: hard + +"@module-federation/runtime-tools@npm:0.1.21": + version: 0.1.21 + resolution: "@module-federation/runtime-tools@npm:0.1.21" + dependencies: + "@module-federation/runtime": 0.1.21 + "@module-federation/webpack-bundler-runtime": 0.1.21 + checksum: 628c0c4834093520f9c71481d587c9e18163f82e481b05b1900f04e2d5da4abb69af6d814ac5cd1951057b28d73f3adeb1cee7cd83628305b10cc7988405fbc5 + languageName: node + linkType: hard + +"@module-federation/runtime@npm:0.1.21": + version: 0.1.21 + resolution: "@module-federation/runtime@npm:0.1.21" + dependencies: + "@module-federation/sdk": 0.1.21 + checksum: ce4de8515b54f1cd07a3c7c4cbd35fea163294b9fb24be10827872f3ebb62cd5c289f3602efe4149d963282739f79b51947afa039ee6f36be7f66dea83d590fc + languageName: node + linkType: hard + +"@module-federation/sdk@npm:0.1.21": + version: 0.1.21 + resolution: "@module-federation/sdk@npm:0.1.21" + checksum: 6856dcfe2ef5ae939890b82010aaad911fa6c4330a05f290ae054c316c9b532d3691456a1f9e176fe05f1df2d6f2d8c7e0c842ca5648a0fd7abf270e44ed9ecb + languageName: node + linkType: hard + +"@module-federation/third-party-dts-extractor@npm:0.1.21": + version: 0.1.21 + resolution: "@module-federation/third-party-dts-extractor@npm:0.1.21" + dependencies: + find-pkg: 2.0.0 + fs-extra: 9.1.0 + resolve: 1.22.8 + checksum: e394fd7c2e6dbdf8df6937628680e7356ac897ee6f1309d7fbc38c00bcf4be9c0363f8bc1a75c29f7987a5a2f11f7855481813889b18e8b444ee9006aeb4a299 + languageName: node + linkType: hard + +"@module-federation/webpack-bundler-runtime@npm:0.1.21": + version: 0.1.21 + resolution: "@module-federation/webpack-bundler-runtime@npm:0.1.21" + dependencies: + "@module-federation/runtime": 0.1.21 + "@module-federation/sdk": 0.1.21 + checksum: 7d96002066e63bdb503964fd5fb2798be25f4135a599d87721f4d26ebe1de1affbf447c56b082f7ee850ae7798d0ac637f6a486f58591269065e114051b466e5 + languageName: node + linkType: hard + "@mswjs/cookies@npm:^0.2.2": version: 0.2.2 resolution: "@mswjs/cookies@npm:0.2.2" @@ -4092,10 +4393,10 @@ __metadata: languageName: node linkType: hard -"@pagerduty/backstage-plugin-common@npm:0.2.0": - version: 0.2.0 - resolution: "@pagerduty/backstage-plugin-common@npm:0.2.0" - checksum: d7243ef9c11408eee046be351346455316dcd8984c33a61d773fec292843d3df9eb9906dfc5ce0ed4fc0c17a60b9b3ebbfe1a8f4a25b8ecc003ffa8d4304db77 +"@pagerduty/backstage-plugin-common@npm:0.2.1-next.5": + version: 0.2.1-next.5 + resolution: "@pagerduty/backstage-plugin-common@npm:0.2.1-next.5" + checksum: 6f36a9313c82edd04fb3c6a452b565b0a464c5631c1546a4ecfaf5aab313bd79b48162fad160f6d44e85bdd299b12eb6cd13c000ba63dbfae05637c755ae6ad9 languageName: node linkType: hard @@ -4104,16 +4405,16 @@ __metadata: resolution: "@pagerduty/backstage-plugin@workspace:." dependencies: "@backstage/catalog-model": ^1.5.0 - "@backstage/cli": ^0.26.6 - "@backstage/core-app-api": ^1.12.5 - "@backstage/core-components": ^0.14.7 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/dev-utils": ^1.0.32 + "@backstage/cli": ^0.26.11 + "@backstage/core-app-api": ^1.14.0 + "@backstage/core-components": ^0.14.9 + "@backstage/core-plugin-api": ^1.9.3 + "@backstage/dev-utils": ^1.0.35 "@backstage/errors": ^1.2.4 - "@backstage/plugin-catalog-react": ^1.12.0 - "@backstage/plugin-home-react": ^0.1.13 - "@backstage/test-utils": ^1.5.5 - "@backstage/theme": ^0.5.5 + "@backstage/plugin-catalog-react": ^1.12.2 + "@backstage/plugin-home-react": ^0.1.15 + "@backstage/test-utils": ^1.5.8 + "@backstage/theme": ^0.5.6 "@commitlint/cli": ^17.7.1 "@commitlint/config-conventional": ^17.7.0 "@emotion/react": ^11.11.4 @@ -4124,7 +4425,7 @@ __metadata: "@mui/icons-material": ^5.15.19 "@mui/material": ^5.15.19 "@mui/x-date-pickers": ^7.6.1 - "@pagerduty/backstage-plugin-common": 0.2.0 + "@pagerduty/backstage-plugin-common": 0.2.1-next.5 "@tanstack/react-query": ^5.40.1 "@testing-library/dom": ^8.0.0 "@testing-library/jest-dom": ^5.10.1 @@ -4236,9 +4537,9 @@ __metadata: languageName: node linkType: hard -"@rjsf/utils@npm:5.18.2": - version: 5.18.2 - resolution: "@rjsf/utils@npm:5.18.2" +"@rjsf/utils@npm:5.18.5": + version: 5.18.5 + resolution: "@rjsf/utils@npm:5.18.5" dependencies: json-schema-merge-allof: ^0.8.1 jsonpointer: ^5.0.1 @@ -4247,7 +4548,7 @@ __metadata: react-is: ^18.2.0 peerDependencies: react: ^16.14.0 || >=17 - checksum: 19342ce160f5f2ff1b1448bc61b0767c9b19a3c365fe3dca221c9178dff6b54123bdfe9dd4b0314aa7965011edb0e76029f7e76226936066bfacbaaa619546b4 + checksum: 8da3ce82a0ec83e78806461db7226fd20489f6e8c41906ccde9d55c554aec3f50b8b8bac8c35e3cdf12d788c18fdad71c992f0d8b44f6161a1bf9e13598ded99 languageName: node linkType: hard @@ -6020,7 +6321,7 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/parsers@npm:^3.0.0-rc.4": +"@yarnpkg/parsers@npm:^3.0.0": version: 3.0.2 resolution: "@yarnpkg/parsers@npm:3.0.2" dependencies: @@ -6063,7 +6364,7 @@ __metadata: languageName: node linkType: hard -"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": +"accepts@npm:^1.3.5, accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -6126,6 +6427,13 @@ __metadata: languageName: node linkType: hard +"adm-zip@npm:^0.5.10": + version: 0.5.14 + resolution: "adm-zip@npm:0.5.14" + checksum: 83a4bc0bdff70f3276992810db96b10ffbf3c07667a9c3395e3dc60ca40ecbb920812dde212e1e21633b1508f1ea6fc427ac451aa68ee1a597b7251b2c1fc844 + languageName: node + linkType: hard + "agent-base@npm:6": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -6212,6 +6520,13 @@ __metadata: languageName: node linkType: hard +"ansi-colors@npm:^4.1.3": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e + languageName: node + linkType: hard + "ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -6292,7 +6607,7 @@ __metadata: languageName: node linkType: hard -"any-promise@npm:^1.0.0": +"any-promise@npm:^1.0.0, any-promise@npm:^1.1.0": version: 1.3.0 resolution: "any-promise@npm:1.3.0" checksum: 0ee8a9bdbe882c90464d75d1f55cf027f5458650c4bd1f0467e65aec38ccccda07ca5844969ee77ed46d04e7dded3eaceb027e8d32f385688523fe305fa7e1de @@ -6553,6 +6868,17 @@ __metadata: languageName: node linkType: hard +"axios@npm:^1.6.7": + version: 1.7.2 + resolution: "axios@npm:1.7.2" + dependencies: + follow-redirects: ^1.15.6 + form-data: ^4.0.0 + proxy-from-env: ^1.1.0 + checksum: e457e2b0ab748504621f6fa6609074ac08c824bf0881592209dfa15098ece7e88495300e02cd22ba50b3468fd712fe687e629dcb03d6a3f6a51989727405aedf + languageName: node + linkType: hard + "axobject-query@npm:^3.2.1": version: 3.2.1 resolution: "axobject-query@npm:3.2.1" @@ -7080,6 +7406,16 @@ __metadata: languageName: node linkType: hard +"cache-content-type@npm:^1.0.0": + version: 1.0.1 + resolution: "cache-content-type@npm:1.0.1" + dependencies: + mime-types: ^2.1.18 + ylru: ^1.2.0 + checksum: 18db4d59452669ccbfd7146a1510a37eb28e9eccf18ca7a4eb603dff2edc5cccdca7498fc3042a2978f76f11151fba486eb9eb69d9afa3fb124957870aef4fd3 + languageName: node + linkType: hard + "call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": version: 1.0.7 resolution: "call-bind@npm:1.0.7" @@ -7172,7 +7508,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^3.0.0": +"chalk@npm:3.0.0, chalk@npm:^3.0.0": version: 3.0.0 resolution: "chalk@npm:3.0.0" dependencies: @@ -7613,7 +7949,7 @@ __metadata: languageName: node linkType: hard -"content-disposition@npm:0.5.4": +"content-disposition@npm:0.5.4, content-disposition@npm:~0.5.2": version: 0.5.4 resolution: "content-disposition@npm:0.5.4" dependencies: @@ -7622,7 +7958,7 @@ __metadata: languageName: node linkType: hard -"content-type@npm:~1.0.4, content-type@npm:~1.0.5": +"content-type@npm:^1.0.4, content-type@npm:~1.0.4, content-type@npm:~1.0.5": version: 1.0.5 resolution: "content-type@npm:1.0.5" checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 @@ -7696,6 +8032,16 @@ __metadata: languageName: node linkType: hard +"cookies@npm:~0.8.0": + version: 0.8.0 + resolution: "cookies@npm:0.8.0" + dependencies: + depd: ~2.0.0 + keygrip: ~1.1.0 + checksum: 806055a44f128705265b1bc6a853058da18bf80dea3654ad99be20985b1fa1b14f86c1eef73644aab8071241f8a78acd57202b54c4c5c70769fc694fbb9c4edc + languageName: node + linkType: hard + "copy-to-clipboard@npm:^3.3.1": version: 3.3.3 resolution: "copy-to-clipboard@npm:3.3.3" @@ -7862,6 +8208,15 @@ __metadata: languageName: node linkType: hard +"cron-parser@npm:^4.2.0": + version: 4.9.0 + resolution: "cron-parser@npm:4.9.0" + dependencies: + luxon: ^3.2.1 + checksum: 3cf248fc5cae6c19ec7124962b1cd84b76f02b9bc4f58976b3bd07624db3ef10aaf1548efcc2d2dcdab0dad4f12029d640a55ecce05ea5e1596af9db585502cf + languageName: node + linkType: hard + "cross-fetch@npm:^4.0.0": version: 4.0.0 resolution: "cross-fetch@npm:4.0.0" @@ -8297,6 +8652,13 @@ __metadata: languageName: node linkType: hard +"date-format@npm:^4.0.14": + version: 4.0.14 + resolution: "date-format@npm:4.0.14" + checksum: dfe5139df6af5759b9dd3c007b899b3f60d45a9240ffeee6314ab74e6ab52e9b519a44ccf285888bdd6b626c66ee9b4c8a523075fa1140617b5beb1cbb9b18d1 + languageName: node + linkType: hard + "debounce@npm:^1.2.0": version: 1.2.1 resolution: "debounce@npm:1.2.1" @@ -8334,6 +8696,15 @@ __metadata: languageName: node linkType: hard +"debug@npm:~3.1.0": + version: 3.1.0 + resolution: "debug@npm:3.1.0" + dependencies: + ms: 2.0.0 + checksum: 0b52718ab957254a5b3ca07fc34543bc778f358620c206a08452251eb7fc193c3ea3505072acbf4350219c14e2d71ceb7bdaa0d3370aa630b50da790458d08b3 + languageName: node + linkType: hard + "decamelize-keys@npm:^1.1.0": version: 1.1.1 resolution: "decamelize-keys@npm:1.1.1" @@ -8405,6 +8776,13 @@ __metadata: languageName: node linkType: hard +"deep-equal@npm:~1.0.1": + version: 1.0.1 + resolution: "deep-equal@npm:1.0.1" + checksum: 5af8cbfcebf190491878a498caccc7dc9592f8ebd1685b976eacc3825619d222b5e929923163b92c4f414494e2b884f7ebf00c022e8198e8292deb70dd9785f4 + languageName: node + linkType: hard + "deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -8497,14 +8875,21 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0": +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"depd@npm:2.0.0, depd@npm:~2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a languageName: node linkType: hard -"depd@npm:~1.1.2": +"depd@npm:^1.1.2, depd@npm:~1.1.2": version: 1.1.2 resolution: "depd@npm:1.1.2" checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 @@ -8535,7 +8920,7 @@ __metadata: languageName: node linkType: hard -"destroy@npm:1.2.0": +"destroy@npm:1.2.0, destroy@npm:^1.0.4": version: 1.2.0 resolution: "destroy@npm:1.2.0" checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 @@ -8816,7 +9201,7 @@ __metadata: languageName: node linkType: hard -"encodeurl@npm:~1.0.2": +"encodeurl@npm:^1.0.2, encodeurl@npm:~1.0.2": version: 1.0.2 resolution: "encodeurl@npm:1.0.2" checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c @@ -8879,6 +9264,13 @@ __metadata: languageName: node linkType: hard +"error-inject@npm:^1.0.0": + version: 1.0.0 + resolution: "error-inject@npm:1.0.0" + checksum: 258cb26c7c7e04d9b730d074926ff5e18755b6945781540fdd124cafc5015610d97e4b971eb3226469f407fd34fa899a60fbcf9ade8923ab42fa2a3c61e246cf + languageName: node + linkType: hard + "error-stack-parser@npm:^2.0.6": version: 2.1.4 resolution: "error-stack-parser@npm:2.1.4" @@ -9145,6 +9537,86 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.21.0": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": 0.21.5 + "@esbuild/android-arm": 0.21.5 + "@esbuild/android-arm64": 0.21.5 + "@esbuild/android-x64": 0.21.5 + "@esbuild/darwin-arm64": 0.21.5 + "@esbuild/darwin-x64": 0.21.5 + "@esbuild/freebsd-arm64": 0.21.5 + "@esbuild/freebsd-x64": 0.21.5 + "@esbuild/linux-arm": 0.21.5 + "@esbuild/linux-arm64": 0.21.5 + "@esbuild/linux-ia32": 0.21.5 + "@esbuild/linux-loong64": 0.21.5 + "@esbuild/linux-mips64el": 0.21.5 + "@esbuild/linux-ppc64": 0.21.5 + "@esbuild/linux-riscv64": 0.21.5 + "@esbuild/linux-s390x": 0.21.5 + "@esbuild/linux-x64": 0.21.5 + "@esbuild/netbsd-x64": 0.21.5 + "@esbuild/openbsd-x64": 0.21.5 + "@esbuild/sunos-x64": 0.21.5 + "@esbuild/win32-arm64": 0.21.5 + "@esbuild/win32-ia32": 0.21.5 + "@esbuild/win32-x64": 0.21.5 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 2911c7b50b23a9df59a7d6d4cdd3a4f85855787f374dce751148dbb13305e0ce7e880dde1608c2ab7a927fc6cec3587b80995f7fc87a64b455f8b70b55fd8ec1 + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" @@ -9152,7 +9624,7 @@ __metadata: languageName: node linkType: hard -"escape-html@npm:~1.0.3": +"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 @@ -9646,6 +10118,15 @@ __metadata: languageName: node linkType: hard +"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": + version: 2.0.2 + resolution: "expand-tilde@npm:2.0.2" + dependencies: + homedir-polyfill: ^1.0.1 + checksum: 2efe6ed407d229981b1b6ceb552438fbc9e5c7d6a6751ad6ced3e0aa5cf12f0b299da695e90d6c2ac79191b5c53c613e508f7149e4573abfbb540698ddb7301a + languageName: node + linkType: hard + "expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" @@ -9863,6 +10344,24 @@ __metadata: languageName: node linkType: hard +"find-file-up@npm:^2.0.1": + version: 2.0.1 + resolution: "find-file-up@npm:2.0.1" + dependencies: + resolve-dir: ^1.0.1 + checksum: dfe820bfb80e75bed5dd5080057858c0ad2393e1438c48a3bb682663e9ecdcfbe3224ed4768bfedd00776800b4ae76bc8953d250d15ae3feabf381d2c6d04268 + languageName: node + linkType: hard + +"find-pkg@npm:2.0.0": + version: 2.0.0 + resolution: "find-pkg@npm:2.0.0" + dependencies: + find-file-up: ^2.0.1 + checksum: 44785204c8bbbdfeaece6b834ba81a35163421c30e20f531281d26e6b5890663d7ac884b82a9aebf6ce23e479336cd6f70ea5597da35495c16abdeba2fd4f845 + languageName: node + linkType: hard + "find-root@npm:^1.1.0": version: 1.1.0 resolution: "find-root@npm:1.1.0" @@ -9910,14 +10409,14 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.2.9": +"flatted@npm:^3.2.7, flatted@npm:^3.2.9": version: 3.3.1 resolution: "flatted@npm:3.3.1" checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 languageName: node linkType: hard -"follow-redirects@npm:^1.0.0": +"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.6": version: 1.15.6 resolution: "follow-redirects@npm:1.15.6" peerDependenciesMeta: @@ -10025,7 +10524,7 @@ __metadata: languageName: node linkType: hard -"fresh@npm:0.5.2": +"fresh@npm:0.5.2, fresh@npm:~0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346 @@ -10039,6 +10538,18 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:9.1.0, fs-extra@npm:^9.0.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: ^1.0.0 + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 + languageName: node + linkType: hard + "fs-extra@npm:^10.0.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" @@ -10072,18 +10583,6 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^9.0.0": - version: 9.1.0 - resolution: "fs-extra@npm:9.1.0" - dependencies: - at-least-node: ^1.0.0 - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 - languageName: node - linkType: hard - "fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -10355,6 +10854,17 @@ __metadata: languageName: node linkType: hard +"global-modules@npm:^1.0.0": + version: 1.0.0 + resolution: "global-modules@npm:1.0.0" + dependencies: + global-prefix: ^1.0.1 + is-windows: ^1.0.1 + resolve-dir: ^1.0.0 + checksum: 10be68796c1e1abc1e2ba87ec4ea507f5629873b119ab0cd29c07284ef2b930f1402d10df01beccb7391dedd9cd479611dd6a24311c71be58937beaf18edf85e + languageName: node + linkType: hard + "global-modules@npm:^2.0.0": version: 2.0.0 resolution: "global-modules@npm:2.0.0" @@ -10364,6 +10874,19 @@ __metadata: languageName: node linkType: hard +"global-prefix@npm:^1.0.1": + version: 1.0.2 + resolution: "global-prefix@npm:1.0.2" + dependencies: + expand-tilde: ^2.0.2 + homedir-polyfill: ^1.0.1 + ini: ^1.3.4 + is-windows: ^1.0.1 + which: ^1.2.14 + checksum: 061b43470fe498271bcd514e7746e8a8535032b17ab9570517014ae27d700ff0dca749f76bbde13ba384d185be4310d8ba5712cb0e74f7d54d59390db63dd9a0 + languageName: node + linkType: hard + "global-prefix@npm:^3.0.0": version: 3.0.0 resolution: "global-prefix@npm:3.0.0" @@ -10692,6 +11215,15 @@ __metadata: languageName: node linkType: hard +"homedir-polyfill@npm:^1.0.1": + version: 1.0.3 + resolution: "homedir-polyfill@npm:1.0.3" + dependencies: + parse-passwd: ^1.0.0 + checksum: 18dd4db87052c6a2179d1813adea0c4bfcfa4f9996f0e226fefb29eb3d548e564350fa28ec46b0bf1fbc0a1d2d6922ceceb80093115ea45ff8842a4990139250 + languageName: node + linkType: hard + "hoopy@npm:^0.1.4": version: 0.1.4 resolution: "hoopy@npm:0.1.4" @@ -10800,6 +11332,16 @@ __metadata: languageName: node linkType: hard +"http-assert@npm:^1.3.0": + version: 1.5.0 + resolution: "http-assert@npm:1.5.0" + dependencies: + deep-equal: ~1.0.1 + http-errors: ~1.8.0 + checksum: 69c9b3c14cf8b2822916360a365089ce936c883c49068f91c365eccba5c141a9964d19fdda589150a480013bf503bf37d8936c732e9635819339e730ab0e7527 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -10827,6 +11369,19 @@ __metadata: languageName: node linkType: hard +"http-errors@npm:^1.6.3, http-errors@npm:~1.8.0": + version: 1.8.1 + resolution: "http-errors@npm:1.8.1" + dependencies: + depd: ~1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: ">= 1.5.0 < 2" + toidentifier: 1.0.1 + checksum: d3c7e7e776fd51c0a812baff570bdf06fe49a5dc448b700ab6171b1250e4cf7db8b8f4c0b133e4bfe2451022a5790c1ca6c2cae4094dedd6ac8304a1267f91d2 + languageName: node + linkType: hard + "http-errors@npm:~1.6.2": version: 1.6.3 resolution: "http-errors@npm:1.6.3" @@ -11656,6 +12211,13 @@ __metadata: languageName: node linkType: hard +"is-windows@npm:^1.0.1": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 + languageName: node + linkType: hard + "is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" @@ -11709,6 +12271,15 @@ __metadata: languageName: node linkType: hard +"isomorphic-ws@npm:5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 + languageName: node + linkType: hard + "istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": version: 3.2.2 resolution: "istanbul-lib-coverage@npm:3.2.2" @@ -12692,6 +13263,15 @@ __metadata: languageName: node linkType: hard +"keygrip@npm:~1.1.0": + version: 1.1.0 + resolution: "keygrip@npm:1.1.0" + dependencies: + tsscmp: 1.0.6 + checksum: 078cd16a463d187121f0a27c1c9c95c52ad392b620f823431689f345a0501132cee60f6e96914b07d570105af470b96960402accd6c48a0b1f3cd8fac4fa2cae + languageName: node + linkType: hard + "keyv@npm:^4.5.3": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -12722,6 +13302,64 @@ __metadata: languageName: node linkType: hard +"koa-compose@npm:^3.0.0": + version: 3.2.1 + resolution: "koa-compose@npm:3.2.1" + dependencies: + any-promise: ^1.1.0 + checksum: ff8e5fc0348455acf751179c6c613eb030a5fac6406d3b49ae9e00460b7ee8770db3ef62633fd3db0306cd4a6d2a0b5152399ebd5bb5e684418f9eeeb251c2de + languageName: node + linkType: hard + +"koa-compose@npm:^4.1.0": + version: 4.1.0 + resolution: "koa-compose@npm:4.1.0" + checksum: 46cb16792d96425e977c2ae4e5cb04930280740e907242ec9c25e3fb8b4a1d7b54451d7432bc24f40ec62255edea71894d2ceeb8238501842b4e48014f2e83db + languageName: node + linkType: hard + +"koa-convert@npm:^1.2.0": + version: 1.2.0 + resolution: "koa-convert@npm:1.2.0" + dependencies: + co: ^4.6.0 + koa-compose: ^3.0.0 + checksum: a33944dbda4ed87565985f5b37ba1122a012db872724b216b6fd8f9176d4bba42c4a9bf3c129330e45f6474d28f50ca0ed28d41b9bccd2ab5d36d6436cf0d676 + languageName: node + linkType: hard + +"koa@npm:2.11.0": + version: 2.11.0 + resolution: "koa@npm:2.11.0" + dependencies: + accepts: ^1.3.5 + cache-content-type: ^1.0.0 + content-disposition: ~0.5.2 + content-type: ^1.0.4 + cookies: ~0.8.0 + debug: ~3.1.0 + delegates: ^1.0.0 + depd: ^1.1.2 + destroy: ^1.0.4 + encodeurl: ^1.0.2 + error-inject: ^1.0.0 + escape-html: ^1.0.3 + fresh: ~0.5.2 + http-assert: ^1.3.0 + http-errors: ^1.6.3 + is-generator-function: ^1.0.7 + koa-compose: ^4.1.0 + koa-convert: ^1.2.0 + on-finished: ^2.3.0 + only: ~0.0.2 + parseurl: ^1.3.2 + statuses: ^1.5.0 + type-is: ^1.6.16 + vary: ^1.1.2 + checksum: b08e1aea03e70fe4ff6e35dee9f9e979e8608461ee1002f6e8dd72f45fc49404873888ea9a3aab2904e24bf43522df7c601033522f4151189e4055e87f94a979 + languageName: node + linkType: hard + "language-subtag-registry@npm:^0.3.20": version: 0.3.23 resolution: "language-subtag-registry@npm:0.3.23" @@ -12884,6 +13522,13 @@ __metadata: languageName: node linkType: hard +"lodash.clonedeepwith@npm:4.5.0": + version: 4.5.0 + resolution: "lodash.clonedeepwith@npm:4.5.0" + checksum: 9fbf4ebfa04b381df226a2298eba680327bea3d0d5d19c5118de7ae218fd219186e30e9fd0d33b13729f34ffbc83c1cf09cb27aff265ba94cb602b8a2b1e71c9 + languageName: node + linkType: hard + "lodash.debounce@npm:^4.0.8": version: 4.0.8 resolution: "lodash.debounce@npm:4.0.8" @@ -13020,6 +13665,26 @@ __metadata: languageName: node linkType: hard +"log4js@npm:6.9.1": + version: 6.9.1 + resolution: "log4js@npm:6.9.1" + dependencies: + date-format: ^4.0.14 + debug: ^4.3.4 + flatted: ^3.2.7 + rfdc: ^1.3.0 + streamroller: ^3.1.5 + checksum: 59d98c37d4163138dab5d9b06ae26965d1353106fece143973d57b1003b3a482791aa21374fd2cca81a953b8837b2f9756ac225404e60cbfa4dd3ab59f082e2e + languageName: node + linkType: hard + +"long-timeout@npm:0.1.1": + version: 0.1.1 + resolution: "long-timeout@npm:0.1.1" + checksum: 48668e5362cb74c4b77a6b833d59f149b9bb9e99c5a5097609807e2597cd0920613b2a42b89bd0870848298be3691064d95599a04ae010023d07dba39932afa7 + languageName: node + linkType: hard + "longest-streak@npm:^3.0.0": version: 3.1.0 resolution: "longest-streak@npm:3.1.0" @@ -13089,7 +13754,7 @@ __metadata: languageName: node linkType: hard -"luxon@npm:^3.0.0, luxon@npm:^3.4.1": +"luxon@npm:^3.0.0, luxon@npm:^3.2.1, luxon@npm:^3.4.1": version: 3.4.4 resolution: "luxon@npm:3.4.4" checksum: 36c1f99c4796ee4bfddf7dc94fa87815add43ebc44c8934c924946260a58512f0fd2743a629302885df7f35ccbd2d13f178c15df046d0e3b6eb71db178f1c60c @@ -13846,7 +14511,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.18, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -14295,6 +14960,17 @@ __metadata: languageName: node linkType: hard +"node-schedule@npm:2.1.1": + version: 2.1.1 + resolution: "node-schedule@npm:2.1.1" + dependencies: + cron-parser: ^4.2.0 + long-timeout: 0.1.1 + sorted-array-functions: ^1.3.0 + checksum: 6a8822b16fb024277c42efe710bdb35b6f1f6ab3a2f826283640511247d693f34ebd5ddf2863cd91609e7f323574e36c81cd2084dc204fa521f931380f0f963f + languageName: node + linkType: hard + "noms@npm:0.0.0": version: 0.0.0 resolution: "noms@npm:0.0.0" @@ -14515,7 +15191,7 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:2.4.1, on-finished@npm:^2.4.1": +"on-finished@npm:2.4.1, on-finished@npm:^2.3.0, on-finished@npm:^2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -14549,6 +15225,13 @@ __metadata: languageName: node linkType: hard +"only@npm:~0.0.2": + version: 0.0.2 + resolution: "only@npm:0.0.2" + checksum: d399710db867a1ef436dd3ce74499c87ece794aa81ab0370b5d153968766ee4aed2f98d3f92fc87c963e45b7a74d400d6f463ef651a5e7cfb861b15e88e9efe6 + languageName: node + linkType: hard + "open@npm:^10.0.3": version: 10.1.0 resolution: "open@npm:10.1.0" @@ -14802,6 +15485,13 @@ __metadata: languageName: node linkType: hard +"parse-passwd@npm:^1.0.0": + version: 1.0.0 + resolution: "parse-passwd@npm:1.0.0" + checksum: 4e55e0231d58f828a41d0f1da2bf2ff7bcef8f4cb6146e69d16ce499190de58b06199e6bd9b17fbf0d4d8aef9052099cdf8c4f13a6294b1a522e8e958073066e + languageName: node + linkType: hard + "parse-path@npm:^7.0.0": version: 7.0.0 resolution: "parse-path@npm:7.0.0" @@ -14829,7 +15519,7 @@ __metadata: languageName: node linkType: hard -"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": +"parseurl@npm:^1.3.2, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 @@ -15592,6 +16282,13 @@ __metadata: languageName: node linkType: hard +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: ed7fcc2ba0a33404958e34d95d18638249a68c430e30fcb6c478497d72739ba64ce9810a24f53a7d921d0c065e5b78e3822759800698167256b04659366ca4d4 + languageName: node + linkType: hard + "psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" @@ -15687,6 +16384,13 @@ __metadata: languageName: node linkType: hard +"rambda@npm:^9.1.0": + version: 9.2.1 + resolution: "rambda@npm:9.2.1" + checksum: d877b61f2c1e8a1878ca1e40a181702b360f6c3978bf0e55e62315a1aa215863b7ecb8f00077e2bc0f1ca0d455387fafd7a84b5c8dd004eb3cf071b15827cff7 + languageName: node + linkType: hard + "randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -16404,6 +17108,16 @@ __metadata: languageName: node linkType: hard +"resolve-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1": + version: 1.0.1 + resolution: "resolve-dir@npm:1.0.1" + dependencies: + expand-tilde: ^2.0.0 + global-modules: ^1.0.0 + checksum: ef736b8ed60d6645c3b573da17d329bfb50ec4e1d6c5ffd6df49e3497acef9226f9810ea6823b8ece1560e01dcb13f77a9f6180d4f242d00cc9a8f4de909c65c + languageName: node + linkType: hard + "resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": version: 5.0.0 resolution: "resolve-from@npm:5.0.0" @@ -16441,7 +17155,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4": +"resolve@npm:1.22.8, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -16467,7 +17181,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.4#~builtin": +"resolve@patch:resolve@1.22.8#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.4#~builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -16524,6 +17238,13 @@ __metadata: languageName: node linkType: hard +"rfdc@npm:^1.3.0": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 3b05bd55062c1d78aaabfcea43840cdf7e12099968f368e9a4c3936beb744adb41cbdb315eac6d4d8c6623005d6f87fdf16d8a10e1ff3722e84afea7281c8d13 + languageName: node + linkType: hard + "rifm@npm:^0.7.0": version: 0.7.0 resolution: "rifm@npm:0.7.0" @@ -17193,6 +17914,13 @@ __metadata: languageName: node linkType: hard +"sorted-array-functions@npm:^1.3.0": + version: 1.3.0 + resolution: "sorted-array-functions@npm:1.3.0" + checksum: 673fd39ca3b6c92644d4483eac1700bb7d7555713a536822a7522a35af559bef3e72f10d89356b75042dc394cd7c2e2ab6f40024385218ec3c85bb7335032857 + languageName: node + linkType: hard + "source-list-map@npm:^2.0.0": version: 2.0.1 resolution: "source-list-map@npm:2.0.1" @@ -17431,7 +18159,7 @@ __metadata: languageName: node linkType: hard -"statuses@npm:>= 1.4.0 < 2": +"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:^1.5.0": version: 1.5.0 resolution: "statuses@npm:1.5.0" checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c @@ -17477,6 +18205,17 @@ __metadata: languageName: node linkType: hard +"streamroller@npm:^3.1.5": + version: 3.1.5 + resolution: "streamroller@npm:3.1.5" + dependencies: + date-format: ^4.0.14 + debug: ^4.3.4 + fs-extra: ^8.1.0 + checksum: c1df5612b785ffa4b6bbf16460590b62994c57265bc55a5166eebeeb0daf648e84bc52dc6d57e0cd4e5c7609bda93076753c63ff54589febd1e0b95590f0e443 + languageName: node + linkType: hard + "strict-event-emitter@npm:^0.2.4": version: 0.2.8 resolution: "strict-event-emitter@npm:0.2.8" @@ -18260,6 +18999,13 @@ __metadata: languageName: node linkType: hard +"tsscmp@npm:1.0.6": + version: 1.0.6 + resolution: "tsscmp@npm:1.0.6" + checksum: 1512384def36bccc9125cabbd4c3b0e68608d7ee08127ceaa0b84a71797263f1a01c7f82fa69be8a3bd3c1396e2965d2f7b52d581d3a5eeaf3967fbc52e3b3bf + languageName: node + linkType: hard + "tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" @@ -18352,7 +19098,7 @@ __metadata: languageName: node linkType: hard -"type-is@npm:~1.6.18": +"type-is@npm:^1.6.16, type-is@npm:~1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" dependencies: @@ -18698,6 +19444,13 @@ __metadata: languageName: node linkType: hard +"upath@npm:2.0.1": + version: 2.0.1 + resolution: "upath@npm:2.0.1" + checksum: 2db04f24a03ef72204c7b969d6991abec9e2cb06fb4c13a1fd1c59bc33b46526b16c3325e55930a11ff86a77a8cbbcda8f6399bf914087028c5beae21ecdb33c + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.0.16": version: 1.0.16 resolution: "update-browserslist-db@npm:1.0.16" @@ -18945,7 +19698,7 @@ __metadata: languageName: node linkType: hard -"vary@npm:~1.1.2": +"vary@npm:^1.1.2, vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b @@ -19293,7 +20046,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^1.3.1": +"which@npm:^1.2.14, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" dependencies: @@ -19390,6 +20143,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:8.17.0": + version: 8.17.0 + resolution: "ws@npm:8.17.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 147ef9eab0251364e1d2c55338ad0efb15e6913923ccbfdf20f7a8a6cb8f88432bcd7f4d8f66977135bfad35575644f9983201c1a361019594a4e53977bf6d4e + languageName: node + linkType: hard + "ws@npm:^8.11.0, ws@npm:^8.16.0": version: 8.17.1 resolution: "ws@npm:8.17.1" @@ -19507,6 +20275,13 @@ __metadata: languageName: node linkType: hard +"ylru@npm:^1.2.0": + version: 1.4.0 + resolution: "ylru@npm:1.4.0" + checksum: e0bf797476487e3d57a6e8790cbb749cff2089e2afc87e46bc84ce7605c329d578ff422c8e8c2ddf167681ddd218af0f58e099733ae1044cba9e9472ebedc01d + languageName: node + linkType: hard + "yml-loader@npm:^2.1.0": version: 2.1.0 resolution: "yml-loader@npm:2.1.0" From ce41f10435ddc67bfdeb6c8c1e5d18f403bea942 Mon Sep 17 00:00:00 2001 From: Tiago Barbosa Date: Wed, 24 Jul 2024 23:36:11 +0100 Subject: [PATCH 3/7] feat: adding support for persisting settings Signed-off-by: Tiago Barbosa --- dev/mockPagerDutyApi.ts | 9 +++++ src/api/client.test.ts | 79 ++++++++++++++++++++++++++++++++++++++++- src/api/client.ts | 30 +++++++++++++++- src/api/types.ts | 13 ++++++- 4 files changed, 128 insertions(+), 3 deletions(-) diff --git a/dev/mockPagerDutyApi.ts b/dev/mockPagerDutyApi.ts index d227943..9d13c83 100644 --- a/dev/mockPagerDutyApi.ts +++ b/dev/mockPagerDutyApi.ts @@ -23,6 +23,15 @@ import { Entity } from '@backstage/catalog-model'; import { v4 as uuidv4 } from 'uuid'; export const mockPagerDutyApi: PagerDutyApi = { + async getSetting(id: string) { + return { + id: id, + value: 'backstage', + }; + }, + async storeSettings(settings) { + return new Response(JSON.stringify(settings)); + }, async getEntityMappings() { return { mappings: [ diff --git a/src/api/client.test.ts b/src/api/client.test.ts index 4897e26..3cef808 100644 --- a/src/api/client.test.ts +++ b/src/api/client.test.ts @@ -16,7 +16,7 @@ import { MockFetchApi } from '@backstage/test-utils'; import { DiscoveryApi } from '@backstage/core-plugin-api'; import { PagerDutyClient, UnauthorizedError } from './client'; -import { PagerDutyService } from '@pagerduty/backstage-plugin-common'; +import { PagerDutyService, PagerDutySetting } from '@pagerduty/backstage-plugin-common'; import { NotFoundError } from '@backstage/errors'; import { Entity } from '@backstage/catalog-model'; @@ -365,3 +365,80 @@ describe('PagerDutyClient', () => { }); }); }); +describe('getSetting', () => { + const settingId = 'settingId'; + const setting: PagerDutySetting = { + id: settingId, + value: 'disabled', + }; + + beforeEach(() => { + mockFetch.mockResolvedValueOnce({ + status: 200, + ok: true, + json: () => Promise.resolve(setting), + }); + }); + + it('should fetch the setting by ID', async () => { + const result = await client.getSetting(settingId); + + expect(result).toEqual(setting); + expect(mockFetch).toHaveBeenCalledWith( + 'http://localhost:7007/pagerduty/settings/settingId', + requestHeaders, + ); + }); + + describe('storeSettings', () => { + const settings: PagerDutySetting[] = [ + { + id: 'setting1', + value: 'disabled', + }, + { + id: 'setting2', + value: 'backstage', + }, + ]; + + beforeEach(() => { + mockFetch.mockReset(); + }); + + it('should send a POST request to the correct URL with the settings', async () => { + const response = new Response(null, { status: 200 }); + mockFetch.mockResolvedValueOnce(response); + + const expectedUrl = 'http://localhost:7007/pagerduty/settings'; + const expectedOptions = { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=UTF-8', + Accept: 'application/json, text/plain, */*', + }, + body: JSON.stringify(settings), + }; + + await expect(client.storeSettings(settings)).resolves.toEqual(response); + expect(mockFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions); + }); + + it('should throw an error if the request fails', async () => { + const errorResponse = { + status: 500, + ok: false, + json: () => + Promise.resolve({ + errors: ['Internal server error'], + }), + }; + mockFetch.mockResolvedValueOnce(errorResponse); + + await expect(client.storeSettings(settings)).rejects.toThrow( + 'Request failed with 500, Internal server error', + ); + }); + }); + +}); \ No newline at end of file diff --git a/src/api/client.ts b/src/api/client.ts index efca3d4..76104dd 100644 --- a/src/api/client.ts +++ b/src/api/client.ts @@ -28,7 +28,8 @@ import { PagerDutyChangeEventsResponse, PagerDutyIncidentsResponse, PagerDutyServiceStandardsResponse, PagerDutyServiceMetricsResponse, - PagerDutyEntityMappingsResponse + PagerDutyEntityMappingsResponse, + PagerDutySetting } from '@pagerduty/backstage-plugin-common'; import { createApiRef, ConfigApi } from '@backstage/core-plugin-api'; import { NotFoundError } from '@backstage/errors'; @@ -106,6 +107,33 @@ export class PagerDutyClient implements PagerDutyApi { return response; } + async getSetting(id: string): Promise { + const url = `${await this.config.discoveryApi.getBaseUrl( + 'pagerduty', + )}/settings/${id}`; + + return await this.findByUrl(url); + } + + async storeSettings(settings: PagerDutySetting[]): Promise { + const body = JSON.stringify(settings); + + const options = { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=UTF-8', + Accept: 'application/json, text/plain, */*', + }, + body, + }; + + const url = `${await this.config.discoveryApi.getBaseUrl( + 'pagerduty', + )}/settings`; + + return this.request(url, options); + } + async getEntityMappings(): Promise { const url = `${await this.config.discoveryApi.getBaseUrl( 'pagerduty', diff --git a/src/api/types.ts b/src/api/types.ts index b31b843..1a0fa82 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -22,7 +22,8 @@ import { PagerDutyChangeEventsResponse, PagerDutyServiceMetricsResponse, PagerDutyServiceStandards, PagerDutyServiceMetrics, - PagerDutyEntityMappingsResponse + PagerDutyEntityMappingsResponse, + PagerDutySetting } from '@pagerduty/backstage-plugin-common'; import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; @@ -52,6 +53,16 @@ export type PagerDutyCardServiceResponse = { /** @public */ export interface PagerDutyApi { + /** + * Fetches PagerDuty setting from store. + * + */ + getSetting(id: string): Promise; + /** + * Stores PagerDuty setting in the database. + * + */ + storeSettings(settings: PagerDutySetting[]): Promise; /** * Fetches all entity mappings. * From 7656de3141ab8356db7c6afe4b206616f3470314 Mon Sep 17 00:00:00 2001 From: Tiago Barbosa Date: Wed, 24 Jul 2024 23:36:59 +0100 Subject: [PATCH 4/7] feat: update to PagerDutyPage to add support for configurations such as settings Signed-off-by: Tiago Barbosa --- src/api/client.test.ts | 1 + src/components/PagerDutyPage/index.tsx | 168 ++++++++++++++++++++++--- 2 files changed, 152 insertions(+), 17 deletions(-) diff --git a/src/api/client.test.ts b/src/api/client.test.ts index 3cef808..c2803bd 100644 --- a/src/api/client.test.ts +++ b/src/api/client.test.ts @@ -365,6 +365,7 @@ describe('PagerDutyClient', () => { }); }); }); + describe('getSetting', () => { const settingId = 'settingId'; const setting: PagerDutySetting = { diff --git a/src/components/PagerDutyPage/index.tsx b/src/components/PagerDutyPage/index.tsx index df7b0ee..64e4d42 100644 --- a/src/components/PagerDutyPage/index.tsx +++ b/src/components/PagerDutyPage/index.tsx @@ -1,28 +1,162 @@ -import React from "react"; -import { Grid, Typography } from "@material-ui/core"; -import { Header, Page, Content } from "@backstage/core-components"; +import React, { useEffect, useState } from "react"; +import { + Card, + FormControlLabel, + Grid, + Radio, + RadioGroup, + Typography, +} from "@material-ui/core"; +import { + Header, + Page, + Content, + TabbedLayout, +} from "@backstage/core-components"; import { ServiceMappingComponent } from "./ServiceMappingComponent"; +import { useApi } from "@backstage/core-plugin-api"; +import { pagerDutyApiRef } from "../../api"; +import { NotFoundError } from "@backstage/errors"; + +const SERVICE_DEPENDENCY_SYNC_STRATEGY = + "settings::service-dependency-sync-strategy"; /** @public */ export const PagerDutyPage = () => { + const pagerDutyApi = useApi(pagerDutyApiRef); + const [ + selectedServiceDependencyStrategy, + setSelectedServiceDependencyStrategy, + ] = useState("disabled"); + + useEffect(() => { + function fetchSetting() { + pagerDutyApi + .getSetting(SERVICE_DEPENDENCY_SYNC_STRATEGY) + .then((result) => { + if (result !== undefined) { + setSelectedServiceDependencyStrategy(result.value); + } + }) + .catch((error) => { + if (error instanceof NotFoundError) { + // If the setting is not found, set the default value to "disabled" + setSelectedServiceDependencyStrategy("disabled"); + } + }); + } + + fetchSetting(); + }, [pagerDutyApi]); + + const handleChange = (event: React.ChangeEvent) => { + const value = getSelectedValue((event.target as HTMLInputElement).value); + + setSelectedServiceDependencyStrategy(value); + + pagerDutyApi.storeSettings([ + { + id: SERVICE_DEPENDENCY_SYNC_STRATEGY, + value, + }, + ]); + }; + + function getSelectedValue( + value: string + ): "backstage" | "pagerduty" | "both" | "disabled" { + switch (value) { + case "backstage": + return "backstage"; + case "pagerduty": + return "pagerduty"; + case "both": + return "both"; + default: + return "disabled"; + } + } + return (
- - - Service to Entity mapping - - Easily map your existing PagerDuty services to entities in Backstage without the need to add anotations to all your projects. - - - Warning: Only 1:1 mapping is allowed at this time. - - - - - - + + + + + {/* Service to Entity mapping */} + + Easily map your existing PagerDuty services to entities in + Backstage without the need to add anotations to all your + projects. + + + Warning: Only 1:1 mapping is allowed at this time. + + + + + + + + + + + Plugin configuration + + Configure your PagerDuty plugin configuration here + + + + <> + + Service dependency synchronization strategy + + + Select the main source of truth for your service dependencies + + + } + label="Backstage" + /> + } + label="PagerDuty" + /> + } + label="Both" + /> + } + label="Disabled" + /> + + + +
+
+ + Warning: Changing this setting will affect how your + service dependencies are synchronized and may cause data loss. + Check the documentation for more information. + +
+
+
+
); From ea73457fd239e0f7beefdc532b65b4bb17049cf2 Mon Sep 17 00:00:00 2001 From: Tiago Barbosa Date: Wed, 24 Jul 2024 23:55:13 +0100 Subject: [PATCH 5/7] chore: update to latest version of pagerduty/backstage-plugin-common Signed-off-by: Tiago Barbosa --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bc1809d..b707e05 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "@mui/icons-material": "^5.15.19", "@mui/material": "^5.15.19", "@mui/x-date-pickers": "^7.6.1", - "@pagerduty/backstage-plugin-common": "0.2.1-next.5", + "@pagerduty/backstage-plugin-common": "0.2.1", "@tanstack/react-query": "^5.40.1", "classnames": "^2.2.6", "luxon": "^3.4.1", diff --git a/yarn.lock b/yarn.lock index dd81e74..9567df5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4393,10 +4393,10 @@ __metadata: languageName: node linkType: hard -"@pagerduty/backstage-plugin-common@npm:0.2.1-next.5": - version: 0.2.1-next.5 - resolution: "@pagerduty/backstage-plugin-common@npm:0.2.1-next.5" - checksum: 6f36a9313c82edd04fb3c6a452b565b0a464c5631c1546a4ecfaf5aab313bd79b48162fad160f6d44e85bdd299b12eb6cd13c000ba63dbfae05637c755ae6ad9 +"@pagerduty/backstage-plugin-common@npm:0.2.1": + version: 0.2.1 + resolution: "@pagerduty/backstage-plugin-common@npm:0.2.1" + checksum: 76233c2162d8e7bd3479e13652042cf949911be065f0bf92c5823cbc03c122b8ff49938ca36ab8449da800de7dd9c85724f70e3ff5323e77ef879478394115c9 languageName: node linkType: hard @@ -4425,7 +4425,7 @@ __metadata: "@mui/icons-material": ^5.15.19 "@mui/material": ^5.15.19 "@mui/x-date-pickers": ^7.6.1 - "@pagerduty/backstage-plugin-common": 0.2.1-next.5 + "@pagerduty/backstage-plugin-common": 0.2.1 "@tanstack/react-query": ^5.40.1 "@testing-library/dom": ^8.0.0 "@testing-library/jest-dom": ^5.10.1 From 282ef57f260cfb79a9207067d4be8a02b389f294 Mon Sep 17 00:00:00 2001 From: Tiago Barbosa Date: Thu, 25 Jul 2024 16:02:06 +0100 Subject: [PATCH 6/7] fix: turned columnvisibility into a static object Signed-off-by: Tiago Barbosa --- src/components/PagerDutyPage/MappingTable.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/components/PagerDutyPage/MappingTable.tsx b/src/components/PagerDutyPage/MappingTable.tsx index 9047159..97e95e6 100644 --- a/src/components/PagerDutyPage/MappingTable.tsx +++ b/src/components/PagerDutyPage/MappingTable.tsx @@ -97,6 +97,7 @@ export const MappingTable = ({ const columns = useMemo[]>( () => [ { + id: "serviceId", accessorKey: "serviceId", header: "Service ID", visibleInShowHideMenu: false, @@ -109,6 +110,7 @@ export const MappingTable = ({ ), }, { + id: "integrationKey", accessorKey: "integrationKey", header: "Integration Key", visibleInShowHideMenu: false, @@ -116,27 +118,32 @@ export const MappingTable = ({ Edit: () => null, }, { + id: "serviceName", accessorKey: "serviceName", header: "PagerDuty Service", enableEditing: false, }, { + id: "account", accessorKey: "account", header: "Account", enableEditing: false, Edit: () => null, }, { + id: "team", accessorKey: "team", header: "Team", enableEditing: false, }, { + id: "escalationPolicy", accessorKey: "escalationPolicy", header: "Escalation Policy", enableEditing: false, }, { + id: "entityRef", accessorKey: "entityRef", header: "Mapping", visibleInShowHideMenu: false, @@ -151,12 +158,14 @@ export const MappingTable = ({ }, }, { + id: "entityName", accessorKey: "entityName", header: "Mapped Entity Name", enableEditing: false, Edit: () => null, }, { + id: "status", accessorKey: "status", header: "Status", enableEditing: false, @@ -174,6 +183,7 @@ export const MappingTable = ({ ), }, { + id: "serviceUrl", accessorKey: "serviceUrl", header: "Service URL", visibleInShowHideMenu: false, @@ -297,6 +307,8 @@ export const MappingTable = ({ showAlertBanner: mappings === undefined || catalogEntities === undefined, showProgressBars: mappings.length === 0 || catalogEntities.length === 0, + }, + initialState: { columnVisibility: { serviceId: false, entityRef: false, From f7f22247327ea21d89aa492c5de0bcb12409ea77 Mon Sep 17 00:00:00 2001 From: Tiago Barbosa Date: Fri, 26 Jul 2024 00:25:38 +0100 Subject: [PATCH 7/7] refactor: disabled pagerduty option on PagerDutyPage due to a design limitation on Backstage Signed-off-by: Tiago Barbosa --- src/components/PagerDutyPage/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/PagerDutyPage/index.tsx b/src/components/PagerDutyPage/index.tsx index 64e4d42..f7c0b5b 100644 --- a/src/components/PagerDutyPage/index.tsx +++ b/src/components/PagerDutyPage/index.tsx @@ -132,6 +132,7 @@ export const PagerDutyPage = () => { value="pagerduty" control={} label="PagerDuty" + disabled />