Merge branch 'master' into feature/EKSCatalog

Signed-off-by: Jonah Back <jonah@jonahback.com>
This commit is contained in:
Jonah Back
2022-07-05 10:26:19 -07:00
597 changed files with 17151 additions and 4035 deletions
+17
View File
@@ -1,5 +1,22 @@
# @backstage/app-defaults
## 1.0.4-next.2
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.10.0-next.2
- @backstage/theme@0.2.16-next.1
## 1.0.4-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.9.6-next.1
- @backstage/theme@0.2.16-next.0
- @backstage/plugin-permission-react@0.4.3-next.0
## 1.0.4-next.0
### Patch Changes
+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/app-defaults",
"description": "Provides the default wiring of a Backstage App",
"version": "1.0.4-next.0",
"version": "1.0.4-next.2",
"private": false,
"publishConfig": {
"access": "public",
@@ -33,11 +33,11 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/core-components": "^0.9.6-next.0",
"@backstage/core-components": "^0.10.0-next.2",
"@backstage/core-app-api": "^1.0.4-next.0",
"@backstage/core-plugin-api": "^1.0.3",
"@backstage/plugin-permission-react": "^0.4.2",
"@backstage/theme": "^0.2.15",
"@backstage/plugin-permission-react": "^0.4.3-next.0",
"@backstage/theme": "^0.2.16-next.1",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"react-router-dom": "6.0.0-beta.0"
@@ -46,8 +46,8 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/cli": "^0.18.0-next.2",
"@backstage/test-utils": "^1.1.2-next.1",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@types/jest": "^26.0.7",
+112
View File
@@ -1,5 +1,117 @@
# example-app
## 0.2.73-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-cost-insights@0.11.29-next.2
- @backstage/core-components@0.10.0-next.2
- @backstage/plugin-scaffolder@1.4.0-next.2
- @backstage/plugin-jenkins@0.7.6-next.2
- @backstage/catalog-model@1.1.0-next.2
- @backstage/plugin-search-react@0.2.2-next.2
- @backstage/theme@0.2.16-next.1
- @backstage/plugin-catalog-import@0.8.10-next.2
- @backstage/plugin-techdocs@1.2.1-next.2
- @backstage/plugin-techdocs-module-addons-contrib@1.0.2-next.2
- @backstage/plugin-api-docs@0.8.7-next.2
- @backstage/plugin-catalog@1.4.0-next.2
- @backstage/cli@0.18.0-next.2
- @backstage/plugin-catalog-react@1.1.2-next.2
- @backstage/app-defaults@1.0.4-next.2
- @backstage/integration-react@1.1.2-next.2
- @backstage/plugin-airbrake@0.3.7-next.2
- @backstage/plugin-apache-airflow@0.2.0-next.2
- @backstage/plugin-azure-devops@0.1.23-next.2
- @backstage/plugin-badges@0.2.31-next.2
- @backstage/plugin-catalog-graph@0.2.19-next.2
- @backstage/plugin-circleci@0.3.7-next.2
- @backstage/plugin-cloudbuild@0.3.7-next.2
- @backstage/plugin-code-coverage@0.1.34-next.2
- @backstage/plugin-dynatrace@0.1.1-next.2
- @backstage/plugin-explore@0.3.38-next.2
- @backstage/plugin-gcalendar@0.3.3-next.2
- @backstage/plugin-gcp-projects@0.3.26-next.2
- @backstage/plugin-github-actions@0.5.7-next.2
- @backstage/plugin-gocd@0.1.13-next.2
- @backstage/plugin-graphiql@0.2.39-next.2
- @backstage/plugin-home@0.4.23-next.2
- @backstage/plugin-kafka@0.3.7-next.2
- @backstage/plugin-kubernetes@0.6.7-next.2
- @backstage/plugin-lighthouse@0.3.7-next.2
- @backstage/plugin-newrelic@0.3.25-next.2
- @backstage/plugin-newrelic-dashboard@0.1.15-next.2
- @backstage/plugin-org@0.5.7-next.2
- @backstage/plugin-pagerduty@0.5.0-next.2
- @backstage/plugin-rollbar@0.4.7-next.2
- @backstage/plugin-search@0.9.1-next.2
- @backstage/plugin-sentry@0.3.45-next.2
- @backstage/plugin-shortcuts@0.2.8-next.2
- @backstage/plugin-stack-overflow@0.1.3-next.2
- @backstage/plugin-tech-insights@0.2.3-next.2
- @backstage/plugin-tech-radar@0.5.14-next.2
- @backstage/plugin-techdocs-react@1.0.2-next.1
- @backstage/plugin-todo@0.2.9-next.2
- @backstage/plugin-user-settings@0.4.6-next.2
## 0.2.73-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.9.6-next.1
- @backstage/cli@0.18.0-next.1
- @backstage/plugin-apache-airflow@0.2.0-next.1
- @backstage/catalog-model@1.1.0-next.1
- @backstage/plugin-search@0.9.1-next.1
- @backstage/plugin-org@0.5.7-next.1
- @backstage/plugin-catalog@1.3.1-next.1
- @backstage/plugin-home@0.4.23-next.1
- @backstage/plugin-stack-overflow@0.1.3-next.1
- @backstage/theme@0.2.16-next.0
- @backstage/plugin-techdocs@1.2.1-next.1
- @backstage/app-defaults@1.0.4-next.1
- @backstage/integration-react@1.1.2-next.1
- @backstage/plugin-airbrake@0.3.7-next.1
- @backstage/plugin-api-docs@0.8.7-next.1
- @backstage/plugin-azure-devops@0.1.23-next.1
- @backstage/plugin-badges@0.2.31-next.1
- @backstage/plugin-catalog-common@1.0.4-next.0
- @backstage/plugin-catalog-graph@0.2.19-next.1
- @backstage/plugin-catalog-import@0.8.10-next.1
- @backstage/plugin-catalog-react@1.1.2-next.1
- @backstage/plugin-circleci@0.3.7-next.1
- @backstage/plugin-cloudbuild@0.3.7-next.1
- @backstage/plugin-code-coverage@0.1.34-next.1
- @backstage/plugin-cost-insights@0.11.29-next.1
- @backstage/plugin-dynatrace@0.1.1-next.1
- @backstage/plugin-explore@0.3.38-next.1
- @backstage/plugin-gcalendar@0.3.3-next.1
- @backstage/plugin-gcp-projects@0.3.26-next.1
- @backstage/plugin-github-actions@0.5.7-next.1
- @backstage/plugin-gocd@0.1.13-next.1
- @backstage/plugin-graphiql@0.2.39-next.1
- @backstage/plugin-jenkins@0.7.6-next.1
- @backstage/plugin-kafka@0.3.7-next.1
- @backstage/plugin-kubernetes@0.6.7-next.1
- @backstage/plugin-lighthouse@0.3.7-next.1
- @backstage/plugin-newrelic@0.3.25-next.1
- @backstage/plugin-newrelic-dashboard@0.1.15-next.1
- @backstage/plugin-pagerduty@0.5.0-next.1
- @backstage/plugin-permission-react@0.4.3-next.0
- @backstage/plugin-rollbar@0.4.7-next.1
- @backstage/plugin-scaffolder@1.4.0-next.1
- @backstage/plugin-search-common@0.3.6-next.0
- @backstage/plugin-sentry@0.3.45-next.1
- @backstage/plugin-shortcuts@0.2.8-next.1
- @backstage/plugin-tech-insights@0.2.3-next.1
- @backstage/plugin-tech-radar@0.5.14-next.1
- @backstage/plugin-techdocs-module-addons-contrib@1.0.2-next.1
- @backstage/plugin-todo@0.2.9-next.1
- @backstage/plugin-user-settings@0.4.6-next.1
- @backstage/plugin-search-react@0.2.2-next.1
## 0.2.73-next.0
### Patch Changes
+54 -54
View File
@@ -1,67 +1,67 @@
{
"name": "example-app",
"version": "0.2.73-next.0",
"version": "0.2.73-next.2",
"private": true,
"backstage": {
"role": "frontend"
},
"bundled": true,
"dependencies": {
"@backstage/app-defaults": "^1.0.4-next.0",
"@backstage/catalog-model": "^1.1.0-next.0",
"@backstage/cli": "^0.17.3-next.0",
"@backstage/app-defaults": "^1.0.4-next.2",
"@backstage/catalog-model": "^1.1.0-next.2",
"@backstage/cli": "^0.18.0-next.2",
"@backstage/config": "^1.0.1",
"@backstage/core-app-api": "^1.0.4-next.0",
"@backstage/core-components": "^0.9.6-next.0",
"@backstage/core-components": "^0.10.0-next.2",
"@backstage/core-plugin-api": "^1.0.3",
"@backstage/integration-react": "^1.1.2-next.0",
"@backstage/plugin-airbrake": "^0.3.7-next.0",
"@backstage/plugin-api-docs": "^0.8.7-next.0",
"@backstage/plugin-azure-devops": "^0.1.23-next.0",
"@backstage/plugin-apache-airflow": "^0.1.15-next.0",
"@backstage/plugin-badges": "^0.2.31-next.0",
"@backstage/plugin-catalog": "^1.3.1-next.0",
"@backstage/plugin-catalog-common": "^1.0.3",
"@backstage/plugin-catalog-graph": "^0.2.19-next.0",
"@backstage/plugin-catalog-import": "^0.8.10-next.0",
"@backstage/plugin-catalog-react": "^1.1.2-next.0",
"@backstage/plugin-circleci": "^0.3.7-next.0",
"@backstage/plugin-cloudbuild": "^0.3.7-next.0",
"@backstage/plugin-code-coverage": "^0.1.34-next.0",
"@backstage/plugin-cost-insights": "^0.11.29-next.0",
"@backstage/plugin-dynatrace": "^0.1.1-next.0",
"@backstage/plugin-explore": "^0.3.38-next.0",
"@backstage/plugin-gcalendar": "^0.3.3-next.0",
"@backstage/plugin-gcp-projects": "^0.3.26-next.0",
"@backstage/plugin-github-actions": "^0.5.7-next.0",
"@backstage/plugin-gocd": "^0.1.13-next.0",
"@backstage/plugin-graphiql": "^0.2.39-next.0",
"@backstage/plugin-home": "^0.4.23-next.0",
"@backstage/plugin-jenkins": "^0.7.6-next.0",
"@backstage/plugin-kafka": "^0.3.7-next.0",
"@backstage/plugin-kubernetes": "^0.6.7-next.0",
"@backstage/plugin-lighthouse": "^0.3.7-next.0",
"@backstage/plugin-newrelic": "^0.3.25-next.0",
"@backstage/plugin-newrelic-dashboard": "^0.1.15-next.0",
"@backstage/plugin-org": "^0.5.7-next.0",
"@backstage/plugin-pagerduty": "0.5.0-next.0",
"@backstage/plugin-permission-react": "^0.4.2",
"@backstage/plugin-rollbar": "^0.4.7-next.0",
"@backstage/plugin-scaffolder": "^1.4.0-next.0",
"@backstage/plugin-search": "^0.9.1-next.0",
"@backstage/plugin-search-react": "^0.2.2-next.0",
"@backstage/plugin-search-common": "^0.3.5",
"@backstage/plugin-sentry": "^0.3.45-next.0",
"@backstage/plugin-shortcuts": "^0.2.8-next.0",
"@backstage/plugin-stack-overflow": "^0.1.3-next.0",
"@backstage/plugin-tech-radar": "^0.5.14-next.0",
"@backstage/plugin-techdocs": "^1.2.1-next.0",
"@backstage/plugin-techdocs-react": "^1.0.2-next.0",
"@backstage/plugin-techdocs-module-addons-contrib": "^1.0.2-next.0",
"@backstage/plugin-todo": "^0.2.9-next.0",
"@backstage/plugin-user-settings": "^0.4.6-next.0",
"@backstage/plugin-tech-insights": "^0.2.3-next.0",
"@backstage/theme": "^0.2.15",
"@backstage/integration-react": "^1.1.2-next.2",
"@backstage/plugin-airbrake": "^0.3.7-next.2",
"@backstage/plugin-api-docs": "^0.8.7-next.2",
"@backstage/plugin-azure-devops": "^0.1.23-next.2",
"@backstage/plugin-apache-airflow": "^0.2.0-next.2",
"@backstage/plugin-badges": "^0.2.31-next.2",
"@backstage/plugin-catalog": "^1.4.0-next.2",
"@backstage/plugin-catalog-common": "^1.0.4-next.0",
"@backstage/plugin-catalog-graph": "^0.2.19-next.2",
"@backstage/plugin-catalog-import": "^0.8.10-next.2",
"@backstage/plugin-catalog-react": "^1.1.2-next.2",
"@backstage/plugin-circleci": "^0.3.7-next.2",
"@backstage/plugin-cloudbuild": "^0.3.7-next.2",
"@backstage/plugin-code-coverage": "^0.1.34-next.2",
"@backstage/plugin-cost-insights": "^0.11.29-next.2",
"@backstage/plugin-dynatrace": "^0.1.1-next.2",
"@backstage/plugin-explore": "^0.3.38-next.2",
"@backstage/plugin-gcalendar": "^0.3.3-next.2",
"@backstage/plugin-gcp-projects": "^0.3.26-next.2",
"@backstage/plugin-github-actions": "^0.5.7-next.2",
"@backstage/plugin-gocd": "^0.1.13-next.2",
"@backstage/plugin-graphiql": "^0.2.39-next.2",
"@backstage/plugin-home": "^0.4.23-next.2",
"@backstage/plugin-jenkins": "^0.7.6-next.2",
"@backstage/plugin-kafka": "^0.3.7-next.2",
"@backstage/plugin-kubernetes": "^0.6.7-next.2",
"@backstage/plugin-lighthouse": "^0.3.7-next.2",
"@backstage/plugin-newrelic": "^0.3.25-next.2",
"@backstage/plugin-newrelic-dashboard": "^0.1.15-next.2",
"@backstage/plugin-org": "^0.5.7-next.2",
"@backstage/plugin-pagerduty": "0.5.0-next.2",
"@backstage/plugin-permission-react": "^0.4.3-next.0",
"@backstage/plugin-rollbar": "^0.4.7-next.2",
"@backstage/plugin-scaffolder": "^1.4.0-next.2",
"@backstage/plugin-search": "^0.9.1-next.2",
"@backstage/plugin-search-react": "^0.2.2-next.2",
"@backstage/plugin-search-common": "^0.3.6-next.0",
"@backstage/plugin-sentry": "^0.3.45-next.2",
"@backstage/plugin-shortcuts": "^0.2.8-next.2",
"@backstage/plugin-stack-overflow": "^0.1.3-next.2",
"@backstage/plugin-tech-radar": "^0.5.14-next.2",
"@backstage/plugin-techdocs": "^1.2.1-next.2",
"@backstage/plugin-techdocs-react": "^1.0.2-next.1",
"@backstage/plugin-techdocs-module-addons-contrib": "^1.0.2-next.2",
"@backstage/plugin-todo": "^0.2.9-next.2",
"@backstage/plugin-user-settings": "^0.4.6-next.2",
"@backstage/plugin-tech-insights": "^0.2.3-next.2",
"@backstage/theme": "^0.2.16-next.1",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -81,7 +81,7 @@
"zen-observable": "^0.8.15"
},
"devDependencies": {
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/test-utils": "^1.1.2-next.1",
"@rjsf/core": "^3.2.1",
"@testing-library/cypress": "^8.0.2",
"@testing-library/jest-dom": "^5.10.1",
@@ -167,7 +167,12 @@ const EntityLayoutWrapper = (props: { children?: ReactNode }) => {
return (
<>
<EntityLayout UNSTABLE_extraContextMenuItems={extraMenuItems}>
<EntityLayout
UNSTABLE_extraContextMenuItems={extraMenuItems}
UNSTABLE_contextMenuOptions={{
disableUnregister: 'visible',
}}
>
{props.children}
</EntityLayout>
<EntityBadgesDialog
+10 -1
View File
@@ -49,10 +49,19 @@ const clockConfigs: ClockConfig[] = [
},
];
const timeFormat: Intl.DateTimeFormatOptions = {
hour: '2-digit',
minute: '2-digit',
hour12: false,
};
export const homePage = (
<Page themeId="home">
<Header title={<WelcomeTitle />} pageTitleOverride="Home">
<HeaderWorldClock clockConfigs={clockConfigs} />
<HeaderWorldClock
clockConfigs={clockConfigs}
customTimeFormat={timeFormat}
/>
</Header>
<Content>
<Grid container spacing={3}>
+27
View File
@@ -1,5 +1,32 @@
# @backstage/backend-common
## 0.14.1-next.2
### Patch Changes
- 679b32172e: Updated dependency `knex` to `^2.0.0`.
- e2d7b76f43: Upgrade git-url-parse to 12.0.0.
Motivation for upgrade is transitively upgrading parse-url which is vulnerable
to several CVEs detected by Snyk.
- SNYK-JS-PARSEURL-2935944
- SNYK-JS-PARSEURL-2935947
- SNYK-JS-PARSEURL-2936249
- Updated dependencies
- @backstage/integration@1.2.2-next.2
## 0.14.1-next.1
### Patch Changes
- 0fc57887e8: Improve plural handling in logging output for secrets
- Updated dependencies
- @backstage/errors@1.1.0-next.0
- @backstage/integration@1.2.2-next.1
- @backstage/config-loader@1.1.3-next.0
## 0.14.1-next.0
### Patch Changes
+9 -9
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-common",
"description": "Common functionality library for Backstage backends",
"version": "0.14.1-next.0",
"version": "0.14.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"private": false,
@@ -36,9 +36,9 @@
"dependencies": {
"@backstage/cli-common": "^0.1.9",
"@backstage/config": "^1.0.1",
"@backstage/config-loader": "^1.1.2",
"@backstage/errors": "^1.0.0",
"@backstage/integration": "^1.2.2-next.0",
"@backstage/config-loader": "^1.1.3-next.0",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/integration": "^1.2.2-next.2",
"@backstage/types": "^1.0.0",
"@google-cloud/storage": "^6.0.0",
"@manypkg/get-packages": "^1.1.3",
@@ -58,14 +58,14 @@
"express": "^4.17.1",
"express-promise-router": "^4.1.0",
"fs-extra": "10.1.0",
"git-url-parse": "^11.6.0",
"git-url-parse": "^12.0.0",
"helmet": "^5.0.2",
"isomorphic-git": "^1.8.0",
"jose": "^4.6.0",
"keyv": "^4.0.3",
"keyv-memcache": "^1.2.5",
"@keyv/redis": "^2.2.3",
"knex": "^1.0.2",
"knex": "^2.0.0",
"lodash": "^4.17.21",
"logform": "^2.3.2",
"luxon": "^2.3.1",
@@ -91,8 +91,8 @@
}
},
"devDependencies": {
"@backstage/backend-test-utils": "^0.1.26-next.0",
"@backstage/cli": "^0.17.3-next.0",
"@backstage/backend-test-utils": "^0.1.26-next.2",
"@backstage/cli": "^0.18.0-next.2",
"@types/archiver": "^5.1.0",
"@types/base64-stream": "^1.0.2",
"@types/compression": "^1.7.0",
@@ -112,7 +112,7 @@
"better-sqlite3": "^7.5.0",
"http-errors": "^2.0.0",
"mock-fs": "^5.1.0",
"msw": "^0.42.0",
"msw": "^0.43.0",
"mysql2": "^2.2.5",
"recursive-readdir": "^2.2.2",
"supertest": "^6.1.3"
@@ -251,7 +251,7 @@ export class DatabaseManager {
// include base connection if client type has not been overridden
...(overridden ? {} : baseConnection),
...connection,
};
} as Partial<Knex.StaticConnectionConfig>;
}
/**
+16
View File
@@ -1,5 +1,21 @@
# @backstage/backend-tasks
## 0.3.3-next.2
### Patch Changes
- 679b32172e: Updated dependency `knex` to `^2.0.0`.
- Updated dependencies
- @backstage/backend-common@0.14.1-next.2
## 0.3.3-next.1
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.14.1-next.1
- @backstage/errors@1.1.0-next.0
## 0.3.3-next.0
### Patch Changes
+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-tasks",
"description": "Common distributed task management library for Backstage backends",
"version": "0.3.3-next.0",
"version": "0.3.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"private": false,
@@ -33,13 +33,13 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.0",
"@backstage/backend-common": "^0.14.1-next.2",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.0.0",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/types": "^1.0.0",
"@types/luxon": "^2.0.4",
"cron": "^2.0.0",
"knex": "^1.0.2",
"knex": "^2.0.0",
"lodash": "^4.17.21",
"luxon": "^2.0.2",
"node-abort-controller": "^3.0.1",
@@ -48,8 +48,8 @@
"zod": "^3.9.5"
},
"devDependencies": {
"@backstage/backend-test-utils": "^0.1.26-next.0",
"@backstage/cli": "^0.17.3-next.0",
"@backstage/backend-test-utils": "^0.1.26-next.2",
"@backstage/cli": "^0.18.0-next.2",
"@types/cron": "^2.0.0",
"wait-for-expect": "^3.0.2"
},
+17
View File
@@ -1,5 +1,22 @@
# @backstage/backend-test-utils
## 0.1.26-next.2
### Patch Changes
- 679b32172e: Updated dependency `knex` to `^2.0.0`.
- Updated dependencies
- @backstage/backend-common@0.14.1-next.2
- @backstage/cli@0.18.0-next.2
## 0.1.26-next.1
### Patch Changes
- Updated dependencies
- @backstage/cli@0.18.0-next.1
- @backstage/backend-common@0.14.1-next.1
## 0.1.26-next.0
### Patch Changes
+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-test-utils",
"description": "Test helpers library for Backstage backends",
"version": "0.1.26-next.0",
"version": "0.1.26-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"private": false,
@@ -34,19 +34,19 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.0",
"@backstage/cli": "^0.17.3-next.0",
"@backstage/backend-common": "^0.14.1-next.2",
"@backstage/cli": "^0.18.0-next.2",
"@backstage/config": "^1.0.1",
"better-sqlite3": "^7.5.0",
"knex": "^1.0.2",
"msw": "^0.42.0",
"knex": "^2.0.0",
"msw": "^0.43.0",
"mysql2": "^2.2.5",
"pg": "^8.3.0",
"testcontainers": "^8.1.2",
"uuid": "^8.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0"
"@backstage/cli": "^0.18.0-next.2"
},
"files": [
"dist"
+57
View File
@@ -1,5 +1,62 @@
# example-backend
## 0.2.73-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-kubernetes-backend@0.7.0-next.2
- @backstage/plugin-tech-insights-backend@0.5.0-next.2
- @backstage/plugin-jenkins-backend@0.1.24-next.2
- @backstage/plugin-search-backend-module-pg@0.3.5-next.2
- @backstage/plugin-scaffolder-backend@1.4.0-next.2
- @backstage/plugin-auth-backend@0.15.0-next.2
- @backstage/catalog-model@1.1.0-next.2
- @backstage/plugin-kafka-backend@0.2.27-next.2
- @backstage/backend-common@0.14.1-next.2
- @backstage/backend-tasks@0.3.3-next.2
- @backstage/plugin-app-backend@0.3.34-next.2
- @backstage/plugin-catalog-backend@1.2.1-next.2
- @backstage/plugin-code-coverage-backend@0.1.32-next.2
- @backstage/plugin-techdocs-backend@1.2.0-next.2
- @backstage/plugin-badges-backend@0.1.28-next.2
- @backstage/integration@1.2.2-next.2
- example-app@0.2.73-next.2
## 0.2.73-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-scaffolder-backend@1.4.0-next.1
- @backstage/plugin-auth-backend@0.15.0-next.1
- @backstage/catalog-model@1.1.0-next.1
- @backstage/backend-common@0.14.1-next.1
- @backstage/plugin-search-backend-module-elasticsearch@0.2.0-next.1
- @backstage/plugin-catalog-backend@1.2.1-next.1
- @backstage/plugin-techdocs-backend@1.2.0-next.1
- example-app@0.2.73-next.1
- @backstage/backend-tasks@0.3.3-next.1
- @backstage/catalog-client@1.0.4-next.1
- @backstage/integration@1.2.2-next.1
- @backstage/plugin-app-backend@0.3.34-next.1
- @backstage/plugin-auth-node@0.2.3-next.1
- @backstage/plugin-badges-backend@0.1.28-next.1
- @backstage/plugin-code-coverage-backend@0.1.32-next.1
- @backstage/plugin-jenkins-backend@0.1.24-next.1
- @backstage/plugin-kafka-backend@0.2.27-next.1
- @backstage/plugin-kubernetes-backend@0.7.0-next.1
- @backstage/plugin-permission-backend@0.5.9-next.1
- @backstage/plugin-permission-common@0.6.3-next.0
- @backstage/plugin-permission-node@0.6.3-next.1
- @backstage/plugin-scaffolder-backend-module-rails@0.4.2-next.1
- @backstage/plugin-search-backend@0.5.4-next.1
- @backstage/plugin-search-backend-module-pg@0.3.5-next.1
- @backstage/plugin-search-backend-node@0.6.3-next.1
- @backstage/plugin-tech-insights-backend@0.4.2-next.1
- @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.18-next.1
- @backstage/plugin-todo-backend@0.1.31-next.1
## 0.2.73-next.0
### Patch Changes
+29 -29
View File
@@ -1,6 +1,6 @@
{
"name": "example-backend",
"version": "0.2.73-next.0",
"version": "0.2.73-next.2",
"main": "dist/index.cjs.js",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -26,39 +26,39 @@
"build-image": "docker build ../.. -f Dockerfile --tag example-backend"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.0",
"@backstage/backend-tasks": "^0.3.3-next.0",
"@backstage/catalog-client": "^1.0.4-next.0",
"@backstage/catalog-model": "^1.1.0-next.0",
"@backstage/backend-common": "^0.14.1-next.2",
"@backstage/backend-tasks": "^0.3.3-next.2",
"@backstage/catalog-client": "^1.0.4-next.1",
"@backstage/catalog-model": "^1.1.0-next.2",
"@backstage/config": "^1.0.1",
"@backstage/integration": "^1.2.2-next.0",
"@backstage/plugin-app-backend": "^0.3.34-next.0",
"@backstage/plugin-auth-backend": "^0.14.2-next.0",
"@backstage/plugin-auth-node": "^0.2.3-next.0",
"@backstage/integration": "^1.2.2-next.2",
"@backstage/plugin-app-backend": "^0.3.34-next.2",
"@backstage/plugin-auth-backend": "^0.15.0-next.2",
"@backstage/plugin-auth-node": "^0.2.3-next.1",
"@backstage/plugin-azure-devops-backend": "^0.3.13-next.0",
"@backstage/plugin-badges-backend": "^0.1.28-next.0",
"@backstage/plugin-catalog-backend": "^1.2.1-next.0",
"@backstage/plugin-code-coverage-backend": "^0.1.32-next.0",
"@backstage/plugin-badges-backend": "^0.1.28-next.2",
"@backstage/plugin-catalog-backend": "^1.2.1-next.2",
"@backstage/plugin-code-coverage-backend": "^0.1.32-next.2",
"@backstage/plugin-graphql-backend": "^0.1.24-next.0",
"@backstage/plugin-jenkins-backend": "^0.1.24-next.0",
"@backstage/plugin-kubernetes-backend": "^0.7.0-next.0",
"@backstage/plugin-kafka-backend": "^0.2.27-next.0",
"@backstage/plugin-permission-backend": "^0.5.9-next.0",
"@backstage/plugin-permission-common": "^0.6.2",
"@backstage/plugin-permission-node": "^0.6.3-next.0",
"@backstage/plugin-jenkins-backend": "^0.1.24-next.2",
"@backstage/plugin-kubernetes-backend": "^0.7.0-next.2",
"@backstage/plugin-kafka-backend": "^0.2.27-next.2",
"@backstage/plugin-permission-backend": "^0.5.9-next.1",
"@backstage/plugin-permission-common": "^0.6.3-next.0",
"@backstage/plugin-permission-node": "^0.6.3-next.1",
"@backstage/plugin-proxy-backend": "^0.2.28-next.0",
"@backstage/plugin-rollbar-backend": "^0.1.31-next.0",
"@backstage/plugin-scaffolder-backend": "^1.4.0-next.0",
"@backstage/plugin-scaffolder-backend-module-rails": "^0.4.2-next.0",
"@backstage/plugin-search-backend": "^0.5.4-next.0",
"@backstage/plugin-search-backend-node": "^0.6.3-next.0",
"@backstage/plugin-search-backend-module-elasticsearch": "^0.1.6-next.0",
"@backstage/plugin-search-backend-module-pg": "^0.3.5-next.0",
"@backstage/plugin-techdocs-backend": "^1.1.3-next.0",
"@backstage/plugin-tech-insights-backend": "^0.4.2-next.0",
"@backstage/plugin-scaffolder-backend": "^1.4.0-next.2",
"@backstage/plugin-scaffolder-backend-module-rails": "^0.4.2-next.1",
"@backstage/plugin-search-backend": "^0.5.4-next.1",
"@backstage/plugin-search-backend-node": "^0.6.3-next.1",
"@backstage/plugin-search-backend-module-elasticsearch": "^0.2.0-next.1",
"@backstage/plugin-search-backend-module-pg": "^0.3.5-next.2",
"@backstage/plugin-techdocs-backend": "^1.2.0-next.2",
"@backstage/plugin-tech-insights-backend": "^0.5.0-next.2",
"@backstage/plugin-tech-insights-node": "^0.3.2-next.0",
"@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.18-next.0",
"@backstage/plugin-todo-backend": "^0.1.31-next.0",
"@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.18-next.1",
"@backstage/plugin-todo-backend": "^0.1.31-next.1",
"@gitbeaker/node": "^35.1.0",
"@octokit/rest": "^18.5.3",
"better-sqlite3": "^7.5.0",
@@ -75,7 +75,7 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.2",
"@types/dockerode": "^3.3.0",
"@types/express": "^4.17.6",
"@types/express-serve-static-core": "^4.17.5",
@@ -17,14 +17,17 @@
import { KubernetesBuilder } from '@backstage/plugin-kubernetes-backend';
import { Router } from 'express';
import { PluginEnvironment } from '../types';
import { CatalogClient } from '@backstage/catalog-client';
export default async function createPlugin(
env: PluginEnvironment,
): Promise<Router> {
const catalogApi = new CatalogClient({ discoveryApi: env.discovery });
const { router } = await KubernetesBuilder.createBuilder({
logger: env.logger,
config: env.config,
discovery: env.discovery,
catalogApi,
}).build();
return router;
}
+3 -1
View File
@@ -39,7 +39,9 @@ async function createSearchEngine(
}
if (await PgSearchEngine.supported(env.database)) {
return await PgSearchEngine.from({ database: env.database });
return await PgSearchEngine.fromConfig(env.config, {
database: env.database,
});
}
return new LunrSearchEngine({ logger: env.logger });
+8
View File
@@ -1,5 +1,13 @@
# @backstage/catalog-client
## 1.0.4-next.1
### Patch Changes
- Updated dependencies
- @backstage/catalog-model@1.1.0-next.1
- @backstage/errors@1.1.0-next.0
## 1.0.4-next.0
### Patch Changes
+5 -5
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/catalog-client",
"description": "An isomorphic client for the catalog backend",
"version": "1.0.4-next.0",
"version": "1.0.4-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,14 +33,14 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/catalog-model": "^1.1.0-next.0",
"@backstage/errors": "^1.0.0",
"@backstage/catalog-model": "^1.1.0-next.1",
"@backstage/errors": "^1.1.0-next.0",
"cross-fetch": "^3.1.5"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.1",
"@types/jest": "^26.0.7",
"msw": "^0.42.0"
"msw": "^0.43.0"
},
"files": [
"dist"
+14
View File
@@ -1,5 +1,19 @@
# @backstage/catalog-model
## 1.1.0-next.2
### Minor Changes
- 4cc81372f8: Introduced `GroupDefaultParentEntityPolicy` to set a default group entity parent.
## 1.1.0-next.1
### Patch Changes
- f1dcc6f3c6: Added type predicates for all entity types, e.g. isUserEntity
- Updated dependencies
- @backstage/errors@1.1.0-next.0
## 1.1.0-next.0
### Minor Changes
+7
View File
@@ -241,6 +241,13 @@ export function getEntitySourceLocation(entity: Entity): {
target: string;
};
// @public
export class GroupDefaultParentEntityPolicy implements EntityPolicy {
constructor(parentEntityRef: string);
// (undocumented)
enforce(entity: Entity): Promise<Entity>;
}
// @public
interface GroupEntityV1alpha1 extends Entity {
// (undocumented)
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/catalog-model",
"description": "Types and validators that help describe the model of a Backstage Catalog",
"version": "1.1.0-next.0",
"version": "1.1.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -35,7 +35,7 @@
},
"dependencies": {
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.0.0",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/types": "^1.0.0",
"ajv": "^8.10.0",
"json-schema": "^0.4.0",
@@ -43,7 +43,7 @@
"uuid": "^8.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.2",
"@types/jest": "^26.0.7",
"@types/json-schema": "^7.0.5",
"@types/lodash": "^4.14.151",
@@ -0,0 +1,71 @@
/*
* Copyright 2022 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { UserEntity, GroupEntity } from '../../kinds';
import { GroupDefaultParentEntityPolicy } from './GroupDefaultParentEntityPolicy';
describe('GroupDefaultParentEntityPolicy', () => {
it('should ignore non-group entities', async () => {
const p = new GroupDefaultParentEntityPolicy('name');
const u: UserEntity = {
apiVersion: 'backstage.io/v1alpha1',
kind: 'User',
metadata: { name: 'n' },
spec: { profile: {}, memberOf: ['c'] },
};
const result = await p.enforce(u);
expect(result).toEqual({
apiVersion: 'backstage.io/v1alpha1',
kind: 'User',
metadata: { name: 'n' },
spec: { profile: {}, memberOf: ['c'] },
});
});
it('should parent group entities', async () => {
const p = new GroupDefaultParentEntityPolicy('name');
const g: GroupEntity = {
apiVersion: 'backstage.io/v1alpha1',
kind: 'Group',
metadata: { name: 'n' },
spec: { type: 'foo', children: [] },
};
const result = await p.enforce(g);
expect(result).toEqual({
apiVersion: 'backstage.io/v1alpha1',
kind: 'Group',
metadata: { name: 'n' },
spec: { type: 'foo', parent: 'group:default/name', children: [] },
});
});
it('should not replace existing parents', async () => {
const p = new GroupDefaultParentEntityPolicy('namespace/name');
const g: GroupEntity = {
apiVersion: 'backstage.io/v1alpha1',
kind: 'Group',
metadata: { name: 'n' },
spec: { type: 'foo', parent: 'group:something/else', children: [] },
};
const result = await p.enforce(g);
expect(result).toEqual({
apiVersion: 'backstage.io/v1alpha1',
kind: 'Group',
metadata: { name: 'n' },
spec: { type: 'foo', parent: 'group:something/else', children: [] },
});
});
});
@@ -0,0 +1,68 @@
/*
* Copyright 2022 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Entity } from '../Entity';
import { GroupEntity } from '../../kinds';
import { EntityPolicy } from './types';
import { DEFAULT_NAMESPACE } from '../constants';
import { parseEntityRef, stringifyEntityRef } from '../ref';
/**
* DefaultParentPolicy is an EntityPolicy that updates group entities
* with a parent of last resort. This ensures that, while we preserve
* any existing group hierarchies, we can guarantee that there is a
* single global root of the group hierarchy.
*
* @public
*/
export class GroupDefaultParentEntityPolicy implements EntityPolicy {
private readonly parentRef: string;
constructor(parentEntityRef: string) {
const { kind, namespace, name } = parseEntityRef(parentEntityRef, {
defaultKind: 'Group',
defaultNamespace: DEFAULT_NAMESPACE,
});
if (kind.toLocaleUpperCase('en-US') !== 'GROUP') {
throw new TypeError('group parent must be a group');
}
this.parentRef = stringifyEntityRef({
kind: kind,
namespace: namespace,
name: name,
});
}
async enforce(entity: Entity): Promise<Entity> {
if (entity.kind !== 'Group') {
return entity;
}
const group = entity as GroupEntity;
if (group.spec.parent) {
return group;
}
// Avoid making the parent entity it's own parent.
if (stringifyEntityRef(group) !== this.parentRef) {
group.spec.parent = this.parentRef;
}
return group;
}
}
@@ -15,6 +15,7 @@
*/
export { DefaultNamespaceEntityPolicy } from './DefaultNamespaceEntityPolicy';
export { GroupDefaultParentEntityPolicy } from './GroupDefaultParentEntityPolicy';
export { FieldFormatEntityPolicy } from './FieldFormatEntityPolicy';
export { NoForeignRootFieldsEntityPolicy } from './NoForeignRootFieldsEntityPolicy';
export { SchemaValidEntityPolicy } from './SchemaValidEntityPolicy';
+34
View File
@@ -1,5 +1,39 @@
# @backstage/cli
## 0.18.0-next.2
### Patch Changes
- f6b6fb7165: The `test` command now ensures that all IO is flushed before exiting when printing `--help`.
## 0.18.0-next.1
### Minor Changes
- 96a82d9791: **BREAKING**: Removed the following deprecated package commands:
- `app:build` - Use `package build` instead
- `app:serve` - Use `package start` instead
- `backend:build` - Use `package build` instead
- `backend:bundle` - Use `package build` instead
- `backend:dev` - Use `package start` instead
- `plugin:build` - Use `package build` instead
- `plugin:serve` - Use `package start` instead
- `build` - Use `package build` instead
- `lint` - Use `package lint` instead
- `prepack` - Use `package prepack` instead
- `postpack` - Use `package postpack` instead
In order to replace these you need to have [migrated to using package roles](https://backstage.io/docs/tutorials/package-role-migration).
### Patch Changes
- 86640214f0: Upgrade `@rollup/plugin-node-resolve` to `^13.0.6`
- e661242844: Updated dependency `run-script-webpack-plugin` to `^0.1.0`.
- Updated dependencies
- @backstage/errors@1.1.0-next.0
- @backstage/config-loader@1.1.3-next.0
## 0.17.3-next.0
### Patch Changes
+563
View File
@@ -0,0 +1,563 @@
## CLI Report file for "@backstage/cli"
> Do not edit this file. It is a report generated by `yarn build:api-reports`
### `backstage-cli`
```
Usage: backstage-cli [options] [command]
Options:
-V, --version
-h, --help
Commands:
create [options]
create-plugin [options]
plugin:diff [options]
test
config:docs [options]
config:print [options]
config:check [options]
config:schema [options]
repo [command]
package [command]
migrate [command]
versions:bump [options]
versions:check [options]
clean
build-workspace <workspace-dir> [packages...]
create-github-app <github-org>
info
help [command]
```
### `backstage-cli build-workspace`
```
Usage: backstage-cli build-workspace [options] <workspace-dir> [packages...]
Options:
-h, --help
```
### `backstage-cli clean`
```
Usage: backstage-cli clean [options]
Options:
-h, --help
```
### `backstage-cli config:check`
```
Usage: backstage-cli config:check [options]
Options:
--package <name>
--lax
--frontend
--deprecated
--config <path>
-h, --help
```
### `backstage-cli config:docs`
```
Usage: backstage-cli config:docs [options]
Options:
--package <name>
-h, --help
```
### `backstage-cli config:print`
```
Usage: backstage-cli config:print [options]
Options:
--package <name>
--lax
--frontend
--with-secrets
--format <format>
--config <path>
-h, --help
```
### `backstage-cli config:schema`
```
Usage: backstage-cli config:schema [options]
Options:
--package <name>
--format <format>
-h, --help
```
### `backstage-cli create`
```
Usage: backstage-cli create [options]
Options:
--select <name>
--option <name>=<value>
--scope <scope>
--npm-registry <URL>
--no-private
-h, --help
```
### `backstage-cli create-github-app`
```
Usage: backstage-cli create-github-app [options] <github-org>
Options:
-h, --help
```
### `backstage-cli create-plugin`
```
Usage: backstage-cli create-plugin [options]
Options:
--backend
--scope <scope>
--npm-registry <URL>
--no-private
-h, --help
```
### `backstage-cli info`
```
Usage: backstage-cli info [options]
Options:
-h, --help
```
### `backstage-cli migrate`
```
Usage: backstage-cli migrate [options] [command] [command]
Options:
-h, --help
Commands:
package-roles
package-scripts
package-lint-configs
help [command]
```
### `backstage-cli migrate package-lint-configs`
```
Usage: backstage-cli migrate package-lint-configs [options]
Options:
-h, --help
```
### `backstage-cli migrate package-roles`
```
Usage: backstage-cli migrate package-roles [options]
Options:
-h, --help
```
### `backstage-cli migrate package-scripts`
```
Usage: backstage-cli migrate package-scripts [options]
Options:
-h, --help
```
### `backstage-cli package`
```
Usage: backstage-cli package [options] [command] [command]
Options:
-h, --help
Commands:
start [options]
build [options]
lint [options] [directories...]
test
clean
prepack
postpack
help [command]
```
### `backstage-cli package build`
```
Usage: backstage-cli package build [options]
Options:
--role <name>
--minify
--experimental-type-build
--skip-build-dependencies
--stats
--config <path>
-h, --help
```
### `backstage-cli package clean`
```
Usage: backstage-cli package clean [options]
Options:
-h, --help
```
### `backstage-cli package lint`
```
Usage: backstage-cli package lint [options] [directories...]
Options:
--format <format>
--fix
-h, --help
```
### `backstage-cli package postpack`
```
Usage: backstage-cli package postpack [options]
Options:
-h, --help
```
### `backstage-cli package prepack`
```
Usage: backstage-cli package prepack [options]
Options:
-h, --help
```
### `backstage-cli package start`
```
Usage: backstage-cli package start [options]
Options:
--config <path>
--role <name>
--check
--inspect
--inspect-brk
-h, --help
```
### `backstage-cli package test`
```
Usage: backstage-cli [--config=<pathToConfigFile>] [TestPathPattern]
Options:
-h, --help
-v, --version
--all
--automock
-b, --bail
--cache
--cacheDirectory
--changedFilesWithAncestor
--changedSince
--ci
--clearCache
--clearMocks
--collectCoverage
--collectCoverageFrom
--collectCoverageOnlyFrom
--color
--colors
-c, --config
--coverage
--coverageDirectory
--coveragePathIgnorePatterns
--coverageProvider
--coverageReporters
--coverageThreshold
--debug
--detectLeaks
--detectOpenHandles
--env
--errorOnDeprecated
-e, --expand
--filter
--findRelatedTests
--forceExit
--globalSetup
--globalTeardown
--globals
--haste
--init
--injectGlobals
--json
--lastCommit
--listTests
--logHeapUsage
--maxConcurrency
-w, --maxWorkers
--moduleDirectories
--moduleFileExtensions
--moduleNameMapper
--modulePathIgnorePatterns
--modulePaths
--noStackTrace
--notify
--notifyMode
-o, --onlyChanged
-f, --onlyFailures
--outputFile
--passWithNoTests
--preset
--prettierPath
--projects
--reporters
--resetMocks
--resetModules
--resolver
--restoreMocks
--rootDir
--roots
-i, --runInBand
--runTestsByPath
--runner
--selectProjects
--setupFiles
--setupFilesAfterEnv
--showConfig
--silent
--skipFilter
--snapshotSerializers
--testEnvironment
--testEnvironmentOptions
--testFailureExitCode
--testLocationInResults
--testMatch
-t, --testNamePattern
--testPathIgnorePatterns
--testPathPattern
--testRegex
--testResultsProcessor
--testRunner
--testSequencer
--testTimeout
--testURL
--timers
--transform
--transformIgnorePatterns
--unmockedModulePathPatterns
-u, --updateSnapshot
--useStderr
--verbose
--watch
--watchAll
--watchPathIgnorePatterns
--watchman
```
### `backstage-cli plugin:diff`
```
Usage: backstage-cli plugin:diff [options]
Options:
--check
--yes
-h, --help
```
### `backstage-cli repo`
```
Usage: backstage-cli repo [options] [command] [command]
Options:
-h, --help
Commands:
build [options]
lint [options]
help [command]
```
### `backstage-cli repo build`
```
Usage: backstage-cli repo build [options]
Options:
--all
--since <ref>
-h, --help
```
### `backstage-cli repo lint`
```
Usage: backstage-cli repo lint [options]
Options:
--format <format>
--since <ref>
--fix
-h, --help
```
### `backstage-cli test`
```
Usage: backstage-cli [--config=<pathToConfigFile>] [TestPathPattern]
Options:
-h, --help
-v, --version
--all
--automock
-b, --bail
--cache
--cacheDirectory
--changedFilesWithAncestor
--changedSince
--ci
--clearCache
--clearMocks
--collectCoverage
--collectCoverageFrom
--collectCoverageOnlyFrom
--color
--colors
-c, --config
--coverage
--coverageDirectory
--coveragePathIgnorePatterns
--coverageProvider
--coverageReporters
--coverageThreshold
--debug
--detectLeaks
--detectOpenHandles
--env
--errorOnDeprecated
-e, --expand
--filter
--findRelatedTests
--forceExit
--globalSetup
--globalTeardown
--globals
--haste
--init
--injectGlobals
--json
--lastCommit
--listTests
--logHeapUsage
--maxConcurrency
-w, --maxWorkers
--moduleDirectories
--moduleFileExtensions
--moduleNameMapper
--modulePathIgnorePatterns
--modulePaths
--noStackTrace
--notify
--notifyMode
-o, --onlyChanged
-f, --onlyFailures
--outputFile
--passWithNoTests
--preset
--prettierPath
--projects
--reporters
--resetMocks
--resetModules
--resolver
--restoreMocks
--rootDir
--roots
-i, --runInBand
--runTestsByPath
--runner
--selectProjects
--setupFiles
--setupFilesAfterEnv
--showConfig
--silent
--skipFilter
--snapshotSerializers
--testEnvironment
--testEnvironmentOptions
--testFailureExitCode
--testLocationInResults
--testMatch
-t, --testNamePattern
--testPathIgnorePatterns
--testPathPattern
--testRegex
--testResultsProcessor
--testRunner
--testSequencer
--testTimeout
--testURL
--timers
--transform
--transformIgnorePatterns
--unmockedModulePathPatterns
-u, --updateSnapshot
--useStderr
--verbose
--watch
--watchAll
--watchPathIgnorePatterns
--watchman
```
### `backstage-cli versions:bump`
```
Usage: backstage-cli versions:bump [options]
Options:
--pattern <glob>
--release <version|next|main>
-h, --help
```
### `backstage-cli versions:check`
```
Usage: backstage-cli versions:check [options]
Options:
--fix
-h, --help
```
+9 -9
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/cli",
"description": "CLI for developing Backstage plugins and apps",
"version": "0.17.3-next.0",
"version": "0.18.0-next.2",
"private": false,
"publishConfig": {
"access": "public"
@@ -33,8 +33,8 @@
"dependencies": {
"@backstage/cli-common": "^0.1.9",
"@backstage/config": "^1.0.1",
"@backstage/config-loader": "^1.1.2",
"@backstage/errors": "^1.0.0",
"@backstage/config-loader": "^1.1.3-next.0",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/release-manifests": "^0.0.4",
"@backstage/types": "^1.0.0",
"@hot-loader/react-dom-v16": "npm:@hot-loader/react-dom@^16.0.2",
@@ -126,14 +126,14 @@
"zod": "^3.11.6"
},
"devDependencies": {
"@backstage/backend-common": "^0.14.1-next.0",
"@backstage/backend-common": "^0.14.1-next.2",
"@backstage/config": "^1.0.1",
"@backstage/core-app-api": "^1.0.4-next.0",
"@backstage/core-components": "^0.9.6-next.0",
"@backstage/core-components": "^0.10.0-next.2",
"@backstage/core-plugin-api": "^1.0.3",
"@backstage/dev-utils": "^1.0.4-next.0",
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/theme": "^0.2.15",
"@backstage/dev-utils": "^1.0.4-next.2",
"@backstage/test-utils": "^1.1.2-next.1",
"@backstage/theme": "^0.2.16-next.1",
"@types/diff": "^5.0.0",
"@types/express": "^4.17.6",
"@types/fs-extra": "^9.0.1",
@@ -152,7 +152,7 @@
"@types/yarnpkg__lockfile": "^1.1.4",
"del": "^6.0.0",
"mock-fs": "^5.1.0",
"msw": "^0.42.0",
"msw": "^0.43.0",
"nodemon": "^2.0.2",
"ts-node": "^10.0.0"
},
+4
View File
@@ -78,6 +78,10 @@ export default async (_opts: OptionValues, cmd: Command) => {
process.env.TZ = 'UTC';
}
if (args.includes('--help')) {
(process.stdout as any)._handle.setBlocking(true);
}
// eslint-disable-next-line jest/no-jest-import
await require('jest').run(args);
};
@@ -41,7 +41,7 @@
"@backstage/cli": "{{versionQuery '@backstage/cli'}}",
"@types/supertest": "{{versionQuery '@types/supertest' '2.0.8'}}",
"supertest": "{{versionQuery 'supertest' '4.0.2'}}",
"msw": "{{versionQuery 'msw' '0.42.0'}}"
"msw": "{{versionQuery 'msw' '0.43.0'}}"
},
"files": [
"dist"
@@ -49,7 +49,7 @@
"@testing-library/user-event": "{{versionQuery '@testing-library/user-event' '14.0.0'}}",
"@types/jest": "{{versionQuery '@types/jest' '26.0.7'}}",
"@types/node": "{{versionQuery '@types/node' '16.11.26'}}",
"msw": "{{versionQuery 'msw' '0.42.0'}}",
"msw": "{{versionQuery 'msw' '0.43.0'}}",
"cross-fetch": "{{versionQuery 'cross-fetch' '3.1.5'}}"
},
"files": [
+61
View File
@@ -0,0 +1,61 @@
## CLI Report file for "@backstage/codemods"
> Do not edit this file. It is a report generated by `yarn build:api-reports`
### `backstage-codemods`
```
Usage: backstage-codemods [options] [command]
Options:
-V, --version
-h, --help
Commands:
apply <codemod> [target-dirs...]
list
help [command]
```
### `backstage-codemods apply`
```
Usage: backstage-codemods apply [options] [command] <codemod> [target-dirs...]
Options:
-h, --help
Commands:
core-imports [options] [target-dirs...]
extension-names [options] [target-dirs...]
help [command]
```
### `backstage-codemods apply core-imports`
```
Usage: backstage-codemods apply core-imports [options] [target-dirs...]
Options:
-d, --dry
-h, --help
```
### `backstage-codemods apply extension-names`
```
Usage: backstage-codemods apply extension-names [options] [target-dirs...]
Options:
-d, --dry
-h, --help
```
### `backstage-codemods list`
```
Usage: backstage-codemods list [options]
Options:
-h, --help
```
+7
View File
@@ -1,5 +1,12 @@
# @backstage/config-loader
## 1.1.3-next.0
### Patch Changes
- Updated dependencies
- @backstage/errors@1.1.0-next.0
## 1.1.2
### Patch Changes
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/config-loader",
"description": "Config loading functionality used by Backstage backend, and CLI",
"version": "1.1.2",
"version": "1.1.3-next.0",
"private": false,
"publishConfig": {
"access": "public",
@@ -36,7 +36,7 @@
"dependencies": {
"@backstage/cli-common": "^0.1.9",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.0.0",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/types": "^1.0.0",
"@types/json-schema": "^7.0.6",
"ajv": "^8.10.0",
@@ -46,7 +46,7 @@
"json-schema-merge-allof": "^0.8.1",
"json-schema-traverse": "^1.0.0",
"node-fetch": "^2.6.7",
"typescript-json-schema": "^0.53.0",
"typescript-json-schema": "^0.54.0",
"yaml": "^1.9.2",
"yup": "^0.32.9"
},
@@ -57,7 +57,7 @@
"@types/node": "^16.11.26",
"@types/yup": "^0.29.13",
"mock-fs": "^5.1.0",
"msw": "^0.42.0"
"msw": "^0.43.0"
},
"files": [
"dist"
+3 -3
View File
@@ -49,8 +49,8 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/cli": "^0.18.0-next.1",
"@backstage/test-utils": "^1.1.2-next.1",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0",
@@ -59,7 +59,7 @@
"@types/node": "^16.11.26",
"@types/zen-observable": "^0.8.0",
"cross-fetch": "^3.1.5",
"msw": "^0.42.0"
"msw": "^0.43.0"
},
"files": [
"dist",
+24
View File
@@ -1,5 +1,29 @@
# @backstage/core-components
## 0.10.0-next.2
### Minor Changes
- 32204fa794: Add `transformLinkUri` and `transformImageUri` to `MarkdownContent`
### Patch Changes
- b4b711bcc2: Fix the EntityLayout header style so that EntityContextMenu button can display in correct shape when user hover on it
- 15201b1032: Updated dependency `rc-progress` to `3.4.0`.
- 385389d23c: Updated to remove usage of the `bursts` object in the theme palette
- Updated dependencies
- @backstage/theme@0.2.16-next.1
## 0.9.6-next.1
### Patch Changes
- 3c440ea77e: Change BackstageIconLinkVertical style to use pallette instead of explicit color
- 7e115d42f9: Support displaying subtitle text in `SidebarSubmenuItem`
- Updated dependencies
- @backstage/errors@1.1.0-next.0
- @backstage/theme@0.2.16-next.0
## 0.9.6-next.0
### Patch Changes
+7 -7
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/core-components",
"description": "Core components used by Backstage plugins and apps",
"version": "0.9.6-next.0",
"version": "0.10.0-next.2",
"private": false,
"publishConfig": {
"access": "public",
@@ -35,8 +35,8 @@
"dependencies": {
"@backstage/config": "^1.0.1",
"@backstage/core-plugin-api": "^1.0.3",
"@backstage/errors": "^1.0.0",
"@backstage/theme": "^0.2.15",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/theme": "^0.2.16-next.1",
"@backstage/version-bridge": "^1.0.1",
"@material-table/core": "^3.1.0",
"@material-ui/core": "^4.12.2",
@@ -56,7 +56,7 @@
"pluralize": "^8.0.0",
"prop-types": "^15.7.2",
"qs": "^6.9.4",
"rc-progress": "3.3.3",
"rc-progress": "3.4.0",
"react-helmet": "6.1.0",
"react-hook-form": "^7.12.2",
"react-markdown": "^8.0.0",
@@ -80,8 +80,8 @@
},
"devDependencies": {
"@backstage/core-app-api": "^1.0.4-next.0",
"@backstage/cli": "^0.17.3-next.0",
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/cli": "^0.18.0-next.2",
"@backstage/test-utils": "^1.1.2-next.1",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0",
@@ -101,7 +101,7 @@
"@types/react-window": "^1.8.5",
"@types/zen-observable": "^0.8.0",
"cross-fetch": "^3.1.5",
"msw": "^0.42.0"
"msw": "^0.43.0"
},
"files": [
"dist"
@@ -47,7 +47,7 @@ const useIconStyles = makeStyles(
textAlign: 'center',
},
disabled: {
color: 'gray',
color: theme.palette.text.secondary,
cursor: 'default',
},
primary: {
@@ -21,9 +21,11 @@ import {
TestApiProvider,
wrapInTestApp,
} from '@backstage/test-utils';
import { analyticsApiRef } from '@backstage/core-plugin-api';
import { isExternalUri, Link } from './Link';
import { analyticsApiRef, configApiRef } from '@backstage/core-plugin-api';
import { isExternalUri, Link, useResolvedPath } from './Link';
import { Route, Routes } from 'react-router';
import { renderHook, WrapperComponent } from '@testing-library/react-hooks';
import { ConfigReader } from '@backstage/config';
describe('<Link />', () => {
it('navigates using react-router', async () => {
@@ -103,6 +105,58 @@ describe('<Link />', () => {
});
});
describe('resolves a sub-path correctly', () => {
it('when it starts with base path', async () => {
const testString = 'This is test string';
const linkText = 'Navigate!';
const configApi = new ConfigReader({
app: { baseUrl: 'http://localhost:3000/example' },
});
const { getByText } = render(
wrapInTestApp(
<TestApiProvider apis={[[configApiRef, configApi]]}>
<Routes>
<Link to="/example/test">{linkText}</Link>
<Route path="/example/test" element={<p>{testString}</p>} />
</Routes>
</TestApiProvider>,
),
);
expect(() => getByText(testString)).toThrow();
fireEvent.click(getByText(linkText));
await waitFor(() => {
expect(getByText(testString)).toBeInTheDocument();
});
});
it('when it does not start with base path', async () => {
const testString = 'This is test string';
const linkText = 'Navigate!';
const configApi = new ConfigReader({
app: { baseUrl: 'http://localhost:3000/example' },
});
const { getByText } = render(
wrapInTestApp(
<TestApiProvider apis={[[configApiRef, configApi]]}>
<Routes>
<Link to="/test">{linkText}</Link>
<Route path="/example/test" element={<p>{testString}</p>} />
</Routes>
</TestApiProvider>,
),
);
expect(() => getByText(testString)).toThrow();
fireEvent.click(getByText(linkText));
await waitFor(() => {
expect(getByText(testString)).toBeInTheDocument();
});
});
});
describe('isExternalUri', () => {
it.each([
[true, 'http://'],
@@ -128,4 +182,45 @@ describe('<Link />', () => {
expect(isExternalUri(uri)).toBe(expected);
});
});
describe('useResolvedPath', () => {
const wrapper: WrapperComponent<{}> = ({ children }) => {
const configApi = new ConfigReader({
app: { baseUrl: 'http://localhost:3000/example' },
});
return (
<TestApiProvider apis={[[configApiRef, configApi]]}>
{children}
</TestApiProvider>
);
};
describe('concatenate base path', () => {
it('when uri is internal and does not start with base path', () => {
const path = '/catalog/default/component/artist-lookup';
const { result } = renderHook(() => useResolvedPath(path), {
wrapper,
});
expect(result.current).toBe('/example'.concat(path));
});
});
describe('does not concatenate base path', () => {
it('when uri is external', () => {
const path = 'https://stackoverflow.com/questions/1/example';
const { result } = renderHook(() => useResolvedPath(path), {
wrapper,
});
expect(result.current).toBe(path);
});
it('when uri already starts with base path', () => {
const path = '/example/catalog/default/component/artist-lookup';
const { result } = renderHook(() => useResolvedPath(path), {
wrapper,
});
expect(result.current).toBe(path);
});
});
});
});
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { useAnalytics } from '@backstage/core-plugin-api';
import { configApiRef, useAnalytics, useApi } from '@backstage/core-plugin-api';
import classnames from 'classnames';
import MaterialLink, {
LinkProps as MaterialLinkProps,
@@ -25,6 +25,7 @@ import {
Link as RouterLink,
LinkProps as RouterLinkProps,
} from 'react-router-dom';
import { trimEnd } from 'lodash';
const useStyles = makeStyles(
{
@@ -52,6 +53,45 @@ export type LinkProps = MaterialLinkProps &
noTrack?: boolean;
};
/**
* Returns the app base url that could be empty if the Config API is not properly implemented.
* The only cases there would be no Config API are in tests and in storybook stories, and in those cases, it's unlikely that callers would rely on this subpath behavior.
*/
const useBaseUrl = () => {
try {
const config = useApi(configApiRef);
return config.getOptionalString('app.baseUrl');
} catch {
return undefined;
}
};
/**
* Get the app base path from the configured app baseUrl.
* The returned path does not have a trailing slash.
*/
const useBasePath = () => {
// baseUrl can be specified as just a path
const base = 'http://dummy.dev';
const url = useBaseUrl() ?? '/';
const { pathname } = new URL(url, base);
return trimEnd(pathname, '/');
};
export const useResolvedPath = (uri: LinkProps['to']) => {
let resolvedPath = String(uri);
const basePath = useBasePath();
const external = isExternalUri(resolvedPath);
const startsWithBasePath = resolvedPath.startsWith(basePath);
if (!external && !startsWithBasePath) {
resolvedPath = basePath.concat(resolvedPath);
}
return resolvedPath;
};
/**
* Given a react node, try to retrieve its text content.
*/
@@ -84,7 +124,7 @@ export const Link = React.forwardRef<any, LinkProps>(
({ onClick, noTrack, ...props }, ref) => {
const classes = useStyles();
const analytics = useAnalytics();
const to = String(props.to);
const to = useResolvedPath(props.to);
const linkText = getNodeText(props.children) || to;
const external = isExternalUri(to);
const newWindow = external && !!/^https?:/.exec(to);
@@ -99,11 +139,11 @@ export const Link = React.forwardRef<any, LinkProps>(
return external ? (
// External links
<MaterialLink
{...(newWindow ? { target: '_blank', rel: 'noopener' } : {})}
{...props}
ref={ref}
href={to}
onClick={handleClick}
{...(newWindow ? { target: '_blank', rel: 'noopener' } : {})}
{...props}
className={classnames(classes.externalLink, props.className)}
>
{props.children}
@@ -112,10 +152,11 @@ export const Link = React.forwardRef<any, LinkProps>(
) : (
// Interact with React Router for internal links
<MaterialLink
{...props}
ref={ref}
component={RouterLink}
to={to}
onClick={handleClick}
{...props}
/>
);
},
@@ -62,4 +62,42 @@ describe('<MarkdownContent />', () => {
expect(fp2).toBeInTheDocument();
expect(rendered.getByText(');', { selector: 'span' })).toBeInTheDocument();
});
it('render MarkdownContent component with transformed link', async () => {
const rendered = await renderWithEffects(
wrapInTestApp(
<MarkdownContent
content="[Title](https://backstage.io/link)"
transformLinkUri={href => {
return `${href}-modified`;
}}
/>,
),
);
const fp1 = rendered.getByText('Title', {
selector: 'a',
});
expect(fp1).toBeInTheDocument();
expect(fp1.getAttribute('href')).toEqual(
'https://backstage.io/link-modified',
);
});
it('render MarkdownContent component with transformed image', async () => {
const rendered = await renderWithEffects(
wrapInTestApp(
<MarkdownContent
content="![Image](https://backstage.io/blog/assets/6/header.png)"
transformImageUri={() => {
return `https://example.com/blog/assets/6/header.png`;
}}
/>,
),
);
const fp1 = rendered.getByAltText('Image');
expect(fp1).toBeInTheDocument();
expect(fp1.getAttribute('src')).toEqual(
'https://example.com/blog/assets/6/header.png',
);
});
});
@@ -68,6 +68,8 @@ type Props = {
content: string;
dialect?: 'gfm' | 'common-mark';
linkTarget?: Options['linkTarget'];
transformLinkUri?: (href: string) => string;
transformImageUri?: (href: string) => string;
};
const components: Options['components'] = {
@@ -91,7 +93,13 @@ const components: Options['components'] = {
* If you just want to render to plain [CommonMark](https://commonmark.org/), set the dialect to `'common-mark'`
*/
export function MarkdownContent(props: Props) {
const { content, dialect = 'gfm', linkTarget } = props;
const {
content,
dialect = 'gfm',
linkTarget,
transformLinkUri,
transformImageUri,
} = props;
const classes = useStyles();
return (
<ReactMarkdown
@@ -100,6 +108,8 @@ export function MarkdownContent(props: Props) {
children={content}
components={components}
linkTarget={linkTarget}
transformLinkUri={transformLinkUri}
transformImageUri={transformImageUri}
/>
);
}
@@ -63,15 +63,16 @@ const useStyles = makeStyles<BackstageTheme>(
},
rightItemsBox: {
width: 'auto',
alignItems: 'center',
},
title: {
color: theme.palette.bursts.fontColor,
color: theme.page.fontColor,
wordBreak: 'break-word',
fontSize: theme.typography.h3.fontSize,
marginBottom: 0,
},
subtitle: {
color: theme.palette.bursts.fontColor,
color: theme.page.fontColor,
opacity: 0.8,
display: 'inline-block', // prevents margin collapse of adjacent siblings
marginTop: theme.spacing(1),
@@ -82,10 +83,10 @@ const useStyles = makeStyles<BackstageTheme>(
fontSize: 11,
opacity: 0.8,
marginBottom: theme.spacing(1),
color: theme.palette.bursts.fontColor,
color: theme.page.fontColor,
},
breadcrumb: {
color: theme.palette.bursts.fontColor,
color: theme.page.fontColor,
},
breadcrumbType: {
fontSize: 'inherit',
@@ -27,7 +27,7 @@ const styles = (theme: BackstageTheme) =>
root: {
color: theme.palette.common.white,
padding: theme.spacing(2, 2, 3),
backgroundImage: theme.palette.bursts.gradient.linear,
backgroundImage: theme.getPageTheme({ themeId: 'card' }).backgroundImage,
backgroundPosition: 0,
backgroundSize: 'inherit',
},
@@ -85,14 +85,14 @@ const useStyles = makeStyles<BackstageTheme, { sidebarConfig: SidebarConfig }>(
overlayHeader: {
display: 'flex',
color: theme.palette.bursts.fontColor,
color: theme.palette.text.primary,
alignItems: 'center',
justifyContent: 'space-between',
padding: theme.spacing(2, 3),
},
overlayHeaderClose: {
color: theme.palette.bursts.fontColor,
color: theme.palette.text.primary,
},
marginMobileSidebar: props => ({
+3 -3
View File
@@ -46,9 +46,9 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.1",
"@backstage/core-app-api": "^1.0.4-next.0",
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/test-utils": "^1.1.2-next.1",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0",
@@ -58,7 +58,7 @@
"@types/prop-types": "^15.7.3",
"@types/zen-observable": "^0.8.0",
"cross-fetch": "^3.1.5",
"msw": "^0.42.0"
"msw": "^0.43.0"
},
"files": [
"dist"
+13
View File
@@ -1,5 +1,18 @@
# @backstage/create-app
## 0.4.29-next.2
### Patch Changes
- f281ad17c0: Adds the ability to define the Backstage app name using a `BACKSTAGE_APP_NAME`
environment variable when running `create-app`.
## 0.4.29-next.1
### Patch Changes
- Bumped create-app version.
## 0.4.29-next.0
### Patch Changes
+15
View File
@@ -0,0 +1,15 @@
## CLI Report file for "@backstage/create-app"
> Do not edit this file. It is a report generated by `yarn build:api-reports`
### `backstage-create-app`
```
Usage: backstage-create-app [options]
Options:
-V, --version
--path [directory]
--skip-install
-h, --help
```
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/create-app",
"description": "A CLI that helps you create your own Backstage app",
"version": "0.4.29-next.0",
"version": "0.4.29-next.2",
"private": false,
"publishConfig": {
"access": "public"
+8
View File
@@ -49,6 +49,14 @@ export default async (opts: OptionValues): Promise<void> => {
}
return true;
},
when: (a: Answers) => {
const envName = process.env.BACKSTAGE_APP_NAME;
if (envName) {
a.name = envName;
return false;
}
return true;
},
},
]);
+25
View File
@@ -1,5 +1,30 @@
# @backstage/dev-utils
## 1.0.4-next.2
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.10.0-next.2
- @backstage/catalog-model@1.1.0-next.2
- @backstage/theme@0.2.16-next.1
- @backstage/plugin-catalog-react@1.1.2-next.2
- @backstage/app-defaults@1.0.4-next.2
- @backstage/integration-react@1.1.2-next.2
## 1.0.4-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.9.6-next.1
- @backstage/catalog-model@1.1.0-next.1
- @backstage/theme@0.2.16-next.0
- @backstage/app-defaults@1.0.4-next.1
- @backstage/integration-react@1.1.2-next.1
- @backstage/test-utils@1.1.2-next.1
- @backstage/plugin-catalog-react@1.1.2-next.1
## 1.0.4-next.0
### Patch Changes
+9 -9
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/dev-utils",
"description": "Utilities for developing Backstage plugins.",
"version": "1.0.4-next.0",
"version": "1.0.4-next.2",
"private": false,
"publishConfig": {
"access": "public",
@@ -33,15 +33,15 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/app-defaults": "^1.0.4-next.0",
"@backstage/app-defaults": "^1.0.4-next.2",
"@backstage/core-app-api": "^1.0.4-next.0",
"@backstage/core-components": "^0.9.6-next.0",
"@backstage/core-components": "^0.10.0-next.2",
"@backstage/core-plugin-api": "^1.0.3",
"@backstage/catalog-model": "^1.1.0-next.0",
"@backstage/integration-react": "^1.1.2-next.0",
"@backstage/plugin-catalog-react": "^1.1.2-next.0",
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/theme": "^0.2.15",
"@backstage/catalog-model": "^1.1.0-next.2",
"@backstage/integration-react": "^1.1.2-next.2",
"@backstage/plugin-catalog-react": "^1.1.2-next.2",
"@backstage/test-utils": "^1.1.2-next.1",
"@backstage/theme": "^0.2.16-next.1",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@testing-library/jest-dom": "^5.10.1",
@@ -59,7 +59,7 @@
"react-dom": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.2",
"@types/jest": "^26.0.7",
"@types/node": "^16.0.0"
},
+26
View File
@@ -0,0 +1,26 @@
## CLI Report file for "e2e-test"
> Do not edit this file. It is a report generated by `yarn build:api-reports`
### `e2e-test`
```
Usage: e2e-test [options] [command]
Options:
-V, --version
-h, --help
Commands:
run
help [command]
```
### `e2e-test run`
```
Usage: e2e-test run [options]
Options:
-h, --help
```
+2 -2
View File
@@ -30,7 +30,7 @@
},
"devDependencies": {
"@backstage/cli-common": "^0.1.9-next.0",
"@backstage/errors": "^1.0.0",
"@backstage/errors": "^1.1.0-next.0",
"@types/fs-extra": "^9.0.1",
"@types/node": "^16.11.26",
"@types/puppeteer": "^5.4.4",
@@ -40,7 +40,7 @@
"fs-extra": "10.1.0",
"handlebars": "^4.7.3",
"pgtools": "^0.3.0",
"puppeteer": "^14.0.0",
"puppeteer": "^15.0.0",
"tree-kill": "^1.2.2",
"ts-node": "^10.0.0"
},
+8
View File
@@ -1,5 +1,13 @@
# @backstage/errors
## 1.1.0-next.0
### Minor Changes
- 6d61b44466: The `ResponseError.fromResponse` now accepts a more narrow response type, in order to avoid incompatibilities between different fetch implementations.
The `response` property of `ResponseError` has also been narrowed to a new `ConsumedResponse` type that omits all the properties for consuming the body of the response. This is not considered a breaking change as it was always an error to try to consume the body of the response.
## 1.0.0
### Major Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/errors",
"description": "Common utilities for error handling within Backstage",
"version": "1.0.0",
"version": "1.1.0-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -38,7 +38,7 @@
"serialize-error": "^8.0.1"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.1",
"@types/jest": "^26.0.7"
},
"files": [
+18
View File
@@ -1,5 +1,23 @@
# @backstage/integration-react
## 1.1.2-next.2
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.10.0-next.2
- @backstage/theme@0.2.16-next.1
- @backstage/integration@1.2.2-next.2
## 1.1.2-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.9.6-next.1
- @backstage/theme@0.2.16-next.0
- @backstage/integration@1.2.2-next.1
## 1.1.2-next.0
### Patch Changes
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/integration-react",
"description": "Frontend package for managing integrations towards external systems",
"version": "1.1.2-next.0",
"version": "1.1.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -25,10 +25,10 @@
},
"dependencies": {
"@backstage/config": "^1.0.1",
"@backstage/core-components": "^0.9.6-next.0",
"@backstage/core-components": "^0.10.0-next.2",
"@backstage/core-plugin-api": "^1.0.3",
"@backstage/integration": "^1.2.2-next.0",
"@backstage/theme": "^0.2.15",
"@backstage/integration": "^1.2.2-next.2",
"@backstage/theme": "^0.2.16-next.1",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -38,15 +38,15 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/dev-utils": "^1.0.4-next.0",
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/cli": "^0.18.0-next.2",
"@backstage/dev-utils": "^1.0.4-next.2",
"@backstage/test-utils": "^1.1.2-next.1",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/jest": "^26.0.7",
"@types/node": "^16.11.26",
"msw": "^0.42.0",
"msw": "^0.43.0",
"cross-fetch": "^3.1.5"
},
"files": [
+20
View File
@@ -1,5 +1,25 @@
# @backstage/integration
## 1.2.2-next.2
### Patch Changes
- e2d7b76f43: Upgrade git-url-parse to 12.0.0.
Motivation for upgrade is transitively upgrading parse-url which is vulnerable
to several CVEs detected by Snyk.
- SNYK-JS-PARSEURL-2935944
- SNYK-JS-PARSEURL-2935947
- SNYK-JS-PARSEURL-2936249
## 1.2.2-next.1
### Patch Changes
- Updated dependencies
- @backstage/errors@1.1.0-next.0
## 1.2.2-next.0
### Patch Changes
+7 -7
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/integration",
"description": "Helpers for managing integrations towards external systems",
"version": "1.2.2-next.0",
"version": "1.2.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -34,21 +34,21 @@
},
"dependencies": {
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.0.0",
"@backstage/errors": "^1.1.0-next.0",
"cross-fetch": "^3.1.5",
"git-url-parse": "^11.6.0",
"git-url-parse": "^12.0.0",
"@octokit/rest": "^18.5.3",
"@octokit/auth-app": "^3.4.0",
"luxon": "^2.0.2",
"lodash": "^4.17.21"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/config-loader": "^1.1.2",
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/cli": "^0.18.0-next.2",
"@backstage/config-loader": "^1.1.3-next.0",
"@backstage/test-utils": "^1.1.2-next.1",
"@types/jest": "^26.0.7",
"@types/luxon": "^2.0.4",
"msw": "^0.42.0"
"msw": "^0.43.0"
},
"files": [
"dist",
@@ -108,6 +108,20 @@ describe('bitbucketServer core', () => {
);
});
it('does not double encode the filepath', async () => {
const config: BitbucketServerIntegrationConfig = {
host: 'bitbucket.mycompany.net',
apiBaseUrl: 'https://api.bitbucket.mycompany.net/rest/api/1.0',
};
const result = await getBitbucketServerDownloadUrl(
'https://bitbucket.mycompany.net/projects/backstage/repos/mock/browse/%2Fdocs?at=some-branch',
config,
);
expect(result).toEqual(
'https://api.bitbucket.mycompany.net/rest/api/1.0/projects/backstage/repos/mock/archive?format=tgz&at=some-branch&prefix=backstage-mock&path=%2Fdocs',
);
});
it('do not add path param if no path is specified for Bitbucket Server', async () => {
const defaultBranchResponse = {
displayId: 'main',
@@ -83,7 +83,9 @@ export async function getBitbucketServerDownloadUrl(
// path will limit the downloaded content
// /docs will only download the docs folder and everything below it
// /docs/index.md will download the docs folder and everything below it
const path = filepath ? `&path=${encodeURIComponent(filepath)}` : '';
const path = filepath
? `&path=${encodeURIComponent(decodeURIComponent(filepath))}`
: '';
return `${config.apiBaseUrl}/projects/${project}/repos/${repoName}/archive?format=tgz&at=${branch}&prefix=${project}-${repoName}${path}`;
}
+1 -1
View File
@@ -37,7 +37,7 @@
},
"devDependencies": {
"@backstage/test-utils": "^1.1.2-next.0",
"msw": "^0.42.0",
"msw": "^0.43.0",
"@types/jest": "^26.0.7",
"@types/node": "^16.0.0"
},
@@ -1,5 +1,35 @@
# techdocs-cli-embedded-app
## 0.2.72-next.2
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.10.0-next.2
- @backstage/catalog-model@1.1.0-next.2
- @backstage/theme@0.2.16-next.1
- @backstage/plugin-techdocs@1.2.1-next.2
- @backstage/plugin-catalog@1.4.0-next.2
- @backstage/cli@0.18.0-next.2
- @backstage/app-defaults@1.0.4-next.2
- @backstage/integration-react@1.1.2-next.2
- @backstage/plugin-techdocs-react@1.0.2-next.1
## 0.2.72-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.9.6-next.1
- @backstage/cli@0.18.0-next.1
- @backstage/catalog-model@1.1.0-next.1
- @backstage/plugin-catalog@1.3.1-next.1
- @backstage/theme@0.2.16-next.0
- @backstage/plugin-techdocs@1.2.1-next.1
- @backstage/app-defaults@1.0.4-next.1
- @backstage/integration-react@1.1.2-next.1
- @backstage/test-utils@1.1.2-next.1
## 0.2.72-next.0
### Patch Changes
+12 -12
View File
@@ -1,25 +1,25 @@
{
"name": "techdocs-cli-embedded-app",
"version": "0.2.72-next.0",
"version": "0.2.72-next.2",
"private": true,
"backstage": {
"role": "frontend"
},
"bundled": true,
"dependencies": {
"@backstage/app-defaults": "^1.0.4-next.0",
"@backstage/catalog-model": "^1.1.0-next.0",
"@backstage/cli": "^0.17.3-next.0",
"@backstage/app-defaults": "^1.0.4-next.2",
"@backstage/catalog-model": "^1.1.0-next.2",
"@backstage/cli": "^0.18.0-next.2",
"@backstage/config": "^1.0.1",
"@backstage/core-app-api": "^1.0.4-next.0",
"@backstage/core-components": "^0.9.6-next.0",
"@backstage/core-components": "^0.10.0-next.2",
"@backstage/core-plugin-api": "^1.0.3",
"@backstage/integration-react": "^1.1.2-next.0",
"@backstage/plugin-catalog": "^1.3.1-next.0",
"@backstage/plugin-techdocs": "^1.2.1-next.0",
"@backstage/plugin-techdocs-react": "^1.0.2-next.0",
"@backstage/test-utils": "^1.1.2-next.0",
"@backstage/theme": "^0.2.15",
"@backstage/integration-react": "^1.1.2-next.2",
"@backstage/plugin-catalog": "^1.4.0-next.2",
"@backstage/plugin-techdocs": "^1.2.1-next.2",
"@backstage/plugin-techdocs-react": "^1.0.2-next.1",
"@backstage/test-utils": "^1.1.2-next.1",
"@backstage/theme": "^0.2.16-next.1",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
"history": "^5.0.0",
@@ -30,7 +30,7 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.2",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
+10
View File
@@ -1,5 +1,15 @@
# @techdocs/cli
## 1.1.3-next.1
### Patch Changes
- a5d73da942: Fix the flag parsing for `legacyCopyReadmeMdToIndexMd` in `techdocs-cli generate` command, and decouple it's logic from the `techdocs-ref` flag.
- Updated dependencies
- @backstage/plugin-techdocs-node@1.2.0-next.1
- @backstage/catalog-model@1.1.0-next.1
- @backstage/backend-common@0.14.1-next.1
## 1.1.3-next.0
### Patch Changes
+117
View File
@@ -0,0 +1,117 @@
## CLI Report file for "@techdocs/cli"
> Do not edit this file. It is a report generated by `yarn build:api-reports`
### `techdocs-cli`
```
Usage: techdocs-cli [options] [command]
Options:
-V, --version
-h, --help
Commands:
generate|build [options]
migrate [options]
publish [options]
serve:mkdocs [options]
serve [options]
help [command]
```
### `techdocs-cli generate`
```
Usage: techdocs-cli generate|build [options]
Options:
--source-dir <PATH>
--output-dir <PATH>
--docker-image <DOCKER_IMAGE>
--no-pull
--no-docker
--techdocs-ref <HOST_TYPE:URL>
--etag <ETAG>
-v --verbose
--omitTechdocsCoreMkdocsPlugin
--legacyCopyReadmeMdToIndexMd
-h, --help
```
### `techdocs-cli migrate`
```
Usage: techdocs-cli migrate [options]
Options:
--publisher-type <TYPE>
--storage-name <BUCKET/CONTAINER NAME>
--azureAccountName <AZURE ACCOUNT NAME>
--azureAccountKey <AZURE ACCOUNT KEY>
--awsRoleArn <AWS ROLE ARN>
--awsEndpoint <AWS ENDPOINT>
--awsS3ForcePathStyle
--awsBucketRootPath
--osCredentialId <OPENSTACK SWIFT APPLICATION CREDENTIAL ID>
--osSecret <OPENSTACK SWIFT APPLICATION CREDENTIAL SECRET>
--osAuthUrl <OPENSTACK SWIFT AUTHURL>
--osSwiftUrl <OPENSTACK SWIFT SWIFTURL>
--removeOriginal
--concurrency <MAX CONCURRENT REQS>
-v --verbose
-h, --help
```
### `techdocs-cli publish`
```
Usage: techdocs-cli publish [options]
Options:
--publisher-type <TYPE>
--storage-name <BUCKET/CONTAINER NAME>
--entity <NAMESPACE/KIND/NAME>
--legacyUseCaseSensitiveTripletPaths
--azureAccountName <AZURE ACCOUNT NAME>
--azureAccountKey <AZURE ACCOUNT KEY>
--awsRoleArn <AWS ROLE ARN>
--awsEndpoint <AWS ENDPOINT>
--awsS3sse <AWS SSE>
--awsS3ForcePathStyle
--osCredentialId <OPENSTACK SWIFT APPLICATION CREDENTIAL ID>
--osSecret <OPENSTACK SWIFT APPLICATION CREDENTIAL SECRET>
--osAuthUrl <OPENSTACK SWIFT AUTHURL>
--osSwiftUrl <OPENSTACK SWIFT SWIFTURL>
--gcsBucketRootPath
--directory <PATH>
-h, --help
```
### `techdocs-cli serve`
```
Usage: techdocs-cli serve [options]
Options:
-i, --docker-image <DOCKER_IMAGE>
--docker-entrypoint <DOCKER_ENTRYPOINT>
--no-docker
--mkdocs-port <PORT>
-v --verbose
-h, --help
```
### `techdocs-cli serve:mkdocs`
```
Usage: techdocs-cli serve:mkdocs [options]
Options:
-i, --docker-image <DOCKER_IMAGE>
--docker-entrypoint <DOCKER_ENTRYPOINT>
--no-docker
-p, --port <PORT>
-v --verbose
-h, --help
```
+5 -5
View File
@@ -1,7 +1,7 @@
{
"name": "@techdocs/cli",
"description": "Utility CLI for managing TechDocs sites in Backstage.",
"version": "1.1.3-next.0",
"version": "1.1.3-next.1",
"private": false,
"publishConfig": {
"access": "public"
@@ -37,7 +37,7 @@
"techdocs-cli": "bin/techdocs-cli"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.1",
"@types/commander": "^2.12.2",
"@types/fs-extra": "^9.0.6",
"@types/http-proxy": "^1.17.4",
@@ -62,11 +62,11 @@
"ext": "ts"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.0",
"@backstage/catalog-model": "^1.1.0-next.0",
"@backstage/backend-common": "^0.14.1-next.1",
"@backstage/catalog-model": "^1.1.0-next.1",
"@backstage/cli-common": "^0.1.9",
"@backstage/config": "^1.0.1",
"@backstage/plugin-techdocs-node": "^1.1.3-next.0",
"@backstage/plugin-techdocs-node": "^1.2.0-next.1",
"@types/dockerode": "^3.3.0",
"commander": "^9.1.0",
"dockerode": "^3.3.1",
+9
View File
@@ -1,5 +1,14 @@
# @backstage/test-utils
## 1.1.2-next.1
### Patch Changes
- Updated dependencies
- @backstage/theme@0.2.16-next.0
- @backstage/plugin-permission-common@0.6.3-next.0
- @backstage/plugin-permission-react@0.4.3-next.0
## 1.1.2-next.0
### Patch Changes
+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/test-utils",
"description": "Utilities to test Backstage plugins and apps.",
"version": "1.1.2-next.0",
"version": "1.1.2-next.1",
"private": false,
"publishConfig": {
"access": "public",
@@ -36,9 +36,9 @@
"@backstage/config": "^1.0.1",
"@backstage/core-app-api": "^1.0.4-next.0",
"@backstage/core-plugin-api": "^1.0.3",
"@backstage/plugin-permission-common": "^0.6.2",
"@backstage/plugin-permission-react": "^0.4.2",
"@backstage/theme": "^0.2.15",
"@backstage/plugin-permission-common": "^0.6.3-next.0",
"@backstage/plugin-permission-react": "^0.4.3-next.0",
"@backstage/theme": "^0.2.16-next.0",
"@backstage/types": "^1.0.0",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.11.2",
@@ -55,10 +55,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.1",
"@types/jest": "^26.0.7",
"@types/node": "^16.11.26",
"msw": "^0.42.0"
"msw": "^0.43.0"
},
"files": [
"dist"
+14
View File
@@ -1,5 +1,19 @@
# @backstage/theme
## 0.2.16-next.1
### Patch Changes
- ff4f56eb49: **DEPRECATED**: The `bursts` object from `BackstagePaletteAdditions` has been depreciated and will be removed in a future release
The `genPageTheme` function now includes an optional options object with an optional `fontColor` which defaults to white if not provided.
## 0.2.16-next.0
### Patch Changes
- 4c09c09102: Adds optional `htmlFontSize` property and also sets typography design tokens for h5 and h6 in base theme.
## 0.2.15
### Patch Changes
+8 -1
View File
@@ -116,7 +116,13 @@ export function createThemeOverrides(theme: BackstageTheme): Overrides;
export const darkTheme: BackstageTheme;
// @public
export function genPageTheme(colors: string[], shape: string): PageTheme;
export function genPageTheme(props: {
colors: string[];
shape: string;
options?: {
fontColor?: string;
};
}): PageTheme;
// @public
export const lightTheme: BackstageTheme;
@@ -126,6 +132,7 @@ export type PageTheme = {
colors: string[];
shape: string;
backgroundImage: string;
fontColor: string;
};
// @public
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/theme",
"description": "material-ui theme for use with Backstage.",
"version": "0.2.15",
"version": "0.2.16-next.1",
"private": false,
"publishConfig": {
"access": "public",
@@ -36,7 +36,7 @@
"@material-ui/core": "^4.12.2"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0"
"@backstage/cli": "^0.18.0-next.2"
},
"files": [
"dist"
+32 -11
View File
@@ -52,6 +52,7 @@ export const colorVariants: Record<string, string[]> = {
eveningSea: ['#00FFF2', '#035355'],
teal: ['#005B4B'],
pinkSea: ['#C8077A', '#C2297D'],
greens: ['#4BB8A5', '#187656'],
};
/**
@@ -63,12 +64,25 @@ export const colorVariants: Record<string, string[]> = {
* As the background shapes and colors are decorative, we place them onto the
* page as a css background-image instead of an html element of its own.
*/
export function genPageTheme(colors: string[], shape: string): PageTheme {
export function genPageTheme(props: {
colors: string[];
shape: string;
options?: {
fontColor?: string;
};
}): PageTheme {
const { colors, shape, options } = props;
const gradientColors = colors.length === 1 ? [colors[0], colors[0]] : colors;
const gradient = `linear-gradient(90deg, ${gradientColors.join(', ')})`;
const backgroundImage = `${shape}, ${gradient}`;
const fontColor = options?.fontColor ?? '#FFFFFF';
return { colors, shape, backgroundImage };
return {
colors: colors,
shape: shape,
backgroundImage: backgroundImage,
fontColor: fontColor,
};
}
/**
@@ -77,13 +91,20 @@ export function genPageTheme(colors: string[], shape: string): PageTheme {
* @public
*/
export const pageTheme: Record<string, PageTheme> = {
home: genPageTheme(colorVariants.teal, shapes.wave),
documentation: genPageTheme(colorVariants.pinkSea, shapes.wave2),
tool: genPageTheme(colorVariants.purpleSky, shapes.round),
service: genPageTheme(colorVariants.marineBlue, shapes.wave),
website: genPageTheme(colorVariants.veryBlue, shapes.wave),
library: genPageTheme(colorVariants.rubyRed, shapes.wave),
other: genPageTheme(colorVariants.darkGrey, shapes.wave),
app: genPageTheme(colorVariants.toastyOrange, shapes.wave),
apis: genPageTheme(colorVariants.teal, shapes.wave2),
home: genPageTheme({ colors: colorVariants.teal, shape: shapes.wave }),
documentation: genPageTheme({
colors: colorVariants.pinkSea,
shape: shapes.wave2,
}),
tool: genPageTheme({ colors: colorVariants.purpleSky, shape: shapes.round }),
service: genPageTheme({
colors: colorVariants.marineBlue,
shape: shapes.wave,
}),
website: genPageTheme({ colors: colorVariants.veryBlue, shape: shapes.wave }),
library: genPageTheme({ colors: colorVariants.rubyRed, shape: shapes.wave }),
other: genPageTheme({ colors: colorVariants.darkGrey, shape: shapes.wave }),
app: genPageTheme({ colors: colorVariants.toastyOrange, shape: shapes.wave }),
apis: genPageTheme({ colors: colorVariants.teal, shape: shapes.wave2 }),
card: genPageTheme({ colors: colorVariants.greens, shape: shapes.wave }),
};
+4
View File
@@ -63,6 +63,9 @@ export type BackstagePaletteAdditions = {
tabbar: {
indicator: string;
};
/**
* @deprecated The entire `bursts` section will be removed in a future release
*/
bursts: {
fontColor: string;
slackChannelText: string;
@@ -161,4 +164,5 @@ export type PageTheme = {
colors: string[];
shape: string;
backgroundImage: string;
fontColor: string;
};
+1 -1
View File
@@ -34,7 +34,7 @@
},
"dependencies": {},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.1",
"@types/zen-observable": "^0.8.0",
"zen-observable": "^0.8.15"
},
+1 -1
View File
@@ -37,7 +37,7 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.17.3-next.0",
"@backstage/cli": "^0.18.0-next.1",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0"