diff --git a/.changeset/angry-dingos-lick.md b/.changeset/angry-dingos-lick.md deleted file mode 100644 index 933f19a839..0000000000 --- a/.changeset/angry-dingos-lick.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-catalog-graph': patch -'@backstage/plugin-pagerduty': patch -'@backstage/plugin-scaffolder-backend': patch -'@backstage/plugin-splunk-on-call': patch -'@backstage/plugin-techdocs-react': patch ---- - -Internal refactor to improve tests diff --git a/.changeset/angry-trees-relax.md b/.changeset/angry-trees-relax.md deleted file mode 100644 index 64dd50366c..0000000000 --- a/.changeset/angry-trees-relax.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Enabling the customization of the last step in the scaffolder template. - -To override the content you have to do the next: - -```typescript jsx - -``` diff --git a/.changeset/beige-chairs-repair.md b/.changeset/beige-chairs-repair.md deleted file mode 100644 index 20cad7be6e..0000000000 --- a/.changeset/beige-chairs-repair.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch ---- - -Refresh (potentially) updated catalog files on `repo:push` more efficiently. diff --git a/.changeset/beige-chairs-wink.md b/.changeset/beige-chairs-wink.md deleted file mode 100644 index 40724c254f..0000000000 --- a/.changeset/beige-chairs-wink.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch ---- - -Added Y axis for metric data, with relevant formatting and data domain diff --git a/.changeset/blue-chefs-know.md b/.changeset/blue-chefs-know.md deleted file mode 100644 index fa06f52caa..0000000000 --- a/.changeset/blue-chefs-know.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-azure-devops-backend': patch ---- - -Updated installation documentation diff --git a/.changeset/brave-bags-sniff.md b/.changeset/brave-bags-sniff.md deleted file mode 100644 index 751e99b41b..0000000000 --- a/.changeset/brave-bags-sniff.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': minor ---- - -Fixes in kind selectors (now `OwnershipCard` works again). `EntityKindPicker` now accepts an optional `allowedKinds` prop, just like `CatalogKindHeader`. diff --git a/.changeset/breezy-apes-mate.md b/.changeset/breezy-apes-mate.md deleted file mode 100644 index 65e7dc2bc4..0000000000 --- a/.changeset/breezy-apes-mate.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Added a new `catalog.rules[].location` configuration that makes it possible to configure catalog rules to only apply to specific locations, either via exact match or a glob pattern. diff --git a/.changeset/chilled-ladybugs-cough.md b/.changeset/chilled-ladybugs-cough.md deleted file mode 100644 index 95a86e97c6..0000000000 --- a/.changeset/chilled-ladybugs-cough.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -'@backstage/core-plugin-api': minor ---- - -Added a new `display` property to the `AlertMessage` which can accept the values `permanent` or `transient`. - -Here's a rough example of how to trigger an alert using the new `display` property: - -```ts -import { alertApiRef, useApi } from '@backstage/core-plugin-api'; - -const ExampleTransient = () => { - const alertApi = useApi(alertApiRef); - alertApi.post({ - message: 'Example of Transient Alert', - severity: 'success', - display: 'transient', - }); -}; -``` diff --git a/.changeset/chilly-ads-lay.md b/.changeset/chilly-ads-lay.md deleted file mode 100644 index 844eaa8dc7..0000000000 --- a/.changeset/chilly-ads-lay.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/catalog-client': minor ---- - -**BREAKING PRODUCERS**: Added a new `getEntitiesByRefs` endpoint to `CatalogApi`, for efficient batch fetching of entities by ref. diff --git a/.changeset/chilly-flies-nail.md b/.changeset/chilly-flies-nail.md deleted file mode 100644 index ffc9627b79..0000000000 --- a/.changeset/chilly-flies-nail.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kubernetes': patch ---- - -Removed rendering for ErrorEmptyState in ErrorReporting component, so nothing is rendered when there are no errors. Also removed Divider on Kubernetes page. diff --git a/.changeset/chilly-tables-crash.md b/.changeset/chilly-tables-crash.md deleted file mode 100644 index 5c6510fb65..0000000000 --- a/.changeset/chilly-tables-crash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Fix dependency ordering in templated packages. diff --git a/.changeset/clean-paws-fry.md b/.changeset/clean-paws-fry.md deleted file mode 100644 index 5e66a686c0..0000000000 --- a/.changeset/clean-paws-fry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': minor ---- - -Introducing repo-tools package diff --git a/.changeset/clean-seals-whisper.md b/.changeset/clean-seals-whisper.md deleted file mode 100644 index 8891d75f8f..0000000000 --- a/.changeset/clean-seals-whisper.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-react': minor ---- - -The `value` of a search analytics event is now set as the total number of search results (when available) diff --git a/.changeset/clever-pillows-drive.md b/.changeset/clever-pillows-drive.md deleted file mode 100644 index f4e60fb869..0000000000 --- a/.changeset/clever-pillows-drive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Do not use deprecated `LocationSpec` from the `@backstage/plugin-catalog-node` package diff --git a/.changeset/clever-rivers-obey.md b/.changeset/clever-rivers-obey.md deleted file mode 100644 index 0fac8711e9..0000000000 --- a/.changeset/clever-rivers-obey.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Fixes the assignment of group member references in `GithubMultiOrgProcessor` so membership relations are resolved correctly. diff --git a/.changeset/create-app-1669131574.md b/.changeset/create-app-1669131574.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1669131574.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/create-app-1669720399.md b/.changeset/create-app-1669720399.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1669720399.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/create-app-1670332900.md b/.changeset/create-app-1670332900.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1670332900.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/cyan-donkeys-arrive.md b/.changeset/cyan-donkeys-arrive.md deleted file mode 100644 index 9358197d1c..0000000000 --- a/.changeset/cyan-donkeys-arrive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -added default project name for CI job compatibility diff --git a/.changeset/dirty-ads-refuse.md b/.changeset/dirty-ads-refuse.md deleted file mode 100644 index 848800636e..0000000000 --- a/.changeset/dirty-ads-refuse.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch -'@backstage/plugin-scaffolder-backend-module-rails': patch -'@backstage/plugin-scaffolder-backend-module-yeoman': patch -'@backstage/create-app': patch -'@backstage/plugin-scaffolder-backend': patch ---- - -Change step output template examples to use square bracket syntax. diff --git a/.changeset/dry-melons-listen.md b/.changeset/dry-melons-listen.md deleted file mode 100644 index 07342fb88e..0000000000 --- a/.changeset/dry-melons-listen.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-search-backend': minor -'@backstage/plugin-search-backend-module-elasticsearch': minor -'@backstage/plugin-search-backend-node': minor ---- - -numberOfResults is now provided alongside the query result diff --git a/.changeset/dry-radios-live.md b/.changeset/dry-radios-live.md deleted file mode 100644 index 057d3d0050..0000000000 --- a/.changeset/dry-radios-live.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-explore': patch ---- - -Update search links to only have header as linkable text diff --git a/.changeset/early-hairs-switch.md b/.changeset/early-hairs-switch.md deleted file mode 100644 index 16f4298db5..0000000000 --- a/.changeset/early-hairs-switch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -changed tests created by create-plugin to follow eslint-rules best practices particularly testing-library/prefer-screen-queries and testing-library/render-result-naming-convention diff --git a/.changeset/early-parrots-guess.md b/.changeset/early-parrots-guess.md deleted file mode 100644 index 4df8dcea95..0000000000 --- a/.changeset/early-parrots-guess.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Initialize all `formData` in the `Stepper` in `/next` diff --git a/.changeset/eight-dragons-accept.md b/.changeset/eight-dragons-accept.md new file mode 100644 index 0000000000..a3d46de4a3 --- /dev/null +++ b/.changeset/eight-dragons-accept.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +rollback `@rjsf/validator-ajv8` to `@rjsf/validator-v6` diff --git a/.changeset/eight-eels-compete.md b/.changeset/eight-eels-compete.md deleted file mode 100644 index 5cd0cdf041..0000000000 --- a/.changeset/eight-eels-compete.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@backstage/plugin-bazaar-backend': patch -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch -'@backstage/plugin-playlist-backend': patch -'@backstage/plugin-search-backend-module-pg': patch -'@backstage/plugin-user-settings-backend': patch ---- - -Ensured typescript type checks in migration files. diff --git a/.changeset/eight-spiders-know.md b/.changeset/eight-spiders-know.md deleted file mode 100644 index 2e3e54dc0f..0000000000 --- a/.changeset/eight-spiders-know.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -'@backstage/backend-common': patch -'@backstage/core-app-api': patch -'@backstage/core-components': patch -'@backstage/version-bridge': patch -'@backstage/plugin-analytics-module-ga': patch -'@backstage/plugin-catalog': patch -'@backstage/plugin-cloudbuild': patch -'@backstage/plugin-gcp-projects': patch -'@backstage/plugin-github-actions': patch -'@backstage/plugin-graphiql': patch -'@backstage/plugin-techdocs': patch ---- - -Internal fixes to avoid implicit usage of globals diff --git a/.changeset/eight-tables-hunt.md b/.changeset/eight-tables-hunt.md deleted file mode 100644 index bd1be0047f..0000000000 --- a/.changeset/eight-tables-hunt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Optimize `Stitcher` process to be more memory efficient diff --git a/.changeset/eleven-jeans-train.md b/.changeset/eleven-jeans-train.md deleted file mode 100644 index 7039c85900..0000000000 --- a/.changeset/eleven-jeans-train.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Removed the unused dependency on `@sucrase/jest-plugin`. diff --git a/.changeset/empty-taxis-run.md b/.changeset/empty-taxis-run.md deleted file mode 100644 index d0360b4521..0000000000 --- a/.changeset/empty-taxis-run.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -'@backstage/backend-app-api': patch -'@backstage/plugin-app-backend': patch -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-catalog-backend-module-aws': patch -'@backstage/plugin-catalog-backend-module-azure': patch -'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch -'@backstage/plugin-catalog-backend-module-bitbucket-server': patch -'@backstage/plugin-catalog-backend-module-gerrit': patch -'@backstage/plugin-catalog-backend-module-github': patch -'@backstage/plugin-catalog-backend-module-gitlab': patch -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch -'@backstage/plugin-catalog-backend-module-msgraph': patch -'@backstage/plugin-catalog-node': patch -'@backstage/plugin-events-backend': patch -'@backstage/plugin-events-backend-module-aws-sqs': patch -'@backstage/plugin-events-backend-module-github': patch -'@backstage/plugin-events-backend-module-gitlab': patch -'@backstage/plugin-scaffolder-backend': patch ---- - -Refactored to use `coreServices` from `@backstage/backend-plugin-api`. diff --git a/.changeset/fair-walls-talk.md b/.changeset/fair-walls-talk.md deleted file mode 100644 index 3e3ee26160..0000000000 --- a/.changeset/fair-walls-talk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-org-react': patch ---- - -Bug fixes and adding the possibility to add a default value for the `GroupListPicker`. Fixes: Vertical size jump on text entry, left align for text, selecting a value closes the popup, auto focus on the popup when opening diff --git a/.changeset/famous-cobras-suffer.md b/.changeset/famous-cobras-suffer.md deleted file mode 100644 index d09948f876..0000000000 --- a/.changeset/famous-cobras-suffer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Added the githubCredentialsProvider property to the GithubLocationAnalyzerOptions to be able to override the GithubCredentialsProvider. diff --git a/.changeset/famous-crews-speak.md b/.changeset/famous-crews-speak.md deleted file mode 100644 index d2246472a0..0000000000 --- a/.changeset/famous-crews-speak.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Fixed GitlabUrlReader to include api tokens in API calls diff --git a/.changeset/fast-lies-remain.md b/.changeset/fast-lies-remain.md deleted file mode 100644 index 74be117920..0000000000 --- a/.changeset/fast-lies-remain.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': minor ---- - -Added new `POST /entities/by-refs` endpoint, which allows you to efficiently -batch-fetch entities by their entity ref. This can be useful e.g. in graphql -resolvers or similar contexts where you need to fetch many entities at the same -time. diff --git a/.changeset/fast-walls-explode.md b/.changeset/fast-walls-explode.md deleted file mode 100644 index ac4c4335bc..0000000000 --- a/.changeset/fast-walls-explode.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Updated Jest coverage configuration to only apply either in the root project or package configuration, depending on whether repo or package tests are run. diff --git a/.changeset/fifty-news-stare.md b/.changeset/fifty-news-stare.md deleted file mode 100644 index 24ad2e20e7..0000000000 --- a/.changeset/fifty-news-stare.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-catalog-node': minor ---- - -Make it possible for entity providers to supply only entity refs, instead of full entities, in `delta` mutation deletions. diff --git a/.changeset/fifty-paws-attack.md b/.changeset/fifty-paws-attack.md new file mode 100644 index 0000000000..b7ad24204c --- /dev/null +++ b/.changeset/fifty-paws-attack.md @@ -0,0 +1,8 @@ +--- +'@backstage/catalog-model': patch +'@backstage/plugin-scaffolder-common': patch +'@backstage/plugin-search-backend-module-elasticsearch': patch +'@backstage/plugin-search-backend-node': patch +--- + +Fixed spelling mistakes in documentation. diff --git a/.changeset/fifty-zoos-nail.md b/.changeset/fifty-zoos-nail.md new file mode 100644 index 0000000000..7260a0b542 --- /dev/null +++ b/.changeset/fifty-zoos-nail.md @@ -0,0 +1,5 @@ +--- +'@backstage/catalog-client': minor +--- + +Implemented support for the `order` directive on `getEntities` diff --git a/.changeset/five-trainers-admire.md b/.changeset/five-trainers-admire.md deleted file mode 100644 index e624fc222a..0000000000 --- a/.changeset/five-trainers-admire.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Fix webpack dev server issue where it wasn't serving `index.html` from correct endpoint on subsequent requests. diff --git a/.changeset/fluffy-forks-happen.md b/.changeset/fluffy-forks-happen.md new file mode 100644 index 0000000000..4c9c2217ba --- /dev/null +++ b/.changeset/fluffy-forks-happen.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-explore-backend': patch +--- + +Bump `msw` to `^0.49.0` diff --git a/.changeset/fluffy-walls-approve.md b/.changeset/fluffy-walls-approve.md deleted file mode 100644 index 968f5cc402..0000000000 --- a/.changeset/fluffy-walls-approve.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -'@backstage/plugin-events-backend': minor ---- - -**BREAKING:** Remove required field `router` at `HttpPostIngressEventPublisher.fromConfig` -and replace it with `bind(router: Router)`. -Additionally, the path prefix `/http` will be added inside `HttpPostIngressEventPublisher`. - -```diff -// at packages/backend/src/plugins/events.ts - const eventsRouter = Router(); -- const httpRouter = Router(); -- eventsRouter.use('/http', httpRouter); - - const http = HttpPostIngressEventPublisher.fromConfig({ - config: env.config, - logger: env.logger, -- router: httpRouter, - }); -+ http.bind(eventsRouter); -``` diff --git a/.changeset/fluffy-worms-arrive.md b/.changeset/fluffy-worms-arrive.md deleted file mode 100644 index 8f95b6c970..0000000000 --- a/.changeset/fluffy-worms-arrive.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -'@backstage/backend-tasks': patch -'@backstage/cli': patch -'@backstage/core-app-api': patch -'@backstage/core-components': patch -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-permission-backend': patch -'@backstage/plugin-permission-common': patch -'@backstage/plugin-permission-node': patch -'@backstage/plugin-playlist-backend': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-scaffolder-backend': patch -'@backstage/plugin-search-backend': patch ---- - -Move the `zod` dependency to a version that does not collide with other libraries diff --git a/.changeset/forty-baboons-burn.md b/.changeset/forty-baboons-burn.md deleted file mode 100644 index f54b0871c4..0000000000 --- a/.changeset/forty-baboons-burn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs-node': patch ---- - -Bump dependency @azure/identity to next minor diff --git a/.changeset/forty-carpets-refuse.md b/.changeset/forty-carpets-refuse.md deleted file mode 100644 index a66121658d..0000000000 --- a/.changeset/forty-carpets-refuse.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/integration-aws-node': minor ---- - -New package for AWS integration node library diff --git a/.changeset/four-adults-provide.md b/.changeset/four-adults-provide.md deleted file mode 100644 index 0edb4807d9..0000000000 --- a/.changeset/four-adults-provide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch ---- - -Provide the ability to change the base currency from USD to any other currency in cost insights plugin diff --git a/.changeset/four-buttons-clean.md b/.changeset/four-buttons-clean.md deleted file mode 100644 index 41af42b45e..0000000000 --- a/.changeset/four-buttons-clean.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': patch ---- - -Handle refresh entity error in `AboutCard`. diff --git a/.changeset/fresh-news-push.md b/.changeset/fresh-news-push.md deleted file mode 100644 index a77b7a256b..0000000000 --- a/.changeset/fresh-news-push.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-bazaar': patch ---- - -`HomePageBazaarInfoCard` is now displaying `title` instead of `name`. Title is a string that doesn't have to be URL friendly. -The BazaarOverviewCard have the new property `fullHeight`. Link in `BazaarOverviewCard`is moved to header in card. diff --git a/.changeset/funny-numbers-compete.md b/.changeset/funny-numbers-compete.md deleted file mode 100644 index 604ffe7294..0000000000 --- a/.changeset/funny-numbers-compete.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Use Json types from @backstage/types diff --git a/.changeset/fuzzy-rivers-search.md b/.changeset/fuzzy-rivers-search.md deleted file mode 100644 index 4a82d1884c..0000000000 --- a/.changeset/fuzzy-rivers-search.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -'@backstage/core-app-api': minor ---- - -Added a new `AppRouter` component and `app.createRoot()` method that replaces `app.getRouter()` and `app.getProvider()`, which are now deprecated. The new `AppRouter` component is a drop-in replacement for the old router component, while the new `app.createRoot()` method is used instead of the old provider component. - -An old app setup might look like this: - -```tsx -const app = createApp(/* ... */); - -const AppProvider = app.getProvider(); -const AppRouter = app.getRouter(); - -const routes = ...; - -const App = () => ( - - - - - {routes} - - -); - -export default App; -``` - -With these new APIs, the setup now looks like this: - -```tsx -import { AppRouter } from '@backstage/core-app-api'; - -const app = createApp(/* ... */); - -const routes = ...; - -export default app.createRoot( - <> - - - - {routes} - - , -); -``` - -Note that `app.createRoot()` accepts a React element, rather than a component. diff --git a/.changeset/gentle-ligers-help.md b/.changeset/gentle-ligers-help.md deleted file mode 100644 index f7f9c3b270..0000000000 --- a/.changeset/gentle-ligers-help.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-app-api': patch ---- - -Tweak feature flag registration so that it happens immediately before the first rendering of the app, rather than just after. diff --git a/.changeset/gold-icons-cheat.md b/.changeset/gold-icons-cheat.md deleted file mode 100644 index 3c5e796c05..0000000000 --- a/.changeset/gold-icons-cheat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Bump `msw` version in default plugin/app templates diff --git a/.changeset/gold-yaks-join.md b/.changeset/gold-yaks-join.md deleted file mode 100644 index 29996d1f74..0000000000 --- a/.changeset/gold-yaks-join.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/test-utils': patch ---- - -The test utility for the plugin context called `MockPluginProvider` has been created. It will be handy in the cases when you use -`__experimentalConfigure` in your plugin. It is experimental and exported through `@backstage/test-utils/alpha`. diff --git a/.changeset/gorgeous-hairs-applaud.md b/.changeset/gorgeous-hairs-applaud.md deleted file mode 100644 index 7793c6591e..0000000000 --- a/.changeset/gorgeous-hairs-applaud.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-node': patch ---- - -Wait for indexer initialization before finalizing indexing. diff --git a/.changeset/green-deers-turn.md b/.changeset/green-deers-turn.md deleted file mode 100644 index 394b89b8e3..0000000000 --- a/.changeset/green-deers-turn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-app-api': patch ---- - -Fix for the automatic rewriting of base URLs. diff --git a/.changeset/healthy-crabs-collect.md b/.changeset/healthy-crabs-collect.md deleted file mode 100644 index 5dc90f9b80..0000000000 --- a/.changeset/healthy-crabs-collect.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kafka-backend': patch ---- - -Internal tweak to adapt to `kafkajs` 2.2.3 diff --git a/.changeset/hip-chairs-tap.md b/.changeset/hip-chairs-tap.md deleted file mode 100644 index 8eca0a9292..0000000000 --- a/.changeset/hip-chairs-tap.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch ---- - -Internal refactor to avoid usage of deprecated symbols diff --git a/.changeset/hip-stingrays-kneel.md b/.changeset/hip-stingrays-kneel.md deleted file mode 100644 index 171e9257f2..0000000000 --- a/.changeset/hip-stingrays-kneel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Create a variable for minimum height and add a prop named 'fit' for determining if the graph height should grow or be contained. diff --git a/.changeset/hip-wasps-yell.md b/.changeset/hip-wasps-yell.md deleted file mode 100644 index 1cdea4e84d..0000000000 --- a/.changeset/hip-wasps-yell.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-bazaar': patch ---- - -Add `title` as optional parameter to `BazaarOverviewCard` diff --git a/.changeset/hungry-falcons-cross.md b/.changeset/hungry-falcons-cross.md new file mode 100644 index 0000000000..73c31ca7d6 --- /dev/null +++ b/.changeset/hungry-falcons-cross.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Applied fix from v1.9.1 diff --git a/.changeset/itchy-walls-boil.md b/.changeset/itchy-walls-boil.md deleted file mode 100644 index 2afd0287fe..0000000000 --- a/.changeset/itchy-walls-boil.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-user-settings': minor ---- - -Added the ability to fully customize settings page. Deprecated UserSettingsTab in favour of SettingsLayout.Route diff --git a/.changeset/kind-tips-pump.md b/.changeset/kind-tips-pump.md deleted file mode 100644 index c61ed97774..0000000000 --- a/.changeset/kind-tips-pump.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kubernetes-backend': patch ---- - -Clusters declared in the app-config can now have their CA configured via a local filesystem path using the `caFile` property. diff --git a/.changeset/kind-walls-share.md b/.changeset/kind-walls-share.md deleted file mode 100644 index 5df03999b1..0000000000 --- a/.changeset/kind-walls-share.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -exported KubernetesContainerRunner, KubernetesContainerRunnerOptions, KubernetesContainerRunnerMountBase diff --git a/.changeset/lemon-coats-camp.md b/.changeset/lemon-coats-camp.md deleted file mode 100644 index f30a20f432..0000000000 --- a/.changeset/lemon-coats-camp.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@backstage/repo-tools': patch ---- - -Add new command options to the `api-report` - -- added `--allow-warnings`, `-a` to continue processing packages if selected packages have warnings -- added `--allow-all-warnings` to continue processing packages any packages have warnings -- added `--omit-messages`, `-o` to pass some warnings messages code to be omitted from the api-report.md files -- The `paths` argument for this command now takes as default the value on `workspaces.packages` inside the root package.json -- change the path resolution to use the `@backstage/cli-common` packages instead diff --git a/.changeset/light-snakes-exercise.md b/.changeset/light-snakes-exercise.md deleted file mode 100644 index 45bd37cf27..0000000000 --- a/.changeset/light-snakes-exercise.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -'@backstage/backend-common': minor -'@backstage/backend-tasks': minor -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch -'@backstage/plugin-search-backend-node': patch ---- - -Changed to use native `AbortController` and `AbortSignal` from Node.js, instead -of the one from `node-abort-controller`. This is possible now that the minimum -supported Node.js version of the project is 16. - -Note that their interfaces are very slightly different, but typically not in a -way that matters to consumers. If you see any typescript errors as a direct -result from this, they are compatible with each other in the ways that we -interact with them, and should be possible to type-cast across without ill -effects. diff --git a/.changeset/light-turtles-yawn.md b/.changeset/light-turtles-yawn.md deleted file mode 100644 index 3f42fb0524..0000000000 --- a/.changeset/light-turtles-yawn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Fixed deprecated use of `substr` into `substring`. diff --git a/.changeset/little-chairs-dance.md b/.changeset/little-chairs-dance.md deleted file mode 100644 index c08dd3838c..0000000000 --- a/.changeset/little-chairs-dance.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': minor ---- - -Deprecated the `taskWorkers` option in RouterOptions in favor of `concurrentTasksLimit` which sets the limit of concurrent tasks in a single TaskWorker - -TaskWorker can now run multiple (defaults to 10) tasks concurrently using the `concurrentTasksLimit` option available in both `RouterOptions` and `CreateWorkerOptions`. - -To use the option to create a TaskWorker: - -```diff -const worker = await TaskWorker.create({ - taskBroker, - actionRegistry, - integrations, - logger, - workingDirectory, - additionalTemplateFilters, -+ concurrentTasksLimit: 10 // (1 to Infinity) -}); -``` diff --git a/.changeset/long-eyes-confess.md b/.changeset/long-eyes-confess.md deleted file mode 100644 index f35504f8d7..0000000000 --- a/.changeset/long-eyes-confess.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -'@backstage/app-defaults': patch -'@backstage/core-components': patch -'@backstage/dev-utils': patch -'@backstage/test-utils': patch -'@backstage/plugin-airbrake': patch -'@backstage/plugin-api-docs': patch -'@backstage/plugin-azure-devops': patch -'@backstage/plugin-badges': patch -'@backstage/plugin-catalog': patch -'@backstage/plugin-catalog-graph': patch -'@backstage/plugin-catalog-import': patch -'@backstage/plugin-catalog-react': patch -'@backstage/plugin-circleci': patch -'@backstage/plugin-cloudbuild': patch -'@backstage/plugin-code-climate': patch -'@backstage/plugin-code-coverage': patch -'@backstage/plugin-explore': patch -'@backstage/plugin-git-release-manager': patch -'@backstage/plugin-github-actions': patch -'@backstage/plugin-home': patch -'@backstage/plugin-jenkins': patch -'@backstage/plugin-kafka': patch -'@backstage/plugin-org': patch -'@backstage/plugin-permission-react': patch -'@backstage/plugin-playlist': patch -'@backstage/plugin-rollbar': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-search': patch -'@backstage/plugin-search-react': patch -'@backstage/plugin-sentry': patch -'@backstage/plugin-shortcuts': patch -'@backstage/plugin-techdocs': patch -'@backstage/plugin-todo': patch -'@backstage/plugin-user-settings': patch ---- - -Internal refactor to use `react-router-dom` rather than `react-router`. diff --git a/.changeset/loud-rockets-reply.md b/.changeset/loud-rockets-reply.md deleted file mode 100644 index 85ed77f51f..0000000000 --- a/.changeset/loud-rockets-reply.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-incremental-ingestion': minor ---- - -Introduces incremental entity providers, which are used for streaming very large data sources into the catalog. diff --git a/.changeset/loud-snails-sleep.md b/.changeset/loud-snails-sleep.md deleted file mode 100644 index d72c1a22b4..0000000000 --- a/.changeset/loud-snails-sleep.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-vault-backend': patch ---- - -Added (optional) config `vault.publicUrl` as alternative to `vault.baseUrl` for `editUrl` and `showUrl` in case `vault.baseUrl` is internal diff --git a/.changeset/lucky-chicken-greet.md b/.changeset/lucky-chicken-greet.md deleted file mode 100644 index 7e061dc040..0000000000 --- a/.changeset/lucky-chicken-greet.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Internal code reorganization. diff --git a/.changeset/many-bikes-press.md b/.changeset/many-bikes-press.md deleted file mode 100644 index 68ddb68c05..0000000000 --- a/.changeset/many-bikes-press.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-plugin-api': minor ---- - -**BREAKING**: All core service references are now exported via a single `coreServices` object. For example, the `loggerServiceRef` is now accessed via `coreServices.logger` instead. diff --git a/.changeset/mighty-parrots-hammer.md b/.changeset/mighty-parrots-hammer.md deleted file mode 100644 index 5a39d8955e..0000000000 --- a/.changeset/mighty-parrots-hammer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Fix `GitlabUrlReader.readTree` bug when there were no matching commits diff --git a/.changeset/modern-camels-cheat.md b/.changeset/modern-camels-cheat.md deleted file mode 100644 index c0a80934d5..0000000000 --- a/.changeset/modern-camels-cheat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': minor ---- - -Removed `CatalogKindHeader` from `DefaultCatalogPage`. Deprecated `CatalogKindHeader` in favour of `EntityKindPicker`. diff --git a/.changeset/modern-jokes-attack.md b/.changeset/modern-jokes-attack.md deleted file mode 100644 index 3cb3143f05..0000000000 --- a/.changeset/modern-jokes-attack.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Made AlertDisplay not crash on undefined messages diff --git a/.changeset/modern-mugs-shout.md b/.changeset/modern-mugs-shout.md deleted file mode 100644 index cb845b1fff..0000000000 --- a/.changeset/modern-mugs-shout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Add items prop to SupportButton. This prop can be used to override the items that would otherwise be grabbed from the config. diff --git a/.changeset/nasty-melons-build.md b/.changeset/nasty-melons-build.md deleted file mode 100644 index 35fb520a5e..0000000000 --- a/.changeset/nasty-melons-build.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -'@backstage/plugin-events-backend-module-github': patch ---- - -Add `createGithubSignatureValidator(config)` which can be used -to create a validator used at an ingress for topic `github`. - -On top, there is a new `githubWebhookEventsModule` for the new backend plugin API -which auto-registers the `HttpPostIngress` for topic `github` incl. the validator. - -Please find more information at -https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-github/README.md. diff --git a/.changeset/neat-insects-share.md b/.changeset/neat-insects-share.md deleted file mode 100644 index 1fadb9b9a1..0000000000 --- a/.changeset/neat-insects-share.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/cli': minor ---- - -The Jest configuration that was previously enabled with `BACKSTAGE_NEXT_TESTS` is now enabled by default. To revert to the old configuration you can now instead set `BACKSTAGE_OLD_TESTS`. - -This new configuration uses the `babel` coverage provider rather than `v8`. It used to be that `v8` worked better when using Sucrase for transpilation, but now that we have switched to SWC, `babel` seems to work better. In addition, the new configuration also enables source maps by default, as they no longer have a negative impact on code coverage accuracy, and it also enables a modified Jest runtime with additional caching of script objects. diff --git a/.changeset/neat-lies-know.md b/.changeset/neat-lies-know.md deleted file mode 100644 index 01fc002668..0000000000 --- a/.changeset/neat-lies-know.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-react': patch ---- - -Cleanup and small fixes for the kind selector diff --git a/.changeset/nervous-mice-flow.md b/.changeset/nervous-mice-flow.md deleted file mode 100644 index c93cde23bc..0000000000 --- a/.changeset/nervous-mice-flow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-jenkins-backend': patch ---- - -Remove unnecessary dependency `promise-any-polyfill`. diff --git a/.changeset/new-bugs-march.md b/.changeset/new-bugs-march.md deleted file mode 100644 index 346f5a151e..0000000000 --- a/.changeset/new-bugs-march.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-explore': patch ---- - -Adds styling to graph forcing it to always fill out the available space. diff --git a/.changeset/nice-apricots-love.md b/.changeset/nice-apricots-love.md deleted file mode 100644 index 527b644d5f..0000000000 --- a/.changeset/nice-apricots-love.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-app-api': patch ---- - -Prevent duplicate feature flag components from rendering in the settings when using components diff --git a/.changeset/nice-hairs-lick.md b/.changeset/nice-hairs-lick.md deleted file mode 100644 index 4229b5aa98..0000000000 --- a/.changeset/nice-hairs-lick.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Adds new web-library package option when generating a new plugin diff --git a/.changeset/nice-pants-boil.md b/.changeset/nice-pants-boil.md deleted file mode 100644 index e8bdf0a00f..0000000000 --- a/.changeset/nice-pants-boil.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/backend-common': patch -'@backstage/plugin-catalog-backend': patch ---- - -Adds MySQL support for the catalog-backend diff --git a/.changeset/nine-ears-whisper.md b/.changeset/nine-ears-whisper.md deleted file mode 100644 index a1427158af..0000000000 --- a/.changeset/nine-ears-whisper.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-events-backend': patch -'@backstage/plugin-events-node': minor ---- - -Introduce a new interface `RequestDetails` to abstract `Request` -providing access to request body and headers. - -**BREAKING:** Replace `request: Request` with `request: RequestDetails` at `RequestValidator`. diff --git a/.changeset/odd-moles-notice.md b/.changeset/odd-moles-notice.md deleted file mode 100644 index 8cc82c93dc..0000000000 --- a/.changeset/odd-moles-notice.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Updated the template to have the `'/test'` proxy endpoint in `app-config.yaml` be commented out by default. diff --git a/.changeset/old-bulldogs-fry.md b/.changeset/old-bulldogs-fry.md deleted file mode 100644 index 9c8eef67ad..0000000000 --- a/.changeset/old-bulldogs-fry.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Handle GitHub `push` events at the `GithubEntityProvider` by subscribing to the topic `github.push.` - -Implements `EventSubscriber` to receive events for the topic `github.push`. - -On `github.push`, the affected repository will be refreshed. -This includes adding new Location entities, refreshing existing ones, -and removing obsolete ones. - -Please find more information at -https://backstage.io/docs/integrations/github/discovery#installation-with-events-support diff --git a/.changeset/old-keys-leave.md b/.changeset/old-keys-leave.md deleted file mode 100644 index d80574b2e4..0000000000 --- a/.changeset/old-keys-leave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Added `lifecycleFactory` implementation. diff --git a/.changeset/old-sloths-warn.md b/.changeset/old-sloths-warn.md deleted file mode 100644 index 8eca0a9292..0000000000 --- a/.changeset/old-sloths-warn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch ---- - -Internal refactor to avoid usage of deprecated symbols diff --git a/.changeset/old-tips-cough.md b/.changeset/old-tips-cough.md deleted file mode 100644 index bcf6de6a53..0000000000 --- a/.changeset/old-tips-cough.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-adr': patch -'@backstage/plugin-catalog': patch -'@backstage/plugin-search-react': patch -'@backstage/plugin-stack-overflow': patch -'@backstage/plugin-techdocs': patch ---- - -Update search links to only have header as linkable text diff --git a/.changeset/olive-eyes-sing.md b/.changeset/olive-eyes-sing.md new file mode 100644 index 0000000000..d0ae1dc08f --- /dev/null +++ b/.changeset/olive-eyes-sing.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-stack-overflow-backend': minor +--- + +Enable configuration override for StackOverflow backend plugin when instantiating the search indexer. This makes it possible to set different configuration for frontend and backend of the plugin. diff --git a/.changeset/pre.json b/.changeset/pre.json index 4efcd59f16..30f0c873c4 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -2,354 +2,197 @@ "mode": "pre", "tag": "next", "initialVersions": { - "example-app": "0.2.77", - "@backstage/app-defaults": "1.0.8", - "example-backend": "0.2.77", - "@backstage/backend-app-api": "0.2.3", - "@backstage/backend-common": "0.16.0", - "@backstage/backend-defaults": "0.1.3", - "example-backend-next": "0.0.5", - "@backstage/backend-plugin-api": "0.1.4", - "@backstage/backend-tasks": "0.3.7", - "@backstage/backend-test-utils": "0.1.30", - "@backstage/catalog-client": "1.1.2", - "@backstage/catalog-model": "1.1.3", - "@backstage/cli": "0.21.0", - "@backstage/cli-common": "0.1.10", - "@backstage/codemods": "0.1.41", - "@backstage/config": "1.0.4", - "@backstage/config-loader": "1.1.6", - "@backstage/core-app-api": "1.2.0", - "@backstage/core-components": "0.12.0", - "@backstage/core-plugin-api": "1.1.0", - "@backstage/create-app": "0.4.34", - "@backstage/dev-utils": "1.0.8", + "example-app": "0.2.78", + "@backstage/app-defaults": "1.0.9", + "example-backend": "0.2.78", + "@backstage/backend-app-api": "0.2.4", + "@backstage/backend-common": "0.17.0", + "@backstage/backend-defaults": "0.1.4", + "example-backend-next": "0.0.6", + "@backstage/backend-plugin-api": "0.2.0", + "@backstage/backend-tasks": "0.4.0", + "@backstage/backend-test-utils": "0.1.31", + "@backstage/catalog-client": "1.2.0", + "@backstage/catalog-model": "1.1.4", + "@backstage/cli": "0.22.0", + "@backstage/cli-common": "0.1.11", + "@backstage/codemods": "0.1.42", + "@backstage/config": "1.0.5", + "@backstage/config-loader": "1.1.7", + "@backstage/core-app-api": "1.3.0", + "@backstage/core-components": "0.12.1", + "@backstage/core-plugin-api": "1.2.0", + "@backstage/create-app": "0.4.35", + "@backstage/dev-utils": "1.0.9", "e2e-test": "0.2.0", - "@backstage/errors": "1.1.3", - "@backstage/integration": "1.4.0", - "@backstage/integration-react": "1.1.6", - "@backstage/release-manifests": "0.0.7", - "@backstage/repo-tools": "0.0.0", - "@techdocs/cli": "1.2.3", - "techdocs-cli-embedded-app": "0.2.76", - "@backstage/test-utils": "1.2.2", + "@backstage/errors": "1.1.4", + "@backstage/integration": "1.4.1", + "@backstage/integration-aws-node": "0.1.0", + "@backstage/integration-react": "1.1.7", + "@backstage/release-manifests": "0.0.8", + "@backstage/repo-tools": "0.1.0", + "@techdocs/cli": "1.2.4", + "techdocs-cli-embedded-app": "0.2.77", + "@backstage/test-utils": "1.2.3", "@backstage/theme": "0.2.16", - "@backstage/types": "1.0.1", - "@backstage/version-bridge": "1.0.2", - "@backstage/plugin-adr": "0.2.3", - "@backstage/plugin-adr-backend": "0.2.3", - "@backstage/plugin-adr-common": "0.2.3", - "@backstage/plugin-airbrake": "0.3.11", - "@backstage/plugin-airbrake-backend": "0.2.11", - "@backstage/plugin-allure": "0.1.27", - "@backstage/plugin-analytics-module-ga": "0.1.22", - "@backstage/plugin-apache-airflow": "0.2.4", - "@backstage/plugin-api-docs": "0.8.11", + "@backstage/types": "1.0.2", + "@backstage/version-bridge": "1.0.3", + "@backstage/plugin-adr": "0.2.4", + "@backstage/plugin-adr-backend": "0.2.4", + "@backstage/plugin-adr-common": "0.2.4", + "@backstage/plugin-airbrake": "0.3.12", + "@backstage/plugin-airbrake-backend": "0.2.12", + "@backstage/plugin-allure": "0.1.28", + "@backstage/plugin-analytics-module-ga": "0.1.23", + "@backstage/plugin-apache-airflow": "0.2.5", + "@backstage/plugin-api-docs": "0.8.12", "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.0", - "@backstage/plugin-apollo-explorer": "0.1.4", - "@backstage/plugin-app-backend": "0.3.38", - "@backstage/plugin-auth-backend": "0.17.1", - "@backstage/plugin-auth-node": "0.2.7", - "@backstage/plugin-azure-devops": "0.2.2", - "@backstage/plugin-azure-devops-backend": "0.3.17", + "@backstage/plugin-apollo-explorer": "0.1.5", + "@backstage/plugin-app-backend": "0.3.39", + "@backstage/plugin-auth-backend": "0.17.2", + "@backstage/plugin-auth-node": "0.2.8", + "@backstage/plugin-azure-devops": "0.2.3", + "@backstage/plugin-azure-devops-backend": "0.3.18", "@backstage/plugin-azure-devops-common": "0.3.0", - "@backstage/plugin-azure-sites": "0.1.0", - "@backstage/plugin-azure-sites-backend": "0.1.0", + "@backstage/plugin-azure-sites": "0.1.1", + "@backstage/plugin-azure-sites-backend": "0.1.1", "@backstage/plugin-azure-sites-common": "0.1.0", - "@backstage/plugin-badges": "0.2.35", - "@backstage/plugin-badges-backend": "0.1.32", - "@backstage/plugin-bazaar": "0.2.0", - "@backstage/plugin-bazaar-backend": "0.2.1", - "@backstage/plugin-bitbucket-cloud-common": "0.2.1", - "@backstage/plugin-bitrise": "0.1.38", - "@backstage/plugin-catalog": "1.6.1", - "@backstage/plugin-catalog-backend": "1.5.1", - "@backstage/plugin-catalog-backend-module-aws": "0.1.11", - "@backstage/plugin-catalog-backend-module-azure": "0.1.9", - "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.5", - "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.5", - "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.3", - "@backstage/plugin-catalog-backend-module-gerrit": "0.1.6", - "@backstage/plugin-catalog-backend-module-github": "0.2.0", - "@backstage/plugin-catalog-backend-module-gitlab": "0.1.9", - "@backstage/plugin-catalog-backend-module-ldap": "0.5.5", - "@backstage/plugin-catalog-backend-module-msgraph": "0.4.4", - "@backstage/plugin-catalog-backend-module-openapi": "0.1.4", - "@backstage/plugin-catalog-common": "1.0.8", - "@internal/plugin-catalog-customized": "0.0.4", - "@backstage/plugin-catalog-graph": "0.2.23", - "@backstage/plugin-catalog-graphql": "0.3.15", - "@backstage/plugin-catalog-import": "0.9.1", - "@backstage/plugin-catalog-node": "1.2.1", - "@backstage/plugin-catalog-react": "1.2.1", - "@backstage/plugin-cicd-statistics": "0.1.13", - "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.7", - "@backstage/plugin-circleci": "0.3.11", - "@backstage/plugin-cloudbuild": "0.3.11", - "@backstage/plugin-code-climate": "0.1.11", - "@backstage/plugin-code-coverage": "0.2.4", - "@backstage/plugin-code-coverage-backend": "0.2.4", - "@backstage/plugin-codescene": "0.1.6", - "@backstage/plugin-config-schema": "0.1.34", - "@backstage/plugin-cost-insights": "0.12.0", + "@backstage/plugin-badges": "0.2.36", + "@backstage/plugin-badges-backend": "0.1.33", + "@backstage/plugin-bazaar": "0.2.1", + "@backstage/plugin-bazaar-backend": "0.2.2", + "@backstage/plugin-bitbucket-cloud-common": "0.2.2", + "@backstage/plugin-bitrise": "0.1.39", + "@backstage/plugin-catalog": "1.7.0", + "@backstage/plugin-catalog-backend": "1.6.0", + "@backstage/plugin-catalog-backend-module-aws": "0.1.12", + "@backstage/plugin-catalog-backend-module-azure": "0.1.10", + "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.6", + "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.6", + "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.4", + "@backstage/plugin-catalog-backend-module-gerrit": "0.1.7", + "@backstage/plugin-catalog-backend-module-github": "0.2.2", + "@backstage/plugin-catalog-backend-module-gitlab": "0.1.10", + "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.1.0", + "@backstage/plugin-catalog-backend-module-ldap": "0.5.6", + "@backstage/plugin-catalog-backend-module-msgraph": "0.4.5", + "@backstage/plugin-catalog-backend-module-openapi": "0.1.5", + "@backstage/plugin-catalog-common": "1.0.9", + "@internal/plugin-catalog-customized": "0.0.5", + "@backstage/plugin-catalog-graph": "0.2.24", + "@backstage/plugin-catalog-graphql": "0.3.16", + "@backstage/plugin-catalog-import": "0.9.2", + "@backstage/plugin-catalog-node": "1.3.0", + "@backstage/plugin-catalog-react": "1.2.2", + "@backstage/plugin-cicd-statistics": "0.1.14", + "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.8", + "@backstage/plugin-circleci": "0.3.12", + "@backstage/plugin-cloudbuild": "0.3.12", + "@backstage/plugin-code-climate": "0.1.12", + "@backstage/plugin-code-coverage": "0.2.5", + "@backstage/plugin-code-coverage-backend": "0.2.5", + "@backstage/plugin-codescene": "0.1.7", + "@backstage/plugin-config-schema": "0.1.35", + "@backstage/plugin-cost-insights": "0.12.1", "@backstage/plugin-cost-insights-common": "0.1.1", - "@backstage/plugin-dynatrace": "1.0.1", - "@backstage/plugin-events-backend": "0.1.0", - "@backstage/plugin-events-backend-module-aws-sqs": "0.1.0", - "@backstage/plugin-events-backend-module-azure": "0.1.0", - "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.1.0", - "@backstage/plugin-events-backend-module-gerrit": "0.1.0", - "@backstage/plugin-events-backend-module-github": "0.1.0", - "@backstage/plugin-events-backend-module-gitlab": "0.1.0", - "@backstage/plugin-events-backend-test-utils": "0.1.0", - "@backstage/plugin-events-node": "0.1.0", - "@internal/plugin-todo-list": "1.0.7", - "@internal/plugin-todo-list-backend": "1.0.7", - "@internal/plugin-todo-list-common": "1.0.6", - "@backstage/plugin-explore": "0.3.42", - "@backstage/plugin-explore-react": "0.0.23", - "@backstage/plugin-firehydrant": "0.1.28", - "@backstage/plugin-fossa": "0.2.43", - "@backstage/plugin-gcalendar": "0.3.7", - "@backstage/plugin-gcp-projects": "0.3.30", - "@backstage/plugin-git-release-manager": "0.3.24", - "@backstage/plugin-github-actions": "0.5.11", - "@backstage/plugin-github-deployments": "0.1.42", - "@backstage/plugin-github-issues": "0.2.0", - "@backstage/plugin-github-pull-requests-board": "0.1.5", - "@backstage/plugin-gitops-profiles": "0.3.29", - "@backstage/plugin-gocd": "0.1.17", - "@backstage/plugin-graphiql": "0.2.43", - "@backstage/plugin-graphql-backend": "0.1.28", - "@backstage/plugin-home": "0.4.27", - "@backstage/plugin-ilert": "0.2.0", - "@backstage/plugin-jenkins": "0.7.10", - "@backstage/plugin-jenkins-backend": "0.1.28", - "@backstage/plugin-jenkins-common": "0.1.10", - "@backstage/plugin-kafka": "0.3.11", - "@backstage/plugin-kafka-backend": "0.2.31", - "@backstage/plugin-kubernetes": "0.7.4", - "@backstage/plugin-kubernetes-backend": "0.8.0", - "@backstage/plugin-kubernetes-common": "0.4.4", - "@backstage/plugin-lighthouse": "0.3.11", - "@backstage/plugin-newrelic": "0.3.29", - "@backstage/plugin-newrelic-dashboard": "0.2.4", - "@backstage/plugin-org": "0.6.0", - "@backstage/plugin-org-react": "0.1.0", - "@backstage/plugin-pagerduty": "0.5.4", - "@backstage/plugin-periskop": "0.1.9", - "@backstage/plugin-periskop-backend": "0.1.9", - "@backstage/plugin-permission-backend": "0.5.13", - "@backstage/plugin-permission-common": "0.7.1", - "@backstage/plugin-permission-node": "0.7.1", - "@backstage/plugin-permission-react": "0.4.7", - "@backstage/plugin-playlist": "0.1.2", - "@backstage/plugin-playlist-backend": "0.2.1", - "@backstage/plugin-playlist-common": "0.1.2", - "@backstage/plugin-proxy-backend": "0.2.32", - "@backstage/plugin-rollbar": "0.4.11", - "@backstage/plugin-rollbar-backend": "0.1.35", - "@backstage/plugin-scaffolder": "1.8.0", - "@backstage/plugin-scaffolder-backend": "1.8.0", - "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.13", - "@backstage/plugin-scaffolder-backend-module-rails": "0.4.6", - "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.11", - "@backstage/plugin-scaffolder-common": "1.2.2", - "@backstage/plugin-search": "1.0.4", - "@backstage/plugin-search-backend": "1.1.1", - "@backstage/plugin-search-backend-module-elasticsearch": "1.0.4", - "@backstage/plugin-search-backend-module-pg": "0.4.2", - "@backstage/plugin-search-backend-node": "1.0.4", - "@backstage/plugin-search-common": "1.1.1", - "@backstage/plugin-search-react": "1.2.1", - "@backstage/plugin-sentry": "0.4.4", - "@backstage/plugin-shortcuts": "0.3.3", - "@backstage/plugin-sonarqube": "0.5.0", - "@backstage/plugin-sonarqube-backend": "0.1.3", - "@backstage/plugin-splunk-on-call": "0.4.0", - "@backstage/plugin-stack-overflow": "0.1.7", - "@backstage/plugin-stack-overflow-backend": "0.1.7", - "@backstage/plugin-tech-insights": "0.3.3", - "@backstage/plugin-tech-insights-backend": "0.5.4", - "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.22", - "@backstage/plugin-tech-insights-common": "0.2.8", - "@backstage/plugin-tech-insights-node": "0.3.6", - "@backstage/plugin-tech-radar": "0.5.18", - "@backstage/plugin-techdocs": "1.4.0", - "@backstage/plugin-techdocs-addons-test-utils": "1.0.6", - "@backstage/plugin-techdocs-backend": "1.4.1", - "@backstage/plugin-techdocs-module-addons-contrib": "1.0.6", - "@backstage/plugin-techdocs-node": "1.4.2", - "@backstage/plugin-techdocs-react": "1.0.6", - "@backstage/plugin-todo": "0.2.13", - "@backstage/plugin-todo-backend": "0.1.35", - "@backstage/plugin-user-settings": "0.5.1", - "@backstage/plugin-user-settings-backend": "0.1.2", - "@backstage/plugin-vault": "0.1.5", - "@backstage/plugin-vault-backend": "0.2.4", - "@backstage/plugin-xcmetrics": "0.2.31", - "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.0.0", - "@backstage/plugin-explore-backend": "0.0.0", - "@backstage/plugin-explore-common": "0.0.0", - "@backstage/integration-aws-node": "0.0.0" + "@backstage/plugin-dynatrace": "1.0.2", + "@backstage/plugin-events-backend": "0.2.0", + "@backstage/plugin-events-backend-module-aws-sqs": "0.1.1", + "@backstage/plugin-events-backend-module-azure": "0.1.1", + "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.1.1", + "@backstage/plugin-events-backend-module-gerrit": "0.1.1", + "@backstage/plugin-events-backend-module-github": "0.1.1", + "@backstage/plugin-events-backend-module-gitlab": "0.1.1", + "@backstage/plugin-events-backend-test-utils": "0.1.1", + "@backstage/plugin-events-node": "0.2.0", + "@internal/plugin-todo-list": "1.0.8", + "@internal/plugin-todo-list-backend": "1.0.8", + "@internal/plugin-todo-list-common": "1.0.7", + "@backstage/plugin-explore": "0.3.43", + "@backstage/plugin-explore-backend": "0.0.1", + "@backstage/plugin-explore-common": "0.0.1", + "@backstage/plugin-explore-react": "0.0.24", + "@backstage/plugin-firehydrant": "0.1.29", + "@backstage/plugin-fossa": "0.2.44", + "@backstage/plugin-gcalendar": "0.3.8", + "@backstage/plugin-gcp-projects": "0.3.31", + "@backstage/plugin-git-release-manager": "0.3.25", + "@backstage/plugin-github-actions": "0.5.12", + "@backstage/plugin-github-deployments": "0.1.43", + "@backstage/plugin-github-issues": "0.2.1", + "@backstage/plugin-github-pull-requests-board": "0.1.6", + "@backstage/plugin-gitops-profiles": "0.3.30", + "@backstage/plugin-gocd": "0.1.18", + "@backstage/plugin-graphiql": "0.2.44", + "@backstage/plugin-graphql-backend": "0.1.29", + "@backstage/plugin-home": "0.4.28", + "@backstage/plugin-ilert": "0.2.1", + "@backstage/plugin-jenkins": "0.7.11", + "@backstage/plugin-jenkins-backend": "0.1.29", + "@backstage/plugin-jenkins-common": "0.1.11", + "@backstage/plugin-kafka": "0.3.12", + "@backstage/plugin-kafka-backend": "0.2.32", + "@backstage/plugin-kubernetes": "0.7.5", + "@backstage/plugin-kubernetes-backend": "0.9.0", + "@backstage/plugin-kubernetes-common": "0.5.0", + "@backstage/plugin-lighthouse": "0.3.12", + "@backstage/plugin-newrelic": "0.3.30", + "@backstage/plugin-newrelic-dashboard": "0.2.5", + "@backstage/plugin-org": "0.6.2", + "@backstage/plugin-org-react": "0.1.1", + "@backstage/plugin-pagerduty": "0.5.5", + "@backstage/plugin-periskop": "0.1.10", + "@backstage/plugin-periskop-backend": "0.1.10", + "@backstage/plugin-permission-backend": "0.5.14", + "@backstage/plugin-permission-common": "0.7.2", + "@backstage/plugin-permission-node": "0.7.2", + "@backstage/plugin-permission-react": "0.4.8", + "@backstage/plugin-playlist": "0.1.3", + "@backstage/plugin-playlist-backend": "0.2.2", + "@backstage/plugin-playlist-common": "0.1.3", + "@backstage/plugin-proxy-backend": "0.2.33", + "@backstage/plugin-rollbar": "0.4.12", + "@backstage/plugin-rollbar-backend": "0.1.36", + "@backstage/plugin-scaffolder": "1.9.0", + "@backstage/plugin-scaffolder-backend": "1.9.0", + "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.14", + "@backstage/plugin-scaffolder-backend-module-rails": "0.4.7", + "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.12", + "@backstage/plugin-scaffolder-common": "1.2.3", + "@backstage/plugin-search": "1.0.5", + "@backstage/plugin-search-backend": "1.2.0", + "@backstage/plugin-search-backend-module-elasticsearch": "1.1.0", + "@backstage/plugin-search-backend-module-pg": "0.5.0", + "@backstage/plugin-search-backend-node": "1.1.0", + "@backstage/plugin-search-common": "1.2.0", + "@backstage/plugin-search-react": "1.3.0", + "@backstage/plugin-sentry": "0.4.5", + "@backstage/plugin-shortcuts": "0.3.4", + "@backstage/plugin-sonarqube": "0.6.0", + "@backstage/plugin-sonarqube-backend": "0.1.4", + "@backstage/plugin-sonarqube-react": "0.1.0", + "@backstage/plugin-splunk-on-call": "0.4.1", + "@backstage/plugin-stack-overflow": "0.1.8", + "@backstage/plugin-stack-overflow-backend": "0.1.8", + "@backstage/plugin-tech-insights": "0.3.4", + "@backstage/plugin-tech-insights-backend": "0.5.5", + "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.23", + "@backstage/plugin-tech-insights-common": "0.2.9", + "@backstage/plugin-tech-insights-node": "0.3.7", + "@backstage/plugin-tech-radar": "0.5.19", + "@backstage/plugin-techdocs": "1.4.1", + "@backstage/plugin-techdocs-addons-test-utils": "1.0.7", + "@backstage/plugin-techdocs-backend": "1.5.0", + "@backstage/plugin-techdocs-module-addons-contrib": "1.0.7", + "@backstage/plugin-techdocs-node": "1.4.3", + "@backstage/plugin-techdocs-react": "1.1.0", + "@backstage/plugin-todo": "0.2.14", + "@backstage/plugin-todo-backend": "0.1.36", + "@backstage/plugin-user-settings": "0.6.0", + "@backstage/plugin-user-settings-backend": "0.1.3", + "@backstage/plugin-vault": "0.1.6", + "@backstage/plugin-vault-backend": "0.2.5", + "@backstage/plugin-xcmetrics": "0.2.32" }, - "changesets": [ - "angry-dingos-lick", - "angry-trees-relax", - "beige-chairs-repair", - "beige-chairs-wink", - "blue-chefs-know", - "brave-bags-sniff", - "breezy-apes-mate", - "chilled-ladybugs-cough", - "chilly-ads-lay", - "chilly-flies-nail", - "chilly-tables-crash", - "clean-paws-fry", - "clean-seals-whisper", - "clever-pillows-drive", - "clever-rivers-obey", - "create-app-1669131574", - "create-app-1669720399", - "create-app-1670332900", - "cyan-donkeys-arrive", - "dirty-ads-refuse", - "dry-melons-listen", - "dry-radios-live", - "early-hairs-switch", - "early-parrots-guess", - "eight-eels-compete", - "eight-spiders-know", - "eight-tables-hunt", - "eleven-jeans-train", - "empty-taxis-run", - "fair-walls-talk", - "famous-cobras-suffer", - "famous-crews-speak", - "fast-lies-remain", - "fast-walls-explode", - "fifty-news-stare", - "five-trainers-admire", - "fluffy-walls-approve", - "fluffy-worms-arrive", - "forty-baboons-burn", - "forty-carpets-refuse", - "four-adults-provide", - "four-buttons-clean", - "fresh-news-push", - "funny-numbers-compete", - "fuzzy-rivers-search", - "gentle-ligers-help", - "gold-icons-cheat", - "gold-yaks-join", - "gorgeous-hairs-applaud", - "green-deers-turn", - "healthy-crabs-collect", - "hip-chairs-tap", - "hip-stingrays-kneel", - "hip-wasps-yell", - "itchy-walls-boil", - "kind-tips-pump", - "kind-walls-share", - "lemon-coats-camp", - "light-snakes-exercise", - "light-turtles-yawn", - "little-chairs-dance", - "long-eyes-confess", - "loud-rockets-reply", - "loud-snails-sleep", - "lucky-chicken-greet", - "many-bikes-press", - "mighty-parrots-hammer", - "modern-camels-cheat", - "modern-jokes-attack", - "modern-mugs-shout", - "nasty-melons-build", - "neat-insects-share", - "neat-lies-know", - "nervous-mice-flow", - "new-bugs-march", - "nice-apricots-love", - "nice-hairs-lick", - "nice-pants-boil", - "nine-ears-whisper", - "odd-moles-notice", - "old-bulldogs-fry", - "old-keys-leave", - "old-sloths-warn", - "old-tips-cough", - "pretty-eagles-matter", - "pretty-melons-taste", - "quick-horses-cry", - "renovate-1da1327", - "renovate-1e2853d", - "renovate-3fe8460", - "renovate-4bb70f3", - "renovate-4cbe4f9", - "renovate-50ee0c3", - "renovate-61ad428", - "renovate-778b2fa", - "renovate-8c69aed", - "renovate-a5f7839", - "renovate-bf8dfb3", - "renovate-ceb9248", - "renovate-ebb2ea1", - "rich-balloons-leave", - "rich-garlics-play", - "rude-pugs-deny", - "rude-sloths-cross", - "search-heavy-frogs-confess", - "search-lieutenant-dangle", - "search-om-manniskan-ginge", - "search-tofu-panaeng", - "search-yet-another-wonderwall-cover", - "selfish-lizards-invent", - "serious-windows-occur", - "seven-schools-speak", - "sharp-shoes-bathe", - "short-turtles-dream", - "shy-birds-hammer", - "shy-cycles-add", - "silly-knives-warn", - "silly-wolves-remember", - "silver-rats-rest", - "slow-dragons-promise", - "slow-eggs-grab", - "slow-flies-marinate", - "slow-flies-marry", - "slow-lies-jam", - "smart-radios-change", - "smooth-bulldogs-fix", - "soft-nails-arrive", - "sour-flowers-care", - "sour-plums-grow", - "sour-queens-wait", - "spicy-pianos-train", - "strange-rocks-hide", - "strong-peaches-melt", - "strong-rice-warn", - "stupid-clocks-return", - "stupid-gifts-serve", - "sweet-pandas-relax", - "tender-colts-greet", - "tender-parrots-cover", - "thin-donuts-join", - "thin-flies-wink", - "tiny-kangaroos-speak", - "twelve-meals-smell", - "twenty-dodos-wash", - "unlucky-hotels-hammer", - "violet-dots-relate", - "warm-parents-notice", - "weak-ears-jam", - "weak-zoos-hammer", - "wet-tips-yawn", - "wicked-games-search", - "wicked-impalas-relate", - "wild-pears-enjoy", - "witty-wasps-kiss", - "yellow-forks-knock", - "young-chairs-check", - "young-turkeys-relax" - ] + "changesets": [] } diff --git a/.changeset/pretty-eagles-matter.md b/.changeset/pretty-eagles-matter.md deleted file mode 100644 index 64eabd9ce6..0000000000 --- a/.changeset/pretty-eagles-matter.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-bazaar-backend': patch ---- - -Column `title` has replaced column `name` for `BazaarProject` in database diff --git a/.changeset/pretty-melons-taste.md b/.changeset/pretty-melons-taste.md deleted file mode 100644 index 9c2a7a13da..0000000000 --- a/.changeset/pretty-melons-taste.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -JSX and React Fast Refresh transforms are no longer enabled when bundling backend code. diff --git a/.changeset/quick-horses-cry.md b/.changeset/quick-horses-cry.md deleted file mode 100644 index 8b40c92b41..0000000000 --- a/.changeset/quick-horses-cry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-org': patch ---- - -Update `UserProfileCard` and `GroupProfileCard` to not render links unless the `showLinks` prop is set. The primary component for rendering links are the `EntityLinksCard` from plugin-catalog. diff --git a/.changeset/renovate-1da1327.md b/.changeset/renovate-1da1327.md deleted file mode 100644 index cb88ccf463..0000000000 --- a/.changeset/renovate-1da1327.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/cli': patch -'@backstage/plugin-scaffolder-backend': patch ---- - -Updated dependency `esbuild` to `^0.16.0`. diff --git a/.changeset/renovate-1e2853d.md b/.changeset/renovate-1e2853d.md deleted file mode 100644 index 9378786e80..0000000000 --- a/.changeset/renovate-1e2853d.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Updated dependency `minimatch` to `5.1.1` and switch version range to `^`. diff --git a/.changeset/renovate-3fe8460.md b/.changeset/renovate-3fe8460.md deleted file mode 100644 index 17dc8b8b97..0000000000 --- a/.changeset/renovate-3fe8460.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -'@backstage/backend-common': patch -'@backstage/backend-test-utils': patch -'@backstage/catalog-client': patch -'@backstage/cli': patch -'@backstage/config-loader': patch -'@backstage/core-app-api': patch -'@backstage/core-components': patch -'@backstage/core-plugin-api': patch -'@backstage/integration-react': patch -'@backstage/integration': patch -'@backstage/release-manifests': patch -'@backstage/test-utils': patch -'@backstage/plugin-adr-backend': patch -'@backstage/plugin-adr': patch -'@backstage/plugin-airbrake-backend': patch -'@backstage/plugin-airbrake': patch -'@backstage/plugin-allure': patch -'@backstage/plugin-analytics-module-ga': patch -'@backstage/plugin-apache-airflow': patch -'@backstage/plugin-api-docs': patch -'@backstage/plugin-apollo-explorer': patch -'@backstage/plugin-app-backend': patch -'@backstage/plugin-auth-backend': patch -'@backstage/plugin-auth-node': patch -'@backstage/plugin-azure-devops-backend': patch -'@backstage/plugin-azure-devops': patch -'@backstage/plugin-azure-sites-backend': patch -'@backstage/plugin-azure-sites': patch -'@backstage/plugin-badges': patch -'@backstage/plugin-bitbucket-cloud-common': patch -'@backstage/plugin-bitrise': patch -'@backstage/plugin-catalog-backend-module-azure': patch -'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch -'@backstage/plugin-catalog-backend-module-bitbucket-server': patch -'@backstage/plugin-catalog-backend-module-bitbucket': patch -'@backstage/plugin-catalog-backend-module-gerrit': patch -'@backstage/plugin-catalog-backend-module-github': patch -'@backstage/plugin-catalog-backend-module-gitlab': patch -'@backstage/plugin-catalog-backend-module-msgraph': patch -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-catalog-graphql': patch -'@backstage/plugin-catalog-import': patch -'@backstage/plugin-circleci': patch -'@backstage/plugin-cloudbuild': patch -'@backstage/plugin-code-climate': patch -'@backstage/plugin-code-coverage-backend': patch -'@backstage/plugin-code-coverage': patch -'@backstage/plugin-codescene': patch -'@backstage/plugin-config-schema': patch -'@backstage/plugin-cost-insights': patch -'@backstage/plugin-dynatrace': patch -'@backstage/plugin-explore-react': patch -'@backstage/plugin-explore': patch -'@backstage/plugin-firehydrant': patch -'@backstage/plugin-fossa': patch -'@backstage/plugin-gcalendar': patch -'@backstage/plugin-gcp-projects': patch -'@backstage/plugin-git-release-manager': patch -'@backstage/plugin-github-actions': patch -'@backstage/plugin-github-deployments': patch -'@backstage/plugin-github-issues': patch -'@backstage/plugin-github-pull-requests-board': patch -'@backstage/plugin-gitops-profiles': patch -'@backstage/plugin-gocd': patch -'@backstage/plugin-graphiql': patch -'@backstage/plugin-graphql-backend': patch -'@backstage/plugin-home': patch -'@backstage/plugin-ilert': patch -'@backstage/plugin-jenkins-backend': patch -'@backstage/plugin-jenkins': patch -'@backstage/plugin-kafka': patch -'@backstage/plugin-kubernetes': patch -'@backstage/plugin-lighthouse': patch -'@backstage/plugin-newrelic': patch -'@backstage/plugin-org-react': patch -'@backstage/plugin-org': patch -'@backstage/plugin-pagerduty': patch -'@backstage/plugin-periskop-backend': patch -'@backstage/plugin-periskop': patch -'@backstage/plugin-permission-backend': patch -'@backstage/plugin-permission-common': patch -'@backstage/plugin-permission-node': patch -'@backstage/plugin-playlist-backend': patch -'@backstage/plugin-playlist': patch -'@backstage/plugin-proxy-backend': patch -'@backstage/plugin-rollbar-backend': patch -'@backstage/plugin-rollbar': patch -'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch -'@backstage/plugin-scaffolder-backend': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-search': patch -'@backstage/plugin-sentry': patch -'@backstage/plugin-shortcuts': patch -'@backstage/plugin-sonarqube-backend': patch -'@backstage/plugin-sonarqube': patch -'@backstage/plugin-splunk-on-call': patch -'@backstage/plugin-stack-overflow': patch -'@backstage/plugin-tech-insights': patch -'@backstage/plugin-tech-radar': patch -'@backstage/plugin-techdocs-addons-test-utils': patch -'@backstage/plugin-techdocs-backend': patch -'@backstage/plugin-techdocs-module-addons-contrib': patch -'@backstage/plugin-techdocs': patch -'@backstage/plugin-todo-backend': patch -'@backstage/plugin-todo': patch -'@backstage/plugin-user-settings': patch -'@backstage/plugin-vault-backend': patch -'@backstage/plugin-vault': patch -'@backstage/plugin-xcmetrics': patch ---- - -Updated dependency `msw` to `^0.49.0`. diff --git a/.changeset/renovate-4bb70f3.md b/.changeset/renovate-4bb70f3.md deleted file mode 100644 index 3a9054011f..0000000000 --- a/.changeset/renovate-4bb70f3.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@backstage/core-app-api': patch -'@backstage/core-components': patch -'@backstage/core-plugin-api': patch -'@backstage/dev-utils': patch -'@backstage/test-utils': patch -'@backstage/types': patch -'@backstage/plugin-catalog-react': patch -'@backstage/plugin-catalog': patch -'@backstage/plugin-config-schema': patch -'@backstage/plugin-scaffolder-backend': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-shortcuts': patch -'@backstage/plugin-user-settings': patch ---- - -Updated dependency `zen-observable` to `^0.9.0`. diff --git a/.changeset/renovate-4cbe4f9.md b/.changeset/renovate-4cbe4f9.md deleted file mode 100644 index 90d7faa801..0000000000 --- a/.changeset/renovate-4cbe4f9.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Updated dependency `@rollup/plugin-commonjs` to `^23.0.0`. diff --git a/.changeset/renovate-50ee0c3.md b/.changeset/renovate-50ee0c3.md deleted file mode 100644 index 3cdd142cf6..0000000000 --- a/.changeset/renovate-50ee0c3.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@backstage/core-app-api': patch -'@backstage/core-components': patch -'@backstage/core-plugin-api': patch -'@backstage/dev-utils': patch -'@backstage/test-utils': patch -'@backstage/types': patch -'@backstage/plugin-catalog-react': patch -'@backstage/plugin-catalog': patch -'@backstage/plugin-config-schema': patch -'@backstage/plugin-scaffolder-backend': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-shortcuts': patch -'@backstage/plugin-user-settings': patch ---- - -Updated dependency `zen-observable` to `^0.10.0`. diff --git a/.changeset/renovate-61ad428.md b/.changeset/renovate-61ad428.md deleted file mode 100644 index 95e4e27baf..0000000000 --- a/.changeset/renovate-61ad428.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/core-components': patch -'@backstage/plugin-gcp-projects': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-techdocs-module-addons-contrib': patch ---- - -Updated dependency `@react-hookz/web` to `^19.0.0`. diff --git a/.changeset/renovate-778b2fa.md b/.changeset/renovate-778b2fa.md deleted file mode 100644 index f4f57e448b..0000000000 --- a/.changeset/renovate-778b2fa.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/core-components': patch -'@backstage/plugin-codescene': patch -'@backstage/plugin-sonarqube': patch ---- - -Updated dependency `rc-progress` to `3.4.1`. diff --git a/.changeset/renovate-8c69aed.md b/.changeset/renovate-8c69aed.md deleted file mode 100644 index 63a61d941a..0000000000 --- a/.changeset/renovate-8c69aed.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Updated dependency `@types/http-errors` to `^2.0.0`. diff --git a/.changeset/renovate-968149a.md b/.changeset/renovate-968149a.md new file mode 100644 index 0000000000..592a13132e --- /dev/null +++ b/.changeset/renovate-968149a.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Updated dependency `@microsoft/tsdoc-config` to `0.16.2`. diff --git a/.changeset/renovate-a5f7839.md b/.changeset/renovate-a5f7839.md deleted file mode 100644 index d1ab22e04a..0000000000 --- a/.changeset/renovate-a5f7839.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/config-loader': patch ---- - -Updated dependency `typescript-json-schema` to `^0.55.0`. diff --git a/.changeset/renovate-bf8dfb3.md b/.changeset/renovate-bf8dfb3.md deleted file mode 100644 index 57cabf075b..0000000000 --- a/.changeset/renovate-bf8dfb3.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Updated dependency `@rollup/plugin-yaml` to `^4.0.0`. diff --git a/.changeset/renovate-ceb9248.md b/.changeset/renovate-ceb9248.md deleted file mode 100644 index d1cfe1775e..0000000000 --- a/.changeset/renovate-ceb9248.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Updated dependency `@rollup/plugin-json` to `^5.0.0`. diff --git a/.changeset/renovate-ebb2ea1.md b/.changeset/renovate-ebb2ea1.md deleted file mode 100644 index 010236c2f2..0000000000 --- a/.changeset/renovate-ebb2ea1.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/core-components': patch -'@backstage/plugin-gcp-projects': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-techdocs-module-addons-contrib': patch ---- - -Updated dependency `@react-hookz/web` to `^20.0.0`. diff --git a/.changeset/rich-balloons-leave.md b/.changeset/rich-balloons-leave.md deleted file mode 100644 index bb6832a681..0000000000 --- a/.changeset/rich-balloons-leave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Added the ability to understand Job Artifact URLs to the GitLab integration diff --git a/.changeset/rich-garlics-play.md b/.changeset/rich-garlics-play.md deleted file mode 100644 index 5589a70e35..0000000000 --- a/.changeset/rich-garlics-play.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-kubernetes-backend': patch -'@backstage/plugin-kubernetes-common': patch ---- - -Added Kubernetes proxy API route to backend Kubernetes plugin, allowing Backstage plugin developers to read/write new information from Kubernetes (if proper credentials are provided). diff --git a/.changeset/rude-pugs-deny.md b/.changeset/rude-pugs-deny.md deleted file mode 100644 index b877d96285..0000000000 --- a/.changeset/rude-pugs-deny.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': minor ---- - -The catalog no longer stops after the first processor `validateEntityKind` -method returns `true` when validating entity kind shapes. Instead, it continues -through all registered processors that have this method, and requires that _at -least one_ of them returned true. - -The old behavior of stopping early made it harder to extend existing core kinds -with additional fields, since the `BuiltinKindsEntityProcessor` is always -present at the top of the processing chain and ensures that your additional -validation code would never be run. - -This is technically a breaking change, although it should not affect anybody -under normal circumstances, except if you had problematic validation code that -you were unaware that it was not being run. That code may now start to exhibit -those problems. - -If you need to disable this new behavior, `CatalogBuilder` as used in your -`packages/backend/src/plugins/catalog.ts` file now has a -`useLegacySingleProcessorValidation()` method to go back to the old behavior. - -```diff - const builder = await CatalogBuilder.create(env); -+builder.useLegacySingleProcessorValidation(); -``` diff --git a/.changeset/rude-sloths-cross.md b/.changeset/rude-sloths-cross.md deleted file mode 100644 index 8d3fc486e8..0000000000 --- a/.changeset/rude-sloths-cross.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@backstage/plugin-explore': patch -'@backstage/plugin-explore-backend': patch -'@backstage/plugin-explore-common': patch -'@backstage/plugin-explore-react': patch ---- - -Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. - -This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. - -NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. - -BREAKING CHANGE: If you have previously installed the `explore` plugin, but not yet customized the `ExploreToolConfig` API in your `packages/app`, this will result in an empty list of tools. diff --git a/.changeset/search-heavy-frogs-confess.md b/.changeset/search-heavy-frogs-confess.md deleted file mode 100644 index a37c28c60c..0000000000 --- a/.changeset/search-heavy-frogs-confess.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-node': patch ---- - -Fixed a bug that could cause a `max listeners exceeded warning` to be logged when more than 10 collators were running simultaneously. diff --git a/.changeset/search-lieutenant-dangle.md b/.changeset/search-lieutenant-dangle.md deleted file mode 100644 index 75f1bca915..0000000000 --- a/.changeset/search-lieutenant-dangle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-elasticsearch': patch ---- - -Fixed a bug that prevented indices from being cleaned up under some circumstances, which could have led to shard exhaustion. diff --git a/.changeset/search-om-manniskan-ginge.md b/.changeset/search-om-manniskan-ginge.md deleted file mode 100644 index c36972f191..0000000000 --- a/.changeset/search-om-manniskan-ginge.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-node': patch ---- - -Updated indexer and decorator base classes to take advantage of features introduced in Node.js v16; be sure you are running a [supported version of Node.js](https://backstage.io/docs/releases/v1.8.0#node-16-and-18). diff --git a/.changeset/search-tofu-panaeng.md b/.changeset/search-tofu-panaeng.md deleted file mode 100644 index 1f8bbf6a7b..0000000000 --- a/.changeset/search-tofu-panaeng.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-node': patch ---- - -Use of `TestPipeline.withSubject()` is now deprecated. Instead, use the `fromCollator`, `fromDecorator`, or `fromIndexer` static methods to instantiate a test pipeline. You may also use the class' `withCollator`, `withDecorator`, and `withIndexer` instance methods to build test pipelines that consist of multiple test subjects. diff --git a/.changeset/search-yet-another-wonderwall-cover.md b/.changeset/search-yet-another-wonderwall-cover.md deleted file mode 100644 index c87f418e50..0000000000 --- a/.changeset/search-yet-another-wonderwall-cover.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-stack-overflow': patch ---- - -The `` component is now able to highlight the result title and/or text when provided. To take advantage of this, pass in the `highlight` prop, similar to how it is done on other result list item components. diff --git a/.changeset/selfish-lizards-invent.md b/.changeset/selfish-lizards-invent.md deleted file mode 100644 index fd486416d8..0000000000 --- a/.changeset/selfish-lizards-invent.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-analytics-module-ga': patch ---- - -Added support for sending virtual pageviews on `search` events in order to enable -Site Search functionality in GA. For more information consult [README](/plugins/analytics-module-ga/README.md#enabling-site-search) diff --git a/.changeset/serious-windows-occur.md b/.changeset/serious-windows-occur.md deleted file mode 100644 index 37f778e846..0000000000 --- a/.changeset/serious-windows-occur.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/backend-common': patch -'@backstage/core-components': patch ---- - -Internal refactor to avoid usage of deprecated symbols. diff --git a/.changeset/seven-schools-speak.md b/.changeset/seven-schools-speak.md deleted file mode 100644 index 7d311b5514..0000000000 --- a/.changeset/seven-schools-speak.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-elasticsearch': minor ---- - -Added support for self hosted OpenSearch via new provider diff --git a/.changeset/sharp-shoes-bathe.md b/.changeset/sharp-shoes-bathe.md deleted file mode 100644 index 8d3c0dfddb..0000000000 --- a/.changeset/sharp-shoes-bathe.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch ---- - -Make incremental providers more resilient to failures diff --git a/.changeset/short-turtles-dream.md b/.changeset/short-turtles-dream.md deleted file mode 100644 index 022ef35f58..0000000000 --- a/.changeset/short-turtles-dream.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-stack-overflow-backend': patch ---- - -Added option to supply API Access Token. This is required in addition to an API key when trying to access the data for a private Stack Overflow Team. diff --git a/.changeset/shy-birds-hammer.md b/.changeset/shy-birds-hammer.md deleted file mode 100644 index 116652f740..0000000000 --- a/.changeset/shy-birds-hammer.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Updated the app template to use the new `AppRouter` component instead of `app.getRouter()`, as well as `app.createRoot()` instead of `app.getProvider()`. - -To apply this change to an existing app, make the following change to `packages/app/src/App.tsx`: - -```diff --import { FlatRoutes } from '@backstage/core-app-api'; -+import { AppRouter, FlatRoutes } from '@backstage/core-app-api'; - - ... - --const AppProvider = app.getProvider(); --const AppRouter = app.getRouter(); - - ... - --const App = () => ( -+export default app.createRoot( -- -+ <> - - - - {routes} - -- -+ , - ); -``` - -The final export step should end up looking something like this: - -```tsx -export default app.createRoot( - <> - - - - {routes} - - , -); -``` - -Note that `app.createRoot()` accepts a React element, rather than a component. diff --git a/.changeset/shy-cycles-add.md b/.changeset/shy-cycles-add.md deleted file mode 100644 index 2c70f2a8eb..0000000000 --- a/.changeset/shy-cycles-add.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-graph': patch ---- - -Set the default `maxDepth` prop for `EntityRelationsGraph` to a smaller value to provide better readability. diff --git a/.changeset/silly-knives-warn.md b/.changeset/silly-knives-warn.md deleted file mode 100644 index f5fb61b493..0000000000 --- a/.changeset/silly-knives-warn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs-node': patch ---- - -Add support for specifying an S3 bucket's account ID and retrieving the credentials from the `aws` app config section. This is now the preferred way to configure AWS credentials for Techdocs. diff --git a/.changeset/silly-wolves-remember.md b/.changeset/silly-wolves-remember.md deleted file mode 100644 index f39812db88..0000000000 --- a/.changeset/silly-wolves-remember.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Registered shutdown hook in experimental catalog plugin. diff --git a/.changeset/silver-chicken-travel.md b/.changeset/silver-chicken-travel.md new file mode 100644 index 0000000000..e5dea6381d --- /dev/null +++ b/.changeset/silver-chicken-travel.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': minor +--- + +Implemented server side ordering in the entities endpoint diff --git a/.changeset/silver-rats-rest.md b/.changeset/silver-rats-rest.md deleted file mode 100644 index 52bb9acd6f..0000000000 --- a/.changeset/silver-rats-rest.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-common': minor ---- - -numberOfResults (total number of results for a given query) can now be provided by each search engine and consumed as part of the search results response diff --git a/.changeset/slow-dragons-promise.md b/.changeset/slow-dragons-promise.md deleted file mode 100644 index 045b4f34e3..0000000000 --- a/.changeset/slow-dragons-promise.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Fix incorrectly exported GithubOrgEntityProvider as a type diff --git a/.changeset/slow-eggs-grab.md b/.changeset/slow-eggs-grab.md deleted file mode 100644 index e4c537687f..0000000000 --- a/.changeset/slow-eggs-grab.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/repo-tools': minor ---- - -Api reference documentation improvements - -- breadcrumbs links semantics as code spans -- new `@config` annotation to describe related config keys diff --git a/.changeset/slow-flies-marinate.md b/.changeset/slow-flies-marinate.md deleted file mode 100644 index 42d0de5f44..0000000000 --- a/.changeset/slow-flies-marinate.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-events-backend-module-aws-sqs': patch ---- - -Upgrade to AWS SDK for Javascript v3 diff --git a/.changeset/slow-flies-marry.md b/.changeset/slow-flies-marry.md deleted file mode 100644 index 7882707d32..0000000000 --- a/.changeset/slow-flies-marry.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/plugin-techdocs-node': patch ---- - -Upgrade to AWS SDK for Javascript v3 - -Techdocs support for AWS S3 now requires defining the AWS region to connect to. -If `techdocs.publisher.awsS3.region` is missing from the config, the AWS environment variable `AWS_REGION` will be used. diff --git a/.changeset/slow-lies-jam.md b/.changeset/slow-lies-jam.md deleted file mode 100644 index a9d7a90b95..0000000000 --- a/.changeset/slow-lies-jam.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@backstage/backend-common': patch -'@backstage/cli': patch -'@backstage/cli-common': patch -'@backstage/core-app-api': patch -'@backstage/core-components': patch -'@backstage/dev-utils': patch -'@techdocs/cli': patch ---- - -Tweaked wording to use inclusive terminology diff --git a/.changeset/smart-radios-change.md b/.changeset/smart-radios-change.md deleted file mode 100644 index 1c7393829d..0000000000 --- a/.changeset/smart-radios-change.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Fixed `SingleHostDiscovery` so that it properly handles single-string `backend.listen` configurations such as `:80`. diff --git a/.changeset/smooth-bulldogs-fix.md b/.changeset/smooth-bulldogs-fix.md deleted file mode 100644 index bbbb02aa13..0000000000 --- a/.changeset/smooth-bulldogs-fix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs-backend': minor ---- - -Added a new optional `accountId` to the configuration options of the AWS S3 publisher. Configuring this option will source credentials for the `accountId` in the `aws` app config section. See https://github.com/backstage/backstage/blob/master/packages/integration-aws-node/README.md for more details. diff --git a/.changeset/soft-nails-arrive.md b/.changeset/soft-nails-arrive.md deleted file mode 100644 index e9c0a40a05..0000000000 --- a/.changeset/soft-nails-arrive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': minor ---- - -Implement Custom Field Explorer to view and play around with available installed custom field extensions diff --git a/.changeset/sour-flowers-care.md b/.changeset/sour-flowers-care.md deleted file mode 100644 index 8524c4981c..0000000000 --- a/.changeset/sour-flowers-care.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': minor ---- - -Adds the ability to supply a `transformErrors` function to the `Stepper` for `/next` diff --git a/.changeset/sour-plums-grow.md b/.changeset/sour-plums-grow.md deleted file mode 100644 index 4070dc5e50..0000000000 --- a/.changeset/sour-plums-grow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -fixed `headerOptions` not passed to `TemplatePage` component diff --git a/.changeset/sour-queens-wait.md b/.changeset/sour-queens-wait.md deleted file mode 100644 index 87231a1eb0..0000000000 --- a/.changeset/sour-queens-wait.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': patch ---- - -add the command type-deps to the repo tool package. diff --git a/.changeset/spicy-pianos-train.md b/.changeset/spicy-pianos-train.md deleted file mode 100644 index 9a93edb3ce..0000000000 --- a/.changeset/spicy-pianos-train.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-airbrake': patch ---- - -Remove the `object-hash` dependency diff --git a/.changeset/strange-rocks-hide.md b/.changeset/strange-rocks-hide.md deleted file mode 100644 index e171a277fb..0000000000 --- a/.changeset/strange-rocks-hide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': minor ---- - -The search table also holds the original entity value now and the facets endpoint fetches the filtered entity data from the search table. diff --git a/.changeset/strong-peaches-melt.md b/.changeset/strong-peaches-melt.md deleted file mode 100644 index 43f819fd4d..0000000000 --- a/.changeset/strong-peaches-melt.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/core-components': patch -'@backstage/test-utils': patch ---- - -Sync components in @backstage/core-components with the Component Design Guidelines diff --git a/.changeset/strong-rice-warn.md b/.changeset/strong-rice-warn.md deleted file mode 100644 index da157ddaaf..0000000000 --- a/.changeset/strong-rice-warn.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Added an option to allow the `AlertMessage` to be self-closing. This is done with a new `display` property that is set to `transient` on the `AlertMessage` when triggering a message to the `AlertApi`. The length of time that these transient messages stay open for can be set using the `transientTimeoutMs` prop on the `AlertDisplay` in the `App.tsx`. Here is an example: - -```diff - const App = () => ( - -+ - - - {routes} - - - ); -``` - -The above example will set the transient timeout to 2500ms from the default of 5000ms diff --git a/.changeset/stupid-clocks-return.md b/.changeset/stupid-clocks-return.md deleted file mode 100644 index 84b061334f..0000000000 --- a/.changeset/stupid-clocks-return.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -'@backstage/plugin-events-backend-module-gitlab': patch ---- - -Add `createGitlabTokenValidator(config)` which can be used -to create a validator used at an ingress for topic `gitlab`. - -On top, there is a new `gitlabWebhookEventsModule` for the new backend plugin API -which auto-registers the `HttpPostIngress` for topic `gitlab` incl. the validator. - -Please find more information at -https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-gitlab/README.md. diff --git a/.changeset/stupid-gifts-serve.md b/.changeset/stupid-gifts-serve.md deleted file mode 100644 index 3110a1976c..0000000000 --- a/.changeset/stupid-gifts-serve.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch ---- - -Fix repo:push topic not matching `BitbucketCloudEventRouter`. diff --git a/.changeset/sweet-pandas-relax.md b/.changeset/sweet-pandas-relax.md deleted file mode 100644 index 97cff5a89d..0000000000 --- a/.changeset/sweet-pandas-relax.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -InfoCard - Remove subheader container when there is not a subheader or icon diff --git a/.changeset/tasty-impalas-mix.md b/.changeset/tasty-impalas-mix.md new file mode 100644 index 0000000000..c830c45c56 --- /dev/null +++ b/.changeset/tasty-impalas-mix.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Fixed an issue where internal references in the catalog would stick around for longer than expected, causing entities to not be deleted or orphaned as expected. diff --git a/.changeset/tender-colts-greet.md b/.changeset/tender-colts-greet.md deleted file mode 100644 index ff59bf0bea..0000000000 --- a/.changeset/tender-colts-greet.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-openapi': patch ---- - -Enabled support of resolving `$refs` in all kind of yaml documents, not only OpenAPI. This implicitly adds `$ref` resolving support for AsyncAPI specs. Thus, the `openApiPlaceholderResolver` has been renamed to `jsonSchemaRefPlaceholderResolver`. diff --git a/.changeset/tender-parrots-cover.md b/.changeset/tender-parrots-cover.md deleted file mode 100644 index 5272fcbdce..0000000000 --- a/.changeset/tender-parrots-cover.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs-module-addons-contrib': patch ---- - -Use `app.title` from `app-config.yaml` when creating new Documentation Feedback issue. `Backstage` is the default value. diff --git a/.changeset/thin-donuts-join.md b/.changeset/thin-donuts-join.md deleted file mode 100644 index 84705711d2..0000000000 --- a/.changeset/thin-donuts-join.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': patch ---- - -Fixed Entity kind pluralisation in the `CatalogKindHeader` component. diff --git a/.changeset/thin-flies-wink.md b/.changeset/thin-flies-wink.md deleted file mode 100644 index a31db67a1c..0000000000 --- a/.changeset/thin-flies-wink.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Bump `json-schema-library` to version `^7.3.9` which does not pull in the `gson-pointer` library diff --git a/.changeset/tiny-kangaroos-speak.md b/.changeset/tiny-kangaroos-speak.md deleted file mode 100644 index 436466c82d..0000000000 --- a/.changeset/tiny-kangaroos-speak.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Show input type array correctly on installed actions page. diff --git a/.changeset/twelve-meals-smell.md b/.changeset/twelve-meals-smell.md deleted file mode 100644 index a9d64823a3..0000000000 --- a/.changeset/twelve-meals-smell.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-vault-backend': patch ---- - -Use `express-promise-router` to catch errors properly. -Add `403` error as a known one. It will now return a `NotAllowed` error. diff --git a/.changeset/twenty-dodos-wash.md b/.changeset/twenty-dodos-wash.md deleted file mode 100644 index d21088a953..0000000000 --- a/.changeset/twenty-dodos-wash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-defaults': patch ---- - -Added `lifecycleFactory` to default service factories. diff --git a/.changeset/unlucky-hotels-hammer.md b/.changeset/unlucky-hotels-hammer.md deleted file mode 100644 index fe499e24ee..0000000000 --- a/.changeset/unlucky-hotels-hammer.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Removed the `react-router` dependency from the app package, using only `react-router-dom` instead. - -This change is just a bit of cleanup and is optional. If you want to apply it to your app, remove the `react-router` dependency from `packages/app/package.json`, and replace any imports from `react-router` with `react-router-dom` instead. diff --git a/.changeset/violet-dots-relate.md b/.changeset/violet-dots-relate.md deleted file mode 100644 index 3e22cdd1c7..0000000000 --- a/.changeset/violet-dots-relate.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Added option to pass additional headers to ``, which are passed along with the request to the underlying provider diff --git a/.changeset/warm-parents-notice.md b/.changeset/warm-parents-notice.md deleted file mode 100644 index 0084a968a1..0000000000 --- a/.changeset/warm-parents-notice.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-proxy-backend': patch ---- - -Documented the `createRouter` method. diff --git a/.changeset/weak-ears-jam.md b/.changeset/weak-ears-jam.md deleted file mode 100644 index 8f20937998..0000000000 --- a/.changeset/weak-ears-jam.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/integration': patch ---- - -Added `integrations.github.apps.allowedInstallationOwners` to the configuration schema. diff --git a/.changeset/weak-zoos-hammer.md b/.changeset/weak-zoos-hammer.md deleted file mode 100644 index 1b25881b85..0000000000 --- a/.changeset/weak-zoos-hammer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Removed all copyright notices from package templates. diff --git a/.changeset/wet-tips-yawn.md b/.changeset/wet-tips-yawn.md deleted file mode 100644 index 63f3c9dd2e..0000000000 --- a/.changeset/wet-tips-yawn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': minor ---- - -The `RepoUrlPicker` field extension now has an `allowedProjects` option for narrowing the selection of Bitbucket URLs. diff --git a/.changeset/wicked-games-search.md b/.changeset/wicked-games-search.md deleted file mode 100644 index 5264995a2d..0000000000 --- a/.changeset/wicked-games-search.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch ---- - -added an optional config entry `costInsights.engineerThreshold` to allow users to control the threshold value for the 'negligible' change in costs. diff --git a/.changeset/wicked-impalas-relate.md b/.changeset/wicked-impalas-relate.md deleted file mode 100644 index 5d8b16d062..0000000000 --- a/.changeset/wicked-impalas-relate.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Internal refactor to remove deprecated symbols. diff --git a/.changeset/wild-pears-enjoy.md b/.changeset/wild-pears-enjoy.md deleted file mode 100644 index 01a8b8a4a1..0000000000 --- a/.changeset/wild-pears-enjoy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-app-api': patch ---- - -Made `WebStorage` notify its subscribers when `localStorage` values change in other tabs/windows diff --git a/.changeset/witty-wasps-kiss.md b/.changeset/witty-wasps-kiss.md deleted file mode 100644 index ef51ef7bfd..0000000000 --- a/.changeset/witty-wasps-kiss.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': minor ---- - -Update the `github:publish` action to allow passing wether to dismiss stale reviews on the protected default branch. diff --git a/.changeset/yellow-forks-knock.md b/.changeset/yellow-forks-knock.md deleted file mode 100644 index 98c4b5b675..0000000000 --- a/.changeset/yellow-forks-knock.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch ---- - -Making a possibility to hide a trending line in a cost insights plugin diff --git a/.changeset/young-chairs-check.md b/.changeset/young-chairs-check.md deleted file mode 100644 index e70073e9df..0000000000 --- a/.changeset/young-chairs-check.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-app-api': patch ---- - -Apps will now rewrite the `app.baseUrl` configuration to match the current `location.origin`. The `backend.baseUrl` will also be rewritten in the same way when the `app.baseUrl` and `backend.baseUrl` have matching origins. This will reduce the need for separate frontend builds for different environments. diff --git a/.changeset/young-turkeys-relax.md b/.changeset/young-turkeys-relax.md deleted file mode 100644 index c53cd984a6..0000000000 --- a/.changeset/young-turkeys-relax.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-plugin-api': patch ---- - -Added initial support for registering shutdown hooks via `lifecycleServiceRef`. diff --git a/.eslintrc.js b/.eslintrc.js index 675a834efb..cf01ffe3a6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -18,7 +18,7 @@ var path = require('path'); module.exports = { root: true, - plugins: ['notice', 'testing-library'], + plugins: ['@spotify', 'notice', 'react', 'testing-library'], rules: { 'notice/notice': [ 'error', @@ -237,4 +237,20 @@ module.exports = { }), ].flat(), }, + overrides: [ + { + files: ['**/*.[jt]s?(x)'], + excludedFiles: '**/*.{test,spec}.[jt]s?(x)', + rules: { + 'react/forbid-elements': [ + 1, + { + forbid: [ + { element: 'button', message: 'use MUI + ); } @@ -688,7 +692,8 @@ export const SidebarExpandButton = () => { }; return ( - + ); }; diff --git a/packages/core-components/src/layout/Sidebar/SidebarSubmenuItem.tsx b/packages/core-components/src/layout/Sidebar/SidebarSubmenuItem.tsx index fbe4496c72..5fdd29f203 100644 --- a/packages/core-components/src/layout/Sidebar/SidebarSubmenuItem.tsx +++ b/packages/core-components/src/layout/Sidebar/SidebarSubmenuItem.tsx @@ -27,6 +27,7 @@ import ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp'; import { SidebarItemWithSubmenuContext } from './config'; import { isLocationMatch } from './utils'; import Box from '@material-ui/core/Box'; +import Button from '@material-ui/core/Button'; const useStyles = makeStyles( theme => ({ @@ -158,7 +159,8 @@ export const SidebarSubmenuItem = (props: SidebarSubmenuItemProps) => { return ( - + {dropdownItems && showDropDown && ( diff --git a/packages/core-plugin-api/CHANGELOG.md b/packages/core-plugin-api/CHANGELOG.md index 23b5e6970c..4f8ff07e31 100644 --- a/packages/core-plugin-api/CHANGELOG.md +++ b/packages/core-plugin-api/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/core-plugin-api +## 1.2.0 + +### Minor Changes + +- 9a1864976a: Added a new `display` property to the `AlertMessage` which can accept the values `permanent` or `transient`. + + Here's a rough example of how to trigger an alert using the new `display` property: + + ```ts + import { alertApiRef, useApi } from '@backstage/core-plugin-api'; + + const ExampleTransient = () => { + const alertApi = useApi(alertApiRef); + alertApi.post({ + message: 'Example of Transient Alert', + severity: 'success', + display: 'transient', + }); + }; + ``` + +### Patch Changes + +- d56127c712: useRouteRef - Limit re-resolving to location pathname changes only +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. +- Updated dependencies + - @backstage/version-bridge@1.0.3 + - @backstage/types@1.0.2 + - @backstage/config@1.0.5 + ## 1.2.0-next.2 ### Minor Changes diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index 4997530b77..f33d194214 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-plugin-api", "description": "Core API used by Backstage plugins", - "version": "1.2.0-next.2", + "version": "1.2.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/core-plugin-api/src/routing/useRouteRef.test.tsx b/packages/core-plugin-api/src/routing/useRouteRef.test.tsx index 62f6d6da42..618f40d281 100644 --- a/packages/core-plugin-api/src/routing/useRouteRef.test.tsx +++ b/packages/core-plugin-api/src/routing/useRouteRef.test.tsx @@ -16,10 +16,11 @@ import { renderHook } from '@testing-library/react-hooks'; import React from 'react'; -import { MemoryRouter } from 'react-router-dom'; +import { MemoryRouter, Router } from 'react-router-dom'; import { createVersionedContextForTesting } from '@backstage/version-bridge'; import { useRouteRef } from './useRouteRef'; import { createRouteRef } from './RouteRef'; +import { createBrowserHistory } from 'history'; describe('v1 consumer', () => { const context = createVersionedContextForTesting('routing-context'); @@ -49,4 +50,108 @@ describe('v1 consumer', () => { }), ); }); + + it('re-resolves the routeFunc when the search parameters change', () => { + const resolve = jest.fn(() => () => '/hello'); + context.set({ 1: { resolve } }); + + const routeRef = createRouteRef({ id: 'ref1' }); + const history = createBrowserHistory(); + history.push('/my-page'); + + const { rerender } = renderHook(() => useRouteRef(routeRef), { + wrapper: ({ children }) => ( + + ), + }); + + expect(resolve).toHaveBeenCalledTimes(1); + + history.push('/my-new-page'); + rerender(); + + expect(resolve).toHaveBeenCalledTimes(2); + }); + + it('does not re-resolve the routeFunc the location pathname does not change', () => { + const resolve = jest.fn(() => () => '/hello'); + context.set({ 1: { resolve } }); + + const routeRef = createRouteRef({ id: 'ref1' }); + const history = createBrowserHistory(); + history.push('/my-page'); + + const { rerender } = renderHook(() => useRouteRef(routeRef), { + wrapper: ({ children }) => ( + + ), + }); + + expect(resolve).toHaveBeenCalledTimes(1); + + history.push('/my-page'); + rerender(); + + expect(resolve).toHaveBeenCalledTimes(1); + }); + + it('does not re-resolve the routeFunc when the search parameter changes', () => { + const resolve = jest.fn(() => () => '/hello'); + context.set({ 1: { resolve } }); + + const routeRef = createRouteRef({ id: 'ref1' }); + const history = createBrowserHistory(); + history.push('/my-page'); + + const { rerender } = renderHook(() => useRouteRef(routeRef), { + wrapper: ({ children }) => ( + + ), + }); + + expect(resolve).toHaveBeenCalledTimes(1); + + history.push('/my-page?foo=bar'); + rerender(); + + expect(resolve).toHaveBeenCalledTimes(1); + }); + + it('does not re-resolve the routeFunc when the hash parameter changes', () => { + const resolve = jest.fn(() => () => '/hello'); + context.set({ 1: { resolve } }); + + const routeRef = createRouteRef({ id: 'ref1' }); + const history = createBrowserHistory(); + history.push('/my-page'); + + const { rerender } = renderHook(() => useRouteRef(routeRef), { + wrapper: ({ children }) => ( + + ), + }); + + expect(resolve).toHaveBeenCalledTimes(1); + + history.push('/my-page#foo'); + rerender(); + + expect(resolve).toHaveBeenCalledTimes(1); + }); }); diff --git a/packages/core-plugin-api/src/routing/useRouteRef.tsx b/packages/core-plugin-api/src/routing/useRouteRef.tsx index 563bb2035c..cf292b110f 100644 --- a/packages/core-plugin-api/src/routing/useRouteRef.tsx +++ b/packages/core-plugin-api/src/routing/useRouteRef.tsx @@ -85,7 +85,7 @@ export function useRouteRef( | SubRouteRef | ExternalRouteRef, ): RouteFunc | undefined { - const sourceLocation = useLocation(); + const { pathname } = useLocation(); const versionedContext = useVersionedContext<{ 1: RouteResolver }>( 'routing-context', ); @@ -95,8 +95,8 @@ export function useRouteRef( const resolver = versionedContext.atVersion(1); const routeFunc = useMemo( - () => resolver && resolver.resolve(routeRef, sourceLocation), - [resolver, routeRef, sourceLocation], + () => resolver && resolver.resolve(routeRef, { pathname }), + [resolver, routeRef, pathname], ); if (!versionedContext) { diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 280ffc3f6a..f9a5ff6219 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,68 @@ # @backstage/create-app +## 0.4.35 + +### Patch Changes + +- c4788dbb58: Fix dependency ordering in templated packages. +- 83d3167594: Bumped create-app version. +- 2cb6963f9b: Bumped create-app version. +- 6465ab3686: Bumped create-app version. +- af1358bb07: added default project name for CI job compatibility +- 935b66a646: Change step output template examples to use square bracket syntax. +- dfb269fab2: Updated the template to have the `'/test'` proxy endpoint in `app-config.yaml` be commented out by default. +- d9b3753f87: Updated the app template to use the new `AppRouter` component instead of `app.getRouter()`, as well as `app.createRoot()` instead of `app.getProvider()`. + + To apply this change to an existing app, make the following change to `packages/app/src/App.tsx`: + + ```diff + -import { FlatRoutes } from '@backstage/core-app-api'; + +import { AppRouter, FlatRoutes } from '@backstage/core-app-api'; + + ... + + -const AppProvider = app.getProvider(); + -const AppRouter = app.getRouter(); + + ... + + -const App = () => ( + +export default app.createRoot( + - + + <> + + + + {routes} + + - + + , + ); + ``` + + The final export step should end up looking something like this: + + ```tsx + export default app.createRoot( + <> + + + + {routes} + + , + ); + ``` + + Note that `app.createRoot()` accepts a React element, rather than a component. + +- 71e75c0b70: Removed the `react-router` dependency from the app package, using only `react-router-dom` instead. + + This change is just a bit of cleanup and is optional. If you want to apply it to your app, remove the `react-router` dependency from `packages/app/package.json`, and replace any imports from `react-router` with `react-router-dom` instead. + +- Updated dependencies + - @backstage/cli-common@0.1.11 + ## 0.4.35-next.4 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index c6f07cabf8..83a4ef9fff 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.4.35-next.4", + "version": "0.4.35", "publishConfig": { "access": "public" }, diff --git a/packages/create-app/src/createApp.test.ts b/packages/create-app/src/createApp.test.ts index f4c94d337a..f455efa6e6 100644 --- a/packages/create-app/src/createApp.test.ts +++ b/packages/create-app/src/createApp.test.ts @@ -42,7 +42,7 @@ const moveAppMock = jest.spyOn(tasks, 'moveAppTask'); const buildAppMock = jest.spyOn(tasks, 'buildAppTask'); describe('command entrypoint', () => { - beforeAll(() => { + beforeEach(() => { mockFs({ [`${__dirname}/package.json`]: '', // required by `findPaths(__dirname)` 'templates/': mockFs.load(path.resolve(__dirname, '../templates/')), diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 65294a8ebb..f75de52dcf 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/dev-utils +## 1.0.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/app-defaults@1.0.10 + - @backstage/integration-react@1.1.8 + - @backstage/plugin-catalog-react@1.2.3 + +## 1.0.9 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. +- 8015ff1258: Tweaked wording to use inclusive terminology +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/core-app-api@1.3.0 + - @backstage/test-utils@1.2.3 + - @backstage/app-defaults@1.0.9 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/integration-react@1.1.7 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 1.0.9-next.4 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 8a309b1403..74414da5c3 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "1.0.9-next.4", + "version": "1.0.9", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/errors/CHANGELOG.md b/packages/errors/CHANGELOG.md index 5a46b58378..e7803e2fb4 100644 --- a/packages/errors/CHANGELOG.md +++ b/packages/errors/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/errors +## 1.1.4 + +### Patch Changes + +- ac6cc9f7bd: Removed a circular import +- Updated dependencies + - @backstage/types@1.0.2 + ## 1.1.4-next.1 ### Patch Changes diff --git a/packages/errors/package.json b/packages/errors/package.json index 30656c6d41..1b9b865b74 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/errors", "description": "Common utilities for error handling within Backstage", - "version": "1.1.4-next.1", + "version": "1.1.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/errors/src/errors/CustomErrorBase.ts b/packages/errors/src/errors/CustomErrorBase.ts index 786e10ef23..b831d4eea3 100644 --- a/packages/errors/src/errors/CustomErrorBase.ts +++ b/packages/errors/src/errors/CustomErrorBase.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { stringifyError } from '../serialization'; +import { stringifyError } from '../serialization/error'; import { isError } from './assertion'; /** diff --git a/packages/errors/src/errors/ResponseError.ts b/packages/errors/src/errors/ResponseError.ts index a26891ef6a..f8ba0a1ba1 100644 --- a/packages/errors/src/errors/ResponseError.ts +++ b/packages/errors/src/errors/ResponseError.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { deserializeError } from '../serialization'; +import { deserializeError } from '../serialization/error'; import { ErrorResponseBody, parseErrorResponseBody, diff --git a/packages/errors/src/serialization/error.ts b/packages/errors/src/serialization/error.ts index 8d031949bf..e48309f1e7 100644 --- a/packages/errors/src/serialization/error.ts +++ b/packages/errors/src/serialization/error.ts @@ -19,7 +19,7 @@ import { deserializeError as deserializeErrorInternal, serializeError as serializeErrorInternal, } from 'serialize-error'; -import { isError } from '../errors'; +import { isError } from '../errors/assertion'; /** * The serialized form of an Error. diff --git a/packages/integration-aws-node/CHANGELOG.md b/packages/integration-aws-node/CHANGELOG.md index 4b70ee97b4..d07b6ab8aa 100644 --- a/packages/integration-aws-node/CHANGELOG.md +++ b/packages/integration-aws-node/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/integration-aws-node +## 0.1.0 + +### Minor Changes + +- 13278732f6: New package for AWS integration node library + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.0-next.0 ### Minor Changes diff --git a/packages/integration-aws-node/package.json b/packages/integration-aws-node/package.json index 0088f08ba8..a5b0ed08bb 100644 --- a/packages/integration-aws-node/package.json +++ b/packages/integration-aws-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration-aws-node", "description": "Helpers for fetching AWS account credentials", - "version": "0.1.0-next.0", + "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index d071eaa6a4..f359f4ea87 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/integration-react +## 1.1.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 1.1.7 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/integration@1.4.1 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 1.1.7-next.4 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 8beee2abfb..594c0defc4 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration-react", "description": "Frontend package for managing integrations towards external systems", - "version": "1.1.7-next.4", + "version": "1.1.7", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 0542c17989..a077352af9 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/integration +## 1.4.1 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 34b039ca9f: Added `integrations.github.apps.allowedInstallationOwners` to the configuration schema. +- Updated dependencies + - @backstage/errors@1.1.4 + - @backstage/config@1.0.5 + ## 1.4.1-next.1 ### Patch Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index bcf6da2d74..b030611b68 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration", "description": "Helpers for managing integrations towards external systems", - "version": "1.4.1-next.1", + "version": "1.4.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/release-manifests/CHANGELOG.md b/packages/release-manifests/CHANGELOG.md index e8bb4dfb07..538de23e43 100644 --- a/packages/release-manifests/CHANGELOG.md +++ b/packages/release-manifests/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/release-manifests +## 0.0.8 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. + ## 0.0.8-next.0 ### Patch Changes diff --git a/packages/release-manifests/package.json b/packages/release-manifests/package.json index 2a53438bd2..4abeb9dc6a 100644 --- a/packages/release-manifests/package.json +++ b/packages/release-manifests/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/release-manifests", "description": "Helper library for receiving release manifests", - "version": "0.0.8-next.0", + "version": "0.0.8", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index fd4d1f0f01..4777225550 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/repo-tools +## 0.1.0 + +### Minor Changes + +- 99713fd671: Introducing repo-tools package +- 03843259b4: Api reference documentation improvements + + - breadcrumbs links semantics as code spans + - new `@config` annotation to describe related config keys + +### Patch Changes + +- 9b1193f277: declare dependencies +- a8611bcac4: Add new command options to the `api-report` + + - added `--allow-warnings`, `-a` to continue processing packages if selected packages have warnings + - added `--allow-all-warnings` to continue processing packages any packages have warnings + - added `--omit-messages`, `-o` to pass some warnings messages code to be omitted from the api-report.md files + - The `paths` argument for this command now takes as default the value on `workspaces.packages` inside the root package.json + - change the path resolution to use the `@backstage/cli-common` packages instead + +- 25ec5c0c3a: Include asset-types.d.ts while running the api report command +- 71f80eb354: add the command type-deps to the repo tool package. +- ac440299ef: Updated api docs generation to be compatible with Docusaurus 2-alpha and 2.x. +- Updated dependencies + - @backstage/errors@1.1.4 + - @backstage/cli-common@0.1.11 + ## 0.1.0-next.2 ### Patch Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 595cbf1196..09d5fe03f8 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/repo-tools", "description": "CLI for Backstage repo tooling ", - "version": "0.1.0-next.2", + "version": "0.1.0", "publishConfig": { "access": "public" }, @@ -37,6 +37,7 @@ "@microsoft/api-extractor": "^7.23.0", "@microsoft/api-extractor-model": "^7.17.2", "@microsoft/tsdoc": "0.14.1", + "@microsoft/tsdoc-config": "0.16.2", "chalk": "^4.0.0", "commander": "^9.1.0", "fs-extra": "10.1.0", @@ -51,6 +52,16 @@ "@types/mock-fs": "^4.13.0", "mock-fs": "^5.1.0" }, + "peerDependencies": { + "@rushstack/node-core-library": "*", + "prettier": "^2.8.1", + "typescript": "> 3.0.0" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + }, "files": [ "bin", "dist/**/*.js" diff --git a/packages/repo-tools/src/commands/api-reports/api-extractor.ts b/packages/repo-tools/src/commands/api-reports/api-extractor.ts index 46f4ea984b..9e844d97c8 100644 --- a/packages/repo-tools/src/commands/api-reports/api-extractor.ts +++ b/packages/repo-tools/src/commands/api-reports/api-extractor.ts @@ -14,9 +14,6 @@ * limitations under the License. */ -/* eslint-disable import/no-extraneous-dependencies */ -/* eslint-disable no-restricted-imports */ - import { resolve as resolvePath, relative as relativePath, @@ -25,7 +22,7 @@ import { join, } from 'path'; import { execFile } from 'child_process'; -import prettier from 'prettier'; +import type prettierType from 'prettier'; import fs from 'fs-extra'; import { Extractor, @@ -66,7 +63,6 @@ import { import { IMarkdownEmitterContext } from '@microsoft/api-documenter/lib/markdown/MarkdownEmitter'; import { AstDeclaration } from '@microsoft/api-extractor/lib/analyzer/AstDeclaration'; import { paths as cliPaths } from '../../lib/paths'; - import minimatch from 'minimatch'; const tmpDir = cliPaths.resolveTargetRoot( @@ -215,10 +211,19 @@ ApiReportGenerator.generateReviewFileContent = collector, ...moreArgs, ); - return prettier.format(content, { - ...require('@spotify/prettier-config'), - parser: 'markdown', - }); + + try { + const prettier = require('prettier') as typeof prettierType; + + const config = prettier.resolveConfig.sync(cliPaths.targetRoot) ?? {}; + return prettier.format(content, { + ...config, + parser: 'markdown', + }); + } catch (e) { + // console.warn('Failed to format API report with prettier', e); + return content; + } }; export async function createTemporaryTsConfig(includedPackageDirs: string[]) { @@ -228,13 +233,25 @@ export async function createTemporaryTsConfig(includedPackageDirs: string[]) { fs.removeSync(path); }); + let assetTypeFile: string[] = []; + + try { + assetTypeFile = [ + require.resolve('@backstage/cli/asset-types/asset-types.d.ts'), + ]; + } catch { + /** ignore */ + } + await fs.writeJson(path, { extends: './tsconfig.json', include: [ // These two contain global definitions that are needed for stable API report generation - 'packages/cli/asset-types/asset-types.d.ts', + ...assetTypeFile, ...includedPackageDirs.map(dir => join(dir, 'src')), ], + // we don't exclude node_modules so that we can use the asset-types.d.ts file + exclude: [], }); return path; @@ -830,7 +847,9 @@ export async function buildDocs({ context.writer.writeLine('---'); for (const [name, value] of Object.entries(node.values)) { if (value) { - context.writer.writeLine(`${name}: ${value}`); + context.writer.writeLine( + `${name}: "${String(value).replace(/\"/g, '')}"`, + ); } } context.writer.writeLine('---'); diff --git a/packages/repo-tools/src/commands/api-reports/api-reports.test.ts b/packages/repo-tools/src/commands/api-reports/api-reports.test.ts index 7121d8a06f..6139b5b782 100644 --- a/packages/repo-tools/src/commands/api-reports/api-reports.test.ts +++ b/packages/repo-tools/src/commands/api-reports/api-reports.test.ts @@ -87,7 +87,8 @@ describe('buildApiReports', () => { mockFs.restore(); jest.clearAllMocks(); }); - it('should run whitout any options', async () => { + + it('should run without any options', async () => { const opts = {}; const paths: string[] = []; diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 5eddfdb4af..f79140a2a6 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,37 @@ # techdocs-cli-embedded-app +## 0.2.78 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/app-defaults@1.0.10 + - @backstage/cli@0.22.0 + - @backstage/integration-react@1.1.8 + - @backstage/plugin-catalog@1.7.1 + - @backstage/plugin-techdocs@1.4.2 + - @backstage/plugin-techdocs-react@1.1.1 + +## 0.2.77 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-react@1.1.0 + - @backstage/plugin-catalog@1.7.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/cli@0.22.0 + - @backstage/core-app-api@1.3.0 + - @backstage/plugin-techdocs@1.4.1 + - @backstage/test-utils@1.2.3 + - @backstage/app-defaults@1.0.9 + - @backstage/integration-react@1.1.7 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 0.2.77-next.4 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index b30faba062..3c085d0204 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -1,6 +1,6 @@ { "name": "techdocs-cli-embedded-app", - "version": "0.2.77-next.4", + "version": "0.2.77", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index f3661fdcb3..d9252e8b31 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,17 @@ # @techdocs/cli +## 1.2.4 + +### Patch Changes + +- 8015ff1258: Tweaked wording to use inclusive terminology +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/plugin-techdocs-node@1.4.3 + - @backstage/cli-common@0.1.11 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 1.2.4-next.3 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 59a5f229c1..7e5b9f18ac 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "Utility CLI for managing TechDocs sites in Backstage.", - "version": "1.2.4-next.3", + "version": "1.2.4", "publishConfig": { "access": "public" }, diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index b1d10ceba5..50d9f2fda6 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/test-utils +## 1.2.3 + +### Patch Changes + +- 5e238ed56a: The test utility for the plugin context called `MockPluginProvider` has been created. It will be handy in the cases when you use + `__experimentalConfigure` in your plugin. It is experimental and exported through `@backstage/test-utils/alpha`. +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. +- 830687539f: Sync components in @backstage/core-components with the Component Design Guidelines +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-app-api@1.3.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/types@1.0.2 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 1.2.3-next.4 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 5772a52a79..971b7f969d 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "1.2.3-next.4", + "version": "1.2.3", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index e0f1f56fa4..c3ef194c2e 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/types +## 1.0.2 + +### Patch Changes + +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. + ## 1.0.2-next.1 ### Patch Changes diff --git a/packages/types/package.json b/packages/types/package.json index fba7a644df..72de304aea 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/types", "description": "Common TypeScript types used within Backstage", - "version": "1.0.2-next.1", + "version": "1.0.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/version-bridge/CHANGELOG.md b/packages/version-bridge/CHANGELOG.md index fd5ac8500d..e495787986 100644 --- a/packages/version-bridge/CHANGELOG.md +++ b/packages/version-bridge/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/version-bridge +## 1.0.3 + +### Patch Changes + +- d3fea4ae0a: Internal fixes to avoid implicit usage of globals + ## 1.0.3-next.0 ### Patch Changes diff --git a/packages/version-bridge/package.json b/packages/version-bridge/package.json index dbb4d69d4f..d57e6e2b45 100644 --- a/packages/version-bridge/package.json +++ b/packages/version-bridge/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/version-bridge", "description": "Utilities used by @backstage packages to support multiple concurrent versions", - "version": "1.0.3-next.0", + "version": "1.0.3", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index 9362a2b186..b6a64d6aed 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-adr-backend +## 0.2.4 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-search-common@1.2.0 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/plugin-adr-common@0.2.4 + ## 0.2.4-next.3 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 66886415f3..45fb52474b 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr-backend", - "version": "0.2.4-next.3", + "version": "0.2.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/adr-common/CHANGELOG.md b/plugins/adr-common/CHANGELOG.md index f86a76b60f..9c69ab12f8 100644 --- a/plugins/adr-common/CHANGELOG.md +++ b/plugins/adr-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-adr-common +## 0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.4.1 + - @backstage/plugin-search-common@1.2.0 + - @backstage/catalog-model@1.1.4 + ## 0.2.4-next.3 ### Patch Changes diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index 595576a9fd..8ff7496493 100644 --- a/plugins/adr-common/package.json +++ b/plugins/adr-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-adr-common", "description": "Common functionalities for the adr plugin", - "version": "0.2.4-next.3", + "version": "0.2.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md index a50b409573..a4100b72e8 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/plugin-adr +## 0.2.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/integration-react@1.1.8 + - @backstage/plugin-catalog-react@1.2.3 + - @backstage/plugin-search-react@1.3.1 + +## 0.2.4 + +### Patch Changes + +- a19cffbeed: Update search links to only have header as linkable text +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-search-react@1.3.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/integration-react@1.1.7 + - @backstage/plugin-search-common@1.2.0 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-adr-common@0.2.4 + ## 0.2.4-next.4 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 21e7ddd3ac..fc66e1bc82 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.2.4-next.4", + "version": "0.2.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/airbrake-backend/CHANGELOG.md b/plugins/airbrake-backend/CHANGELOG.md index 8c5a191cdb..9a96a7cce2 100644 --- a/plugins/airbrake-backend/CHANGELOG.md +++ b/plugins/airbrake-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-airbrake-backend +## 0.2.12 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + ## 0.2.12-next.3 ### Patch Changes diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index fcb6a0da7d..9ff15f2b38 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake-backend", - "version": "0.2.12-next.3", + "version": "0.2.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md index 5ea2fd489e..f70f9de6cc 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-airbrake +## 0.3.13 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/dev-utils@1.0.10 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.3.12 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 151c0e1477: Remove the `object-hash` dependency +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/test-utils@1.2.3 + - @backstage/dev-utils@1.0.9 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.3.12-next.4 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index 9845329e11..cf5140bec6 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.12-next.4", + "version": "0.3.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md index b5cb6574be..3ceb702535 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-allure +## 0.1.29 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.28 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.28-next.4 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index e701545143..0e89a3c64b 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-allure", "description": "A Backstage plugin that integrates with Allure", - "version": "0.1.28-next.4", + "version": "0.1.28", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md index 5a15ff77d5..d58dcfc9af 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-analytics-module-ga +## 0.1.24 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.1.23 + +### Patch Changes + +- d3fea4ae0a: Internal fixes to avoid implicit usage of globals +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 9516b0c355: Added support for sending virtual pageviews on `search` events in order to enable + Site Search functionality in GA. For more information consult [README](/plugins/analytics-module-ga/README.md#enabling-site-search) +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 0.1.23-next.4 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index 9e8aacf5a0..72535e062e 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-ga", - "version": "0.1.23-next.4", + "version": "0.1.23", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/apache-airflow/CHANGELOG.md b/plugins/apache-airflow/CHANGELOG.md index 6eebd97f62..3e8b0fe432 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-apache-airflow +## 0.2.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.2.5 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + ## 0.2.5-next.4 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 2a346b7831..296b215768 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apache-airflow", - "version": "0.2.5-next.4", + "version": "0.2.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index bb842a1d64..54c79c55a7 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-api-docs +## 0.8.13 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog@1.7.1 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.8.12 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/plugin-catalog@1.7.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.8.12-next.4 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 6bf928a82f..da8989ddae 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-api-docs", "description": "A Backstage plugin that helps represent API entities in the frontend", - "version": "0.8.12-next.4", + "version": "0.8.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/apollo-explorer/CHANGELOG.md b/plugins/apollo-explorer/CHANGELOG.md index 7bbd7e60a5..428bc261dd 100644 --- a/plugins/apollo-explorer/CHANGELOG.md +++ b/plugins/apollo-explorer/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-apollo-explorer +## 0.1.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.1.5 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/theme@0.2.16 + ## 0.1.5-next.4 ### Patch Changes diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index 8e52a4e8be..9595996971 100644 --- a/plugins/apollo-explorer/package.json +++ b/plugins/apollo-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apollo-explorer", - "version": "0.1.5-next.4", + "version": "0.1.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index 2ab60bf1ee..19504256df 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-app-backend +## 0.3.39 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/config-loader@1.1.7 + - @backstage/types@1.0.2 + - @backstage/config@1.0.5 + ## 0.3.39-next.3 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index a77ed9a80b..70213c6513 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-backend", "description": "A Backstage backend plugin that serves the Backstage frontend app", - "version": "0.3.39-next.3", + "version": "0.3.39", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-backend/src/service/appPlugin.test.ts b/plugins/app-backend/src/service/appPlugin.test.ts index 8583726287..14921622c9 100644 --- a/plugins/app-backend/src/service/appPlugin.test.ts +++ b/plugins/app-backend/src/service/appPlugin.test.ts @@ -30,7 +30,7 @@ import { ConfigReader } from '@backstage/config'; import getPort from 'get-port'; describe('appPlugin', () => { - beforeAll(() => { + beforeEach(() => { mockFs({ [resolvePath(process.cwd(), 'node_modules/app')]: { 'package.json': '{}', @@ -42,7 +42,7 @@ describe('appPlugin', () => { }); }); - afterAll(() => { + afterEach(() => { mockFs.restore(); }); diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index 55c4fcc2a3..09fb03ce94 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-auth-backend +## 0.17.2 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.17.2-next.3 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index c52c116de5..0811b909be 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend", "description": "A Backstage backend plugin that handles authentication", - "version": "0.17.2-next.3", + "version": "0.17.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md index f383c720be..7e09ed80e1 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-node +## 0.2.8 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/config@1.0.5 + ## 0.2.8-next.3 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 8b1b621e00..304028a8a8 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-node", - "version": "0.2.8-next.3", + "version": "0.2.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-devops-backend/CHANGELOG.md b/plugins/azure-devops-backend/CHANGELOG.md index 642756a96f..4c7cb205de 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-azure-devops-backend +## 0.3.18 + +### Patch Changes + +- eaccf6d628: Updated installation documentation +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.3.18-next.3 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index da9a498e59..637f7e0e28 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops-backend", - "version": "0.3.18-next.3", + "version": "0.3.18", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md index 70dfc9c842..287ea2fe25 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-azure-devops +## 0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.3 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.2.3-next.4 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index 4ad62ae759..ac530f638b 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops", - "version": "0.2.3-next.4", + "version": "0.2.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites-backend/CHANGELOG.md b/plugins/azure-sites-backend/CHANGELOG.md index 41bdef289b..82c4bbcc48 100644 --- a/plugins/azure-sites-backend/CHANGELOG.md +++ b/plugins/azure-sites-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-azure-sites-backend +## 0.1.1 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.1-next.3 ### Patch Changes diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json index 66a0020123..a63fe892ba 100644 --- a/plugins/azure-sites-backend/package.json +++ b/plugins/azure-sites-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-sites-backend", - "version": "0.1.1-next.3", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites/CHANGELOG.md b/plugins/azure-sites/CHANGELOG.md index a8a2561b3f..38d21df511 100644 --- a/plugins/azure-sites/CHANGELOG.md +++ b/plugins/azure-sites/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-azure-sites +## 0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.1 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.1-next.4 ### Patch Changes diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index 50a5c968d3..6772d177bf 100644 --- a/plugins/azure-sites/package.json +++ b/plugins/azure-sites/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-sites", - "version": "0.1.1-next.4", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index 15ed919bab..196cc33613 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-badges-backend +## 0.1.33 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.33-next.3 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index 30e3f822e0..479fba351b 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges-backend", "description": "A Backstage backend plugin that generates README badges for your entities", - "version": "0.1.33-next.3", + "version": "0.1.33", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md index 03e2200057..a1e0773ffb 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-badges +## 0.2.37 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.36 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.36-next.4 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index acd0f10520..c8e1b23f88 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges", "description": "A Backstage plugin that generates README badges for your entities", - "version": "0.2.36-next.4", + "version": "0.2.36", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md index 37c6b898f1..900bacf0f1 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-bazaar-backend +## 0.2.2 + +### Patch Changes + +- c507aee8a2: Ensured typescript type checks in migration files. +- 9b1891061c: Column `title` has replaced column `name` for `BazaarProject` in database +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.31 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/config@1.0.5 + ## 0.2.2-next.4 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index 5ee4031f46..c5b89f9ddf 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar-backend", - "version": "0.2.2-next.4", + "version": "0.2.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index 45c1516778..e2b039c4b2 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/plugin-bazaar +## 0.2.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/cli@0.22.0 + - @backstage/plugin-catalog@1.7.1 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.1 + +### Patch Changes + +- 9b1891061c: `HomePageBazaarInfoCard` is now displaying `title` instead of `name`. Title is a string that doesn't have to be URL friendly. + The BazaarOverviewCard have the new property `fullHeight`. Link in `BazaarOverviewCard`is moved to header in card. +- 312962da30: Add `title` as optional parameter to `BazaarOverviewCard` +- Updated dependencies + - @backstage/plugin-catalog@1.7.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/catalog-client@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/cli@0.22.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + ## 0.2.1-next.4 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 4aced2566c..94a48473e5 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.2.1-next.4", + "version": "0.2.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bitbucket-cloud-common/CHANGELOG.md b/plugins/bitbucket-cloud-common/CHANGELOG.md index 672e06f8df..abe41846a9 100644 --- a/plugins/bitbucket-cloud-common/CHANGELOG.md +++ b/plugins/bitbucket-cloud-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-bitbucket-cloud-common +## 0.2.2 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/integration@1.4.1 + ## 0.2.2-next.1 ### Patch Changes diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index d43b716d7f..9d9c62b4d3 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitbucket-cloud-common", "description": "Common functionalities for bitbucket-cloud plugins", - "version": "0.2.2-next.1", + "version": "0.2.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index fc2c4802d0..b274d25bfe 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-bitrise +## 0.1.40 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.39 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.39-next.4 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 47af82bf51..edc6cbbfe4 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitrise", "description": "A Backstage plugin that integrates towards Bitrise", - "version": "0.1.39-next.4", + "version": "0.1.39", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md index 0078f38f95..d88bba552e 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.1.12 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.12-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index b929300b1f..2ed36817ca 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-aws", "description": "A Backstage catalog backend module that helps integrate towards AWS", - "version": "0.1.12-next.3", + "version": "0.1.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index 57457ee462..4dc3624a85 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.10 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.10-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 1170fe3b9a..0af593dee2 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-azure", "description": "A Backstage catalog backend module that helps integrate towards Azure", - "version": "0.1.10-next.3", + "version": "0.1.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index 27b7356712..a240521910 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.1.6 + +### Patch Changes + +- ce08e1798e: Refresh (potentially) updated catalog files on `repo:push` more efficiently. +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 4eb0bce299: Fix repo:push topic not matching `BitbucketCloudEventRouter`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/integration@1.4.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-common@1.0.9 + ## 0.1.6-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index 469d2b0914..affc83b05b 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/package.json +++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud", - "version": "0.1.6-next.3", + "version": "0.1.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md index 117be6acb2..de9972965d 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.4 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/integration@1.4.1 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.4-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index df84c523fc..50f44815fd 100644 --- a/plugins/catalog-backend-module-bitbucket-server/package.json +++ b/plugins/catalog-backend-module-bitbucket-server/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-server", - "version": "0.1.4-next.3", + "version": "0.1.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md index 7a95b37a5c..c4938eb94b 100644 --- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-bitbucket +## 0.2.6 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.2.6-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index 3c93b66d02..032aed5ee8 100644 --- a/plugins/catalog-backend-module-bitbucket/package.json +++ b/plugins/catalog-backend-module-bitbucket/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket", - "version": "0.2.6-next.3", + "version": "0.2.6", "deprecated": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 27eca385b3..1779022c20 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.7 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/integration@1.4.1 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.7-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index eaa9980507..3e54000888 100644 --- a/plugins/catalog-backend-module-gerrit/package.json +++ b/plugins/catalog-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gerrit", - "version": "0.1.7-next.3", + "version": "0.1.7", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index e71ab6ecc1..8877483f7b 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,40 @@ # @backstage/plugin-catalog-backend-module-github +## 0.2.2 + +### Patch Changes + +- 70fa5ec3ec: Fixes the assignment of group member references in `GithubMultiOrgProcessor` so membership relations are resolved correctly. +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- fe93cce743: Added the githubCredentialsProvider property to the GithubLocationAnalyzerOptions to be able to override the GithubCredentialsProvider. +- a0fd4af94a: Handle GitHub `push` events at the `GithubEntityProvider` by subscribing to the topic `github.push.` + + Implements `EventSubscriber` to receive events for the topic `github.push`. + + On `github.push`, the affected repository will be refreshed. + This includes adding new Location entities, refreshing existing ones, + and removing obsolete ones. + + Please find more information at + https://backstage.io/docs/integrations/github/discovery#installation-with-events-support + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 754b5854df: Fix incorrectly exported GithubOrgEntityProvider as a type +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-common@1.0.9 + ## 0.2.2-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 88c9d8f738..743fd144e8 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-github", "description": "A Backstage catalog backend module that helps integrate towards GitHub", - "version": "0.2.2-next.3", + "version": "0.2.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index ade90d90a2..dcd18fbf80 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.1.10 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.10-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index ac0ac4aa1d..eaebc9f80a 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab", "description": "A Backstage catalog backend module that helps integrate towards GitLab", - "version": "0.1.10-next.3", + "version": "0.1.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md index 8b246385bd..8e9208a52c 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,39 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.1.0 + +### Minor Changes + +- 98c643a1a2: Introduces incremental entity providers, which are used for streaming very large data sources into the catalog. + +### Patch Changes + +- c507aee8a2: Ensured typescript type checks in migration files. +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- de8a975911: Changed to use native `AbortController` and `AbortSignal` from Node.js, instead + of the one from `node-abort-controller`. This is possible now that the minimum + supported Node.js version of the project is 16. + + Note that their interfaces are very slightly different, but typically not in a + way that matters to consumers. If you see any typescript errors as a direct + result from this, they are compatible with each other in the ways that we + interact with them, and should be possible to type-cast across without ill + effects. + +- 05a928e296: Updated usages of types from `@backstage/backend-plugin-api`. +- 61d4efe978: Make incremental providers more resilient to failures +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/backend-test-utils@0.1.31 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.0-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index d7a5ae7470..26f1f89ece 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/package.json +++ b/plugins/catalog-backend-module-incremental-ingestion/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-incremental-ingestion", "description": "An entity provider for streaming large asset sources into the catalog", - "version": "0.1.0-next.3", + "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/WrapperProviders.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/WrapperProviders.ts index 44da5067fd..a6cfe14df2 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/module/WrapperProviders.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/WrapperProviders.ts @@ -14,9 +14,12 @@ * limitations under the License. */ -import { Logger, loggerToWinstonLogger } from '@backstage/backend-plugin-api'; -import { PluginTaskScheduler } from '@backstage/backend-tasks'; -import { Config } from '@backstage/config'; +import { + ConfigService, + LoggerService, + SchedulerService, + loggerToWinstonLogger, +} from '@backstage/backend-plugin-api'; import { stringifyError } from '@backstage/errors'; import { EntityProvider, @@ -46,10 +49,10 @@ export class WrapperProviders { constructor( private readonly options: { - config: Config; - logger: Logger; + config: ConfigService; + logger: LoggerService; client: Knex; - scheduler: PluginTaskScheduler; + scheduler: SchedulerService; applyDatabaseMigrations?: typeof applyDatabaseMigrations; }, ) {} diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index aa2d15b1ce..79a54cc97b 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.5.6 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.5.6-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index 68268f657f..e36e63c7ee 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", "description": "A Backstage catalog backend module that helps integrate towards LDAP", - "version": "0.5.6-next.3", + "version": "0.5.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index e26b6801c0..3fa0d7b2e0 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.4.5 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.4.5-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index e38a1c3a09..00b1802fcf 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", - "version": "0.4.5-next.3", + "version": "0.4.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index c087d239dd..cf90405cc1 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.5 + +### Patch Changes + +- dd995cdc72: Enabled support of resolving `$refs` in all kind of yaml documents, not only OpenAPI. This implicitly adds `$ref` resolving support for AsyncAPI specs. Thus, the `openApiPlaceholderResolver` has been renamed to `jsonSchemaRefPlaceholderResolver`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.5-next.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 2791f54678..6504fd7a61 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", - "version": "0.1.5-next.3", + "version": "0.1.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 8fc297e1b8..4fdf3aaf4e 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,72 @@ # @backstage/plugin-catalog-backend +## 1.6.0 + +### Minor Changes + +- 16891a212c: Added new `POST /entities/by-refs` endpoint, which allows you to efficiently + batch-fetch entities by their entity ref. This can be useful e.g. in graphql + resolvers or similar contexts where you need to fetch many entities at the same + time. +- 273ba3a77f: Deprecated Prometheus metrics in favour of OpenTelemtry metrics. +- c395abb5b2: The catalog no longer stops after the first processor `validateEntityKind` + method returns `true` when validating entity kind shapes. Instead, it continues + through all registered processors that have this method, and requires that _at + least one_ of them returned true. + + The old behavior of stopping early made it harder to extend existing core kinds + with additional fields, since the `BuiltinKindsEntityProcessor` is always + present at the top of the processing chain and ensures that your additional + validation code would never be run. + + This is technically a breaking change, although it should not affect anybody + under normal circumstances, except if you had problematic validation code that + you were unaware that it was not being run. That code may now start to exhibit + those problems. + + If you need to disable this new behavior, `CatalogBuilder` as used in your + `packages/backend/src/plugins/catalog.ts` file now has a + `useLegacySingleProcessorValidation()` method to go back to the old behavior. + + ```diff + const builder = await CatalogBuilder.create(env); + +builder.useLegacySingleProcessorValidation(); + ``` + +- 3072ebfdd7: The search table also holds the original entity value now and the facets endpoint fetches the filtered entity data from the search table. + +### Patch Changes + +- ba13ff663c: Added a new `catalog.rules[].location` configuration that makes it possible to configure catalog rules to only apply to specific locations, either via exact match or a glob pattern. +- d8593ce0e6: Do not use deprecated `LocationSpec` from the `@backstage/plugin-catalog-node` package +- c507aee8a2: Ensured typescript type checks in migration files. +- 2a8e3cc0b5: Optimize `Stitcher` process to be more memory efficient +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- eacc8e2b55: Make it possible for entity providers to supply only entity refs, instead of full entities, in `delta` mutation deletions. +- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries +- 5b3e2afa45: Fixed deprecated use of `substr` into `substring`. +- 71147d5c16: Internal code reorganization. +- 93870e4df1: Track the last time the final entity changed with new timestamp "last updated at" data in final entities database, which gets updated with the time when final entity is updated. +- 20a5161f04: Adds MySQL support for the catalog-backend +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- e982f77fe3: Registered shutdown hook in experimental catalog plugin. +- b3fac9c107: Ignore attempts at emitting the current entity as a child of itself. +- Updated dependencies + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-search-common@1.2.0 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-common@1.0.9 + - @backstage/plugin-scaffolder-common@1.2.3 + ## 1.6.0-next.3 ### Patch Changes diff --git a/plugins/catalog-backend/migrations/20221201085245_add_last_updated_at_in_final_entities.js b/plugins/catalog-backend/migrations/20221201085245_add_last_updated_at_in_final_entities.js new file mode 100644 index 0000000000..44fcf30ba4 --- /dev/null +++ b/plugins/catalog-backend/migrations/20221201085245_add_last_updated_at_in_final_entities.js @@ -0,0 +1,39 @@ +/* + * 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. + */ + +// @ts-check + +/** + * @param { import("knex").Knex } knex + */ +exports.up = async function up(knex) { + await knex.schema.table('final_entities', table => { + table + .dateTime('last_updated_at') + .nullable() + .comment('The time when final_entity changed'); + }); +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = async function down(knex) { + await knex.schema.table('final_entities', table => { + table.dropColumn('last_updated_at'); + }); +}; diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index fb754161c5..17f8c790aa 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend", "description": "The Backstage backend plugin that provides the Backstage catalog", - "version": "1.6.0-next.3", + "version": "1.6.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -47,6 +47,7 @@ "@backstage/plugin-scaffolder-common": "workspace:^", "@backstage/plugin-search-common": "workspace:^", "@backstage/types": "workspace:^", + "@opentelemetry/api": "^1.3.0", "@types/express": "^4.17.6", "codeowners-utils": "^1.0.2", "core-js": "^3.6.5", diff --git a/plugins/catalog-backend/src/catalog/types.ts b/plugins/catalog-backend/src/catalog/types.ts index 84673a3900..faf7451acd 100644 --- a/plugins/catalog-backend/src/catalog/types.ts +++ b/plugins/catalog-backend/src/catalog/types.ts @@ -38,6 +38,14 @@ export type EntityPagination = { after?: string; }; +/** + * A sorting rule for entities. + */ +export type EntityOrder = { + field: string; + order: 'asc' | 'desc'; +}; + /** * Matches rows in the search table. * @public @@ -71,6 +79,7 @@ export type PageInfo = export type EntitiesRequest = { filter?: EntityFilter; fields?: (entity: Entity) => Entity; + order?: EntityOrder[]; pagination?: EntityPagination; authorizationToken?: string; }; diff --git a/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts b/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts index 4fbb38b4fc..540c93ef13 100644 --- a/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts +++ b/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts @@ -462,12 +462,17 @@ describe('DefaultProcessingDatabase', () => { knexTx( 'refresh_state_references', ).select(), - ).resolves.toEqual([ - expect.objectContaining({ - source_entity_ref: 'location:default/fakelocation', - target_entity_ref: 'component:default/1', - }), - ]); + ).resolves.toEqual( + step.expectConflict + ? [] + : [ + // eslint-disable-next-line jest/no-conditional-expect + expect.objectContaining({ + source_entity_ref: 'location:default/fakelocation', + target_entity_ref: 'component:default/1', + }), + ], + ); expect(mockLogger.error).not.toHaveBeenCalled(); } diff --git a/plugins/catalog-backend/src/database/DefaultProcessingDatabase.ts b/plugins/catalog-backend/src/database/DefaultProcessingDatabase.ts index 1127deed7e..761f5bfd72 100644 --- a/plugins/catalog-backend/src/database/DefaultProcessingDatabase.ts +++ b/plugins/catalog-backend/src/database/DefaultProcessingDatabase.ts @@ -314,7 +314,6 @@ export class DefaultProcessingDatabase implements ProcessingDatabase { // Keeps track of the entities that we end up inserting to update refresh_state_references afterwards const stateReferences = new Array(); - const conflictingStateReferences = new Array(); // Upsert all of the unprocessed entities into the refresh_state table, by // their entity ref. @@ -357,13 +356,11 @@ export class DefaultProcessingDatabase implements ProcessingDatabase { this.options.logger.warn( `Detected conflicting entityRef ${entityRef} already referenced by ${conflictingKey} and now also ${locationKey}`, ); - conflictingStateReferences.push(entityRef); } } // Replace all references for the originating entity or source and then create new ones await tx('refresh_state_references') - .whereNotIn('target_entity_ref', conflictingStateReferences) .andWhere({ source_entity_ref: options.sourceEntityRef }) .delete(); await tx.batchInsert( diff --git a/plugins/catalog-backend/src/database/DefaultProviderDatabase.test.ts b/plugins/catalog-backend/src/database/DefaultProviderDatabase.test.ts index 43f2209b60..140925b6fd 100644 --- a/plugins/catalog-backend/src/database/DefaultProviderDatabase.test.ts +++ b/plugins/catalog-backend/src/database/DefaultProviderDatabase.test.ts @@ -610,6 +610,23 @@ describe('DefaultProviderDatabase', () => { }), ]), ); + let references = await knex( + 'refresh_state_references', + ).select(); + expect(references).toEqual([ + { + id: 1, + source_key: 'lols', + source_entity_ref: null, + target_entity_ref: 'component:default/a', + }, + { + id: 2, + source_key: 'lols', + source_entity_ref: null, + target_entity_ref: 'component:default/b', + }, + ]); await db.transaction(async tx => { await db.replaceUnprocessedEntities(tx, { @@ -653,6 +670,23 @@ describe('DefaultProviderDatabase', () => { }), ]), ); + references = await knex( + 'refresh_state_references', + ).select(); + expect(references).toEqual([ + { + id: 2, + source_key: 'lols', + source_entity_ref: null, + target_entity_ref: 'component:default/b', + }, + { + id: 3, + source_key: 'lols', + source_entity_ref: null, + target_entity_ref: 'component:default/a', + }, + ]); }, 60_000, ); diff --git a/plugins/catalog-backend/src/database/DefaultProviderDatabase.ts b/plugins/catalog-backend/src/database/DefaultProviderDatabase.ts index f1073fd984..a0d376327b 100644 --- a/plugins/catalog-backend/src/database/DefaultProviderDatabase.ts +++ b/plugins/catalog-backend/src/database/DefaultProviderDatabase.ts @@ -161,6 +161,11 @@ export class DefaultProviderDatabase implements ProviderDatabase { }); } + await tx('refresh_state_references') + .where('target_entity_ref', entityRef) + .andWhere({ source_key: options.sourceKey }) + .delete(); + if (ok) { await tx( 'refresh_state_references', diff --git a/plugins/catalog-backend/src/database/tables.ts b/plugins/catalog-backend/src/database/tables.ts index c23753b267..e3f3efd1bb 100644 --- a/plugins/catalog-backend/src/database/tables.ts +++ b/plugins/catalog-backend/src/database/tables.ts @@ -66,6 +66,7 @@ export type DbFinalEntitiesRow = { hash: string; stitch_ticket: string; final_entity?: string; + last_updated_at?: string | Date; }; export type DbSearchRow = { diff --git a/plugins/catalog-backend/src/migrations.test.ts b/plugins/catalog-backend/src/migrations.test.ts index 9d9b02fa82..f1ed40dbbe 100644 --- a/plugins/catalog-backend/src/migrations.test.ts +++ b/plugins/catalog-backend/src/migrations.test.ts @@ -100,4 +100,82 @@ describe('migrations', () => { }, 60_000, ); + + it.each(databases.eachSupportedId())( + '20221201085245_add_last_updated_at_in_final_entities.js, %p', + async databaseId => { + const knex = await databases.init(databaseId); + + await migrateUntilBefore( + knex, + '20221201085245_add_last_updated_at_in_final_entities.js', + ); + + await knex + .insert([ + { + entity_id: 'my-id', + entity_ref: 'k:ns/n', + unprocessed_entity: JSON.stringify({}), + processed_entity: JSON.stringify({ + apiVersion: 'a', + kind: 'k', + metadata: { + name: 'n', + namespace: 'ns', + }, + spec: { + k: 'v', + }, + }), + errors: '[]', + next_update_at: knex.fn.now(), + last_discovery_at: knex.fn.now(), + }, + ]) + .into('refresh_state'); + + await knex + .insert({ + entity_id: 'my-id', + hash: 'd1c0c56d5fea4238e4c091d9dde4cb42d05a6b7e', + stitch_ticket: '52367ed7-120b-405f-b7e0-cdd90f956312', + final_entity: + '{"apiVersion":"a","kind":"k","metadata":{"name":"n","namespace":"ns","uid":"my-id","etag":"d1c0c56d5fea4238e4c091d9dde4cb42d05a6b7e"},"spec":{"k":"v"},"relations":[{"type":"looksAt","targetRef":"k:ns/other"}]}', + }) + .into('final_entities'); + + await migrateUpOnce(knex); + + await expect(knex('final_entities')).resolves.toEqual( + expect.arrayContaining([ + { + entity_id: 'my-id', + hash: 'd1c0c56d5fea4238e4c091d9dde4cb42d05a6b7e', + stitch_ticket: '52367ed7-120b-405f-b7e0-cdd90f956312', + final_entity: + '{"apiVersion":"a","kind":"k","metadata":{"name":"n","namespace":"ns","uid":"my-id","etag":"d1c0c56d5fea4238e4c091d9dde4cb42d05a6b7e"},"spec":{"k":"v"},"relations":[{"type":"looksAt","targetRef":"k:ns/other"}]}', + last_updated_at: null, + }, + ]), + ); + + await migrateDownOnce(knex); + + await expect(knex('final_entities')).resolves.toEqual( + expect.arrayContaining([ + { + entity_id: 'my-id', + hash: 'd1c0c56d5fea4238e4c091d9dde4cb42d05a6b7e', + stitch_ticket: '52367ed7-120b-405f-b7e0-cdd90f956312', + final_entity: + '{"apiVersion":"a","kind":"k","metadata":{"name":"n","namespace":"ns","uid":"my-id","etag":"d1c0c56d5fea4238e4c091d9dde4cb42d05a6b7e"},"spec":{"k":"v"},"relations":[{"type":"looksAt","targetRef":"k:ns/other"}]}', + }, + ]), + ); + + await knex.destroy(); + }, + 60_000, + ); }); diff --git a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts index bef2878099..c8f159b195 100644 --- a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts +++ b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts @@ -23,6 +23,7 @@ import { assertError, serializeError, stringifyError } from '@backstage/errors'; import { Hash } from 'crypto'; import stableStringify from 'fast-json-stable-stringify'; import { Logger } from 'winston'; +import { metrics } from '@opentelemetry/api'; import { ProcessingDatabase, RefreshStateItem } from '../database/types'; import { createCounterMetric, createSummaryMetric } from '../util/metrics'; import { @@ -257,62 +258,123 @@ export class DefaultCatalogProcessingEngine implements CatalogProcessingEngine { // Helps wrap the timing and logging behaviors function progressTracker() { - const stitchedEntities = createCounterMetric({ + // prom-client metrics are deprecated in favour of OpenTelemetry metrics. + const promStitchedEntities = createCounterMetric({ name: 'catalog_stitched_entities_count', - help: 'Amount of entities stitched', + help: 'Amount of entities stitched. DEPRECATED, use OpenTelemetry metrics instead', }); - const processedEntities = createCounterMetric({ + const promProcessedEntities = createCounterMetric({ name: 'catalog_processed_entities_count', - help: 'Amount of entities processed', + help: 'Amount of entities processed, DEPRECATED, use OpenTelemetry metrics instead', labelNames: ['result'], }); - const processingDuration = createSummaryMetric({ + const promProcessingDuration = createSummaryMetric({ name: 'catalog_processing_duration_seconds', - help: 'Time spent executing the full processing flow', + help: 'Time spent executing the full processing flow, DEPRECATED, use OpenTelemetry metrics instead', labelNames: ['result'], }); - const processorsDuration = createSummaryMetric({ + const promProcessorsDuration = createSummaryMetric({ name: 'catalog_processors_duration_seconds', - help: 'Time spent executing catalog processors', + help: 'Time spent executing catalog processors, DEPRECATED, use OpenTelemetry metrics instead', labelNames: ['result'], }); - const processingQueueDelay = createSummaryMetric({ + const promProcessingQueueDelay = createSummaryMetric({ name: 'catalog_processing_queue_delay_seconds', - help: 'The amount of delay between being scheduled for processing, and the start of actually being processed', + help: 'The amount of delay between being scheduled for processing, and the start of actually being processed, DEPRECATED, use OpenTelemetry metrics instead', }); + const meter = metrics.getMeter('default'); + const stitchedEntities = meter.createCounter( + 'catalog.stitched.entities.count', + { + description: 'Amount of entities stitched', + }, + ); + + const processedEntities = meter.createCounter( + 'catalog.processed.entities.count', + { description: 'Amount of entities processed' }, + ); + + const processingDuration = meter.createHistogram( + 'catalog.processing.duration', + { + description: 'Time spent executing the full processing flow', + unit: 'seconds', + }, + ); + + const processorsDuration = meter.createHistogram( + 'catalog.processors.duration', + { + description: 'Time spent executing catalog processors', + unit: 'seconds', + }, + ); + + const processingQueueDelay = meter.createHistogram( + 'catalog.processing.queue.delay', + { + description: + 'The amount of delay between being scheduled for processing, and the start of actually being processed', + unit: 'seconds', + }, + ); + function processStart(item: RefreshStateItem, logger: Logger) { + const startTime = process.hrtime(); + const endOverallTimer = promProcessingDuration.startTimer(); + const endProcessorsTimer = promProcessorsDuration.startTimer(); + logger.debug(`Processing ${item.entityRef}`); if (item.nextUpdateAt) { - processingQueueDelay.observe(-item.nextUpdateAt.diffNow().as('seconds')); + const seconds = -item.nextUpdateAt.diffNow().as('seconds'); + promProcessingQueueDelay.observe(seconds); + processingQueueDelay.record(seconds); } - const endOverallTimer = processingDuration.startTimer(); - const endProcessorsTimer = processorsDuration.startTimer(); + function endTime() { + const delta = process.hrtime(startTime); + return delta[0] + delta[1] / 1e9; + } function markProcessorsCompleted(result: EntityProcessingResult) { endProcessorsTimer({ result: result.ok ? 'ok' : 'failed' }); + processorsDuration.record(endTime(), { + result: result.ok ? 'ok' : 'failed', + }); } function markSuccessfulWithNoChanges() { endOverallTimer({ result: 'unchanged' }); - processedEntities.inc({ result: 'unchanged' }, 1); + promProcessedEntities.inc({ result: 'unchanged' }, 1); + + processingDuration.record(endTime(), { result: 'unchanged' }); + processedEntities.add(1, { result: 'unchanged' }); } function markSuccessfulWithErrors() { endOverallTimer({ result: 'errors' }); - processedEntities.inc({ result: 'errors' }, 1); + promProcessedEntities.inc({ result: 'errors' }, 1); + + processingDuration.record(endTime(), { result: 'errors' }); + processedEntities.add(1, { result: 'errors' }); } function markSuccessfulWithChanges(stitchedCount: number) { endOverallTimer({ result: 'changed' }); - stitchedEntities.inc(stitchedCount); - processedEntities.inc({ result: 'changed' }, 1); + promStitchedEntities.inc(stitchedCount); + promProcessedEntities.inc({ result: 'changed' }, 1); + + processingDuration.record(endTime(), { result: 'changed' }); + stitchedEntities.add(stitchedCount); + processedEntities.add(1, { result: 'changed' }); } function markFailed(error: Error) { - processedEntities.inc({ result: 'failed' }, 1); + promProcessedEntities.inc({ result: 'failed' }, 1); + processedEntities.add(1, { result: 'failed' }); logger.warn(`Processing of ${item.entityRef} failed`, error); } diff --git a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.test.ts b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.test.ts index 9731022582..ceb6992d7a 100644 --- a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.test.ts +++ b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.test.ts @@ -258,13 +258,22 @@ describe('DefaultCatalogProcessingOrchestrator', () => { }, }; + const child: Entity = { + apiVersion: '1', + kind: 'Component', + metadata: { + name: 'Test2', + namespace: 'test1', + }, + }; + it('enforces catalog rules', async () => { const integrations = ScmIntegrations.fromConfig(new ConfigReader({})); const processor: jest.Mocked = { getProcessorName: jest.fn(), validateEntityKind: jest.fn(async () => true), readLocation: jest.fn(async (_l, _o, emit) => { - emit(processingResult.entity({ type: 't', target: 't' }, entity)); + emit(processingResult.entity({ type: 't', target: 't' }, child)); return true; }), }; @@ -300,7 +309,7 @@ describe('DefaultCatalogProcessingOrchestrator', () => { getProcessorName: jest.fn(), validateEntityKind: jest.fn(async () => true), readLocation: jest.fn(async (_l, _o, emit) => { - emit(processingResult.entity({ type: 't', target: 't' }, entity)); + emit(processingResult.entity({ type: 't', target: 't' }, child)); return true; }), }; diff --git a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.ts b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.ts index 339469ff1d..d177a7d4a8 100644 --- a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.ts +++ b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingOrchestrator.ts @@ -187,7 +187,7 @@ export class DefaultCatalogProcessingOrchestrator res = await processor.preProcessEntity( res, context.location, - context.collector.onEmit, + context.collector.forProcessor(processor), context.originLocation, context.cache.forProcessor(processor), ); @@ -300,7 +300,7 @@ export class DefaultCatalogProcessingOrchestrator for (const maybeRelativeTarget of targets) { if (type === 'file' && maybeRelativeTarget.endsWith(path.sep)) { - context.collector.onEmit( + context.collector.generic()( processingResult.inputError( context.location, `LocationEntityProcessor cannot handle ${type} type location with target ${context.location.target} that ends with a path separator`, @@ -326,7 +326,7 @@ export class DefaultCatalogProcessingOrchestrator presence, }, presence === 'optional', - context.collector.onEmit, + context.collector.forProcessor(processor), this.options.parser, context.cache.forProcessor(processor, target), ); @@ -365,7 +365,7 @@ export class DefaultCatalogProcessingOrchestrator res = await processor.postProcessEntity( res, context.location, - context.collector.onEmit, + context.collector.forProcessor(processor), context.cache.forProcessor(processor), ); } catch (e) { diff --git a/plugins/catalog-backend/src/processing/ProcessorOutputCollector.ts b/plugins/catalog-backend/src/processing/ProcessorOutputCollector.ts index 19f3b33df4..0ee6191284 100644 --- a/plugins/catalog-backend/src/processing/ProcessorOutputCollector.ts +++ b/plugins/catalog-backend/src/processing/ProcessorOutputCollector.ts @@ -19,10 +19,12 @@ import { ANNOTATION_LOCATION, ANNOTATION_ORIGIN_LOCATION, stringifyLocationRef, + stringifyEntityRef, } from '@backstage/catalog-model'; import { assertError } from '@backstage/errors'; import { Logger } from 'winston'; import { + CatalogProcessor, CatalogProcessorResult, DeferredEntity, EntityRelationSpec, @@ -50,8 +52,17 @@ export class ProcessorOutputCollector { private readonly parentEntity: Entity, ) {} - get onEmit(): (i: CatalogProcessorResult) => void { - return i => this.receive(i); + generic(): (i: CatalogProcessorResult) => void { + return i => this.receive(this.logger, i); + } + + forProcessor( + processor: CatalogProcessor, + ): (i: CatalogProcessorResult) => void { + const logger = this.logger.child({ + processor: processor.getProcessorName(), + }); + return i => this.receive(logger, i); } results() { @@ -64,9 +75,9 @@ export class ProcessorOutputCollector { }; } - private receive(i: CatalogProcessorResult) { + private receive(logger: Logger, i: CatalogProcessorResult) { if (this.done) { - this.logger.warn( + logger.warn( `Item of type "${ i.type }" was emitted after processing had completed. Stack trace: ${ @@ -84,11 +95,24 @@ export class ProcessorOutputCollector { entity = validateEntityEnvelope(i.entity); } catch (e) { assertError(e); - this.logger.debug(`Envelope validation failed at ${location}, ${e}`); + logger.debug(`Envelope validation failed at ${location}, ${e}`); this.errors.push(e); return; } + // The processor contract says you should return the "trunk" (current) + // entity, not emit it. But it happens that this is misunderstood or + // accidentally forgotten. This can lead to circular references which at + // best is wasteful, so we try to be helpful by ignoring such emitted + // entities. + const entityRef = stringifyEntityRef(entity); + if (entityRef === stringifyEntityRef(this.parentEntity)) { + logger.warn( + `Ignored emitted entity ${entityRef} whose ref was identical to the one being processed. This commonly indicates mistakenly emitting the input entity instead of returning it.`, + ); + return; + } + // Note that at this point, we have only validated the envelope part of // the entity data. Annotations are not part of that, so we have to be // defensive. If the annotations were malformed (e.g. were not a valid diff --git a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts index b84596c78c..6735709662 100644 --- a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts +++ b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts @@ -28,6 +28,7 @@ import { import { Stitcher } from '../stitching/Stitcher'; import { buildEntitySearch } from '../stitching/buildEntitySearch'; import { DefaultEntitiesCatalog } from './DefaultEntitiesCatalog'; +import { EntitiesRequest } from '../catalog/types'; describe('DefaultEntitiesCatalog', () => { const databases = TestDatabases.create({ @@ -254,7 +255,7 @@ describe('DefaultEntitiesCatalog', () => { describe('entities', () => { it.each(databases.eachSupportedId())( - 'should return correct entity for simple filter', + 'should return correct entity for simple filter, %p', async databaseId => { const { knex } = await createDatabase(databaseId); const entity1: Entity = { @@ -284,10 +285,11 @@ describe('DefaultEntitiesCatalog', () => { expect(entities.length).toBe(1); expect(entities[0]).toEqual(entity2); }, + 60_000, ); it.each(databases.eachSupportedId())( - 'should return correct entity for negation filter', + 'should return correct entity for negation filter, %p', async databaseId => { const { knex } = await createDatabase(databaseId); const entity1: Entity = { @@ -319,10 +321,11 @@ describe('DefaultEntitiesCatalog', () => { expect(entities.length).toBe(1); expect(entities[0]).toEqual(entity1); }, + 60_000, ); it.each(databases.eachSupportedId())( - 'should return correct entities for nested filter', + 'should return correct entities for nested filter, %p', async databaseId => { const { knex } = await createDatabase(databaseId); const entity1: Entity = { @@ -388,10 +391,11 @@ describe('DefaultEntitiesCatalog', () => { expect(entities).toContainEqual(entity2); expect(entities).toContainEqual(entity4); }, + 60_000, ); it.each(databases.eachSupportedId())( - 'should return correct entities for complex negation filter', + 'should return correct entities for complex negation filter, %p', async databaseId => { const { knex } = await createDatabase(databaseId); const entity1: Entity = { @@ -429,10 +433,11 @@ describe('DefaultEntitiesCatalog', () => { expect(entities.length).toBe(1); expect(entities).toContainEqual(entity1); }, + 60_000, ); it.each(databases.eachSupportedId())( - 'should return no matches for an empty values array', + 'should return no matches for an empty values array, %p', // NOTE: An empty values array is not a sensible input in a realistic scenario. async databaseId => { const { knex } = await createDatabase(databaseId); @@ -461,6 +466,7 @@ describe('DefaultEntitiesCatalog', () => { expect(entities.length).toBe(0); }, + 60_000, ); it.each(databases.eachSupportedId())( @@ -517,12 +523,105 @@ describe('DefaultEntitiesCatalog', () => { }, ]); }, + 60_000, + ); + + it.each(databases.eachSupportedId())( + 'can order and combine with filtering, %p', + async databaseId => { + const { knex } = await createDatabase(databaseId); + + const entity1: Entity = { + apiVersion: 'a', + kind: 'k', + metadata: { name: 'n1' }, + spec: { a: 'foo' }, + }; + const entity2: Entity = { + apiVersion: 'a', + kind: 'k', + metadata: { name: 'n2' }, + spec: { a: 'bar' }, + }; + const entity3: Entity = { + apiVersion: 'a', + kind: 'k', + metadata: { name: 'n3' }, + spec: { a: 'bar', b: 'lonely' }, + }; + const entity4: Entity = { + apiVersion: 'a', + kind: 'k', + metadata: { name: 'n4' }, + spec: { a: 'baz', b: 'only' }, + }; + await addEntityToSearch(knex, entity1); + await addEntityToSearch(knex, entity2); + await addEntityToSearch(knex, entity3); + await addEntityToSearch(knex, entity4); + + const catalog = new DefaultEntitiesCatalog(knex, stitcher); + + function f(request: EntitiesRequest): Promise { + return catalog + .entities(request) + .then(response => response.entities.map(e => e.metadata.name)); + } + + await expect( + f({ order: [{ field: 'metadata.name', order: 'asc' }] }), + ).resolves.toEqual(['n1', 'n2', 'n3', 'n4']); + + await expect( + f({ order: [{ field: 'metadata.name', order: 'desc' }] }), + ).resolves.toEqual(['n4', 'n3', 'n2', 'n1']); + + await expect( + f({ + order: [ + { field: 'spec.a', order: 'asc' }, + { field: 'metadata.name', order: 'desc' }, + ], + }), + ).resolves.toEqual(['n3', 'n2', 'n4', 'n1']); + + await expect( + f({ + filter: { not: { key: 'spec.b', values: ['lonely'] } }, + order: [ + { field: 'spec.a', order: 'asc' }, + { field: 'metadata.name', order: 'desc' }, + ], + }), + ).resolves.toEqual(['n2', 'n4', 'n1']); + + // only n3 and n4 has spec.b, nulls (no match) always goes last no matter the order + await expect( + f({ + order: [ + { field: 'spec.b', order: 'asc' }, + { field: 'metadata.name', order: 'asc' }, + ], + }), + ).resolves.toEqual(['n3', 'n4', 'n1', 'n2']); + + // only n3 and n4 has spec.b, nulls (no match) always goes last no matter the order + await expect( + f({ + order: [ + { field: 'spec.b', order: 'desc' }, + { field: 'metadata.name', order: 'asc' }, + ], + }), + ).resolves.toEqual(['n4', 'n3', 'n1', 'n2']); + }, + 60_000, ); }); describe('entitiesBatch', () => { it.each(databases.eachSupportedId())( - 'queries for entities by ref, including duplicates, and gracefully returns null for missing entities', + 'queries for entities by ref, including duplicates, and gracefully returns null for missing entities, %p', async databaseId => { const { knex } = await createDatabase(databaseId); @@ -571,12 +670,13 @@ describe('DefaultEntitiesCatalog', () => { 'k:default/two', ]); }, + 60_000, ); }); describe('removeEntityByUid', () => { it.each(databases.eachSupportedId())( - 'also clears parent hashes', + 'also clears parent hashes, %p', async databaseId => { const { knex } = await createDatabase(databaseId); @@ -659,12 +759,13 @@ describe('DefaultEntitiesCatalog', () => { new Set(['k:default/unrelated1', 'k:default/unrelated2']), ); }, + 60_000, ); }); describe('facets', () => { it.each(databases.eachSupportedId())( - 'can filter and collect properly', + 'can filter and collect properly, %p', async databaseId => { const { knex } = await createDatabase(databaseId); @@ -697,10 +798,11 @@ describe('DefaultEntitiesCatalog', () => { }, }); }, + 60_000, ); it.each(databases.eachSupportedId())( - 'can match on annotations and labels with dots in them', + 'can match on annotations and labels with dots in them, %p', async databaseId => { const { knex } = await createDatabase(databaseId); @@ -743,10 +845,11 @@ describe('DefaultEntitiesCatalog', () => { }, }); }, + 60_000, ); it.each(databases.eachSupportedId())( - 'can match on strings in arrays', + 'can match on strings in arrays, %p', async databaseId => { const { knex } = await createDatabase(databaseId); @@ -784,6 +887,7 @@ describe('DefaultEntitiesCatalog', () => { }, }); }, + 60_000, ); }); }); diff --git a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts index 14f22f862b..d598881371 100644 --- a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts +++ b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts @@ -97,7 +97,7 @@ function addCondition( // make a lot of sense. However, it had abysmal performance on sqlite // when datasets grew large, so we're using IN instead. const matchQuery = db('search') - .select(entityIdField) + .select('search.entity_id') .where({ key: filter.key.toLowerCase() }) .andWhere(function keyFilter() { if (filter.values) { @@ -178,14 +178,48 @@ export class DefaultEntitiesCatalog implements EntitiesCatalog { let entitiesQuery = db('final_entities').select('final_entities.*'); + + request?.order?.forEach(({ field }, index) => { + const alias = `order_${index}`; + entitiesQuery = entitiesQuery.leftOuterJoin( + { [alias]: 'search' }, + function search(inner) { + inner + .on(`${alias}.entity_id`, 'final_entities.entity_id') + .andOn(`${alias}.key`, db.raw('?', [field])); + }, + ); + }); + + entitiesQuery = entitiesQuery.whereNotNull('final_entities.final_entity'); + if (request?.filter) { - entitiesQuery = parseFilter(request.filter, entitiesQuery, db); + entitiesQuery = parseFilter( + request.filter, + entitiesQuery, + db, + false, + 'final_entities.entity_id', + ); } - // TODO: move final_entities to use entity_ref - entitiesQuery = entitiesQuery - .whereNotNull('final_entities.final_entity') - .orderBy('entity_id', 'asc'); + request?.order?.forEach(({ order }, index) => { + if (db.client.config.client === 'pg') { + // pg correctly orders by the column value and handling nulls in one go + entitiesQuery = entitiesQuery.orderBy([ + { column: `order_${index}.value`, order, nulls: 'last' }, + ]); + } else { + // sqlite and mysql translate the above statement ONLY into "order by (value is null) asc" + // no matter what the order is, for some reason, so we have to manually add back the statement + // that translates to "order by value " while avoiding to give an order + entitiesQuery = entitiesQuery.orderBy([ + { column: `order_${index}.value`, order: undefined, nulls: 'last' }, + { column: `order_${index}.value`, order }, + ]); + } + }); + entitiesQuery = entitiesQuery.orderBy('final_entities.entity_id', 'asc'); // stable sort const { limit, offset } = parsePagination(request?.pagination); if (limit !== undefined) { diff --git a/plugins/catalog-backend/src/service/createRouter.ts b/plugins/catalog-backend/src/service/createRouter.ts index 4680dbb899..6a31fcd0b6 100644 --- a/plugins/catalog-backend/src/service/createRouter.ts +++ b/plugins/catalog-backend/src/service/createRouter.ts @@ -41,6 +41,7 @@ import { parseEntityTransformParams, } from './request'; import { parseEntityFacetParams } from './request/parseEntityFacetParams'; +import { parseEntityOrderParams } from './request/parseEntityOrderParams'; import { LocationService, RefreshOptions, RefreshService } from './types'; import { disallowReadonlyMode, @@ -113,6 +114,7 @@ export async function createRouter( const { entities, pageInfo } = await entitiesCatalog.entities({ filter: parseEntityFilterParams(req.query), fields: parseEntityTransformParams(req.query), + order: parseEntityOrderParams(req.query), pagination: parseEntityPaginationParams(req.query), authorizationToken: getBearerToken(req.header('authorization')), }); diff --git a/plugins/catalog-backend/src/service/request/parseEntityOrderParams.test.ts b/plugins/catalog-backend/src/service/request/parseEntityOrderParams.test.ts new file mode 100644 index 0000000000..1433e6fd2b --- /dev/null +++ b/plugins/catalog-backend/src/service/request/parseEntityOrderParams.test.ts @@ -0,0 +1,42 @@ +/* + * Copyright 2021 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 { parseEntityOrderParams } from './parseEntityOrderParams'; + +describe('parseEntityOrderParams', () => { + it('handles missing parameter', () => { + expect(parseEntityOrderParams({})).toBeUndefined(); + }); + + it('handles parameters with various orders', () => { + expect( + parseEntityOrderParams({ order: ['asc:a', 'desc:b', 'asc:c:d'] }), + ).toEqual([ + { field: 'a', order: 'asc' }, + { field: 'b', order: 'desc' }, + { field: 'c:d', order: 'asc' }, + ]); + }); + + it.each(['', ':', 'ascii:', 'ascii:ebcdic', ':colon'])( + 'rejects missing/bad order or key, %p', + order => { + expect(() => parseEntityOrderParams({ order: [order] })).toThrow( + `Invalid order parameter "${order}", expected ":"`, + ); + }, + ); +}); diff --git a/plugins/catalog-backend/src/service/request/parseEntityOrderParams.ts b/plugins/catalog-backend/src/service/request/parseEntityOrderParams.ts new file mode 100644 index 0000000000..ff81a91ca5 --- /dev/null +++ b/plugins/catalog-backend/src/service/request/parseEntityOrderParams.ts @@ -0,0 +1,37 @@ +/* + * Copyright 2021 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 { InputError } from '@backstage/errors'; +import { EntityOrder } from '../../catalog/types'; +import { parseStringsParam } from './common'; + +export function parseEntityOrderParams( + params: Record, +): EntityOrder[] | undefined { + return parseStringsParam(params.order, 'order')?.map(item => { + const match = item.match(/^(asc|desc):(.+)$/); + if (!match) { + throw new InputError( + `Invalid order parameter "${item}", expected ":"`, + ); + } + + return { + order: match[1] as 'asc' | 'desc', + field: match[2], + }; + }); +} diff --git a/plugins/catalog-backend/src/stitching/Stitcher.test.ts b/plugins/catalog-backend/src/stitching/Stitcher.test.ts index a3657e45fd..729793a8d7 100644 --- a/plugins/catalog-backend/src/stitching/Stitcher.test.ts +++ b/plugins/catalog-backend/src/stitching/Stitcher.test.ts @@ -110,6 +110,8 @@ describe('Stitcher', () => { }); expect(entity.metadata.etag).toEqual(entities[0].hash); + const last_updated_at = entities[0].last_updated_at; + expect(last_updated_at).not.toBeNull(); const firstHash = entities[0].hash; const search = await db('search'); @@ -127,7 +129,12 @@ describe('Stitcher', () => { original_value: 'a', value: 'a', }, - { entity_id: 'my-id', key: 'kind', original_value: 'k', value: 'k' }, + { + entity_id: 'my-id', + key: 'kind', + original_value: 'k', + value: 'k', + }, { entity_id: 'my-id', key: 'metadata.name', @@ -227,7 +234,12 @@ describe('Stitcher', () => { original_value: 'a', value: 'a', }, - { entity_id: 'my-id', key: 'kind', original_value: 'k', value: 'k' }, + { + entity_id: 'my-id', + key: 'kind', + original_value: 'k', + value: 'k', + }, { entity_id: 'my-id', key: 'metadata.name', diff --git a/plugins/catalog-backend/src/stitching/Stitcher.ts b/plugins/catalog-backend/src/stitching/Stitcher.ts index 0da8e39694..4742c81933 100644 --- a/plugins/catalog-backend/src/stitching/Stitcher.ts +++ b/plugins/catalog-backend/src/stitching/Stitcher.ts @@ -207,11 +207,12 @@ export class Stitcher { .update({ final_entity: JSON.stringify(entity), hash, + last_updated_at: this.database.fn.now(), }) .where('entity_id', entityId) .where('stitch_ticket', ticket) .onConflict('entity_id') - .merge(['final_entity', 'hash']); + .merge(['final_entity', 'hash', 'last_updated_at']); if (amountOfRowsChanged === 0) { this.logger.debug( diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md index e021480182..b5026487e6 100644 --- a/plugins/catalog-common/CHANGELOG.md +++ b/plugins/catalog-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-common +## 1.0.9 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + - @backstage/catalog-model@1.1.4 + ## 1.0.9-next.3 ### Patch Changes diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index 5252acbfb2..b9bee625c9 100644 --- a/plugins/catalog-common/package.json +++ b/plugins/catalog-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-common", "description": "Common functionalities for the catalog plugin", - "version": "1.0.9-next.3", + "version": "1.0.9", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-customized/CHANGELOG.md b/plugins/catalog-customized/CHANGELOG.md index c0677a7486..f56901d2f4 100644 --- a/plugins/catalog-customized/CHANGELOG.md +++ b/plugins/catalog-customized/CHANGELOG.md @@ -1,5 +1,21 @@ # @internal/plugin-catalog-customized +## 0.0.6 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.7.1 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.0.5 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.7.0 + - @backstage/plugin-catalog-react@1.2.2 + ## 0.0.5-next.4 ### Patch Changes diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index 08c34a0dba..dcf16e7969 100644 --- a/plugins/catalog-customized/package.json +++ b/plugins/catalog-customized/package.json @@ -1,7 +1,7 @@ { "name": "@internal/plugin-catalog-customized", "description": "The internal Backstage Customizable plugin for browsing the Backstage catalog", - "version": "0.0.5-next.4", + "version": "0.0.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index 51a242cc41..0d941652c7 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-catalog-graph +## 0.2.25 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.24 + +### Patch Changes + +- cb716004ef: Internal refactor to improve tests +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 454f2e90db: Set the default `maxDepth` prop for `EntityRelationsGraph` to a smaller value to provide better readability. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/catalog-client@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.24-next.4 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 6be542664c..7df0346279 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.2.24-next.4", + "version": "0.2.24", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-graphql/CHANGELOG.md b/plugins/catalog-graphql/CHANGELOG.md index 0ea129e544..385be702f3 100644 --- a/plugins/catalog-graphql/CHANGELOG.md +++ b/plugins/catalog-graphql/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-graphql +## 0.3.16 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.3.16-next.1 ### Patch Changes diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index ea2348d7cc..fc7cf5308f 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-graphql", "description": "An experimental Backstage catalog GraphQL module", - "version": "0.3.16-next.1", + "version": "0.3.16", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index 8b5152105b..2327f692e8 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/plugin-catalog-import +## 0.9.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/integration-react@1.1.8 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.9.2 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/catalog-client@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/integration-react@1.1.7 + - @backstage/integration@1.4.1 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-common@1.0.9 + ## 0.9.2-next.4 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 13f97ae38a..f56b096b01 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-import", "description": "A Backstage plugin the helps you import entities into your catalog", - "version": "0.9.2-next.4", + "version": "0.9.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-import/src/components/StepPrepareCreatePullRequest/PreparePullRequestForm.test.tsx b/plugins/catalog-import/src/components/StepPrepareCreatePullRequest/PreparePullRequestForm.test.tsx index a8188ce358..54d5c27993 100644 --- a/plugins/catalog-import/src/components/StepPrepareCreatePullRequest/PreparePullRequestForm.test.tsx +++ b/plugins/catalog-import/src/components/StepPrepareCreatePullRequest/PreparePullRequestForm.test.tsx @@ -15,6 +15,7 @@ */ import { FormHelperText, TextField } from '@material-ui/core'; +import Button from '@material-ui/core/Button'; import { act, render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; @@ -31,7 +32,7 @@ describe('', () => { render={({ register }) => ( <> - {' '} + {' '} )} onSubmit={onSubmitFn} @@ -59,7 +60,7 @@ describe('', () => { id="main" label="Main Field" /> - + )} onSubmit={onSubmitFn} @@ -93,7 +94,7 @@ describe('', () => { Error in required main field )} - {' '} + {' '} )} onSubmit={onSubmitFn} diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index a4c12b965a..e50643a9ae 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-node +## 1.3.0 + +### Minor Changes + +- eacc8e2b55: Make it possible for entity providers to supply only entity refs, instead of full entities, in `delta` mutation deletions. + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- Updated dependencies + - @backstage/catalog-client@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/plugin-catalog-common@1.0.9 + ## 1.3.0-next.3 ### Patch Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 00291f56c3..83f2fa5913 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-node", "description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend", - "version": "1.3.0-next.3", + "version": "1.3.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index 7c9adfc12d..17372fa42b 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/plugin-catalog-react +## 1.2.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 1.2.2 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 6ffa47bb0a: Cleanup and small fixes for the kind selector +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/catalog-client@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.9 + ## 1.2.2-next.4 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 41d59ebc41..ce7acd08df 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-react", "description": "A frontend library that helps other Backstage plugins interact with the catalog", - "version": "1.2.2-next.4", + "version": "1.2.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index 797154bf60..f154f5d260 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,45 @@ # @backstage/plugin-catalog +## 1.7.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/integration-react@1.1.8 + - @backstage/plugin-catalog-react@1.2.3 + - @backstage/plugin-search-react@1.3.1 + +## 1.7.0 + +### Minor Changes + +- 6ffa47bb0a: Fixes in kind selectors (now `OwnershipCard` works again). `EntityKindPicker` now accepts an optional `allowedKinds` prop, just like `CatalogKindHeader`. +- 462c1d012e: Removed `CatalogKindHeader` from `DefaultCatalogPage`. Deprecated `CatalogKindHeader` in favour of `EntityKindPicker`. + +### Patch Changes + +- d3fea4ae0a: Internal fixes to avoid implicit usage of globals +- ca04d97b09: Handle refresh entity error in `AboutCard`. +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- a19cffbeed: Update search links to only have header as linkable text +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. +- 387d1d5218: Fixed Entity kind pluralisation in the `CatalogKindHeader` component. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/catalog-client@1.2.0 + - @backstage/plugin-search-react@1.3.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/integration-react@1.1.7 + - @backstage/types@1.0.2 + - @backstage/plugin-search-common@1.2.0 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.9 + ## 1.7.0-next.4 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 76eb4b4b4b..d1d1570ee5 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog", "description": "The Backstage plugin for browsing the Backstage catalog", - "version": "1.7.0-next.4", + "version": "1.7.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md index dbd7215a8c..dca85d1c00 100644 --- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md +++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-cicd-statistics-module-gitlab +## 0.1.9 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cicd-statistics@0.1.15 + +## 0.1.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-cicd-statistics@0.1.14 + - @backstage/catalog-model@1.1.4 + ## 0.1.8-next.4 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index 9fbd7e8aa9..d5805aa03a 100644 --- a/plugins/cicd-statistics-module-gitlab/package.json +++ b/plugins/cicd-statistics-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics-module-gitlab", "description": "CI/CD Statistics plugin module; Gitlab CICD", - "version": "0.1.8-next.4", + "version": "0.1.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cicd-statistics/CHANGELOG.md b/plugins/cicd-statistics/CHANGELOG.md index 783fb8b3fd..ff0877c7a5 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-cicd-statistics +## 0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.14 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + ## 0.1.14-next.4 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index 02577879fe..390eaec6bf 100644 --- a/plugins/cicd-statistics/package.json +++ b/plugins/cicd-statistics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics", "description": "A frontend plugin visualizing CI/CD pipeline statistics (build time)", - "version": "0.1.14-next.4", + "version": "0.1.14", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index bd72c9bf01..f6a7c15545 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-circleci +## 0.3.13 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.3.12 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.3.12-next.4 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index ef4923f7d2..4c03a25116 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-circleci", "description": "A Backstage plugin that integrates towards Circle CI", - "version": "0.3.12-next.4", + "version": "0.3.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md index 941821f33f..a4338da90f 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-cloudbuild +## 0.3.13 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.3.12 + +### Patch Changes + +- d3fea4ae0a: Internal fixes to avoid implicit usage of globals +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.3.12-next.4 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index 1cfee1e1d6..b2fc5badaf 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cloudbuild", "description": "A Backstage plugin that integrates towards Google Cloud Build", - "version": "0.3.12-next.4", + "version": "0.3.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md index 470d6f929c..09626076d0 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-code-climate +## 0.1.13 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.12 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.12-next.4 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index cea2863f34..1a541ff220 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-code-climate", - "version": "0.1.12-next.4", + "version": "0.1.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md index d3e9285de8..5bab00763e 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-code-coverage-backend +## 0.2.5 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.2.5-next.3 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index b29c0d33df..3cf997f2c9 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage-backend", "description": "A Backstage backend plugin that helps you keep track of your code coverage", - "version": "0.2.5-next.3", + "version": "0.2.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index c685912850..a3dab7b6aa 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-code-coverage +## 0.2.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.5 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 0.2.5-next.4 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 9407f653a5..40e81db84a 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage", "description": "A Backstage plugin that helps you keep track of your code coverage", - "version": "0.2.5-next.4", + "version": "0.2.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/codescene/CHANGELOG.md b/plugins/codescene/CHANGELOG.md index ffb7e9929e..eef5987551 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-codescene +## 0.1.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.1.7 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 17a8e32f39: Updated dependency `rc-progress` to `3.4.1`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 0.1.7-next.4 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index 1abbd34834..44d1614b3d 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "version": "0.1.7-next.4", + "version": "0.1.7", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index 23677aea1c..7fe68a41fd 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-config-schema +## 0.1.36 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.1.35 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 0.1.35-next.4 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 07ea1dd566..f8e337f873 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-config-schema", "description": "A Backstage plugin that lets you browse the configuration schema of your app", - "version": "0.1.35-next.4", + "version": "0.1.35", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md index f709693152..187b8416cb 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/plugin-cost-insights +## 0.12.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.12.1 + +### Patch Changes + +- 593c22253a: Added Y axis for metric data, with relevant formatting and data domain +- f9bbb3be37: Provide the ability to change the base currency from USD to any other currency in cost insights plugin +- d379b6f070: Internal refactor to avoid usage of deprecated symbols +- 5960d0902e: Internal refactor to avoid usage of deprecated symbols +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- f97c7fd1f7: added an optional config entry `costInsights.engineerThreshold` to allow users to control the threshold value for the 'negligible' change in costs. +- a5ecdb99f0: Making a possibility to hide a trending line in a cost insights plugin +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/test-utils@1.2.3 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + - @backstage/plugin-cost-insights-common@0.1.1 + ## 0.12.1-next.4 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 1ed5c08d4d..defc54f904 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights", "description": "A Backstage plugin that helps you keep track of your cloud spend", - "version": "0.12.1-next.4", + "version": "0.12.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md index 4f10cfb0bc..e477ee1c1b 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-dynatrace +## 1.0.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 1.0.2 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 1.0.2-next.4 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index f708207647..d359156787 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "1.0.2-next.4", + "version": "1.0.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-aws-sqs/CHANGELOG.md b/plugins/events-backend-module-aws-sqs/CHANGELOG.md index 0983c7801c..991f845cdc 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.1.1 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- dd008a10c1: Upgrade to AWS SDK for Javascript v3 +- Updated dependencies + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/types@1.0.2 + - @backstage/config@1.0.5 + ## 0.1.1-next.3 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index 4033ccceb0..15c859a8bc 100644 --- a/plugins/events-backend-module-aws-sqs/package.json +++ b/plugins/events-backend-module-aws-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-aws-sqs", - "version": "0.1.1-next.3", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md index e462c72f25..77498eeb99 100644 --- a/plugins/events-backend-module-azure/CHANGELOG.md +++ b/plugins/events-backend-module-azure/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-azure +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.0 + - @backstage/plugin-events-node@0.2.0 + ## 0.1.1-next.3 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index 1e86c041b2..3b6302200f 100644 --- a/plugins/events-backend-module-azure/package.json +++ b/plugins/events-backend-module-azure/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-azure", - "version": "0.1.1-next.3", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md index 81ca8ab68c..f4a6fa5ae0 100644 --- a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-bitbucket-cloud +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.0 + - @backstage/plugin-events-node@0.2.0 + ## 0.1.1-next.3 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index 07906ded6c..c44c1ef1cc 100644 --- a/plugins/events-backend-module-bitbucket-cloud/package.json +++ b/plugins/events-backend-module-bitbucket-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-bitbucket-cloud", - "version": "0.1.1-next.3", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md index 6c44b4d5bc..bf3bdf34b4 100644 --- a/plugins/events-backend-module-gerrit/CHANGELOG.md +++ b/plugins/events-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-gerrit +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.0 + - @backstage/plugin-events-node@0.2.0 + ## 0.1.1-next.3 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index d3f073234f..497756bc93 100644 --- a/plugins/events-backend-module-gerrit/package.json +++ b/plugins/events-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-gerrit", - "version": "0.1.1-next.3", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md index b66ef189dc..b3e4d2821b 100644 --- a/plugins/events-backend-module-github/CHANGELOG.md +++ b/plugins/events-backend-module-github/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-events-backend-module-github +## 0.1.1 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- 0f46ec304c: Add `createGithubSignatureValidator(config)` which can be used + to create a validator used at an ingress for topic `github`. + + On top, there is a new `githubWebhookEventsModule` for the new backend plugin API + which auto-registers the `HttpPostIngress` for topic `github` incl. the validator. + + Please find more information at + https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-github/README.md. + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/config@1.0.5 + ## 0.1.1-next.3 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index ac243fa3b2..8be3fd4c7b 100644 --- a/plugins/events-backend-module-github/package.json +++ b/plugins/events-backend-module-github/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-github", - "version": "0.1.1-next.3", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md index 44ec6ec11b..a3d25cefac 100644 --- a/plugins/events-backend-module-gitlab/CHANGELOG.md +++ b/plugins/events-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-events-backend-module-gitlab +## 0.1.1 + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- 31fe8f256a: Add `createGitlabTokenValidator(config)` which can be used + to create a validator used at an ingress for topic `gitlab`. + + On top, there is a new `gitlabWebhookEventsModule` for the new backend plugin API + which auto-registers the `HttpPostIngress` for topic `gitlab` incl. the validator. + + Please find more information at + https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-gitlab/README.md. + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/config@1.0.5 + ## 0.1.1-next.3 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index 8f8ac8778e..019052ba11 100644 --- a/plugins/events-backend-module-gitlab/package.json +++ b/plugins/events-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-gitlab", - "version": "0.1.1-next.3", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md index a40e6013a9..f5ce89f47d 100644 --- a/plugins/events-backend-test-utils/CHANGELOG.md +++ b/plugins/events-backend-test-utils/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-backend-test-utils +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.0 + ## 0.1.1-next.3 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index 2587f5182b..2cd90d985b 100644 --- a/plugins/events-backend-test-utils/package.json +++ b/plugins/events-backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-events-backend-test-utils", "description": "The plugin-events-backend-test-utils for @backstage/plugin-events-node", - "version": "0.1.1-next.3", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md index d033777e13..50074a6f07 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,41 @@ # @backstage/plugin-events-backend +## 0.2.0 + +### Minor Changes + +- cf41eedf43: **BREAKING:** Remove required field `router` at `HttpPostIngressEventPublisher.fromConfig` + and replace it with `bind(router: Router)`. + Additionally, the path prefix `/http` will be added inside `HttpPostIngressEventPublisher`. + + ```diff + // at packages/backend/src/plugins/events.ts + const eventsRouter = Router(); + - const httpRouter = Router(); + - eventsRouter.use('/http', httpRouter); + + const http = HttpPostIngressEventPublisher.fromConfig({ + config: env.config, + logger: env.logger, + - router: httpRouter, + }); + + http.bind(eventsRouter); + ``` + +### Patch Changes + +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- cf41eedf43: Introduce a new interface `RequestDetails` to abstract `Request` + providing access to request body and headers. + + **BREAKING:** Replace `request: Request` with `request: RequestDetails` at `RequestValidator`. + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/config@1.0.5 + ## 0.2.0-next.3 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index d61ef47724..6aee64754c 100644 --- a/plugins/events-backend/package.json +++ b/plugins/events-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend", - "version": "0.2.0-next.3", + "version": "0.2.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md index 1092c53eee..b91a966342 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-events-node +## 0.2.0 + +### Minor Changes + +- cf41eedf43: Introduce a new interface `RequestDetails` to abstract `Request` + providing access to request body and headers. + + **BREAKING:** Replace `request: Request` with `request: RequestDetails` at `RequestValidator`. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.0 + ## 0.2.0-next.3 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index 2dcd55c3c1..59123e0e27 100644 --- a/plugins/events-node/package.json +++ b/plugins/events-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-events-node", "description": "The plugin-events-node module for @backstage/plugin-events-backend", - "version": "0.2.0-next.3", + "version": "0.2.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md index 3e1e24cb00..f853f231e1 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @internal/plugin-todo-list-backend +## 1.0.8 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/config@1.0.5 + ## 1.0.8-next.3 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index 9f10fae96c..14b6a81c70 100644 --- a/plugins/example-todo-list-backend/package.json +++ b/plugins/example-todo-list-backend/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list-backend", - "version": "1.0.8-next.3", + "version": "1.0.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list-common/CHANGELOG.md b/plugins/example-todo-list-common/CHANGELOG.md index 77cf3a31ab..2cf4c41b4f 100644 --- a/plugins/example-todo-list-common/CHANGELOG.md +++ b/plugins/example-todo-list-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @internal/plugin-todo-list-common +## 1.0.7 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.2 + ## 1.0.7-next.2 ### Patch Changes diff --git a/plugins/example-todo-list-common/package.json b/plugins/example-todo-list-common/package.json index 54ab4fc482..1392e063ff 100644 --- a/plugins/example-todo-list-common/package.json +++ b/plugins/example-todo-list-common/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list-common", - "version": "1.0.7-next.2", + "version": "1.0.7", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md index fe8d0bdf20..bc012467a4 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,21 @@ # @internal/plugin-todo-list +## 1.0.9 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 1.0.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/theme@0.2.16 + ## 1.0.8-next.4 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 3d52bd17f3..ee34b6541f 100644 --- a/plugins/example-todo-list/package.json +++ b/plugins/example-todo-list/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list", - "version": "1.0.8-next.4", + "version": "1.0.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore-backend/CHANGELOG.md b/plugins/explore-backend/CHANGELOG.md index a11847460c..55e62824f2 100644 --- a/plugins/explore-backend/CHANGELOG.md +++ b/plugins/explore-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-explore-backend +## 0.0.1 + +### Patch Changes + +- 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. + + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + + NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. + + BREAKING CHANGE: If you have previously installed the `explore` plugin, but not yet customized the `ExploreToolConfig` API in your `packages/app`, this will result in an empty list of tools. + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.0 + - @backstage/config@1.0.5 + ## 0.0.1-next.2 ### Patch Changes diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json index 23ec4d9442..748a4e0a09 100644 --- a/plugins/explore-backend/package.json +++ b/plugins/explore-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore-backend", - "version": "0.0.1-next.2", + "version": "0.0.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,7 +37,7 @@ "devDependencies": { "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", - "msw": "^0.47.0", + "msw": "^0.49.0", "supertest": "^6.2.4" }, "files": [ diff --git a/plugins/explore-common/CHANGELOG.md b/plugins/explore-common/CHANGELOG.md index 794fe6d995..693d0b1b9d 100644 --- a/plugins/explore-common/CHANGELOG.md +++ b/plugins/explore-common/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-explore-common +## 0.0.1 + +### Patch Changes + +- 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. + + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + + NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. + + BREAKING CHANGE: If you have previously installed the `explore` plugin, but not yet customized the `ExploreToolConfig` API in your `packages/app`, this will result in an empty list of tools. + ## 0.0.1-next.0 ### Patch Changes diff --git a/plugins/explore-common/package.json b/plugins/explore-common/package.json index 5887a26d06..988745a8f7 100644 --- a/plugins/explore-common/package.json +++ b/plugins/explore-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore-common", "description": "Common functionalities for the explore plugin", - "version": "0.0.1-next.0", + "version": "0.0.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore-react/CHANGELOG.md b/plugins/explore-react/CHANGELOG.md index d6eb6f1994..358a51dd10 100644 --- a/plugins/explore-react/CHANGELOG.md +++ b/plugins/explore-react/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-explore-react +## 0.0.24 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. + + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + + NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. + + BREAKING CHANGE: If you have previously installed the `explore` plugin, but not yet customized the `ExploreToolConfig` API in your `packages/app`, this will result in an empty list of tools. + +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-explore-common@0.0.1 + ## 0.0.24-next.2 ### Patch Changes diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json index 9eccf90a35..ec96a184f4 100644 --- a/plugins/explore-react/package.json +++ b/plugins/explore-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore-react", "description": "A frontend library for Backstage plugins that want to interact with the explore plugin", - "version": "0.0.24-next.2", + "version": "0.0.24", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md index f29ba3f331..50fd45e426 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,43 @@ # @backstage/plugin-explore +## 0.3.44 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + - @backstage/plugin-search-react@1.3.1 + - @backstage/plugin-explore-react@0.0.24 + +## 0.3.43 + +### Patch Changes + +- c8f49ed4d0: Update search links to only have header as linkable text +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- ea4a5be8f3: Adds styling to graph forcing it to always fill out the available space. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. + + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + + NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. + + BREAKING CHANGE: If you have previously installed the `explore` plugin, but not yet customized the `ExploreToolConfig` API in your `packages/app`, this will result in an empty list of tools. + +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-search-react@1.3.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/plugin-explore-react@0.0.24 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.0 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.3.43-next.4 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index d12e4bd681..9f6f700950 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore", "description": "A Backstage plugin for building an exploration page of your software ecosystem", - "version": "0.3.43-next.4", + "version": "0.3.43", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index c2f1b44960..513c3cb6ec 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-firehydrant +## 0.1.30 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.29 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/theme@0.2.16 + ## 0.1.29-next.4 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index dd756058d9..81a329ec5f 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-firehydrant", "description": "A Backstage plugin that integrates towards FireHydrant", - "version": "0.1.29-next.4", + "version": "0.1.29", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md index f30d7581e9..4513e8b733 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-fossa +## 0.2.45 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.44 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.44-next.4 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 73c92439e4..c0ece5f0f0 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-fossa", "description": "A Backstage plugin that integrates towards FOSSA", - "version": "0.2.44-next.4", + "version": "0.2.44", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gcalendar/CHANGELOG.md b/plugins/gcalendar/CHANGELOG.md index 2963ca88b0..ac13f9ab37 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-gcalendar +## 0.3.9 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.3.8 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.3.8-next.4 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 6b741e04d0..71cd4b999c 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.8-next.4", + "version": "0.3.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md index 1d8dcf7925..43bb34a972 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-gcp-projects +## 0.3.32 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.3.31 + +### Patch Changes + +- d3fea4ae0a: Internal fixes to avoid implicit usage of globals +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 5fb6d5e92e: Updated dependency `@react-hookz/web` to `^19.0.0`. +- 146378c146: Updated dependency `@react-hookz/web` to `^20.0.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/theme@0.2.16 + ## 0.3.31-next.4 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 78707f0486..dc0653d122 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gcp-projects", "description": "A Backstage plugin that helps you manage projects in GCP", - "version": "0.3.31-next.4", + "version": "0.3.31", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md index 7df674e09a..6f5750b4fe 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-git-release-manager +## 0.3.26 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.3.25 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 0.3.25-next.4 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 01ce1b9a44..fe65ff159b 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-git-release-manager", "description": "A Backstage plugin that helps you manage releases in git", - "version": "0.3.25-next.4", + "version": "0.3.25", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index 1f59fd04fd..7fa266e31f 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-github-actions +## 0.5.13 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.5.12 + +### Patch Changes + +- d3fea4ae0a: Internal fixes to avoid implicit usage of globals +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/integration@1.4.1 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.5.12-next.4 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 68120c898d..aecce63b3f 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-actions", "description": "A Backstage plugin that integrates towards GitHub Actions", - "version": "0.5.12-next.4", + "version": "0.5.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-actions/src/__fixtures__/get-workflow-run.json b/plugins/github-actions/src/__fixtures__/get-workflow-run.json index 38c3513b15..7b6b3b3890 100644 --- a/plugins/github-actions/src/__fixtures__/get-workflow-run.json +++ b/plugins/github-actions/src/__fixtures__/get-workflow-run.json @@ -3,6 +3,7 @@ "name": "Build", "node_id": "MDEyOldvcmtmbG93IFJ1bjI2OTI4OQ==", "check_suite_id": 42, + "display_title": "foo", "check_suite_node_id": "MDEwOkNoZWNrU3VpdGU0Mg==", "head_branch": "main", "head_sha": "acb5820ced9479c074f688cc328bf03f341a511d", diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index 0eac699d59..5d7609cb7a 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-github-deployments +## 0.1.44 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/integration-react@1.1.8 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.43 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/integration-react@1.1.7 + - @backstage/integration@1.4.1 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.43-next.4 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index ce249a12e9..70c6d53f10 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-deployments", "description": "A Backstage plugin that integrates towards GitHub Deployments", - "version": "0.1.43-next.4", + "version": "0.1.43", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-issues/CHANGELOG.md b/plugins/github-issues/CHANGELOG.md index cae20b4ee6..7152069b86 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-github-issues +## 0.2.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.1 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/integration@1.4.1 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.1-next.4 ### Patch Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index aa4ba3d723..c10d0283e0 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-issues", - "version": "0.2.1-next.4", + "version": "0.2.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md index 7deb9bf2ce..4593291133 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.6 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/integration@1.4.1 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.6-next.4 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 5e30308cde..ce059d64cf 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-pull-requests-board", "description": "A Backstage plugin that allows you to see all open Pull Requests for all the repositories owned by your team", - "version": "0.1.6-next.4", + "version": "0.1.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md index 3e6b1a0bd6..d5d07b87f0 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-gitops-profiles +## 0.3.31 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.3.30 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/theme@0.2.16 + ## 0.3.30-next.4 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index b9a603648d..e3025031bf 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gitops-profiles", "description": "A Backstage plugin that helps you manage GitOps profiles", - "version": "0.3.30-next.4", + "version": "0.3.30", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index db096b9395..1b257486ac 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-gocd +## 0.1.19 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.18 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.18-next.4 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index ad4e3fd21e..3b25b36669 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gocd", "description": "A Backstage plugin that integrates towards GoCD", - "version": "0.1.18-next.4", + "version": "0.1.18", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md index 867cb10b2f..a499bb2f7e 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-graphiql +## 0.2.45 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.2.44 + +### Patch Changes + +- d3fea4ae0a: Internal fixes to avoid implicit usage of globals +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/theme@0.2.16 + ## 0.2.44-next.4 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 986cae5bfa..5752000ec5 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.2.44-next.4", + "version": "0.2.44", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md index 1aa0d94040..da362fb71d 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-graphql-backend +## 0.1.29 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-graphql@0.3.16 + - @backstage/config@1.0.5 + ## 0.1.29-next.3 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 9d5775bdcc..10d5426cc8 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphql-backend", "description": "An experimental Backstage backend plugin for GraphQL", - "version": "0.1.29-next.3", + "version": "0.1.29", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index f8f150ab4b..0fd26937a8 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-home +## 0.4.29 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + - @backstage/plugin-stack-overflow@0.1.9 + +## 0.4.28 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- edf2404e9f: Adjusted the description's empty state on the starred entities table, +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/plugin-stack-overflow@0.1.8 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 0.4.28-next.4 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 71e768e460..1196950333 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home", "description": "A Backstage plugin that helps you build a home page", - "version": "0.4.28-next.4", + "version": "0.4.28", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx b/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx index 2b9fae8221..695406aab5 100644 --- a/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx +++ b/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx @@ -82,4 +82,62 @@ describe('StarredEntitiesContent', () => { '/catalog/default/component/mock-starred-entity-2', ); }); + + it('should display call to action message if no entities are starred', async () => { + const mockedApi = new MockStarredEntitiesApi(); + + const mockCatalogApi = { + getEntities: jest + .fn() + .mockImplementation(async () => ({ items: entities })), + }; + + const { getByText } = await renderInTestApp( + + + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name': entityRouteRef, + }, + }, + ); + + expect( + getByText('Click the star beside an entity name to add it to this list!'), + ).toBeInTheDocument(); + }); + + it('should display user provided message if no entities are starred', async () => { + const mockedApi = new MockStarredEntitiesApi(); + + const mockCatalogApi = { + getEntities: jest + .fn() + .mockImplementation(async () => ({ items: entities })), + }; + + const { getByText } = await renderInTestApp( + + + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name': entityRouteRef, + }, + }, + ); + + expect(getByText('foo')).toBeInTheDocument(); + }); }); diff --git a/plugins/home/src/homePageComponents/StarredEntities/Content.tsx b/plugins/home/src/homePageComponents/StarredEntities/Content.tsx index 31fa00378e..4654a7f860 100644 --- a/plugins/home/src/homePageComponents/StarredEntities/Content.tsx +++ b/plugins/home/src/homePageComponents/StarredEntities/Content.tsx @@ -41,7 +41,10 @@ import useAsync from 'react-use/lib/useAsync'; * * @public */ -export const Content = () => { + +export const Content = (props: { + noStarredEntitiesMessage?: React.ReactNode | undefined; +}) => { const catalogApi = useApi(catalogApiRef); const catalogEntityRoute = useRouteRef(entityRouteRef); const { starredEntities, toggleStarredEntity } = useStarredEntities(); @@ -76,7 +79,8 @@ export const Content = () => { if (starredEntities.size === 0) return ( - You do not have any starred entities yet! + {props.noStarredEntitiesMessage || + 'Click the star beside an entity name to add it to this list!'} ); diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index edd024f953..79a87148b4 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-ilert +## 0.2.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.1 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.1-next.4 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index a41b5baf97..605e1f367e 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-ilert", "description": "A Backstage plugin that integrates towards iLert", - "version": "0.2.1-next.4", + "version": "0.2.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index 38c3799d0f..685579d3d6 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-jenkins-backend +## 0.1.29 + +### Patch Changes + +- cfe2b98fbe: Remove unnecessary dependency `promise-any-polyfill`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 9447b0fb46: added support for standalone jenkins projects +- Updated dependencies + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/plugin-jenkins-common@0.1.11 + ## 0.1.29-next.3 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index d486459a58..4b83b449cf 100644 --- a/plugins/jenkins-backend/package.json +++ b/plugins/jenkins-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins-backend", "description": "A Backstage backend plugin that integrates towards Jenkins", - "version": "0.1.29-next.3", + "version": "0.1.29", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins-backend/src/service/jenkinsApi.test.ts b/plugins/jenkins-backend/src/service/jenkinsApi.test.ts index 4f65e446fd..57ce2dbed4 100644 --- a/plugins/jenkins-backend/src/service/jenkinsApi.test.ts +++ b/plugins/jenkins-backend/src/service/jenkinsApi.test.ts @@ -75,6 +75,38 @@ describe('JenkinsApi', () => { }, }; + describe('standalone project', () => { + it('should return the only build', async () => { + mockedJenkinsClient.job.get + .mockResolvedValueOnce(project) + .mockResolvedValueOnce(project); + const result = await jenkinsApi.getProjects(jenkinsInfo); + expect(mockedJenkinsClient.job.get).toHaveBeenCalledTimes(2); + expect(result).toHaveLength(1); + expect(result[0]).toEqual({ + actions: [], + displayName: 'Example Build', + fullDisplayName: 'Example jobName » Example Build', + fullName: 'example-jobName/exampleBuild', + inQueue: false, + lastBuild: { + actions: [], + timestamp: 1, + building: false, + duration: 10, + result: 'success', + displayName: '#7', + fullDisplayName: 'Example jobName » Example Build #7', + url: 'https://jenkins.example.com/job/example-jobName/job/exampleBuild', + number: 7, + status: 'success', + source: {}, + }, + status: 'success', + }); + }); + }); + describe('unfiltered', () => { it('standard github layout', async () => { mockedJenkinsClient.job.get.mockResolvedValueOnce({ jobs: [project] }); diff --git a/plugins/jenkins-backend/src/service/jenkinsApi.ts b/plugins/jenkins-backend/src/service/jenkinsApi.ts index 89c9a41f9c..ef4ddc47b0 100644 --- a/plugins/jenkins-backend/src/service/jenkinsApi.ts +++ b/plugins/jenkins-backend/src/service/jenkinsApi.ts @@ -75,7 +75,7 @@ export class JenkinsApiImpl { const projects: BackstageProject[] = []; if (branches) { - // Assume jenkinsInfo.jobFullName is a folder which contains one job per branch. + // Assume jenkinsInfo.jobFullName is a MultiBranch Pipeline project which contains one job per branch. // TODO: extract a strategy interface for this const job = await Promise.any( branches.map(branch => @@ -88,8 +88,10 @@ export class JenkinsApiImpl { projects.push(this.augmentProject(job)); } else { // We aren't filtering - // Assume jenkinsInfo.jobFullName is a folder which contains one job per branch. - const folder = await client.job.get({ + // Assume jenkinsInfo.jobFullName is either + // a MultiBranch Pipeline (folder with one job per branch) project + // a Pipeline (standalone) project + const project = await client.job.get({ name: jenkinsInfo.jobFullName, // Filter only be the information we need, instead of loading all fields. // Limit to only show the latest build for each job and only load 50 jobs @@ -99,15 +101,18 @@ export class JenkinsApiImpl { tree: JenkinsApiImpl.jobsTreeSpec.replace(/\s/g, ''), }); - // TODO: support this being a project itself. - for (const jobDetails of folder.jobs) { + const isStandaloneProject = !project.jobs; + if (isStandaloneProject) { + const standaloneProject = await client.job.get({ + name: jenkinsInfo.jobFullName, + tree: JenkinsApiImpl.jobTreeSpec.replace(/\s/g, ''), + }); + projects.push(this.augmentProject(standaloneProject)); + return projects; + } + for (const jobDetails of project.jobs) { // for each branch (we assume) - if (jobDetails?.jobs) { - // skipping folders inside folders for now - // TODO: recurse - } else { - projects.push(this.augmentProject(jobDetails)); - } + projects.push(this.augmentProject(jobDetails)); } } return projects; diff --git a/plugins/jenkins-common/CHANGELOG.md b/plugins/jenkins-common/CHANGELOG.md index c8a4523ded..13568fe8f3 100644 --- a/plugins/jenkins-common/CHANGELOG.md +++ b/plugins/jenkins-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-jenkins-common +## 0.1.11 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-catalog-common@1.0.9 + ## 0.1.11-next.3 ### Patch Changes diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index 5ae59c1656..ce639d5d9c 100644 --- a/plugins/jenkins-common/package.json +++ b/plugins/jenkins-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-jenkins-common", - "version": "0.1.11-next.3", + "version": "0.1.11", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md index 872a636156..8b5c2d4c88 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-jenkins +## 0.7.12 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.7.11 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-jenkins-common@0.1.11 + ## 0.7.11-next.4 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 6ec0dfa449..d15e5b580d 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins", "description": "A Backstage plugin that integrates towards Jenkins", - "version": "0.7.11-next.4", + "version": "0.7.11", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kafka-backend/CHANGELOG.md b/plugins/kafka-backend/CHANGELOG.md index badfbc3e5b..b573ae4eb3 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kafka-backend +## 0.2.32 + +### Patch Changes + +- 0b54dbaf7d: Internal tweak to adapt to `kafkajs` 2.2.3 +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.2.32-next.3 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index a95076d34a..66c4ffce0a 100644 --- a/plugins/kafka-backend/package.json +++ b/plugins/kafka-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka-backend", "description": "A Backstage backend plugin that integrates towards Kafka", - "version": "0.2.32-next.3", + "version": "0.2.32", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md index e17ff155f4..bde6951455 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-kafka +## 0.3.13 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.3.12 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 0.3.12-next.4 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index c39811f422..a56c915946 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka", "description": "A Backstage plugin that integrates towards Kafka", - "version": "0.3.12-next.4", + "version": "0.3.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index c0c21c42bc..fd60b462bb 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-kubernetes-backend +## 0.9.0 + +### Minor Changes + +- 2db8acffe7: Kubernetes plugin now gracefully surfaces transport-level errors (like DNS or timeout, or other socket errors) occurring while fetching data. This will be merged into any data that is fetched successfully, fixing a bug where the whole page would be empty if any fetch operation encountered such an error. + +### Patch Changes + +- 22e20b3a59: Clusters declared in the app-config can now have their CA configured via a local filesystem path using the `caFile` property. +- 9ce7866ecd: Updated dependency `@kubernetes/client-node` to `0.18.0`. +- b585179770: Added Kubernetes proxy API route to backend Kubernetes plugin, allowing Backstage plugin developers to read/write new information from Kubernetes (if proper credentials are provided). +- Updated dependencies + - @backstage/plugin-kubernetes-common@0.5.0 + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.31 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.8.1-next.4 ### Patch Changes diff --git a/plugins/kubernetes-backend/api-report.md b/plugins/kubernetes-backend/api-report.md index 2161df7c9a..4ec043a8f9 100644 --- a/plugins/kubernetes-backend/api-report.md +++ b/plugins/kubernetes-backend/api-report.md @@ -5,21 +5,17 @@ ```ts import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; -import { CoreV1Api } from '@kubernetes/client-node'; import { Credentials } from 'aws-sdk'; -import { CustomObjectsApi } from '@kubernetes/client-node'; import type { CustomResourceMatcher } from '@backstage/plugin-kubernetes-common'; import { Duration } from 'luxon'; import { Entity } from '@backstage/catalog-model'; import express from 'express'; import type { FetchResponse } from '@backstage/plugin-kubernetes-common'; import type { JsonObject } from '@backstage/types'; -import { KubeConfig } from '@kubernetes/client-node'; import type { KubernetesFetchError } from '@backstage/plugin-kubernetes-common'; import { KubernetesRequestAuth } from '@backstage/plugin-kubernetes-common'; import type { KubernetesRequestBody } from '@backstage/plugin-kubernetes-common'; import { Logger } from 'winston'; -import { Metrics } from '@kubernetes/client-node'; import type { ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import type { RequestHandler } from 'express'; @@ -262,18 +258,6 @@ export type KubernetesBuilderReturn = Promise<{ serviceLocator: KubernetesServiceLocator; }>; -// @alpha (undocumented) -export class KubernetesClientProvider { - // (undocumented) - getCoreClientByClusterDetails(clusterDetails: ClusterDetails): CoreV1Api; - // (undocumented) - getCustomObjectsClient(clusterDetails: ClusterDetails): CustomObjectsApi; - // (undocumented) - getKubeConfig(clusterDetails: ClusterDetails): KubeConfig; - // (undocumented) - getMetricsClient(clusterDetails: ClusterDetails): Metrics; -} - // @alpha export interface KubernetesClustersSupplier { getClusters(): Promise; diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index b895fdaeb5..9b163361f3 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-backend", "description": "A Backstage backend plugin that integrates towards Kubernetes", - "version": "0.8.1-next.4", + "version": "0.9.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -45,7 +45,7 @@ "@backstage/plugin-kubernetes-common": "workspace:^", "@google-cloud/container": "^4.0.0", "@jest-mock/express": "^2.0.1", - "@kubernetes/client-node": "0.17.0", + "@kubernetes/client-node": "0.18.0", "@types/express": "^4.17.6", "@types/luxon": "^3.0.0", "aws-sdk": "^2.840.0", diff --git a/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts b/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts index c8ff98f592..1e7b704ec5 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts @@ -34,7 +34,6 @@ import { ObjectsByEntityRequest, ServiceLocatorMethod, } from '../types/types'; -import { KubernetesClientProvider } from './KubernetesClientProvider'; import { DEFAULT_OBJECTS, KubernetesFanOutHandler, @@ -211,7 +210,6 @@ export class KubernetesBuilder { protected buildFetcher(): KubernetesFetcher { this.fetcher = new KubernetesClientBasedFetcher({ - kubernetesClientProvider: new KubernetesClientProvider(), logger: this.env.logger, }); diff --git a/plugins/kubernetes-backend/src/service/KubernetesClientProvider.test.ts b/plugins/kubernetes-backend/src/service/KubernetesClientProvider.test.ts deleted file mode 100644 index 0f73d129b3..0000000000 --- a/plugins/kubernetes-backend/src/service/KubernetesClientProvider.test.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2020 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 '@backstage/backend-common'; -import { KubernetesClientProvider } from './KubernetesClientProvider'; -import { ClusterDetails } from '../types/types'; -import * as https from 'https'; -import mockFs from 'mock-fs'; - -describe('KubernetesClientProvider', () => { - beforeEach(() => { - jest.resetAllMocks(); - }); - afterEach(() => { - mockFs.restore(); - }); - - it('can get core client by cluster details', () => { - const sut = new KubernetesClientProvider(); - const getKubeConfig = jest.spyOn(sut, 'getKubeConfig'); - - const clusterDetails: ClusterDetails = { - name: 'cluster-name', - url: 'http://localhost:9999', - serviceAccountToken: 'TOKEN', - authProvider: 'serviceAccount', - }; - const result = sut.getCoreClientByClusterDetails(clusterDetails); - - expect(result.basePath).toBe('http://localhost:9999'); - // These fields aren't on the type but are there - const auth = (result as any).authentications.default; - expect(auth.users[0].token).toBe('TOKEN'); - expect(auth.clusters[0].name).toBe('cluster-name'); - expect(auth.clusters[0].skipTLSVerify).toBe(false); - - expect(getKubeConfig).toHaveBeenCalledTimes(1); - }); - - it('can get custom objects client by cluster details', () => { - const sut = new KubernetesClientProvider(); - const getKubeConfig = jest.spyOn(sut, 'getKubeConfig'); - - const clusterDetails: ClusterDetails = { - name: 'cluster-name', - url: 'http://localhost:9999', - serviceAccountToken: 'TOKEN', - authProvider: 'serviceAccount', - skipTLSVerify: false, - }; - const result = sut.getCustomObjectsClient(clusterDetails); - - expect(result.basePath).toBe('http://localhost:9999'); - // These fields aren't on the type but are there - const auth = (result as any).authentications.default; - expect(auth.users[0].token).toBe('TOKEN'); - expect(auth.clusters[0].name).toBe('cluster-name'); - - expect(getKubeConfig).toHaveBeenCalledTimes(1); - }); - - it('respects caFile', async () => { - mockFs({ - '/path/to/ca.crt': 'my-ca', - }); - const clusterDetails: ClusterDetails = { - name: 'cluster-name', - url: 'https://localhost:9999', - authProvider: 'serviceAccount', - serviceAccountToken: 'TOKEN', - caFile: '/path/to/ca.crt', - }; - const kubeConfig = new KubernetesClientProvider().getKubeConfig( - clusterDetails, - ); - - const options: https.RequestOptions = {}; - await kubeConfig.applytoHTTPSOptions(options); - - expect(options.ca?.toString()).toEqual('my-ca'); - }); -}); diff --git a/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts b/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts deleted file mode 100644 index 14c8e422fc..0000000000 --- a/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2020 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 { - Cluster, - Context, - CoreV1Api, - CustomObjectsApi, - KubeConfig, - Metrics, - User, -} from '@kubernetes/client-node'; -import { ClusterDetails } from '../types/types'; - -/** - * - * @alpha - */ -export class KubernetesClientProvider { - // visible for testing - getKubeConfig(clusterDetails: ClusterDetails): KubeConfig { - const cluster: Cluster = { - name: clusterDetails.name, - server: clusterDetails.url, - skipTLSVerify: clusterDetails.skipTLSVerify || false, - caData: clusterDetails.caData, - caFile: clusterDetails.caFile, - }; - - // TODO configure - const user: User = { - name: 'backstage', - token: clusterDetails.serviceAccountToken, - }; - - const context: Context = { - name: `${clusterDetails.name}`, - user: user.name, - cluster: cluster.name, - }; - - const kc: KubeConfig = new KubeConfig(); - if (clusterDetails.serviceAccountToken) { - kc.loadFromOptions({ - clusters: [cluster], - users: [user], - contexts: [context], - currentContext: context.name, - }); - } else { - kc.loadFromDefault(); - } - - return kc; - } - - getCoreClientByClusterDetails(clusterDetails: ClusterDetails): CoreV1Api { - const kc = this.getKubeConfig(clusterDetails); - - return kc.makeApiClient(CoreV1Api); - } - - getMetricsClient(clusterDetails: ClusterDetails): Metrics { - const kc = this.getKubeConfig(clusterDetails); - - return new Metrics(kc); - } - - getCustomObjectsClient(clusterDetails: ClusterDetails): CustomObjectsApi { - const kc = this.getKubeConfig(clusterDetails); - - return kc.makeApiClient(CustomObjectsApi); - } -} diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts index 1af5371e53..17a86eb30d 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts @@ -20,8 +20,14 @@ import { CustomResource, FetchResponseWrapper, ObjectFetchParams, + KubernetesServiceLocator, } from '../types/types'; import { KubernetesFanOutHandler } from './KubernetesFanOutHandler'; +import { KubernetesClientBasedFetcher } from './KubernetesFetcher'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; +import { ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common'; const fetchObjectsForService = jest.fn(); const fetchPodMetricsByNamespaces = jest.fn(); @@ -751,6 +757,122 @@ describe('getKubernetesObjectsByEntity', () => { ], }); }); + it('fails when fetcher rejects with a non-FetchError', async () => { + const nonFetchError = new Error('not a fetch error'); + getClustersByEntity.mockResolvedValue({ + clusters: [ + { + name: 'test-cluster', + authProvider: 'serviceAccount', + skipMetricsLookup: true, + }, + ], + }); + fetchObjectsForService.mockRejectedValue(nonFetchError); + + const sut = getKubernetesFanOutHandler([]); + + const result = sut.getKubernetesObjectsByEntity({ + entity, + auth: {}, + }); + await expect(result).rejects.toThrow(nonFetchError); + }); + describe('with a real fetcher', () => { + const worker = setupServer(); + setupRequestMockHandlers(worker); + it('fetch error short-circuits requests to a single cluster, recovering across the fleet', async () => { + const pods = [{ metadata: { name: 'pod-name' } }]; + const services = [{ metadata: { name: 'service-name' } }]; + worker.use( + rest.get('https://works/api/v1/pods', (_, res, ctx) => + res(ctx.json({ items: pods })), + ), + rest.get('https://works/api/v1/services', (_, res, ctx) => + res(ctx.json({ items: services })), + ), + rest.get('https://fails/api/v1/pods', (_, res) => + res.networkError('socket error'), + ), + rest.get('https://fails/api/v1/services', (_, res, ctx) => + res(ctx.json({ items: services })), + ), + ); + const fleet: jest.Mocked = { + getClustersByEntity: jest.fn().mockResolvedValue({ + clusters: [ + { + name: 'works', + url: 'https://works', + authProvider: 'serviceAccount', + serviceAccountToken: 'token', + skipMetricsLookup: true, + }, + { + name: 'fails', + url: 'https://fails', + authProvider: 'serviceAccount', + serviceAccountToken: 'token', + skipMetricsLookup: true, + }, + ], + }), + }; + const logger = getVoidLogger(); + const sut = new KubernetesFanOutHandler({ + logger, + fetcher: new KubernetesClientBasedFetcher({ logger }), + serviceLocator: fleet, + customResources: [], + objectTypesToFetch: [ + { + group: '', + apiVersion: 'v1', + plural: 'pods', + objectType: 'pods', + }, + { + group: '', + apiVersion: 'v1', + plural: 'services', + objectType: 'services', + }, + ], + }); + + const result = await sut.getKubernetesObjectsByEntity({ + entity, + auth: {}, + }); + + const expected: ObjectsByEntityResponse = { + items: [ + { + cluster: { name: 'works' }, + resources: [ + { type: 'pods', resources: pods }, + { type: 'services', resources: services }, + ], + podMetrics: [], + errors: [], + }, + { + cluster: { name: 'fails' }, + resources: [], + podMetrics: [], + errors: [ + { + errorType: 'FETCH_ERROR', + message: + 'request to https://fails/api/v1/pods?labelSelector=backstage.io/kubernetes-id=test-component failed, reason: socket error', + }, + ], + }, + ], + }; + expect(result).toStrictEqual(expected); + }); + }); }); describe('getCustomResourcesByEntity', () => { diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index 1fa9d23837..a738c69bcc 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -274,6 +274,20 @@ export class KubernetesFanOutHandler { namespace, }) .then(result => this.getMetricsForPods(clusterDetailsItem, result)) + .catch( + (e): Promise => + e.name === 'FetchError' + ? Promise.resolve([ + { + errors: [ + { errorType: 'FETCH_ERROR', message: e.message }, + ], + responses: [], + }, + [], + ]) + : Promise.reject(e), + ) .then(r => this.toClusterObjects(clusterDetailsItem, r)); }), ).then(this.toObjectsByEntityResponse); diff --git a/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts b/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts index c2560e58b0..065416f8c1 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts @@ -17,12 +17,16 @@ import { getVoidLogger } from '@backstage/backend-common'; import { KubernetesClientBasedFetcher } from './KubernetesFetcher'; import { ObjectToFetch } from '../types/types'; -import { topPods } from '@kubernetes/client-node'; - -jest.mock('@kubernetes/client-node', () => ({ - ...jest.requireActual('@kubernetes/client-node'), - topPods: jest.fn(), -})); +import { + MockedRequest, + RestContext, + ResponseTransformer, + compose, + rest, +} from 'msw'; +import { setupServer } from 'msw/node'; +import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; +import mockFs from 'mock-fs'; const OBJECTS_TO_FETCH = new Set([ { @@ -39,62 +43,95 @@ const OBJECTS_TO_FETCH = new Set([ }, ]); -const POD_METRICS_FIXTURE = { - containers: [], - cpu: { - currentUsage: 100, - limitTotal: 102, - requestTotal: 101, +const POD_METRICS_FIXTURE = [ + { + type: 'podstatus', + resources: [ + { + CPU: { CurrentUsage: 0, LimitTotal: 1, RequestTotal: 0.5 }, + Memory: { + CurrentUsage: 0, + LimitTotal: 1000000000n, + RequestTotal: 512000000n, + }, + }, + ], }, - memory: { - currentUsage: '1000', - limitTotal: '1002', - requestTotal: '1001', - }, - pod: {}, -}; +]; describe('KubernetesFetcher', () => { - describe('fetchObjectsForService', () => { - let clientMock: any; - let kubernetesClientProvider: any; - let sut: KubernetesClientBasedFetcher; + const worker = setupServer(); + setupRequestMockHandlers(worker); - beforeEach(() => { - jest.resetAllMocks(); - clientMock = { - listClusterCustomObject: jest.fn(), - listNamespacedCustomObject: jest.fn(), - addInterceptor: jest.fn(), - }; - - kubernetesClientProvider = { - getCustomObjectsClient: jest.fn(() => clientMock), - }; - - sut = new KubernetesClientBasedFetcher({ - kubernetesClientProvider, - logger: getVoidLogger(), - }); + const labels = (req: MockedRequest): object => { + const selectorParam = req.url.searchParams.get('labelSelector'); + if (selectorParam) { + const [key, value] = selectorParam.split('='); + return { [key]: value }; + } + return {}; + }; + const checkToken = ( + req: MockedRequest, + ctx: RestContext, + token: string, + ): ResponseTransformer => { + switch (req.headers.get('Authorization')) { + case `Bearer ${token}`: + return ctx.status(200); + default: + return compose( + ctx.status(401), + ctx.json({ + kind: 'Status', + apiVersion: 'v1', + code: 401, + }), + ); + } + }; + const withLabels = ( + req: MockedRequest, + ctx: RestContext, + body: T, + ): ResponseTransformer => + ctx.json({ + ...body, + items: body.items.map(item => ({ + ...item, + metadata: { ...item.metadata, labels: labels(req) }, + })), }); + describe('fetchObjectsForService', () => { + let sut: KubernetesClientBasedFetcher; + const logger = getVoidLogger(); + const testErrorResponse = async ( errorResponse: any, expectedResult: any, ) => { - clientMock.listClusterCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'pod-name', - }, - }, - ], - }, - }); - - clientMock.listClusterCustomObject.mockRejectedValue(errorResponse); + worker.use( + rest.get('http://localhost:9999/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + rest.get('http://localhost:9999/api/v1/services', (_, res, ctx) => { + return res( + ctx.status(errorResponse.response.statusCode), + ctx.json({ + kind: 'Status', + apiVersion: 'v1', + status: 'Failure', + code: errorResponse.response.statusCode, + }), + ); + }), + ); const result = await sut.fetchObjectsForService({ serviceId: 'some-service', @@ -118,66 +155,40 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, }, }, ], }, ], }); - - expect(clientMock.listClusterCustomObject.mock.calls.length).toBe(2); - - expect(clientMock.listClusterCustomObject.mock.calls[0]).toEqual([ - '', - 'v1', - 'pods', - '', - false, - '', - '', - 'backstage.io/kubernetes-id=some-service', - ]); - - expect(clientMock.listClusterCustomObject.mock.calls[1]).toEqual([ - '', - 'v1', - 'services', - '', - false, - '', - '', - 'backstage.io/kubernetes-id=some-service', - ]); - - expect( - kubernetesClientProvider.getCustomObjectsClient.mock.calls.length, - ).toBe(2); }; - it('should return pods, services', async () => { - clientMock.listClusterCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'pod-name', - }, - }, - ], - }, + beforeEach(() => { + sut = new KubernetesClientBasedFetcher({ + logger, }); + }); - clientMock.listClusterCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'service-name', - }, - }, - ], - }, - }); + it('should return pods, services', async () => { + worker.use( + rest.get('http://localhost:9999/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + rest.get('http://localhost:9999/api/v1/services', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'service-name' } }], + }), + ), + ), + ); const result = await sut.fetchObjectsForService({ serviceId: 'some-service', @@ -201,6 +212,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, }, }, ], @@ -211,77 +223,43 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'service-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, }, }, ], }, ], }); - - expect(clientMock.listClusterCustomObject.mock.calls.length).toBe(2); - - expect(clientMock.listClusterCustomObject.mock.calls[0]).toEqual([ - '', - 'v1', - 'pods', - '', - false, - '', - '', - 'backstage.io/kubernetes-id=some-service', - ]); - - expect(clientMock.listClusterCustomObject.mock.calls[1]).toEqual([ - '', - 'v1', - 'services', - '', - false, - '', - '', - 'backstage.io/kubernetes-id=some-service', - ]); - - expect( - kubernetesClientProvider.getCustomObjectsClient.mock.calls.length, - ).toBe(2); }); it('should return pods, services and customobjects', async () => { - clientMock.listClusterCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'pod-name', - }, - }, - ], - }, - }); - - clientMock.listClusterCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'service-name', - }, - }, - ], - }, - }); - - clientMock.listClusterCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'something-else', - }, - }, - ], - }, - }); + worker.use( + rest.get('http://localhost:9999/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + rest.get('http://localhost:9999/api/v1/services', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'service-name' } }], + }), + ), + ), + rest.get( + 'http://localhost:9999/apis/some-group/v2/things', + (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'something-else' } }], + }), + ), + ), + ); const result = await sut.fetchObjectsForService({ serviceId: 'some-service', @@ -312,6 +290,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, }, }, ], @@ -322,6 +301,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'service-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, }, }, ], @@ -332,51 +312,13 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'something-else', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, }, }, ], }, ], }); - - expect(clientMock.listClusterCustomObject.mock.calls.length).toBe(3); - - expect(clientMock.listClusterCustomObject.mock.calls[0]).toEqual([ - '', - 'v1', - 'pods', - '', - false, - '', - '', - 'backstage.io/kubernetes-id=some-service', - ]); - - expect(clientMock.listClusterCustomObject.mock.calls[1]).toEqual([ - '', - 'v1', - 'services', - '', - false, - '', - '', - 'backstage.io/kubernetes-id=some-service', - ]); - - expect(clientMock.listClusterCustomObject.mock.calls[2]).toEqual([ - 'some-group', - 'v2', - 'things', - '', - false, - '', - '', - 'backstage.io/kubernetes-id=some-service', - ]); - - expect( - kubernetesClientProvider.getCustomObjectsClient.mock.calls.length, - ).toBe(3); }); // they're in testErrorResponse // eslint-disable-next-line jest/expect-expect @@ -385,109 +327,32 @@ describe('KubernetesFetcher', () => { { response: { statusCode: 400, - request: { - uri: { - pathname: '/some/path', - }, - }, }, }, { errorType: 'BAD_REQUEST', - resourcePath: '/some/path', + resourcePath: '/api/v1/services', statusCode: 400, }, ); }); - // they're in testErrorResponse - // eslint-disable-next-line jest/expect-expect - it('should return pods, unauthorized error', async () => { - await testErrorResponse( - { - response: { - statusCode: 401, - request: { - uri: { - pathname: '/some/path', - }, - }, - }, - }, - { - errorType: 'UNAUTHORIZED_ERROR', - resourcePath: '/some/path', - statusCode: 401, - }, + it('should return pods and unauthorized error, logging a warning', async () => { + const warn = jest.spyOn(logger, 'warn'); + worker.use( + rest.get('http://localhost:9999/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + rest.get('http://localhost:9999/api/v1/services', (req, res, ctx) => + res(checkToken(req, ctx, 'other-token')), + ), ); - }); - // they're in testErrorResponse - // eslint-disable-next-line jest/expect-expect - it('should return pods, system error', async () => { - await testErrorResponse( - { - response: { - statusCode: 500, - request: { - uri: { - pathname: '/some/path', - }, - }, - }, - }, - { - errorType: 'SYSTEM_ERROR', - resourcePath: '/some/path', - statusCode: 500, - }, - ); - }); - // they're in testErrorResponse - // eslint-disable-next-line jest/expect-expect - it('should return pods, unknown error', async () => { - await testErrorResponse( - { - response: { - statusCode: 900, - request: { - uri: { - pathname: '/some/path', - }, - }, - }, - }, - { - errorType: 'UNKNOWN_ERROR', - resourcePath: '/some/path', - statusCode: 900, - }, - ); - }); - it('should always add a labelSelector query', async () => { - clientMock.listClusterCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'pod-name', - }, - }, - ], - }, - }); - clientMock.listClusterCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'service-name', - }, - }, - ], - }, - }); - - await sut.fetchObjectsForService({ + const result = await sut.fetchObjectsForService({ serviceId: 'some-service', clusterDetails: { name: 'cluster1', @@ -500,37 +365,354 @@ describe('KubernetesFetcher', () => { customResources: [], }); - const mockCall = clientMock.listClusterCustomObject.mock.calls[0]; - const actualSelector = mockCall[mockCall.length - 1]; - const expectedSelector = 'backstage.io/kubernetes-id=some-service'; - expect(actualSelector).toBe(expectedSelector); + expect(result).toStrictEqual({ + errors: [ + { + errorType: 'UNAUTHORIZED_ERROR', + resourcePath: '/api/v1/services', + statusCode: 401, + }, + ], + responses: [ + { + type: 'pods', + resources: [ + { + metadata: { + name: 'pod-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, + }, + }, + ], + }, + ], + }); + expect(warn).toHaveBeenCalledWith( + 'Received 401 status when fetching "/api/v1/services" from cluster "cluster1"; body=[{"kind":"Status","apiVersion":"v1","code":401}]', + ); + }); + // they're in testErrorResponse + // eslint-disable-next-line jest/expect-expect + it('should return pods, system error', async () => { + await testErrorResponse( + { + response: { + statusCode: 500, + }, + }, + { + errorType: 'SYSTEM_ERROR', + resourcePath: '/api/v1/services', + statusCode: 500, + }, + ); + }); + // they're in testErrorResponse + // eslint-disable-next-line jest/expect-expect + it('should return pods, unknown error', async () => { + await testErrorResponse( + { + response: { + statusCode: 900, + }, + }, + { + errorType: 'UNKNOWN_ERROR', + resourcePath: '/api/v1/services', + statusCode: 900, + }, + ); + }); + it('fails on a network error', async () => { + worker.use( + rest.get('http://badurl.does.not.exist/api/v1/pods', (_, res) => + res.networkError('getaddrinfo ENOTFOUND badurl.does.not.exist'), + ), + rest.get( + 'http://badurl.does.not.exist/api/v1/services', + (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'service-name' } }], + }), + ), + ), + ); + + const result = sut.fetchObjectsForService({ + serviceId: 'some-service', + clusterDetails: { + name: 'cluster1', + url: 'http://badurl.does.not.exist', + serviceAccountToken: 'token', + authProvider: 'serviceAccount', + }, + objectTypesToFetch: OBJECTS_TO_FETCH, + labelSelector: '', + customResources: [], + }); + + await expect(result).rejects.toThrow( + 'getaddrinfo ENOTFOUND badurl.does.not.exist', + ); + }); + it('should respect labelSelector', async () => { + worker.use( + rest.get('http://localhost:9999/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + rest.get('http://localhost:9999/api/v1/services', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'service-name' } }], + }), + ), + ), + ); + + const result = await sut.fetchObjectsForService({ + serviceId: 'some-service', + clusterDetails: { + name: 'cluster1', + url: 'http://localhost:9999', + serviceAccountToken: 'token', + authProvider: 'serviceAccount', + }, + objectTypesToFetch: OBJECTS_TO_FETCH, + labelSelector: 'service-label=value', + customResources: [], + }); + + expect(result).toStrictEqual({ + errors: [], + responses: [ + { + type: 'pods', + resources: [ + { + metadata: { + name: 'pod-name', + labels: { 'service-label': 'value' }, + }, + }, + ], + }, + { + type: 'services', + resources: [ + { + metadata: { + name: 'service-name', + labels: { 'service-label': 'value' }, + }, + }, + ], + }, + ], + }); + }); + describe('when server uses TLS', () => { + let httpsRequest: jest.SpyInstance; + beforeAll(() => { + httpsRequest = jest.spyOn( + // this is pretty egregious reverse engineering of msw. + // If the SetupServerApi constructor was exported, we wouldn't need + // to be quite so hacky here + (worker as any).interceptor.interceptors[0].modules.get('https'), + 'request', + ); + }); + beforeEach(() => { + httpsRequest.mockClear(); + }); + it('should trust specified caData', async () => { + worker.use( + rest.get('https://localhost:9999/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + ); + + await sut.fetchObjectsForService({ + serviceId: 'some-service', + clusterDetails: { + name: 'cluster1', + url: 'https://localhost:9999', + serviceAccountToken: 'token', + authProvider: 'serviceAccount', + caData: 'MOCKCA', + }, + objectTypesToFetch: new Set([ + { + group: '', + apiVersion: 'v1', + plural: 'pods', + objectType: 'pods', + }, + ]), + labelSelector: '', + customResources: [], + }); + + expect(httpsRequest).toHaveBeenCalledTimes(1); + const [[{ agent }]] = httpsRequest.mock.calls; + expect(agent.options.ca.toString('base64')).toMatch('MOCKCA'); + }); + it('should use default chain of trust when caData is unspecified', async () => { + worker.use( + rest.get('https://localhost:9999/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + ); + + await sut.fetchObjectsForService({ + serviceId: 'some-service', + clusterDetails: { + name: 'cluster1', + url: 'https://localhost:9999', + serviceAccountToken: 'token', + authProvider: 'serviceAccount', + }, + objectTypesToFetch: new Set([ + { + group: '', + apiVersion: 'v1', + plural: 'pods', + objectType: 'pods', + }, + ]), + labelSelector: '', + customResources: [], + }); + + expect(httpsRequest).toHaveBeenCalledTimes(1); + const [[{ agent }]] = httpsRequest.mock.calls; + expect(agent.options.ca).toBeUndefined(); + }); + describe('with a CA file on disk', () => { + afterEach(() => { + mockFs.restore(); + }); + it('should trust contents of specified caFile', async () => { + mockFs({ + '/path/to/ca.crt': 'MOCKCA', + }); + worker.use( + rest.get('https://localhost:9999/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + ); + + await sut.fetchObjectsForService({ + serviceId: 'some-service', + clusterDetails: { + name: 'cluster1', + url: 'https://localhost:9999', + serviceAccountToken: 'token', + authProvider: 'serviceAccount', + caFile: '/path/to/ca.crt', + }, + objectTypesToFetch: new Set([ + { + group: '', + apiVersion: 'v1', + plural: 'pods', + objectType: 'pods', + }, + ]), + labelSelector: '', + customResources: [], + }); + + expect(httpsRequest).toHaveBeenCalledTimes(1); + const [[{ agent }]] = httpsRequest.mock.calls; + expect(agent.options.ca.toString()).toEqual('MOCKCA'); + }); + }); + it('should accept unauthorized certs when skipTLSVerify is set', async () => { + worker.use( + rest.get('https://localhost:9999/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + ); + + await sut.fetchObjectsForService({ + serviceId: 'some-service', + clusterDetails: { + name: 'cluster1', + url: 'https://localhost:9999', + serviceAccountToken: 'token', + authProvider: 'serviceAccount', + skipTLSVerify: true, + }, + objectTypesToFetch: new Set([ + { + group: '', + apiVersion: 'v1', + plural: 'pods', + objectType: 'pods', + }, + ]), + labelSelector: '', + customResources: [], + }); + + expect(httpsRequest).toHaveBeenCalledTimes(1); + const [[{ agent }]] = httpsRequest.mock.calls; + expect(agent.options.rejectUnauthorized).toBe(false); + }); }); it('should use namespace if provided', async () => { - clientMock.listNamespacedCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'pod-name', - }, - }, - ], - }, - }); + worker.use( + rest.get( + 'http://localhost:9999/api/v1/namespaces/some-namespace/pods', + (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + rest.get( + 'http://localhost:9999/api/v1/namespaces/some-namespace/services', + (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'service-name' } }], + }), + ), + ), + ); - clientMock.listNamespacedCustomObject.mockResolvedValueOnce({ - body: { - items: [ - { - metadata: { - name: 'service-name', - }, - }, - ], - }, - }); - - await sut.fetchObjectsForService({ + const result = await sut.fetchObjectsForService({ serviceId: 'some-service', clusterDetails: { name: 'cluster1', @@ -544,32 +726,175 @@ describe('KubernetesFetcher', () => { customResources: [], }); - const mockCall = clientMock.listNamespacedCustomObject.mock.calls[0]; - const namespace = mockCall[2]; - expect(namespace).toBe('some-namespace'); + expect(result).toStrictEqual({ + errors: [], + responses: [ + { + type: 'pods', + resources: [ + { + metadata: { + name: 'pod-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, + }, + }, + ], + }, + { + type: 'services', + resources: [ + { + metadata: { + name: 'service-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, + }, + }, + ], + }, + ], + }); + }); + describe('Backstage not running on k8s', () => { + it('fails if cluster details has no token', () => { + const result = sut.fetchObjectsForService({ + serviceId: 'some-service', + clusterDetails: { + name: 'unauthenticated-cluster', + url: 'http://ignored', + authProvider: 'serviceAccount', + }, + objectTypesToFetch: OBJECTS_TO_FETCH, + labelSelector: '', + customResources: [], + }); + return expect(result).rejects.toThrow( + "no bearer token for cluster 'unauthenticated-cluster' and not running in Kubernetes", + ); + }); + }); + describe('Backstage running on k8s', () => { + const initialHost = process.env.KUBERNETES_SERVICE_HOST; + const initialPort = process.env.KUBERNETES_SERVICE_PORT; + afterEach(() => { + process.env.KUBERNETES_SERVICE_HOST = initialHost; + process.env.KUBERNETES_SERVICE_PORT = initialPort; + mockFs.restore(); + }); + it('makes in-cluster requests when cluster details has no token', async () => { + process.env.KUBERNETES_SERVICE_HOST = '10.10.10.10'; + process.env.KUBERNETES_SERVICE_PORT = '443'; + mockFs({ + '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt': '', + '/var/run/secrets/kubernetes.io/serviceaccount/token': + 'allowed-token', + }); + worker.use( + rest.get('https://10.10.10.10/api/v1/pods', (req, res, ctx) => + res( + checkToken(req, ctx, 'allowed-token'), + withLabels(req, ctx, { + items: [{ metadata: { name: 'pod-name' } }], + }), + ), + ), + ); + + const result = await sut.fetchObjectsForService({ + serviceId: 'some-service', + clusterDetails: { + name: 'overridden-to-in-cluster', + url: 'http://ignored', + authProvider: 'serviceAccount', + }, + objectTypesToFetch: new Set([ + { + group: '', + apiVersion: 'v1', + plural: 'pods', + objectType: 'pods', + }, + ]), + labelSelector: '', + customResources: [], + }); + + expect(result).toStrictEqual({ + errors: [], + responses: [ + { + type: 'pods', + resources: [ + { + metadata: { + name: 'pod-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, + }, + }, + ], + }, + ], + }); + }); }); }); describe('fetchPodMetricsByNamespaces', () => { - let kubernetesClientProvider: any; let sut: KubernetesClientBasedFetcher; beforeEach(() => { - jest.resetAllMocks(); - - kubernetesClientProvider = { - getMetricsClient: jest.fn(), - getCoreClientByClusterDetails: jest.fn(), - }; - sut = new KubernetesClientBasedFetcher({ - kubernetesClientProvider, logger: getVoidLogger(), }); }); it('should return pod metrics', async () => { - (topPods as jest.Mock).mockResolvedValue(POD_METRICS_FIXTURE); + worker.use( + rest.get( + 'http://localhost:9999/api/v1/namespaces/:namespace/pods', + (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [ + { + metadata: { name: 'pod-name' }, + spec: { + containers: [ + { + name: 'container-name', + resources: { + requests: { cpu: '500m', memory: '512M' }, + limits: { cpu: '1000m', memory: '1G' }, + }, + }, + ], + }, + }, + ], + }), + ), + ), + rest.get( + 'http://localhost:9999/apis/metrics.k8s.io/v1beta1/namespaces/:namespace/pods', + (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [ + { + metadata: { name: 'pod-name' }, + containers: [ + { + name: 'container-name', + usage: { cpu: '0', memory: '0' }, + }, + ], + }, + ], + }), + ), + ), + ); const result = await sut.fetchPodMetricsByNamespaces( { @@ -578,36 +903,85 @@ describe('KubernetesFetcher', () => { serviceAccountToken: 'token', authProvider: 'serviceAccount', }, - new Set(['ns-a', 'ns-b']), + new Set(['ns-a']), ); - expect(result).toStrictEqual({ + expect(result).toMatchObject({ errors: [], - responses: [ - { - type: 'podstatus', - resources: POD_METRICS_FIXTURE, - }, - { - type: 'podstatus', - resources: POD_METRICS_FIXTURE, - }, - ], + responses: POD_METRICS_FIXTURE, }); }); it('should return pod metrics and error', async () => { - const topPodsMock = topPods as jest.Mock; - topPodsMock - .mockResolvedValueOnce(POD_METRICS_FIXTURE) - .mockRejectedValueOnce({ - response: { - statusCode: 404, - request: { - uri: { - pathname: '/some/path', - }, - }, - }, - }); + worker.use( + rest.get( + 'http://localhost:9999/api/v1/namespaces/ns-a/pods', + (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [ + { + metadata: { name: 'pod-name' }, + spec: { + containers: [ + { + name: 'container-name', + resources: { + requests: { cpu: '500m', memory: '512M' }, + limits: { cpu: '1000m', memory: '1G' }, + }, + }, + ], + }, + }, + ], + }), + ), + ), + rest.get( + 'http://localhost:9999/apis/metrics.k8s.io/v1beta1/namespaces/ns-a/pods', + (req, res, ctx) => + res( + checkToken(req, ctx, 'token'), + withLabels(req, ctx, { + items: [ + { + metadata: { name: 'pod-name' }, + containers: [ + { + name: 'container-name', + usage: { cpu: '0', memory: '0' }, + }, + ], + }, + ], + }), + ), + ), + rest.get( + 'http://localhost:9999/api/v1/namespaces/ns-b/pods', + (_, res, ctx) => + res( + ctx.status(404), + ctx.json({ + kind: 'Status', + apiVersion: 'v1', + code: 404, + }), + ), + ), + rest.get( + 'http://localhost:9999/apis/metrics.k8s.io/v1beta1/namespaces/ns-b/pods', + (_, res, ctx) => + res( + ctx.status(404), + ctx.json({ + kind: 'Status', + apiVersion: 'v1', + code: 404, + }), + ), + ), + ); const result = await sut.fetchPodMetricsByNamespaces( { @@ -618,21 +992,15 @@ describe('KubernetesFetcher', () => { }, new Set(['ns-a', 'ns-b']), ); - expect(result).toStrictEqual({ - errors: [ - { - errorType: 'NOT_FOUND', - resourcePath: '/some/path', - statusCode: 404, - }, - ], - responses: [ - { - type: 'podstatus', - resources: POD_METRICS_FIXTURE, - }, - ], - }); + + expect(result.errors).toStrictEqual([ + { + errorType: 'NOT_FOUND', + resourcePath: '/apis/metrics.k8s.io/v1beta1/namespaces/ns-b/pods', + statusCode: 404, + }, + ]); + expect(result.responses).toMatchObject(POD_METRICS_FIXTURE); }); }); }); diff --git a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts index fd6400529b..6ef4397e9c 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts @@ -14,16 +14,23 @@ * limitations under the License. */ -import { topPods } from '@kubernetes/client-node'; +import { + Config, + Cluster, + CoreV1Api, + KubeConfig, + Metrics, + User, + bufferFromFileOrString, + topPods, +} from '@kubernetes/client-node'; import lodash, { Dictionary } from 'lodash'; import { Logger } from 'winston'; import { ClusterDetails, FetchResponseWrapper, KubernetesFetcher, - KubernetesObjectTypes, ObjectFetchParams, - ObjectToFetch, } from '../types/types'; import { FetchResponse, @@ -31,10 +38,11 @@ import { KubernetesErrorTypes, PodStatusFetchResponse, } from '@backstage/plugin-kubernetes-common'; -import { KubernetesClientProvider } from './KubernetesClientProvider'; +import fetch, { RequestInit, Response } from 'node-fetch'; +import * as https from 'https'; +import fs from 'fs-extra'; export interface KubernetesClientBasedFetcherOptions { - kubernetesClientProvider: KubernetesClientProvider; logger: Logger; } @@ -72,14 +80,9 @@ const statusCodeToErrorType = (statusCode: number): KubernetesErrorTypes => { }; export class KubernetesClientBasedFetcher implements KubernetesFetcher { - private readonly kubernetesClientProvider: KubernetesClientProvider; private readonly logger: Logger; - constructor({ - kubernetesClientProvider, - logger, - }: KubernetesClientBasedFetcherOptions) { - this.kubernetesClientProvider = kubernetesClientProvider; + constructor({ logger }: KubernetesClientBasedFetcherOptions) { this.logger = logger; } @@ -88,16 +91,27 @@ export class KubernetesClientBasedFetcher implements KubernetesFetcher { ): Promise { const fetchResults = Array.from(params.objectTypesToFetch) .concat(params.customResources) - .map(toFetch => { - return this.fetchResource( + .map(({ objectType, group, apiVersion, plural }) => + this.fetchResource( params.clusterDetails, - toFetch, + group, + apiVersion, + plural, + params.namespace, params.labelSelector || `backstage.io/kubernetes-id=${params.serviceId}`, - toFetch.objectType, - params.namespace, - ).catch(this.captureKubernetesErrorsRethrowOthers.bind(this)); - }); + ).then( + (r: Response): Promise => + r.ok + ? r.json().then( + ({ items }): FetchResponse => ({ + type: objectType, + resources: items, + }), + ) + : this.handleUnsuccessfulResponse(params.clusterDetails.name, r), + ), + ); return Promise.all(fetchResults).then(fetchResultsToResponseWrapper); } @@ -106,93 +120,146 @@ export class KubernetesClientBasedFetcher implements KubernetesFetcher { clusterDetails: ClusterDetails, namespaces: Set, ): Promise { - const metricsClient = - this.kubernetesClientProvider.getMetricsClient(clusterDetails); - const coreApi = - this.kubernetesClientProvider.getCoreClientByClusterDetails( - clusterDetails, - ); - - const fetchResults = Array.from(namespaces).map(ns => - topPods(coreApi, metricsClient, ns) - .then(r => { - return { + const fetchResults = Array.from(namespaces).map(async ns => { + const [podMetrics, podList] = await Promise.all([ + this.fetchResource( + clusterDetails, + 'metrics.k8s.io', + 'v1beta1', + 'pods', + ns, + ), + this.fetchResource(clusterDetails, '', 'v1', 'pods', ns), + ]); + if (podMetrics.ok && podList.ok) { + return topPods( + { + listPodForAllNamespaces: () => + podList.json().then(b => ({ body: b })), + } as unknown as CoreV1Api, + { + getPodMetrics: () => podMetrics.json(), + } as unknown as Metrics, + ).then( + (resources): PodStatusFetchResponse => ({ type: 'podstatus', - resources: r, - } as PodStatusFetchResponse; - }) - .catch(this.captureKubernetesErrorsRethrowOthers.bind(this)), - ); + resources, + }), + ); + } else if (podMetrics.ok) { + return this.handleUnsuccessfulResponse(clusterDetails.name, podList); + } + return this.handleUnsuccessfulResponse(clusterDetails.name, podMetrics); + }); return Promise.all(fetchResults).then(fetchResultsToResponseWrapper); } - private captureKubernetesErrorsRethrowOthers(e: any): KubernetesFetchError { - if (e.response && e.response.statusCode) { - this.logger.warn( - `statusCode=${e.response.statusCode} for resource ${ - e.response.request.uri.pathname - } body=[${JSON.stringify(e.response.body)}]`, - ); - return { - errorType: statusCodeToErrorType(e.response.statusCode), - statusCode: e.response.statusCode, - resourcePath: e.response.request.uri.pathname, - }; - } - throw e; + private async handleUnsuccessfulResponse( + clusterName: string, + res: Response, + ): Promise { + const resourcePath = new URL(res.url).pathname; + this.logger.warn( + `Received ${ + res.status + } status when fetching "${resourcePath}" from cluster "${clusterName}"; body=[${await res.text()}]`, + ); + return { + errorType: statusCodeToErrorType(res.status), + statusCode: res.status, + resourcePath, + }; } private fetchResource( clusterDetails: ClusterDetails, - resource: ObjectToFetch, - labelSelector: string, - objectType: KubernetesObjectTypes, + group: string, + apiVersion: string, + plural: string, namespace?: string, - ): Promise { - const customObjects = - this.kubernetesClientProvider.getCustomObjectsClient(clusterDetails); - - customObjects.addInterceptor((requestOptions: any) => { - requestOptions.uri = requestOptions.uri.replace('/apis//v1/', '/api/v1/'); - }); - + labelSelector?: string, + ): Promise { + const encode = (s: string) => encodeURIComponent(s); + let resourcePath = group + ? `/apis/${encode(group)}/${encode(apiVersion)}` + : `/api/${encode(apiVersion)}`; if (namespace) { - return customObjects - .listNamespacedCustomObject( - resource.group, - resource.apiVersion, - namespace, - resource.plural, - '', - false, - '', - '', - labelSelector, - ) - .then(r => { - return { - type: objectType, - resources: (r.body as any).items, - }; - }); + resourcePath += `/namespaces/${encode(namespace)}`; } - return customObjects - .listClusterCustomObject( - resource.group, - resource.apiVersion, - resource.plural, - '', - false, - '', - '', - labelSelector, - ) - .then(r => { - return { - type: objectType, - resources: (r.body as any).items, - }; + resourcePath += `/${encode(plural)}`; + + let url: URL; + let requestInit: RequestInit; + if (clusterDetails.serviceAccountToken) { + [url, requestInit] = this.fetchArgsFromClusterDetails(clusterDetails); + } else if (fs.pathExistsSync(Config.SERVICEACCOUNT_TOKEN_PATH)) { + [url, requestInit] = this.fetchArgsInCluster(); + } else { + return Promise.reject( + new Error( + `no bearer token for cluster '${clusterDetails.name}' and not running in Kubernetes`, + ), + ); + } + + url.pathname = resourcePath; + if (labelSelector) { + url.search = `labelSelector=${labelSelector}`; + } + + return fetch(url, requestInit); + } + + private fetchArgsFromClusterDetails( + clusterDetails: ClusterDetails, + ): [URL, RequestInit] { + const requestInit: RequestInit = { + method: 'GET', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + Authorization: `Bearer ${clusterDetails.serviceAccountToken}`, + }, + }; + + const url: URL = new URL(clusterDetails.url); + if (url.protocol === 'https:') { + requestInit.agent = new https.Agent({ + ca: + bufferFromFileOrString( + clusterDetails.caFile, + clusterDetails.caData, + ) ?? undefined, + rejectUnauthorized: !clusterDetails.skipTLSVerify, }); + } + return [url, requestInit]; + } + private fetchArgsInCluster(): [URL, RequestInit] { + const kc = new KubeConfig(); + kc.loadFromCluster(); + // loadFromCluster is guaranteed to populate the cluster/user/context + const cluster = kc.getCurrentCluster() as Cluster; + const user = kc.getCurrentUser() as User; + + const token = fs.readFileSync(user.authProvider.config.tokenFile); + + const requestInit: RequestInit = { + method: 'GET', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}`, + }, + }; + + const url = new URL(cluster.server); + if (url.protocol === 'https:') { + requestInit.agent = new https.Agent({ + ca: fs.readFileSync(cluster.caFile as string), + }); + } + return [url, requestInit]; } } diff --git a/plugins/kubernetes-backend/src/service/index.ts b/plugins/kubernetes-backend/src/service/index.ts index 70ff530bee..620f788ac2 100644 --- a/plugins/kubernetes-backend/src/service/index.ts +++ b/plugins/kubernetes-backend/src/service/index.ts @@ -15,7 +15,6 @@ */ export * from './KubernetesBuilder'; -export * from './KubernetesClientProvider'; export { DEFAULT_OBJECTS } from './KubernetesFanOutHandler'; export { HEADER_KUBERNETES_CLUSTER, KubernetesProxy } from './KubernetesProxy'; export * from './router'; diff --git a/plugins/kubernetes-common/CHANGELOG.md b/plugins/kubernetes-common/CHANGELOG.md index 38fa766fd3..51f7f1fcd8 100644 --- a/plugins/kubernetes-common/CHANGELOG.md +++ b/plugins/kubernetes-common/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-kubernetes-common +## 0.5.0 + +### Minor Changes + +- 2db8acffe7: Kubernetes plugin now gracefully surfaces transport-level errors (like DNS or timeout, or other socket errors) occurring while fetching data. This will be merged into any data that is fetched successfully, fixing a bug where the whole page would be empty if any fetch operation encountered such an error. + +### Patch Changes + +- 9ce7866ecd: Updated dependency `@kubernetes/client-node` to `0.18.0`. +- b585179770: Added Kubernetes proxy API route to backend Kubernetes plugin, allowing Backstage plugin developers to read/write new information from Kubernetes (if proper credentials are provided). +- Updated dependencies + - @backstage/catalog-model@1.1.4 + ## 0.4.5-next.1 ### Patch Changes diff --git a/plugins/kubernetes-common/api-report.md b/plugins/kubernetes-common/api-report.md index 8509fa97cc..fe8aa19966 100644 --- a/plugins/kubernetes-common/api-report.md +++ b/plugins/kubernetes-common/api-report.md @@ -184,14 +184,7 @@ export type KubernetesErrorTypes = | 'UNKNOWN_ERROR'; // @public (undocumented) -export interface KubernetesFetchError { - // (undocumented) - errorType: KubernetesErrorTypes; - // (undocumented) - resourcePath?: string; - // (undocumented) - statusCode?: number; -} +export type KubernetesFetchError = StatusError | RawFetchError; // @public (undocumented) export interface KubernetesRequestAuth { @@ -241,6 +234,14 @@ export interface PodStatusFetchResponse { type: 'podstatus'; } +// @public (undocumented) +export interface RawFetchError { + // (undocumented) + errorType: 'FETCH_ERROR'; + // (undocumented) + message: string; +} + // @public (undocumented) export interface ReplicaSetsFetchResponse { // (undocumented) @@ -265,6 +266,16 @@ export interface StatefulSetsFetchResponse { type: 'statefulsets'; } +// @public (undocumented) +export interface StatusError { + // (undocumented) + errorType: KubernetesErrorTypes; + // (undocumented) + resourcePath?: string; + // (undocumented) + statusCode?: number; +} + // @public (undocumented) export interface WorkloadsByEntityRequest { // (undocumented) diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index 46a58c0cbc..b06ddb3783 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-common", "description": "Common functionalities for kubernetes, to be shared between kubernetes and kubernetes-backend plugin", - "version": "0.4.5-next.1", + "version": "0.5.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -39,7 +39,7 @@ }, "dependencies": { "@backstage/catalog-model": "workspace:^", - "@kubernetes/client-node": "0.17.0" + "@kubernetes/client-node": "0.18.0" }, "devDependencies": { "@backstage/cli": "workspace:^" diff --git a/plugins/kubernetes-common/src/types.ts b/plugins/kubernetes-common/src/types.ts index 3feddd7f4c..f723a46d16 100644 --- a/plugins/kubernetes-common/src/types.ts +++ b/plugins/kubernetes-common/src/types.ts @@ -223,12 +223,21 @@ export interface PodStatusFetchResponse { } /** @public */ -export interface KubernetesFetchError { +export type KubernetesFetchError = StatusError | RawFetchError; + +/** @public */ +export interface StatusError { errorType: KubernetesErrorTypes; statusCode?: number; resourcePath?: string; } +/** @public */ +export interface RawFetchError { + errorType: 'FETCH_ERROR'; + message: string; +} + /** @public */ export type KubernetesErrorTypes = | 'BAD_REQUEST' diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index fcf853831f..4295426b6f 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-kubernetes +## 0.7.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.7.5 + +### Patch Changes + +- 2db8acffe7: Kubernetes plugin now gracefully surfaces transport-level errors (like DNS or timeout, or other socket errors) occurring while fetching data. This will be merged into any data that is fetched successfully, fixing a bug where the whole page would be empty if any fetch operation encountered such an error. +- 365f887717: Removed rendering for ErrorEmptyState in ErrorReporting component, so nothing is rendered when there are no errors. Also removed Divider on Kubernetes page. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 9ce7866ecd: Updated dependency `@kubernetes/client-node` to `0.18.0`. +- Updated dependencies + - @backstage/plugin-kubernetes-common@0.5.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 0.7.5-next.4 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 8e9dfee09d..a922adff16 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes", "description": "A Backstage plugin that integrates towards Kubernetes", - "version": "0.7.5-next.4", + "version": "0.7.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -40,7 +40,7 @@ "@backstage/plugin-catalog-react": "workspace:^", "@backstage/plugin-kubernetes-common": "workspace:^", "@backstage/theme": "workspace:^", - "@kubernetes/client-node": "0.17.0", + "@kubernetes/client-node": "0.18.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", diff --git a/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.test.tsx b/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.test.tsx index 832d6eed91..0d75c09a11 100644 --- a/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.test.tsx +++ b/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.test.tsx @@ -20,36 +20,14 @@ import { wrapInTestApp } from '@backstage/test-utils'; import { ErrorPanel } from './ErrorPanel'; describe('ErrorPanel', () => { - it('render with error message', async () => { - const { getByText } = render( - wrapInTestApp( - , - ), - ); - - // title - expect( - getByText( - 'There was a problem retrieving some Kubernetes resources for the entity: THIS_ENTITY. This could mean that the Error Reporting card is not completely accurate.', - ), - ).toBeInTheDocument(); - - // message - expect(getByText('Errors: SOME_ERROR_MESSAGE')).toBeInTheDocument(); - }); - it('render with cluster errors', async () => { + it('displays path and status code when a cluster has an HTTP error', async () => { const { getByText } = render( wrapInTestApp( { ), ).toBeInTheDocument(); }); + it('displays message for non-HTTP-status-related fetch errors', async () => { + const { getByText } = render( + wrapInTestApp( + , + ), + ); + + // title + expect( + getByText( + 'There was a problem retrieving some Kubernetes resources for the entity: THIS_ENTITY. This could mean that the Error Reporting card is not completely accurate.', + ), + ).toBeInTheDocument(); + + // message + expect(getByText('Errors:')).toBeInTheDocument(); + expect(getByText('Cluster: THIS_CLUSTER')).toBeInTheDocument(); + expect( + getByText( + 'Error communicating with Kubernetes: FETCH_ERROR, message: description of error', + ), + ).toBeInTheDocument(); + }); + it('displays error message', async () => { + const { getByText } = render( + wrapInTestApp( + , + ), + ); + + // title + expect( + getByText( + 'There was a problem retrieving some Kubernetes resources for the entity: THIS_ENTITY. This could mean that the Error Reporting card is not completely accurate.', + ), + ).toBeInTheDocument(); + + // message + expect(getByText('Errors: SOME_ERROR_MESSAGE')).toBeInTheDocument(); + }); }); diff --git a/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.tsx b/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.tsx index fcdeeef393..d2cb88b9ca 100644 --- a/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.tsx +++ b/plugins/kubernetes/src/components/ErrorPanel/ErrorPanel.tsx @@ -29,7 +29,9 @@ const clustersWithErrorsToErrorMessage = ( {c.errors.map((e, j) => { return ( - {`Error fetching Kubernetes resource: '${e.resourcePath}', error: ${e.errorType}, status code: ${e.statusCode}`} + {e.errorType === 'FETCH_ERROR' + ? `Error communicating with Kubernetes: ${e.errorType}, message: ${e.message}` + : `Error fetching Kubernetes resource: '${e.resourcePath}', error: ${e.errorType}, status code: ${e.statusCode}`} ); })} diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index b87fb2b475..73efb99869 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-lighthouse +## 0.3.13 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.3.12 + +### Patch Changes + +- e3dfef3f63: Fixed "Emulated Form Factor" field in the audit creation form not working with the latest version (1.0.2) of `lighthouse-audit-service`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + ## 0.3.12-next.4 ### Patch Changes diff --git a/plugins/lighthouse/api-report.md b/plugins/lighthouse/api-report.md index 17c771e187..e9089c7e92 100644 --- a/plugins/lighthouse/api-report.md +++ b/plugins/lighthouse/api-report.md @@ -71,6 +71,9 @@ export class FetchError extends Error { get name(): string; } +// @public (undocumented) +export type FormFactor = 'mobile' | 'desktop'; + // @public (undocumented) const isLighthouseAvailable: (entity: Entity) => boolean; export { isLighthouseAvailable }; @@ -132,6 +135,21 @@ export type LighthouseCategoryId = | 'accessibility' | 'best-practices'; +// @public (undocumented) +export type LighthouseConfigSettings = { + formFactor: FormFactor; + screenEmulation: + | { + mobile: boolean; + width: number; + height: number; + deviceScaleFactor: number; + disabled: boolean; + } + | undefined; + emulatedFormFactor: FormFactor; +}; + // @public (undocumented) export const LighthousePage: () => JSX.Element; @@ -172,9 +190,7 @@ export interface TriggerAuditPayload { // (undocumented) options: { lighthouseConfig: { - settings: { - emulatedFormFactor: string; - }; + settings: LighthouseConfigSettings; }; }; // (undocumented) diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index e1ed2b7cf6..3cb414f4bc 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-lighthouse", "description": "A Backstage plugin that integrates towards Lighthouse", - "version": "0.3.12-next.4", + "version": "0.3.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse/src/api.ts b/plugins/lighthouse/src/api.ts index e4ccefe2a1..a7197c4b96 100644 --- a/plugins/lighthouse/src/api.ts +++ b/plugins/lighthouse/src/api.ts @@ -85,14 +85,32 @@ export interface Website { /** @public */ export type WebsiteListResponse = LASListResponse; +/** @public */ +export type FormFactor = 'mobile' | 'desktop'; + +/** @public */ +export type LighthouseConfigSettings = { + // For lighthouse 7+ + formFactor: FormFactor; + screenEmulation: + | { + mobile: boolean; + width: number; + height: number; + deviceScaleFactor: number; + disabled: boolean; + } + | undefined; + // For lighthouse before 7 + emulatedFormFactor: FormFactor; +}; + /** @public */ export interface TriggerAuditPayload { url: string; options: { lighthouseConfig: { - settings: { - emulatedFormFactor: string; - }; + settings: LighthouseConfigSettings; }; }; } diff --git a/plugins/lighthouse/src/components/CreateAudit/index.test.tsx b/plugins/lighthouse/src/components/CreateAudit/index.test.tsx index 59847b516e..60a7bc1301 100644 --- a/plugins/lighthouse/src/components/CreateAudit/index.test.tsx +++ b/plugins/lighthouse/src/components/CreateAudit/index.test.tsx @@ -110,6 +110,88 @@ describe('CreateAudit', () => { }); }); + describe('when creating the audit', () => { + it('sends the correct payload for mobile', async () => { + let triggerAuditPayload: {} | undefined = undefined; + server.use( + rest.post('http://lighthouse/v1/audits', async (req, res, ctx) => { + triggerAuditPayload = await req.json(); + return res(ctx.json(createAuditResponse)); + }), + ); + + const rendered = render( + wrapInTestApp( + + + , + ), + ); + + fireEvent.change(rendered.getByLabelText(/URL/), { + target: { value: 'https://spotify.com' }, + }); + fireEvent.click(rendered.getByText(/Create Audit/)); + + await waitFor(() => + expect(triggerAuditPayload).toMatchObject({ + options: { + lighthouseConfig: { + settings: { formFactor: 'mobile', emulatedFormFactor: 'mobile' }, + }, + }, + url: 'https://spotify.com', + }), + ); + }); + + it('sends the correct payload for desktop', async () => { + let triggerAuditPayload: {} | undefined = undefined; + server.use( + rest.post('http://lighthouse/v1/audits', async (req, res, ctx) => { + triggerAuditPayload = await req.json(); + return res(ctx.json(createAuditResponse)); + }), + ); + + const rendered = render( + wrapInTestApp( + + + , + ), + ); + + fireEvent.change(rendered.getByLabelText(/URL/), { + target: { value: 'https://spotify.com' }, + }); + fireEvent.mouseDown(rendered.getByText(/Mobile/)); + fireEvent.click(rendered.getByText(/Desktop/)); + fireEvent.click(rendered.getByText(/Create Audit/)); + + await waitFor(() => + expect(triggerAuditPayload).toMatchObject({ + options: { + lighthouseConfig: { + settings: { + formFactor: 'desktop', + screenEmulation: { + mobile: false, + width: 1350, + height: 940, + deviceScaleFactor: 1, + disabled: false, + }, + emulatedFormFactor: 'desktop', + }, + }, + }, + url: 'https://spotify.com', + }), + ); + }); + }); + describe('when the audit is successfully created', () => { it('triggers a location change to the table', async () => { useNavigate.mockClear(); diff --git a/plugins/lighthouse/src/components/CreateAudit/index.tsx b/plugins/lighthouse/src/components/CreateAudit/index.tsx index f83ad6a8a3..8ed7dc8996 100644 --- a/plugins/lighthouse/src/components/CreateAudit/index.tsx +++ b/plugins/lighthouse/src/components/CreateAudit/index.tsx @@ -25,7 +25,11 @@ import { } from '@material-ui/core'; import React, { useCallback, useState } from 'react'; import { useNavigate } from 'react-router-dom'; -import { lighthouseApiRef } from '../../api'; +import { + FormFactor, + lighthouseApiRef, + LighthouseConfigSettings, +} from '../../api'; import { useQuery } from '../../utils'; import LighthouseSupportButton from '../SupportButton'; @@ -65,6 +69,23 @@ const useStyles = makeStyles(theme => ({ }, })); +const formFactorToScreenEmulationMap: Record< + FormFactor, + LighthouseConfigSettings['screenEmulation'] +> = { + // the default is mobile, so no need to override + mobile: undefined, + // Values from lighthouse's cli "desktop" preset + // https://github.com/GoogleChrome/lighthouse/blob/a6738e0033e7e5ca308b97c1c36f298b7d399402/lighthouse-core/config/constants.js#L71-L77 + desktop: { + mobile: false, + width: 1350, + height: 940, + deviceScaleFactor: 1, + disabled: false, + }, +}; + export const CreateAuditContent = () => { const errorApi = useApi(errorApiRef); const lighthouseApi = useApi(lighthouseApiRef); @@ -73,7 +94,7 @@ export const CreateAuditContent = () => { const navigate = useNavigate(); const [submitting, setSubmitting] = useState(false); const [url, setUrl] = useState(query.get('url') || ''); - const [emulatedFormFactor, setEmulatedFormFactor] = useState('mobile'); + const [formFactor, setFormFactor] = useState('mobile'); const triggerAudit = useCallback(async (): Promise => { setSubmitting(true); @@ -85,7 +106,9 @@ export const CreateAuditContent = () => { options: { lighthouseConfig: { settings: { - emulatedFormFactor, + formFactor, + emulatedFormFactor: formFactor, + screenEmulation: formFactorToScreenEmulationMap[formFactor], }, }, }, @@ -96,14 +119,7 @@ export const CreateAuditContent = () => { } finally { setSubmitting(false); } - }, [ - url, - emulatedFormFactor, - lighthouseApi, - setSubmitting, - errorApi, - navigate, - ]); + }, [url, formFactor, lighthouseApi, setSubmitting, errorApi, navigate]); return ( <> @@ -146,8 +162,10 @@ export const CreateAuditContent = () => { select required disabled={submitting} - onChange={ev => setEmulatedFormFactor(ev.target.value)} - value={emulatedFormFactor} + onChange={ev => + setFormFactor(ev.target.value as FormFactor) + } + value={formFactor} inputProps={{ 'aria-label': 'Emulated form factor' }} > Mobile diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index 6829b313e0..e16250ccef 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-newrelic-dashboard +## 0.2.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + ## 0.2.5-next.4 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index 16b08ca2e4..d68150c6ba 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic-dashboard", - "version": "0.2.5-next.4", + "version": "0.2.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md index 7f02f2630c..aa636a1e99 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-newrelic +## 0.3.31 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.3.30 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/theme@0.2.16 + ## 0.3.30-next.4 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 6b0d1f8c51..b42a25db95 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-newrelic", "description": "A Backstage plugin that integrates towards New Relic", - "version": "0.3.30-next.4", + "version": "0.3.30", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md index 1bcb54c86f..9b53209201 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-org-react +## 0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.1 + +### Patch Changes + +- 4cb5066828: Bug fixes and adding the possibility to add a default value for the `GroupListPicker`. Fixes: Vertical size jump on text entry, left align for text, selecting a value closes the popup, auto focus on the popup when opening +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/catalog-client@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.1-next.4 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 78af6d23b0..61a5e8dc58 100644 --- a/plugins/org-react/package.json +++ b/plugins/org-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-org-react", - "version": "0.1.1-next.4", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index 1f8d0f446e..a3bff0d6ec 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-org +## 0.6.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.6.2 + +### Patch Changes + +- 4395eac4d8: Made all the ownership boxes the same size +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 67cedfe42e: Update `UserProfileCard` and `GroupProfileCard` to not render links unless the `showLinks` prop is set. The primary component for rendering links are the `EntityLinksCard` from plugin-catalog. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.6.2-next.4 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index ac09ef2cb6..a22f17a6b4 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-org", "description": "A Backstage plugin that helps you create entity pages for your organization", - "version": "0.6.2-next.4", + "version": "0.6.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx index f996342454..567c7ad3bc 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx @@ -42,6 +42,7 @@ const useStyles = makeStyles((theme: BackstageTheme) => '&:hover': { boxShadow: theme.shadows[4], }, + height: '100%', }, bold: { fontWeight: theme.typography.fontWeightBold, diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md index 44bcfd7daf..38b5e0c5bc 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-pagerduty +## 0.5.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.5.5 + +### Patch Changes + +- cb716004ef: Internal refactor to improve tests +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.5.5-next.4 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index e3fbbec6cd..902df09231 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-pagerduty", "description": "A Backstage plugin that integrates towards PagerDuty", - "version": "0.5.5-next.4", + "version": "0.5.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop-backend/CHANGELOG.md b/plugins/periskop-backend/CHANGELOG.md index 9e4f61284b..bd58a06593 100644 --- a/plugins/periskop-backend/CHANGELOG.md +++ b/plugins/periskop-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-periskop-backend +## 0.1.10 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + ## 0.1.10-next.3 ### Patch Changes diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index d131e52aec..102569ad79 100644 --- a/plugins/periskop-backend/package.json +++ b/plugins/periskop-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop-backend", - "version": "0.1.10-next.3", + "version": "0.1.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md index 880ea18569..eee49c545d 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-periskop +## 0.1.11 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.10 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.10-next.4 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index ac7008395a..10daf69de6 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.10-next.4", + "version": "0.1.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index 3de6381a17..f33b09f657 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-permission-backend +## 0.5.14 + +### Patch Changes + +- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/config@1.0.5 + ## 0.5.14-next.3 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 90ca3b24f2..f9ed36a35d 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-backend", - "version": "0.5.14-next.3", + "version": "0.5.14", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-common/CHANGELOG.md b/plugins/permission-common/CHANGELOG.md index ca97b2e586..5c11ef95af 100644 --- a/plugins/permission-common/CHANGELOG.md +++ b/plugins/permission-common/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-permission-common +## 0.7.2 + +### Patch Changes + +- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/config@1.0.5 + ## 0.7.2-next.2 ### Patch Changes diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json index d1bda3215a..5b5ca74560 100644 --- a/plugins/permission-common/package.json +++ b/plugins/permission-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-common", "description": "Isomorphic types and client for Backstage permissions and authorization", - "version": "0.7.2-next.2", + "version": "0.7.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index e9dd8f4bed..4c38e7a895 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-permission-node +## 0.7.2 + +### Patch Changes + +- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/config@1.0.5 + ## 0.7.2-next.3 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index 668d148174..b23670017e 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-node", "description": "Common permission and authorization utilities for backend plugins", - "version": "0.7.2-next.3", + "version": "0.7.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-react/CHANGELOG.md b/plugins/permission-react/CHANGELOG.md index b6cdffe52e..708b30abdc 100644 --- a/plugins/permission-react/CHANGELOG.md +++ b/plugins/permission-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-permission-react +## 0.4.8 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/config@1.0.5 + ## 0.4.8-next.3 ### Patch Changes diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index 69464c312d..c69d2899ee 100644 --- a/plugins/permission-react/package.json +++ b/plugins/permission-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-react", - "version": "0.4.8-next.3", + "version": "0.4.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist-backend/CHANGELOG.md b/plugins/playlist-backend/CHANGELOG.md index f3651e6276..26dc5378d3 100644 --- a/plugins/playlist-backend/CHANGELOG.md +++ b/plugins/playlist-backend/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-playlist-backend +## 0.2.2 + +### Patch Changes + +- c507aee8a2: Ensured typescript type checks in migration files. +- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/backend-test-utils@0.1.31 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/plugin-playlist-common@0.1.3 + ## 0.2.2-next.4 ### Patch Changes diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 22a3579299..19785706ed 100644 --- a/plugins/playlist-backend/package.json +++ b/plugins/playlist-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist-backend", - "version": "0.2.2-next.4", + "version": "0.2.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist-common/CHANGELOG.md b/plugins/playlist-common/CHANGELOG.md index 47a0eb1dc5..3db070e10d 100644 --- a/plugins/playlist-common/CHANGELOG.md +++ b/plugins/playlist-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-playlist-common +## 0.1.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.2 + ## 0.1.3-next.2 ### Patch Changes diff --git a/plugins/playlist-common/package.json b/plugins/playlist-common/package.json index 4a3662b057..9a3820e306 100644 --- a/plugins/playlist-common/package.json +++ b/plugins/playlist-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-playlist-common", "description": "Common functionalities for the playlist plugin", - "version": "0.1.3-next.2", + "version": "0.1.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist/CHANGELOG.md b/plugins/playlist/CHANGELOG.md index 7755808035..0434a916f2 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-playlist +## 0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + - @backstage/plugin-search-react@1.3.1 + +## 0.1.3 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-search-react@1.3.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.9 + - @backstage/plugin-playlist-common@0.1.3 + ## 0.1.3-next.4 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index c2a991d59a..db5b1d822b 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.1.3-next.4", + "version": "0.1.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md index 7ae2b77512..4a7a1c3554 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-proxy-backend +## 0.2.33 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 03843259b4: Documented the `createRouter` method. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + ## 0.2.33-next.3 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 7acaa0dce2..b4342ad43c 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-proxy-backend", "description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend", - "version": "0.2.33-next.3", + "version": "0.2.33", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md index 1b5d5e4af6..06c6af4fe4 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-rollbar-backend +## 0.1.36 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + ## 0.1.36-next.3 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 131900ae21..552a534058 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar-backend", "description": "A Backstage backend plugin that integrates towards Rollbar", - "version": "0.1.36-next.3", + "version": "0.1.36", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md index c01af407d1..5c41131e97 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-rollbar +## 0.4.13 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.4.12 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.4.12-next.4 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index b4ac81738d..6ad58bcff4 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar", "description": "A Backstage plugin that integrates towards Rollbar", - "version": "0.4.12-next.4", + "version": "0.4.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 25aac82142..2c5e107f06 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.14 + +### Patch Changes + +- 935b66a646: Change step output template examples to use square bracket syntax. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/config@1.0.5 + ## 0.2.14-next.3 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 170c63d5be..a1aa35dfb7 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", - "version": "0.2.14-next.3", + "version": "0.2.14", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index e611266bdb..b856284bfd 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.7 + +### Patch Changes + +- 935b66a646: Change step output template examples to use square bracket syntax. +- 27b23a86ad: Added more (optional) arguments to the `createFetchRailsAction` to be passed to `rails new` +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/config@1.0.5 + ## 0.4.7-next.3 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index eed87255ad..967d1d94ec 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", "description": "A module for the scaffolder backend that lets you template projects using Rails", - "version": "0.4.7-next.3", + "version": "0.4.7", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts index d1a9ed7650..49b7ac100b 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts @@ -103,6 +103,31 @@ export function createFetchRailsAction(options: { description: 'Skip test files', type: 'boolean', }, + skipActionCable: { + title: 'skipActionCable', + description: 'Skip Action Cable files', + type: 'boolean', + }, + skipActionMailer: { + title: 'skipActionMailer', + description: 'Skip Action Mailer files', + type: 'boolean', + }, + skipActionMailbox: { + title: 'skipActionMailbox', + description: 'Skip Action Mailbox gem', + type: 'boolean', + }, + skipActiveStorage: { + title: 'skipActiveStorage', + description: 'Skip Active Storage files', + type: 'boolean', + }, + skipActionText: { + title: 'skipActionText', + description: 'Skip Action Text gem', + type: 'boolean', + }, force: { title: 'force', description: 'Overwrite files that already exist', diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.test.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.test.ts index 1f926eedb0..401ebb295f 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.test.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.test.ts @@ -28,6 +28,11 @@ describe('railsArgumentResolver', () => { [{ skipBundle: true }, ['--skip-bundle']], [{ skipWebpackInstall: true }, ['--skip-webpack-install']], [{ skipTest: true }, ['--skip-test']], + [{ skipActionCable: true }, ['--skip-action-cable']], + [{ skipActionMailer: true }, ['--skip-action-mailer']], + [{ skipActionMailbox: true }, ['--skip-action-mailbox']], + [{ skipActiveStorage: true }, ['--skip-active-storage']], + [{ skipActionText: true }, ['--skip-action-text']], [{ force: true }, ['--force']], [{ webpacker: 'vue' }, ['--webpack', 'vue']], [{ database: 'postgresql' }, ['--database', 'postgresql']], diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.ts index 53e1d1f8f6..666eac7958 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsArgumentResolver.ts @@ -44,16 +44,21 @@ enum RailsVersion { } export type RailsRunOptions = { - minimal?: boolean; api?: boolean; + database?: Database; + force?: boolean; + minimal?: boolean; + railsVersion?: RailsVersion; + skipActionCable?: boolean; + skipActionMailbox?: boolean; + skipActionMailer?: boolean; + skipActionText?: boolean; + skipActiveStorage?: boolean; + skipBundle?: boolean; + skipTest?: boolean; + skipWebpackInstall?: boolean; template?: string; webpacker?: Webpacker; - database?: Database; - railsVersion?: RailsVersion; - skipBundle?: boolean; - skipWebpackInstall?: boolean; - skipTest?: boolean; - force?: boolean; }; export const railsArgumentResolver = ( @@ -83,6 +88,26 @@ export const railsArgumentResolver = ( argumentsToRun.push('--skip-test'); } + if (options?.skipActionCable) { + argumentsToRun.push('--skip-action-cable'); + } + + if (options?.skipActionMailer) { + argumentsToRun.push('--skip-action-mailer'); + } + + if (options?.skipActionMailbox) { + argumentsToRun.push('--skip-action-mailbox'); + } + + if (options?.skipActiveStorage) { + argumentsToRun.push('--skip-active-storage'); + } + + if (options?.skipActionText) { + argumentsToRun.push('--skip-action-text'); + } + if (options?.force) { argumentsToRun.push('--force'); } diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index d1e0dbec96..b5837e89b0 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.12 + +### Patch Changes + +- 935b66a646: Change step output template examples to use square bracket syntax. +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.0 + - @backstage/types@1.0.2 + - @backstage/config@1.0.5 + ## 0.2.12-next.3 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index f99d2a1a0d..2de3d42a31 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-yeoman", - "version": "0.2.12-next.3", + "version": "0.2.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index f2299cb85e..174a8e7570 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,58 @@ # @backstage/plugin-scaffolder-backend +## 1.9.0 + +### Minor Changes + +- a20a0ea698: Added `requiredConversationResolution` template option to `github:repo:create`, `github:repo:push` and `publish:github` +- b32005e98a: Deprecated the `taskWorkers` option in RouterOptions in favor of `concurrentTasksLimit` which sets the limit of concurrent tasks in a single TaskWorker + + TaskWorker can now run multiple (defaults to 10) tasks concurrently using the `concurrentTasksLimit` option available in both `RouterOptions` and `CreateWorkerOptions`. + + To use the option to create a TaskWorker: + + ```diff + const worker = await TaskWorker.create({ + taskBroker, + actionRegistry, + integrations, + logger, + workingDirectory, + additionalTemplateFilters, + + concurrentTasksLimit: 10 // (1 to Infinity) + }); + ``` + +- fc51bd8aa0: Add support for disabling Github repository wiki, issues and projects +- 0053d07bee: Update the `github:publish` action to allow passing wether to dismiss stale reviews on the protected default branch. + +### Patch Changes + +- cb716004ef: Internal refactor to improve tests +- 935b66a646: Change step output template examples to use square bracket syntax. +- 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`. +- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries +- 26404430bc: Use Json types from @backstage/types +- b07ccffad0: Backend now returns 'ui:options' value from template metadata, it can be used by all your custom scaffolder components. +- 309f2daca4: Updated dependency `esbuild` to `^0.16.0`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.6.0 + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/plugin-catalog-node@1.3.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/errors@1.1.4 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/integration@1.4.1 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/plugin-scaffolder-common@1.2.3 + ## 1.9.0-next.3 ### Minor Changes diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index c38afee190..3a5be4379d 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -213,6 +213,7 @@ export function createGithubRepoCreateAction(options: { | undefined; requiredStatusCheckContexts?: string[] | undefined; requireBranchesToBeUpToDate?: boolean | undefined; + requiredConversationResolution?: boolean | undefined; repoVisibility?: 'internal' | 'private' | 'public' | undefined; collaborators?: | ( @@ -230,6 +231,9 @@ export function createGithubRepoCreateAction(options: { } )[] | undefined; + hasProjects?: boolean | undefined; + hasWiki?: boolean | undefined; + hasIssues?: boolean | undefined; token?: string | undefined; topics?: string[] | undefined; }>; @@ -259,6 +263,7 @@ export function createGithubRepoPushAction(options: { | undefined; requiredStatusCheckContexts?: string[] | undefined; requireBranchesToBeUpToDate?: boolean | undefined; + requiredConversationResolution?: boolean | undefined; sourcePath?: string | undefined; token?: string | undefined; }>; @@ -404,6 +409,7 @@ export function createPublishGithubAction(options: { dismissStaleReviews?: boolean | undefined; requiredStatusCheckContexts?: string[] | undefined; requireBranchesToBeUpToDate?: boolean | undefined; + requiredConversationResolution?: boolean | undefined; repoVisibility?: 'internal' | 'private' | 'public' | undefined; collaborators?: | ( @@ -421,6 +427,9 @@ export function createPublishGithubAction(options: { } )[] | undefined; + hasProjects?: boolean | undefined; + hasWiki?: boolean | undefined; + hasIssues?: boolean | undefined; token?: string | undefined; topics?: string[] | undefined; }>; diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index e7af93efaa..ef77b8c0f3 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend", "description": "The Backstage backend plugin that helps you create new things", - "version": "1.9.0-next.3", + "version": "1.9.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/log.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/log.test.ts index 544784acb5..c53caff018 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/log.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/log.test.ts @@ -15,7 +15,7 @@ */ import { getVoidLogger } from '@backstage/backend-common'; -import mock from 'mock-fs'; +import mockFs from 'mock-fs'; import os from 'os'; import { Writable } from 'stream'; import { createDebugLogAction } from './log'; @@ -40,7 +40,7 @@ describe('debug:log', () => { const action = createDebugLogAction(); beforeEach(() => { - mock({ + mockFs({ [`${mockContext.workspacePath}/README.md`]: '', [`${mockContext.workspacePath}/a-directory/index.md`]: '', }); @@ -48,7 +48,7 @@ describe('debug:log', () => { }); afterEach(() => { - mock.restore(); + mockFs.restore(); }); it('should do nothing', async () => { diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts index e06236d889..673658ebcf 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts @@ -158,6 +158,56 @@ describe('github:repo:create', () => { allow_auto_merge: false, visibility: 'private', }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + hasWiki: true, + hasProjects: true, + hasIssues: true, + }, + }); + expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + org: 'owner', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + visibility: 'private', + has_wiki: true, + has_projects: true, + has_issues: true, + }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + hasWiki: false, + hasProjects: false, + hasIssues: false, + }, + }); + expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + org: 'owner', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + visibility: 'private', + has_wiki: false, + has_projects: false, + has_issues: false, + }); }); it('should call the githubApis with the correct values for createForAuthenticatedUser', async () => { @@ -229,6 +279,56 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + hasWiki: true, + hasProjects: true, + hasIssues: true, + }, + }); + expect( + mockOctokit.rest.repos.createForAuthenticatedUser, + ).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + has_wiki: true, + has_projects: true, + has_issues: true, + }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + hasWiki: false, + hasProjects: false, + hasIssues: false, + }, + }); + expect( + mockOctokit.rest.repos.createForAuthenticatedUser, + ).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + has_wiki: false, + has_projects: false, + has_issues: false, + }); }); it('should add access for the team when it starts with the owner', async () => { diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts index a4c4380fc3..ba414c1efd 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts @@ -61,6 +61,7 @@ export function createGithubRepoCreateAction(options: { }; requiredStatusCheckContexts?: string[]; requireBranchesToBeUpToDate?: boolean; + requiredConversationResolution?: boolean; repoVisibility?: 'private' | 'internal' | 'public'; collaborators?: Array< | { @@ -77,6 +78,9 @@ export function createGithubRepoCreateAction(options: { access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; } >; + hasProjects?: boolean; + hasWiki?: boolean; + hasIssues?: boolean; token?: string; topics?: string[]; }>({ @@ -95,6 +99,8 @@ export function createGithubRepoCreateAction(options: { bypassPullRequestAllowances: inputProps.bypassPullRequestAllowances, requiredStatusCheckContexts: inputProps.requiredStatusCheckContexts, requireBranchesToBeUpToDate: inputProps.requireBranchesToBeUpToDate, + requiredConversationResolution: + inputProps.requiredConversationResolution, repoVisibility: inputProps.repoVisibility, deleteBranchOnMerge: inputProps.deleteBranchOnMerge, allowMergeCommit: inputProps.allowMergeCommit, @@ -104,6 +110,9 @@ export function createGithubRepoCreateAction(options: { allowRebaseMerge: inputProps.allowRebaseMerge, allowAutoMerge: inputProps.allowAutoMerge, collaborators: inputProps.collaborators, + hasProjects: inputProps.hasProjects, + hasWiki: inputProps.hasWiki, + hasIssues: inputProps.hasIssues, token: inputProps.token, topics: inputProps.topics, }, @@ -131,6 +140,9 @@ export function createGithubRepoCreateAction(options: { allowRebaseMerge = true, allowAutoMerge = false, collaborators, + hasProjects = undefined, + hasWiki = undefined, + hasIssues = undefined, topics, token: providedToken, } = ctx.input; @@ -165,6 +177,9 @@ export function createGithubRepoCreateAction(options: { allowAutoMerge, access, collaborators, + hasProjects, + hasWiki, + hasIssues, topics, ctx.logger, ); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.test.ts index 46f33a823d..f8b45093e6 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.test.ts @@ -284,6 +284,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -305,6 +306,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: true, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -326,6 +328,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -350,6 +353,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -371,6 +375,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -392,6 +397,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: false, dismissStaleReviews: false, }); @@ -416,6 +422,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -426,6 +433,7 @@ describe('github:repo:push', () => { ...mockContext.input, requiredStatusCheckContexts: ['statusCheck'], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, }, }); @@ -438,6 +446,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: ['statusCheck'], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -460,6 +469,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: ['statusCheck'], requireBranchesToBeUpToDate: false, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -470,6 +480,7 @@ describe('github:repo:push', () => { ...mockContext.input, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, }, }); @@ -482,6 +493,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -525,6 +537,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -546,6 +559,7 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: true, }); @@ -567,6 +581,76 @@ describe('github:repo:push', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, + enforceAdmins: true, + dismissStaleReviews: false, + }); + }); + + it('should call enableBranchProtectionOnDefaultRepoBranch with the correct values of requiredConversationResolution', async () => { + mockOctokit.rest.repos.get.mockResolvedValue({ + data: { + clone_url: 'https://github.com/clone/url.git', + html_url: 'https://github.com/html/url', + }, + }); + + await action.handler(mockContext); + + expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({ + owner: 'owner', + client: mockOctokit, + repoName: 'repository', + logger: mockContext.logger, + defaultBranch: 'master', + requireCodeOwnerReviews: false, + requiredStatusCheckContexts: [], + requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, + enforceAdmins: true, + dismissStaleReviews: false, + }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + requiredConversationResolution: true, + }, + }); + + expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({ + owner: 'owner', + client: mockOctokit, + repoName: 'repository', + logger: mockContext.logger, + defaultBranch: 'master', + requireCodeOwnerReviews: false, + requiredStatusCheckContexts: [], + requireBranchesToBeUpToDate: true, + requiredConversationResolution: true, + enforceAdmins: true, + dismissStaleReviews: false, + }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + requiredConversationResolution: false, + }, + }); + + expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({ + owner: 'owner', + client: mockOctokit, + repoName: 'repository', + logger: mockContext.logger, + defaultBranch: 'master', + requireCodeOwnerReviews: false, + requiredStatusCheckContexts: [], + requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts index 4c931e029c..9d470790fa 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts @@ -59,6 +59,7 @@ export function createGithubRepoPushAction(options: { | undefined; requiredStatusCheckContexts?: string[]; requireBranchesToBeUpToDate?: boolean; + requiredConversationResolution?: boolean; sourcePath?: string; token?: string; }>({ @@ -76,6 +77,8 @@ export function createGithubRepoPushAction(options: { requiredStatusCheckContexts: inputProps.requiredStatusCheckContexts, bypassPullRequestAllowances: inputProps.bypassPullRequestAllowances, requireBranchesToBeUpToDate: inputProps.requireBranchesToBeUpToDate, + requiredConversationResolution: + inputProps.requiredConversationResolution, defaultBranch: inputProps.defaultBranch, protectDefaultBranch: inputProps.protectDefaultBranch, protectEnforceAdmins: inputProps.protectEnforceAdmins, @@ -108,6 +111,7 @@ export function createGithubRepoPushAction(options: { bypassPullRequestAllowances, requiredStatusCheckContexts = [], requireBranchesToBeUpToDate = true, + requiredConversationResolution = false, token: providedToken, } = ctx.input; @@ -146,6 +150,7 @@ export function createGithubRepoPushAction(options: { bypassPullRequestAllowances, requiredStatusCheckContexts, requireBranchesToBeUpToDate, + requiredConversationResolution, config, ctx.logger, gitCommitMessage, diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts index 70a4339601..cceef9410a 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts @@ -124,6 +124,9 @@ export async function createGithubRepoWithCollaboratorsAndTopics( } )[] | undefined, + hasProjects: boolean | undefined, + hasWiki: boolean | undefined, + hasIssues: boolean | undefined, topics: string[] | undefined, logger: Logger, ) { @@ -148,6 +151,9 @@ export async function createGithubRepoWithCollaboratorsAndTopics( allow_rebase_merge: allowRebaseMerge, allow_auto_merge: allowAutoMerge, homepage: homepage, + has_projects: hasProjects, + has_wiki: hasWiki, + has_issues: hasIssues, }) : client.rest.repos.createForAuthenticatedUser({ name: repo, @@ -161,6 +167,9 @@ export async function createGithubRepoWithCollaboratorsAndTopics( allow_rebase_merge: allowRebaseMerge, allow_auto_merge: allowAutoMerge, homepage: homepage, + has_projects: hasProjects, + has_wiki: hasWiki, + has_issues: hasIssues, }); let newRepo; @@ -264,6 +273,7 @@ export async function initRepoPushAndProtect( | undefined, requiredStatusCheckContexts: string[], requireBranchesToBeUpToDate: boolean, + requiredConversationResolution: boolean, config: Config, logger: any, gitCommitMessage?: string, @@ -309,6 +319,7 @@ export async function initRepoPushAndProtect( requireCodeOwnerReviews, requiredStatusCheckContexts, requireBranchesToBeUpToDate, + requiredConversationResolution, enforceAdmins: protectEnforceAdmins, dismissStaleReviews: dismissStaleReviews, }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts index fc783d844e..f13d04859f 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts @@ -58,6 +58,12 @@ const requireBranchesToBeUpToDate = { description: `Require branches to be up to date before merging. The default value is 'true'`, type: 'boolean', }; +const requiredConversationResolution = { + title: 'Required Conversation Resolution', + description: + 'Requires all conversations on code to be resolved before a pull request can be merged into this branch', + type: 'boolean', +}; const repoVisibility = { title: 'Repository Visibility', type: 'string', @@ -137,6 +143,21 @@ const collaborators = { oneOf: [{ required: ['user'] }, { required: ['team'] }], }, }; +const hasProjects = { + title: 'Enable projects', + type: 'boolean', + description: `Enable projects for the repository. The default value is 'true' unless the organization has disabled repository projects`, +}; +const hasWiki = { + title: 'Enable the wiki', + type: 'boolean', + description: `Enable the wiki for the repository. The default value is 'true'`, +}; +const hasIssues = { + title: 'Enable issues', + type: 'boolean', + description: `Enable issues for the repository. The default value is 'true'`, +}; const token = { title: 'Authentication Token', type: 'string', @@ -229,6 +250,10 @@ export { requireCodeOwnerReviews }; export { dismissStaleReviews }; export { requiredStatusCheckContexts }; export { requireBranchesToBeUpToDate }; +export { requiredConversationResolution }; +export { hasProjects }; +export { hasIssues }; +export { hasWiki }; export { sourcePath }; export { token }; export { topics }; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/helpers.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/helpers.ts index a7d29ec756..74e5d4580b 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/helpers.ts @@ -191,6 +191,7 @@ type BranchProtectionOptions = { apps?: string[]; }; requireBranchesToBeUpToDate?: boolean; + requiredConversationResolution?: boolean; defaultBranch?: string; enforceAdmins?: boolean; dismissStaleReviews?: boolean; @@ -205,6 +206,7 @@ export const enableBranchProtectionOnDefaultRepoBranch = async ({ bypassPullRequestAllowances, requiredStatusCheckContexts = [], requireBranchesToBeUpToDate = true, + requiredConversationResolution = false, defaultBranch = 'master', enforceAdmins = true, dismissStaleReviews = false, @@ -237,6 +239,7 @@ export const enableBranchProtectionOnDefaultRepoBranch = async ({ bypass_pull_request_allowances: bypassPullRequestAllowances, dismiss_stale_reviews: dismissStaleReviews, }, + required_conversation_resolution: requiredConversationResolution, }); } catch (e) { assertError(e); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts index 0152ed7837..9943b6ff92 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts @@ -163,6 +163,56 @@ describe('publish:github', () => { allow_auto_merge: false, visibility: 'private', }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + hasWiki: true, + hasProjects: true, + hasIssues: true, + }, + }); + expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + org: 'owner', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + visibility: 'private', + has_wiki: true, + has_projects: true, + has_issues: true, + }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + hasWiki: false, + hasProjects: false, + hasIssues: false, + }, + }); + expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + org: 'owner', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + visibility: 'private', + has_wiki: false, + has_projects: false, + has_issues: false, + }); }); it('should call the githubApis with the correct values for createForAuthenticatedUser', async () => { @@ -234,6 +284,56 @@ describe('publish:github', () => { allow_rebase_merge: true, allow_auto_merge: false, }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + hasWiki: true, + hasProjects: true, + hasIssues: true, + }, + }); + expect( + mockOctokit.rest.repos.createForAuthenticatedUser, + ).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + has_wiki: true, + has_projects: true, + has_issues: true, + }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + hasWiki: false, + hasProjects: false, + hasIssues: false, + }, + }); + expect( + mockOctokit.rest.repos.createForAuthenticatedUser, + ).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + has_wiki: false, + has_projects: false, + has_issues: false, + }); }); it('should call initRepoAndPush with the correct values', async () => { @@ -682,6 +782,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -703,6 +804,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: true, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -724,6 +826,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -751,6 +854,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -772,6 +876,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: false, dismissStaleReviews: false, }); @@ -793,6 +898,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -820,6 +926,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -830,6 +937,7 @@ describe('publish:github', () => { ...mockContext.input, requiredStatusCheckContexts: ['statusCheck'], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, }, }); @@ -842,6 +950,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: ['statusCheck'], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -864,6 +973,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: ['statusCheck'], requireBranchesToBeUpToDate: false, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -885,6 +995,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -967,6 +1078,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); @@ -988,6 +1100,7 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: true, }); @@ -1009,6 +1122,78 @@ describe('publish:github', () => { requireCodeOwnerReviews: false, requiredStatusCheckContexts: [], requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, + enforceAdmins: true, + dismissStaleReviews: false, + }); + }); + it('should call enableBranchProtectionOnDefaultRepoBranch with the correct values of requiredConversationResolution', async () => { + mockOctokit.rest.users.getByUsername.mockResolvedValue({ + data: { type: 'User' }, + }); + + mockOctokit.rest.repos.createForAuthenticatedUser.mockResolvedValue({ + data: { + name: 'repo', + }, + }); + + await action.handler(mockContext); + + expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({ + owner: 'owner', + client: mockOctokit, + repoName: 'repo', + logger: mockContext.logger, + defaultBranch: 'master', + requireCodeOwnerReviews: false, + requiredStatusCheckContexts: [], + requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, + enforceAdmins: true, + dismissStaleReviews: false, + }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + requiredConversationResolution: true, + }, + }); + + expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({ + owner: 'owner', + client: mockOctokit, + repoName: 'repo', + logger: mockContext.logger, + defaultBranch: 'master', + requireCodeOwnerReviews: false, + requiredStatusCheckContexts: [], + requireBranchesToBeUpToDate: true, + requiredConversationResolution: true, + enforceAdmins: true, + dismissStaleReviews: false, + }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + requiredConversationResolution: false, + }, + }); + + expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({ + owner: 'owner', + client: mockOctokit, + repoName: 'repo', + logger: mockContext.logger, + defaultBranch: 'master', + requireCodeOwnerReviews: false, + requiredStatusCheckContexts: [], + requireBranchesToBeUpToDate: true, + requiredConversationResolution: false, enforceAdmins: true, dismissStaleReviews: false, }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts index 0b7f036ff9..b91f1061dc 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts @@ -73,6 +73,7 @@ export function createPublishGithubAction(options: { dismissStaleReviews?: boolean; requiredStatusCheckContexts?: string[]; requireBranchesToBeUpToDate?: boolean; + requiredConversationResolution?: boolean; repoVisibility?: 'private' | 'internal' | 'public'; collaborators?: Array< | { @@ -89,6 +90,9 @@ export function createPublishGithubAction(options: { access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; } >; + hasProjects?: boolean | undefined; + hasWiki?: boolean | undefined; + hasIssues?: boolean | undefined; token?: string; topics?: string[]; }>({ @@ -109,6 +113,8 @@ export function createPublishGithubAction(options: { dismissStaleReviews: inputProps.dismissStaleReviews, requiredStatusCheckContexts: inputProps.requiredStatusCheckContexts, requireBranchesToBeUpToDate: inputProps.requireBranchesToBeUpToDate, + requiredConversationResolution: + inputProps.requiredConversationResolution, repoVisibility: inputProps.repoVisibility, defaultBranch: inputProps.defaultBranch, protectDefaultBranch: inputProps.protectDefaultBranch, @@ -125,6 +131,9 @@ export function createPublishGithubAction(options: { allowAutoMerge: inputProps.allowAutoMerge, sourcePath: inputProps.sourcePath, collaborators: inputProps.collaborators, + hasProjects: inputProps.hasProjects, + hasWiki: inputProps.hasWiki, + hasIssues: inputProps.hasIssues, token: inputProps.token, topics: inputProps.topics, }, @@ -148,6 +157,7 @@ export function createPublishGithubAction(options: { bypassPullRequestAllowances, requiredStatusCheckContexts = [], requireBranchesToBeUpToDate = true, + requiredConversationResolution = false, repoVisibility = 'private', defaultBranch = 'master', protectDefaultBranch = true, @@ -163,6 +173,9 @@ export function createPublishGithubAction(options: { allowRebaseMerge = true, allowAutoMerge = false, collaborators, + hasProjects = undefined, + hasWiki = undefined, + hasIssues = undefined, topics, token: providedToken, } = ctx.input; @@ -197,6 +210,9 @@ export function createPublishGithubAction(options: { allowAutoMerge, access, collaborators, + hasProjects, + hasWiki, + hasIssues, topics, ctx.logger, ); @@ -219,6 +235,7 @@ export function createPublishGithubAction(options: { bypassPullRequestAllowances, requiredStatusCheckContexts, requireBranchesToBeUpToDate, + requiredConversationResolution, config, ctx.logger, gitCommitMessage, diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 6d21bf4a93..e741961ddc 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -271,6 +271,7 @@ export async function createRouter( res.json({ title: template.metadata.title ?? template.metadata.name, description: template.metadata.description, + 'ui:options': template.metadata['ui:options'], steps: parameters.map(schema => ({ title: schema.title ?? 'Please enter the following information', description: schema.description, diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md index d37b2219d9..355f125b9b 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-common +## 1.2.3 + +### Patch Changes + +- Updated dependencies + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + ## 1.2.3-next.1 ### Patch Changes diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index c84599b228..a2f4ae5bcf 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-common", "description": "Common functionalities for the scaffolder, to be shared between scaffolder and scaffolder-backend plugin", - "version": "1.2.3-next.1", + "version": "1.2.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-common/src/TaskSpec.ts b/plugins/scaffolder-common/src/TaskSpec.ts index 1c71790736..7c06fe2b99 100644 --- a/plugins/scaffolder-common/src/TaskSpec.ts +++ b/plugins/scaffolder-common/src/TaskSpec.ts @@ -15,7 +15,7 @@ */ import type { EntityMeta, UserEntity } from '@backstage/catalog-model'; -import type { JsonValue, JsonObject } from '@backstage/types'; +import type { JsonObject, JsonValue } from '@backstage/types'; /** * Information about a template that is stored on a task specification. @@ -51,7 +51,7 @@ export type TemplateInfo = { */ export interface TaskStep { /** - * A unqiue identifier for this step. + * A unique identifier for this step. */ id: string; /** diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index e79c409e0a..6126798c2c 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,75 @@ # @backstage/plugin-scaffolder +## 1.9.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/integration-react@1.1.8 + - @backstage/plugin-catalog-react@1.2.3 + +## 1.9.0 + +### Minor Changes + +- ddd1c3308d: Implement Custom Field Explorer to view and play around with available installed custom field extensions +- adb1b01e32: Adds the ability to supply a `transformErrors` function to the `Stepper` for `/next` +- 34a48cdc4f: The `RepoUrlPicker` field extension now has an `allowedProjects` option for narrowing the selection of Bitbucket URLs. + +### Patch Changes + +- d4d07cf55e: Enabling the customization of the last step in the scaffolder template. + + To override the content you have to do the next: + + ```typescript jsx + + ``` + +- ef803022f1: Initialize all `formData` in the `Stepper` in `/next` +- 9b1fadf6d8: Added `noHtml5Validate` prop to `FormProps` on `NextScaffolderPage` +- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 9000952e87: Form data is now passed to validator functions in 'next' scaffolder, so it's now possible to perform validation for fields that depend on other field values. This is something that we discourage due to the coupling that it creates, but is sometimes still the most sensible solution. + + ```typescript jsx + export const myCustomValidation = ( + value: string, + validation: FieldValidation, + { apiHolder, formData }: { apiHolder: ApiHolder; formData: JsonObject }, + ) => { + // validate + }; + ``` + +- 5b10b2485a: Parse `formData` from `window.location.query` for `scaffolder/next` +- 57ad6553d0: Pass through `transformErrors` to `TemplateWizardPage` +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. +- 5fb6d5e92e: Updated dependency `@react-hookz/web` to `^19.0.0`. +- 146378c146: Updated dependency `@react-hookz/web` to `^20.0.0`. +- 380f549b75: bump `@rjsf/*-v5` dependencies +- a63e2df559: fixed `headerOptions` not passed to `TemplatePage` component +- 9b606366bf: Bump `json-schema-library` to version `^7.3.9` which does not pull in the `gson-pointer` library +- db6310b6a0: Show input type array correctly on installed actions page. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/catalog-client@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/integration-react@1.1.7 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.9 + - @backstage/plugin-scaffolder-common@1.2.3 + ## 1.9.0-next.4 ### Minor Changes diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index a8dcdd76ed..3fe1208ba9 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -11,7 +11,6 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { ComponentType } from 'react'; import { DiscoveryApi } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; -import type { ErrorTransformer } from '@rjsf/utils'; import { Extension } from '@backstage/core-plugin-api'; import { ExternalRouteRef } from '@backstage/core-plugin-api'; import { FetchApi } from '@backstage/core-plugin-api'; @@ -19,7 +18,8 @@ import { FieldProps } from '@rjsf/core'; import { FieldProps as FieldProps_2 } from '@rjsf/utils'; import { FieldValidation } from '@rjsf/core'; import { FieldValidation as FieldValidation_2 } from '@rjsf/utils'; -import type { FormProps } from '@rjsf/core'; +import type { FormProps as FormProps_2 } from '@rjsf/core'; +import type { FormProps as FormProps_3 } from '@rjsf/core-v5'; import { IdentityApi } from '@backstage/core-plugin-api'; import { JsonObject } from '@backstage/types'; import { JSONSchema7 } from 'json-schema'; @@ -167,6 +167,12 @@ export interface FieldSchema { readonly uiOptionsType: TUiOptions; } +// @alpha +export type FormProps = Pick< + FormProps_3, + 'transformErrors' | 'noHtml5Validate' +>; + // @public export type LayoutComponent<_TInputProps> = () => null; @@ -179,7 +185,7 @@ export interface LayoutOptions

{ } // @public -export type LayoutTemplate = FormProps['ObjectFieldTemplate']; +export type LayoutTemplate = FormProps_2['ObjectFieldTemplate']; // @public export type ListActionsResponse = Array<{ @@ -224,6 +230,7 @@ export type NextCustomFieldValidator = ( field: FieldValidation_2, context: { apiHolder: ApiHolder; + formData: JsonObject; }, ) => void | Promise; @@ -263,7 +270,7 @@ export type NextRouterProps = { TaskPageComponent?: React_2.ComponentType<{}>; }; groups?: TemplateGroupFilter[]; - transformErrors?: ErrorTransformer; + FormProps?: FormProps; }; // @alpha diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index bc9ae4069e..ebc2e91511 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder", "description": "The Backstage plugin that helps you create new things", - "version": "1.9.0-next.4", + "version": "1.9.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -55,11 +55,11 @@ "@material-ui/lab": "4.0.0-alpha.57", "@react-hookz/web": "^20.0.0", "@rjsf/core": "^3.2.1", - "@rjsf/core-v5": "npm:@rjsf/core@^5.0.0-beta.12", + "@rjsf/core-v5": "npm:@rjsf/core@^5.0.0-beta.14", "@rjsf/material-ui": "^3.2.1", - "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@^5.0.0-beta.12", - "@rjsf/utils": "^5.0.0-beta.12", - "@rjsf/validator-ajv8": "^5.0.0-beta.12", + "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@^5.0.0-beta.14", + "@rjsf/utils": "^5.0.0-beta.14", + "@rjsf/validator-ajv6": "^5.0.0-beta.14", "@types/json-schema": "^7.0.9", "@uiw/react-codemirror": "^4.9.3", "classnames": "^2.2.6", diff --git a/plugins/scaffolder/src/extensions/types.ts b/plugins/scaffolder/src/extensions/types.ts index 3834b39c0a..5e133c676b 100644 --- a/plugins/scaffolder/src/extensions/types.ts +++ b/plugins/scaffolder/src/extensions/types.ts @@ -23,6 +23,7 @@ import { } from '@rjsf/utils'; import { PropsWithChildren } from 'react'; import { JSONSchema7 } from 'json-schema'; +import { JsonObject } from '@backstage/types'; /** * Field validation type for Custom Field Extensions. @@ -100,7 +101,7 @@ export interface NextFieldExtensionComponentProps< export type NextCustomFieldValidator = ( data: TFieldReturnValue, field: FieldValidationV5, - context: { apiHolder: ApiHolder }, + context: { apiHolder: ApiHolder; formData: JsonObject }, ) => void | Promise; /** diff --git a/plugins/scaffolder/src/index.ts b/plugins/scaffolder/src/index.ts index 0e5e2630ac..1ed1346176 100644 --- a/plugins/scaffolder/src/index.ts +++ b/plugins/scaffolder/src/index.ts @@ -74,6 +74,7 @@ export type { TaskPageProps } from './components/TaskPage'; export { NextScaffolderPage } from './plugin'; export type { NextRouterProps } from './next'; export type { TemplateGroupFilter } from './next'; +export type { FormProps } from './next'; export { createNextScaffolderFieldExtension, type NextCustomFieldValidator, diff --git a/plugins/scaffolder/src/next/Router/Router.test.tsx b/plugins/scaffolder/src/next/Router/Router.test.tsx index 1aaca1a94b..89f8f6ecd3 100644 --- a/plugins/scaffolder/src/next/Router/Router.test.tsx +++ b/plugins/scaffolder/src/next/Router/Router.test.tsx @@ -54,6 +54,31 @@ describe('Router', () => { expect(TemplateWizardPage).toHaveBeenCalled(); }); + it('should pass through the FormProps property', async () => { + const transformErrorsMock = jest.fn(); + + await renderInTestApp( + , + { + routeEntries: ['/templates/default/foo'], + }, + ); + + const mock = TemplateWizardPage as jest.Mock; + + const [{ FormProps }] = mock.mock.calls[0]; + + expect(FormProps).toEqual({ + transformErrors: transformErrorsMock, + noHtml5Validate: true, + }); + }); + it('should extract the fieldExtensions and pass them through', async () => { const mockComponent = () => null; const CustomFieldExtension = scaffolderPlugin.provide( diff --git a/plugins/scaffolder/src/next/Router/Router.tsx b/plugins/scaffolder/src/next/Router/Router.tsx index 9ca1e39681..7a2d2826e7 100644 --- a/plugins/scaffolder/src/next/Router/Router.tsx +++ b/plugins/scaffolder/src/next/Router/Router.tsx @@ -30,7 +30,7 @@ import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common'; import { TemplateGroupFilter } from '../TemplateListPage/TemplateGroups'; import { nextSelectedTemplateRouteRef } from '../../routes'; import { SecretsContextProvider } from '../../components/secrets/SecretsContext'; -import type { ErrorTransformer } from '@rjsf/utils'; +import type { FormProps } from '../types'; /** * The Props for the Scaffolder Router @@ -45,7 +45,7 @@ export type NextRouterProps = { TaskPageComponent?: React.ComponentType<{}>; }; groups?: TemplateGroupFilter[]; - transformErrors?: ErrorTransformer; + FormProps?: FormProps; }; /** @@ -93,7 +93,10 @@ export const Router = (props: PropsWithChildren) => { path={nextSelectedTemplateRouteRef.path} element={ - + } /> diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx index 6c02492cd8..af86abf1c6 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx @@ -174,7 +174,7 @@ describe('Stepper', () => { manifest={manifest} extensions={[]} onComplete={jest.fn()} - transformErrors={transformErrors} + FormProps={{ transformErrors }} />, ); @@ -189,6 +189,38 @@ describe('Stepper', () => { expect(getByText('invalid postcode')).toBeInTheDocument(); }); + it('should grab the initial formData from the query', async () => { + const manifest: TemplateParameterSchema = { + steps: [ + { + title: 'Step 1', + schema: { + properties: { + firstName: { + type: 'string', + }, + }, + }, + }, + ], + title: 'initialize formData', + }; + + const mockFormData = { firstName: 'John' }; + + Object.defineProperty(window, 'location', { + value: { + search: `?formData=${JSON.stringify(mockFormData)}`, + }, + }); + + const { getByRole } = await renderInTestApp( + , + ); + + expect(getByRole('textbox', { name: 'firstName' })).toHaveValue('John'); + }); + it('should initialize formState with undefined form values', async () => { const manifest: TemplateParameterSchema = { steps: [ diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx index 7051b197f1..3d5cb1bfd2 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx @@ -34,10 +34,11 @@ import { TemplateParameterSchema } from '../../../types'; import { createAsyncValidators } from './createAsyncValidators'; import { useTemplateSchema } from './useTemplateSchema'; import { ReviewState } from './ReviewState'; -import validator from '@rjsf/validator-ajv8'; +import validator from '@rjsf/validator-ajv6'; import { selectedTemplateRouteRef } from '../../../routes'; -import type { ErrorTransformer } from '@rjsf/utils'; import { getDefaultFormState } from '@rjsf/utils'; +import { useFormData } from './useFormData'; +import { FormProps } from '../../types'; const useStyles = makeStyles(theme => ({ backButton: { @@ -54,12 +55,12 @@ const useStyles = makeStyles(theme => ({ }, })); -export interface StepperProps { +export type StepperProps = { manifest: TemplateParameterSchema; extensions: NextFieldExtensionOptions[]; onComplete: (values: Record) => Promise; - transformErrors?: ErrorTransformer; -} + FormProps?: FormProps; +}; // TODO(blam): We require here, as the types in this package depend on @rjsf/core explicitly // which is what we're using here as the default types, it needs to depend on @rjsf/core-v5 because @@ -72,7 +73,8 @@ export const Stepper = (props: StepperProps) => { const { steps } = useTemplateSchema(props.manifest); const apiHolder = useApiHolder(); const [activeStep, setActiveStep] = useState(0); - const [formState, setFormState] = useState>({}); + const [formState, setFormState] = useFormData(); + const [errors, setErrors] = useState< undefined | Record >(); @@ -163,7 +165,7 @@ export const Stepper = (props: StepperProps) => { onSubmit={handleNext} fields={extensions} showErrorList={false} - transformErrors={props.transformErrors} + {...(props.FormProps ?? {})} >

+ ); }; -import type { Transformer } from './transformer'; - /** * Recreates copy-to-clipboard functionality attached to snippets that * is native to mkdocs-material theme. diff --git a/plugins/techdocs/src/search/components/TechDocsSearch.test.tsx b/plugins/techdocs/src/search/components/TechDocsSearch.test.tsx index 28d2346c61..05d26b87d8 100644 --- a/plugins/techdocs/src/search/components/TechDocsSearch.test.tsx +++ b/plugins/techdocs/src/search/components/TechDocsSearch.test.tsx @@ -16,6 +16,7 @@ import { ApiProvider } from '@backstage/core-app-api'; import { searchApiRef } from '@backstage/plugin-search-react'; import { TestApiRegistry, wrapInTestApp } from '@backstage/test-utils'; +import Button from '@material-ui/core/Button'; import { act, fireEvent, @@ -136,9 +137,9 @@ describe('', () => { const [entityName, setEntityName] = useState(entityId); return wrapInTestApp( - + , ); diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md index 4b7e466b5c..b7851f68a3 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-todo-backend +## 0.1.36 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/catalog-client@1.2.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/catalog-model@1.1.4 + - @backstage/config@1.0.5 + ## 0.1.36-next.3 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 75b41d08c0..d2b5f91db0 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo-backend", "description": "A Backstage backend plugin that lets you browse TODO comments in your source code", - "version": "0.1.36-next.3", + "version": "0.1.36", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md index e3472b7128..4cd17a216c 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-todo +## 0.2.15 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.2.14 + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.14-next.4 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index 31b0726c37..975907945f 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo", "description": "A Backstage plugin that lets you browse TODO comments in your source code", - "version": "0.2.14-next.4", + "version": "0.2.14", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md index c081060a43..9ea1450606 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-user-settings-backend +## 0.1.3 + +### Patch Changes + +- c507aee8a2: Ensured typescript type checks in migration files. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/types@1.0.2 + - @backstage/catalog-model@1.1.4 + ## 0.1.3-next.3 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index fae9745cc5..d3ff237132 100644 --- a/plugins/user-settings-backend/package.json +++ b/plugins/user-settings-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings-backend", "description": "The Backstage backend plugin to manage user settings", - "version": "0.1.3-next.3", + "version": "0.1.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index d7d2ceb5e1..4987fe8b13 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/plugin-user-settings +## 0.6.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.6.0 + +### Minor Changes + +- 29bdda5442: Added the ability to fully customize settings page. Deprecated UserSettingsTab in favour of SettingsLayout.Route + +### Patch Changes + +- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 19356df560: Updated dependency `zen-observable` to `^0.9.0`. +- c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/core-app-api@1.3.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/theme@0.2.16 + ## 0.6.0-next.4 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 0ce71dc192..ecaef90fb6 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings", "description": "A Backstage plugin that provides a settings page", - "version": "0.6.0-next.4", + "version": "0.6.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault-backend/CHANGELOG.md b/plugins/vault-backend/CHANGELOG.md index 1f9fb33f03..cee1579921 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-vault-backend +## 0.2.5 + +### Patch Changes + +- 568ae02463: Added (optional) config `vault.publicUrl` as alternative to `vault.baseUrl` for `editUrl` and `showUrl` in case `vault.baseUrl` is internal +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- 7a3d2688ed: Use `express-promise-router` to catch errors properly. + Add `403` error as a known one. It will now return a `NotAllowed` error. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-test-utils@0.1.31 + - @backstage/errors@1.1.4 + - @backstage/config@1.0.5 + ## 0.2.5-next.4 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 6b8abbfd6b..0dfba1efcd 100644 --- a/plugins/vault-backend/package.json +++ b/plugins/vault-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault-backend", "description": "A Backstage backend plugin that integrates towards Vault", - "version": "0.2.5-next.4", + "version": "0.2.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md index 9ec31bdd18..baab6ca848 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-vault +## 0.1.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + - @backstage/plugin-catalog-react@1.2.3 + +## 0.1.6 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.2 + - @backstage/catalog-model@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.6-next.4 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 66616ee020..f08cc0701f 100644 --- a/plugins/vault/package.json +++ b/plugins/vault/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault", "description": "A Backstage plugin that integrates towards Vault", - "version": "0.1.6-next.4", + "version": "0.1.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md index ffdf259fae..48c727f1da 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-xcmetrics +## 0.2.33 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.2 + +## 0.2.32 + +### Patch Changes + +- 3280711113: Updated dependency `msw` to `^0.49.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.2.0 + - @backstage/core-components@0.12.1 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.32-next.4 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 819a18d7a5..58ca732ec4 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-xcmetrics", "description": "A Backstage plugin that shows XCode build metrics for your components", - "version": "0.2.32-next.4", + "version": "0.2.32", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/storybook/yarn.lock b/storybook/yarn.lock index 033225c60d..9c2eb64ca9 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -1801,17 +1801,17 @@ __metadata: linkType: hard "@storybook/addon-a11y@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/addon-a11y@npm:6.5.14" + version: 6.5.15 + resolution: "@storybook/addon-a11y@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/api": 6.5.14 - "@storybook/channels": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/components": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/api": 6.5.15 + "@storybook/channels": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/components": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/theming": 6.5.14 + "@storybook/theming": 6.5.15 axe-core: ^4.2.0 core-js: ^3.8.2 global: ^4.4.0 @@ -1828,21 +1828,21 @@ __metadata: optional: true react-dom: optional: true - checksum: 2c35e693641b38e90989a656b8766cd2a86482e24164e62afd2cd1899d454b1a0c0b8f23df328c5350884d22615e9779dd617c71c642f4eada1df6345feba8e3 + checksum: 409e1393f655099b199dd3ba279d926b42d11ca8ce37255eec1e5d6ed3526cae559cd02d3485b70023846c3430b41630c2b6e14ed288580fcce00a12c34f7fcb languageName: node linkType: hard "@storybook/addon-actions@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/addon-actions@npm:6.5.14" + version: 6.5.15 + resolution: "@storybook/addon-actions@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/api": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/components": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/api": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/components": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/theming": 6.5.14 + "@storybook/theming": 6.5.15 core-js: ^3.8.2 fast-deep-equal: ^3.1.3 global: ^4.4.0 @@ -1863,23 +1863,23 @@ __metadata: optional: true react-dom: optional: true - checksum: 536a5afb4b9d2fbe6b250657deb36d5ef4eba128101fbe69bf00f9c363859f61e2337a460d0a724607ad48f54713bcc40ed54253df3fee4bdb23baf93a58defd + checksum: ce0ca5fddeb196adec7757dd287085c19d89d26506539d07445df3759eca9817a779f2923cc5fd7dfc9f515788628f6c0f604b10366659ca46562fab980c64f5 languageName: node linkType: hard "@storybook/addon-controls@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/addon-controls@npm:6.5.14" + version: 6.5.15 + resolution: "@storybook/addon-controls@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/api": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/components": 6.5.14 - "@storybook/core-common": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/api": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/components": 6.5.15 + "@storybook/core-common": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/node-logger": 6.5.14 - "@storybook/store": 6.5.14 - "@storybook/theming": 6.5.14 + "@storybook/node-logger": 6.5.15 + "@storybook/store": 6.5.15 + "@storybook/theming": 6.5.15 core-js: ^3.8.2 lodash: ^4.17.21 ts-dedent: ^2.0.0 @@ -1891,19 +1891,19 @@ __metadata: optional: true react-dom: optional: true - checksum: cebb9b33f944e9492527f4fd2bdfe73aa0f2737d53a36d7ea086499adc568ba06958e69c75191d5b266063ece513d5f7a484ec1da8f411f326aa4b022cce7ea0 + checksum: c87b01e035f7e0e6f3a1e864333c03e44f76ccd04a687cbe19cde59cfa1109eb2b124c288e1cf68c3a291dc6c28c056852aa2413c8157b92792ef339a33142ef languageName: node linkType: hard "@storybook/addon-links@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/addon-links@npm:6.5.14" + version: 6.5.15 + resolution: "@storybook/addon-links@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.14 + "@storybook/router": 6.5.15 "@types/qs": ^6.9.5 core-js: ^3.8.2 global: ^4.4.0 @@ -1919,21 +1919,21 @@ __metadata: optional: true react-dom: optional: true - checksum: 7dc537aab36fd80ba704b8618c24aa0b9f59d6c28502dd43c01e7dae4194fbce37a95cb7797c4b52547d9662bf9619cd0901f946bddcec7580986df2e38da574 + checksum: ef40b02a3f48de2f591486fb04910e996bcb8d5fd406e2d6b81752659551b366ffc64f6cfdb461585e52c0ae98fa102be8595678e63a27171f9e2a0e20869bd6 languageName: node linkType: hard "@storybook/addon-storysource@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/addon-storysource@npm:6.5.14" + version: 6.5.15 + resolution: "@storybook/addon-storysource@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/api": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/components": 6.5.14 - "@storybook/router": 6.5.14 - "@storybook/source-loader": 6.5.14 - "@storybook/theming": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/api": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/components": 6.5.15 + "@storybook/router": 6.5.15 + "@storybook/source-loader": 6.5.15 + "@storybook/theming": 6.5.15 core-js: ^3.8.2 estraverse: ^5.2.0 loader-utils: ^2.0.4 @@ -1948,7 +1948,7 @@ __metadata: optional: true react-dom: optional: true - checksum: d9962b3f03245ab7dce405e7f1a24291d985aa1ecc594836b6322185bcde1c61a84397acfd46e85b2818f00c1de0f564bf7b6e1d84b960418cbe3dc37660d3f9 + checksum: e501c78ad8224b07a15fd8626399ebc63f131feb615ad6c6a3d6a7eac320b8fd01ec74d7406e8422c224771dfca17cfa159816b272e9f635e07dd67a8b4f8cb8 languageName: node linkType: hard @@ -1974,17 +1974,17 @@ __metadata: languageName: node linkType: hard -"@storybook/addons@npm:6.5.14, @storybook/addons@npm:^6.0.0, @storybook/addons@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/addons@npm:6.5.14" +"@storybook/addons@npm:6.5.15, @storybook/addons@npm:^6.0.0, @storybook/addons@npm:^6.5.9": + version: 6.5.15 + resolution: "@storybook/addons@npm:6.5.15" dependencies: - "@storybook/api": 6.5.14 - "@storybook/channels": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/api": 6.5.15 + "@storybook/channels": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.14 - "@storybook/theming": 6.5.14 + "@storybook/router": 6.5.15 + "@storybook/theming": 6.5.15 "@types/webpack-env": ^1.16.0 core-js: ^3.8.2 global: ^4.4.0 @@ -1992,7 +1992,7 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 99d06641bab06a3cc2821f309589d062c0efd8707b451ae24017449034da408bfddce3beda1ccdedadf59669d7d13348bee127f6fd4fc057200c84ff43288312 + checksum: 9de4cb9ff51cde37c456a0315f47c751daf4412a8d90321b5249a9b05f48a44dc48f01bbf83c9f369f63232da423d58ed47e4c03d50d16a8835d372022095b70 languageName: node linkType: hard @@ -2024,17 +2024,17 @@ __metadata: languageName: node linkType: hard -"@storybook/api@npm:6.5.14, @storybook/api@npm:^6.0.0": - version: 6.5.14 - resolution: "@storybook/api@npm:6.5.14" +"@storybook/api@npm:6.5.15, @storybook/api@npm:^6.0.0": + version: 6.5.15 + resolution: "@storybook/api@npm:6.5.15" dependencies: - "@storybook/channels": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/channels": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.14 + "@storybook/router": 6.5.15 "@storybook/semver": ^7.3.2 - "@storybook/theming": 6.5.14 + "@storybook/theming": 6.5.15 core-js: ^3.8.2 fast-deep-equal: ^3.1.3 global: ^4.4.0 @@ -2048,31 +2048,31 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 0d421c3211a49cb8910dea647b898edd60af79755108ed321626a8fc134713dd1b018c830f15c2fc6c863f0528b571c2e2b34bb79df3c2f43497f5ab36fa9bbf + checksum: cebf1b70309c9c4a135c4ad8d3ebd85d01cfa4942e43231831e67514604199d3ed26395bbe0f89954718498a800085bd7d6eaef61c5d702e3a669532a227bd93 languageName: node linkType: hard -"@storybook/builder-webpack4@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/builder-webpack4@npm:6.5.14" +"@storybook/builder-webpack4@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/builder-webpack4@npm:6.5.15" dependencies: "@babel/core": ^7.12.10 - "@storybook/addons": 6.5.14 - "@storybook/api": 6.5.14 - "@storybook/channel-postmessage": 6.5.14 - "@storybook/channels": 6.5.14 - "@storybook/client-api": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/components": 6.5.14 - "@storybook/core-common": 6.5.14 - "@storybook/core-events": 6.5.14 - "@storybook/node-logger": 6.5.14 - "@storybook/preview-web": 6.5.14 - "@storybook/router": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/api": 6.5.15 + "@storybook/channel-postmessage": 6.5.15 + "@storybook/channels": 6.5.15 + "@storybook/client-api": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/components": 6.5.15 + "@storybook/core-common": 6.5.15 + "@storybook/core-events": 6.5.15 + "@storybook/node-logger": 6.5.15 + "@storybook/preview-web": 6.5.15 + "@storybook/router": 6.5.15 "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.14 - "@storybook/theming": 6.5.14 - "@storybook/ui": 6.5.14 + "@storybook/store": 6.5.15 + "@storybook/theming": 6.5.15 + "@storybook/ui": 6.5.15 "@types/node": ^14.0.10 || ^16.0.0 "@types/webpack": ^4.41.26 autoprefixer: ^9.8.6 @@ -2109,30 +2109,30 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 16749d2d03b82e43e6b0fea02ebd4b63ac961229e4203cb371f36f11a9cd0a484d9bef73ee443053e09594ba7a7f2311470ade0e5a246b6d9345d1c7cc7b83b0 + checksum: bd676e9302d34445884376582c5d4cfe854ed8e64a9df6bbdcc76ef433534e65a23b1bf20c7225e85d21a27e1f1d905d0accd821fdef08afcd76569a8c8977c2 languageName: node linkType: hard "@storybook/builder-webpack5@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/builder-webpack5@npm:6.5.14" + version: 6.5.15 + resolution: "@storybook/builder-webpack5@npm:6.5.15" dependencies: "@babel/core": ^7.12.10 - "@storybook/addons": 6.5.14 - "@storybook/api": 6.5.14 - "@storybook/channel-postmessage": 6.5.14 - "@storybook/channels": 6.5.14 - "@storybook/client-api": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/components": 6.5.14 - "@storybook/core-common": 6.5.14 - "@storybook/core-events": 6.5.14 - "@storybook/node-logger": 6.5.14 - "@storybook/preview-web": 6.5.14 - "@storybook/router": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/api": 6.5.15 + "@storybook/channel-postmessage": 6.5.15 + "@storybook/channels": 6.5.15 + "@storybook/client-api": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/components": 6.5.15 + "@storybook/core-common": 6.5.15 + "@storybook/core-events": 6.5.15 + "@storybook/node-logger": 6.5.15 + "@storybook/preview-web": 6.5.15 + "@storybook/router": 6.5.15 "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.14 - "@storybook/theming": 6.5.14 + "@storybook/store": 6.5.15 + "@storybook/theming": 6.5.15 "@types/node": ^14.0.10 || ^16.0.0 babel-loader: ^8.0.0 babel-plugin-named-exports-order: ^0.0.2 @@ -2161,35 +2161,35 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3aa60285baa51b3249b43b2fde92100ad24a5f383354b0e72a7915125f25386ace3e69a8718fb5baafc7cf8deca9e005c4ce0a9b356a1ca7016abe2254466115 + checksum: 9bde333540c41c55e7687b1230fdd92926074df1a3be900b969d6d9eea240fb962b6fafb59e5c3fe83eeb42e0f0c835d2e226fc332f460f8aba0f4f49d833ffd languageName: node linkType: hard -"@storybook/channel-postmessage@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/channel-postmessage@npm:6.5.14" +"@storybook/channel-postmessage@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/channel-postmessage@npm:6.5.15" dependencies: - "@storybook/channels": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/channels": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/core-events": 6.5.15 core-js: ^3.8.2 global: ^4.4.0 qs: ^6.10.0 telejson: ^6.0.8 - checksum: 2ea7aed1e49808875788746db75d61d3180a0b883892e978e93326d61617c0e01b7816b9eefcad402579d9f6dd923a13b527bcfcda3f415c0a135987d6c2042d + checksum: 7a09ba5bf163f8f5fef0bfd99eaab6c6391fa854e86bb44fcd0586bb73dd4ab5827cc23b7b38f993b81cbdb2ff8d58f81371be9301ddb3ea6f963ba560a42f09 languageName: node linkType: hard -"@storybook/channel-websocket@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/channel-websocket@npm:6.5.14" +"@storybook/channel-websocket@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/channel-websocket@npm:6.5.15" dependencies: - "@storybook/channels": 6.5.14 - "@storybook/client-logger": 6.5.14 + "@storybook/channels": 6.5.15 + "@storybook/client-logger": 6.5.15 core-js: ^3.8.2 global: ^4.4.0 telejson: ^6.0.8 - checksum: 76bd5734890836d6d7af8fd619015067db4680ae4336fdf86ee1c612e0060412c14cfcba22faee02534a63079af0864323370409730c7f3ee16af8fc3014e758 + checksum: c482b18b28f06644f684ed2b88ab53d6c5853925343e60a50a9bcfb2888123c4accfe30b51743905693e4d73c32c77e30d6dbaba377b486bee6e51faae39cf85 languageName: node linkType: hard @@ -2204,28 +2204,28 @@ __metadata: languageName: node linkType: hard -"@storybook/channels@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/channels@npm:6.5.14" +"@storybook/channels@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/channels@npm:6.5.15" dependencies: core-js: ^3.8.2 ts-dedent: ^2.0.0 util-deprecate: ^1.0.2 - checksum: ff1ee3fea3c7b8591280ba7eabe13c999fc3e12a483ff2c0467cc9cca027662cbbc4676438da567865919157521df8a9a50bd20b35daed6896f39a3a7251a1e5 + checksum: 7963c34246b3cc84bb6fb0965834110d9b839a5c32cced0756948e4e88fb8bf23a0d584723abbab6d30a6282fa1023017bb82eba68c23389652c77d8d33cb4f9 languageName: node linkType: hard -"@storybook/client-api@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/client-api@npm:6.5.14" +"@storybook/client-api@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/client-api@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/channel-postmessage": 6.5.14 - "@storybook/channels": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/channel-postmessage": 6.5.15 + "@storybook/channels": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/store": 6.5.14 + "@storybook/store": 6.5.15 "@types/qs": ^6.9.5 "@types/webpack-env": ^1.16.0 core-js: ^3.8.2 @@ -2242,7 +2242,7 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 46fe2bec19610a7ab59b41f25653261cb65b485a829a94f99f9aa01f1f5bbc13677979abfe94eb025f0d9c1138b284ddbeb6ce8a0ae392ce4995a813770be83b + checksum: 0c3b3f7febe16b00beb4aeafe79fd97cc4a6b4db868e37002856fc34878bc955336929362b3015ba1688b47131ca0b729c94ee70f69855da0e819dad6d48ee1b languageName: node linkType: hard @@ -2256,23 +2256,23 @@ __metadata: languageName: node linkType: hard -"@storybook/client-logger@npm:6.5.14, @storybook/client-logger@npm:^6.4.0": - version: 6.5.14 - resolution: "@storybook/client-logger@npm:6.5.14" +"@storybook/client-logger@npm:6.5.15, @storybook/client-logger@npm:^6.4.0": + version: 6.5.15 + resolution: "@storybook/client-logger@npm:6.5.15" dependencies: core-js: ^3.8.2 global: ^4.4.0 - checksum: 29cc0b58db7a8dc90484320c86b386975580c0e534791b29f6a8c00ce5b156f2bff9513994202f9f9ef99787e8d793988048ae88d2780ba151c6782f3bbf97ff + checksum: cee16aea089b60b33ad643bde5e0d62274230d38e2033f0bfd0780fc092bc24b5acff63a6c569c9db989e59b89518ec964d0665a51548450716c4c50d3a3e66e languageName: node linkType: hard -"@storybook/components@npm:6.5.14, @storybook/components@npm:^6.0.0": - version: 6.5.14 - resolution: "@storybook/components@npm:6.5.14" +"@storybook/components@npm:6.5.15, @storybook/components@npm:^6.0.0": + version: 6.5.15 + resolution: "@storybook/components@npm:6.5.15" dependencies: - "@storybook/client-logger": 6.5.14 + "@storybook/client-logger": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/theming": 6.5.14 + "@storybook/theming": 6.5.15 core-js: ^3.8.2 memoizerific: ^1.11.3 qs: ^6.10.0 @@ -2281,24 +2281,24 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 73d0ff418f2c5b1fc9f421f089ebee2342ef0684905e4959397a8bc6f67f32ff97f4ec3587847980cb7e4fc8e40278d8ecea11a8d267fea8d94ad3d8265a0c21 + checksum: c405643a002b7770567aba3f0e43cad975fbb0f728148f82c46c35b13958d3f6900eed619a60f22c0ee923c20828026d5f1c77cd950d21ebfd6cf57f8e64f791 languageName: node linkType: hard -"@storybook/core-client@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/core-client@npm:6.5.14" +"@storybook/core-client@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/core-client@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/channel-postmessage": 6.5.14 - "@storybook/channel-websocket": 6.5.14 - "@storybook/client-api": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/channel-postmessage": 6.5.15 + "@storybook/channel-websocket": 6.5.15 + "@storybook/client-api": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/preview-web": 6.5.14 - "@storybook/store": 6.5.14 - "@storybook/ui": 6.5.14 + "@storybook/preview-web": 6.5.15 + "@storybook/store": 6.5.15 + "@storybook/ui": 6.5.15 airbnb-js-shims: ^2.2.1 ansi-to-html: ^0.6.11 core-js: ^3.8.2 @@ -2316,13 +2316,13 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: ff867021ab6c22408952b809f3c22e58474390062fb5417aecc0ea6dcf2eb0097a616c5b1377e9af6c16045ce0cd5f3a11b32072630085592998dbb6a7ee573d + checksum: 60f03d031fa87a1a116b0ccbffd2270b8d28757d89c17af6eb368224603dfd0d219fd5ac086bf859cb8bda0f80b444195c7df94c4486107b9c5a6fbab29c65ac languageName: node linkType: hard -"@storybook/core-common@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/core-common@npm:6.5.14" +"@storybook/core-common@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/core-common@npm:6.5.15" dependencies: "@babel/core": ^7.12.10 "@babel/plugin-proposal-class-properties": ^7.12.1 @@ -2346,7 +2346,7 @@ __metadata: "@babel/preset-react": ^7.12.10 "@babel/preset-typescript": ^7.12.7 "@babel/register": ^7.12.1 - "@storybook/node-logger": 6.5.14 + "@storybook/node-logger": 6.5.15 "@storybook/semver": ^7.3.2 "@types/node": ^14.0.10 || ^16.0.0 "@types/pretty-hrtime": ^1.0.0 @@ -2380,7 +2380,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: a1cd6e97524aa8173bc8a0af867cbf407f0542b8577a5be79a82154efb239d9362d05fae3bad0aac41e17d33d950cb69290042be46bbc841a8d12b71f6db1c82 + checksum: 9c19c348137bea23295ff330d3a62d3551b6a8a2933f254f3f1cace4ef05e46b6c97e0cbca67cc5be45164e223d5ff52eced54b76564891c8a2dd085e3be4cc4 languageName: node linkType: hard @@ -2393,31 +2393,31 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:6.5.14, @storybook/core-events@npm:^6.0.0": - version: 6.5.14 - resolution: "@storybook/core-events@npm:6.5.14" +"@storybook/core-events@npm:6.5.15, @storybook/core-events@npm:^6.0.0": + version: 6.5.15 + resolution: "@storybook/core-events@npm:6.5.15" dependencies: core-js: ^3.8.2 - checksum: 6787925c520a6ee5aee748d4b7e2ec599c5ee16a87dbb62a94eeec88003ef42683d8e7ac8b98b49ea2a33205e0648805410c4759d16a997ba2f4215f6c8784ce + checksum: 89916720933bc4de0b1f25c7cb1b8580d3cdd213b21a360f18ebd0b790cce2c641696282fee29bbc482ab2cc656271b2f0569f79559d90fb01fb16473421e79e languageName: node linkType: hard -"@storybook/core-server@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/core-server@npm:6.5.14" +"@storybook/core-server@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/core-server@npm:6.5.15" dependencies: "@discoveryjs/json-ext": ^0.5.3 - "@storybook/builder-webpack4": 6.5.14 - "@storybook/core-client": 6.5.14 - "@storybook/core-common": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/builder-webpack4": 6.5.15 + "@storybook/core-client": 6.5.15 + "@storybook/core-common": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/csf-tools": 6.5.14 - "@storybook/manager-webpack4": 6.5.14 - "@storybook/node-logger": 6.5.14 + "@storybook/csf-tools": 6.5.15 + "@storybook/manager-webpack4": 6.5.15 + "@storybook/node-logger": 6.5.15 "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.14 - "@storybook/telemetry": 6.5.14 + "@storybook/store": 6.5.15 + "@storybook/telemetry": 6.5.15 "@types/node": ^14.0.10 || ^16.0.0 "@types/node-fetch": ^2.5.7 "@types/pretty-hrtime": ^1.0.0 @@ -2461,16 +2461,16 @@ __metadata: optional: true typescript: optional: true - checksum: ca61b13ff002f73f76f6d359fc7955f061806d13bb0f158d6ff299696901097329d082b4fdd7fac06dda93fd318bcdbba9f6a08390763d18851c8aa70e581c36 + checksum: 927085bd6e2c9cf756795760c5647ed5b40151e94a192e64313091fda8a06993541ecabb9c730cb01eb8baef0613b73ff63824812cfd7b8bbed3fd2ead8d1f18 languageName: node linkType: hard -"@storybook/core@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/core@npm:6.5.14" +"@storybook/core@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/core@npm:6.5.15" dependencies: - "@storybook/core-client": 6.5.14 - "@storybook/core-server": 6.5.14 + "@storybook/core-client": 6.5.15 + "@storybook/core-server": 6.5.15 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2482,13 +2482,13 @@ __metadata: optional: true typescript: optional: true - checksum: 16a2b8c589cbb8632ef6f1ba941abd7a422bca6fa54d4ef1dc5a60145bbea8dded10c7fa1fd4b8284e2e86867e779c26d4eebe69e2156123c49cfdf66c14718a + checksum: a7eca427b14a9c1f557d598e7ac599dc120d382d3d762437b3b6ebb4638b19a74e48f9e8e526365951ec623d10b82d67279226d7e6ff54ac095afee02992e666 languageName: node linkType: hard -"@storybook/csf-tools@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/csf-tools@npm:6.5.14" +"@storybook/csf-tools@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/csf-tools@npm:6.5.15" dependencies: "@babel/core": ^7.12.10 "@babel/generator": ^7.12.11 @@ -2509,7 +2509,7 @@ __metadata: peerDependenciesMeta: "@storybook/mdx2-csf": optional: true - checksum: 12e6bb4d9daa1f3ffd6a240edd9680c4088a20f2eba6dd91102fd2900188dcfcec60fc7e7b021aa2ae2232e15e0839aaf490d1c2ab2c9baa74a9dfea74ec713f + checksum: d7faafd175b232bb8fa6008ae6db5a40619a158ed7556686649dee665ac0cbbdb3cc404d2b9c0314ba7783c3f5baf1d87788f324d24136bd0f8cc671d573208b languageName: node linkType: hard @@ -2522,18 +2522,18 @@ __metadata: languageName: node linkType: hard -"@storybook/docs-tools@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/docs-tools@npm:6.5.14" +"@storybook/docs-tools@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/docs-tools@npm:6.5.15" dependencies: "@babel/core": ^7.12.10 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/store": 6.5.14 + "@storybook/store": 6.5.15 core-js: ^3.8.2 doctrine: ^3.0.0 lodash: ^4.17.21 regenerator-runtime: ^0.13.7 - checksum: 1a69dae1f9ae4196a3517571d898097a69431cd6d92f490af3eb3e5504fe0bbde4cbdd82d1ff9648c3a1daa7eab10eaffd5d2ee485e634a6fa5701dec7875196 + checksum: 051239a82cff47dbc52fae112c4c144d6e103cbb169c239b0a99fb0cb3e82fba2e460c9487469fafc19ee81ef2ecc33d59b05457c3c74375685de0f537460071 languageName: node linkType: hard @@ -2550,19 +2550,19 @@ __metadata: languageName: node linkType: hard -"@storybook/manager-webpack4@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/manager-webpack4@npm:6.5.14" +"@storybook/manager-webpack4@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/manager-webpack4@npm:6.5.15" dependencies: "@babel/core": ^7.12.10 "@babel/plugin-transform-template-literals": ^7.12.1 "@babel/preset-react": ^7.12.10 - "@storybook/addons": 6.5.14 - "@storybook/core-client": 6.5.14 - "@storybook/core-common": 6.5.14 - "@storybook/node-logger": 6.5.14 - "@storybook/theming": 6.5.14 - "@storybook/ui": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/core-client": 6.5.15 + "@storybook/core-common": 6.5.15 + "@storybook/node-logger": 6.5.15 + "@storybook/theming": 6.5.15 + "@storybook/ui": 6.5.15 "@types/node": ^14.0.10 || ^16.0.0 "@types/webpack": ^4.41.26 babel-loader: ^8.0.0 @@ -2595,23 +2595,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: c8547b64f80c87dd8590a3e7b784b6f72952607514f9e42858f89efce22ea077404033b25674aecc3874e61264ce74c38220b6130aecbce5361d182b018f7fc7 + checksum: de7b2624bf44cf4eb59839ac756e9e28715caae1d5efdfbd1e2cefb55a385cf80f3a651a29ed75a905f825d6b299ba46c3cd71068eecb3b985b5a315ed03470b languageName: node linkType: hard "@storybook/manager-webpack5@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/manager-webpack5@npm:6.5.14" + version: 6.5.15 + resolution: "@storybook/manager-webpack5@npm:6.5.15" dependencies: "@babel/core": ^7.12.10 "@babel/plugin-transform-template-literals": ^7.12.1 "@babel/preset-react": ^7.12.10 - "@storybook/addons": 6.5.14 - "@storybook/core-client": 6.5.14 - "@storybook/core-common": 6.5.14 - "@storybook/node-logger": 6.5.14 - "@storybook/theming": 6.5.14 - "@storybook/ui": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/core-client": 6.5.15 + "@storybook/core-common": 6.5.15 + "@storybook/node-logger": 6.5.15 + "@storybook/theming": 6.5.15 + "@storybook/ui": 6.5.15 "@types/node": ^14.0.10 || ^16.0.0 babel-loader: ^8.0.0 case-sensitive-paths-webpack-plugin: ^2.3.0 @@ -2641,7 +2641,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 1fe525b777694c90d1837911307fa5ef3ac976387ff9b8c5116e51bfe21437c7d83504d3edb63cc5d3c9d624ba50e467f500a3477b63a879fc5d6e73310894ba + checksum: 99f18a752230fa6360b216e3a7f85c70fe92baf01677571653b4f9fd62735d9ab12a0b91e4ae7eabd66b03f37e0b58f01fad8e5880a8e2012a98f6aedc944da1 languageName: node linkType: hard @@ -2664,29 +2664,29 @@ __metadata: languageName: node linkType: hard -"@storybook/node-logger@npm:6.5.14, @storybook/node-logger@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/node-logger@npm:6.5.14" +"@storybook/node-logger@npm:6.5.15, @storybook/node-logger@npm:^6.5.9": + version: 6.5.15 + resolution: "@storybook/node-logger@npm:6.5.15" dependencies: "@types/npmlog": ^4.1.2 chalk: ^4.1.0 core-js: ^3.8.2 npmlog: ^5.0.1 pretty-hrtime: ^1.0.3 - checksum: d36d17816b20bf8409504f73b8fe7da2c1aa6b6f37c3cc910f544f4e3d9dfe8cfe5ab66930977413ab12a067f94477d5a1e3da8fa55c07af5dbc88160845ee47 + checksum: 9c01127d3b57db7a85759d2f179afec0e1207c0754e80e22472e73468f831e1dafa2a5bf1047e54f92d47b5103325c157c14655208a6ddcdb8f9e7ee0b256e48 languageName: node linkType: hard -"@storybook/preview-web@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/preview-web@npm:6.5.14" +"@storybook/preview-web@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/preview-web@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/channel-postmessage": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/channel-postmessage": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/store": 6.5.14 + "@storybook/store": 6.5.15 ansi-to-html: ^0.6.11 core-js: ^3.8.2 global: ^4.4.0 @@ -2700,7 +2700,7 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: ef4d2222feaadd71067339ec93a13279162d0d0c72545ccb52681dd38c95451bb4257f0817dd3689af5d5e5b161602c8a57bc5805cd0d6bc0e066b78a2cfdd23 + checksum: fc178af772f39fcfe1b9926bf62bd7642984080442e8f7f2a0c6fe421513f9930ff5ccfea302d212199adf418c4bf9fc498ff65c30ad6e1cdd1b485a6d92b190 languageName: node linkType: hard @@ -2723,22 +2723,22 @@ __metadata: linkType: hard "@storybook/react@npm:^6.5.9": - version: 6.5.14 - resolution: "@storybook/react@npm:6.5.14" + version: 6.5.15 + resolution: "@storybook/react@npm:6.5.15" dependencies: "@babel/preset-flow": ^7.12.1 "@babel/preset-react": ^7.12.10 "@pmmmwh/react-refresh-webpack-plugin": ^0.5.3 - "@storybook/addons": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/core": 6.5.14 - "@storybook/core-common": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/core": 6.5.15 + "@storybook/core-common": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/docs-tools": 6.5.14 - "@storybook/node-logger": 6.5.14 + "@storybook/docs-tools": 6.5.15 + "@storybook/node-logger": 6.5.15 "@storybook/react-docgen-typescript-plugin": 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0 "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.14 + "@storybook/store": 6.5.15 "@types/estree": ^0.0.51 "@types/node": ^14.14.20 || ^16.0.0 "@types/webpack-env": ^1.16.0 @@ -2783,7 +2783,7 @@ __metadata: build-storybook: bin/build.js start-storybook: bin/index.js storybook-server: bin/index.js - checksum: b94b7b3ef19d6b9e9379242fb17afd8892100cdf5dd8beac640e8dcac62618977e8189891e87e0fab40484a3fc84eeb8bc17ebd8dc7cba6b29ee7b65f8f761c8 + checksum: c36f9a2401633b9632e5fce05bb43e8ea0a5338c8f0dc9e0da5eb87c7cfd1a3ef819124499679a3c797fbbe8278f03794d757563f388136a349e3815747036ae languageName: node linkType: hard @@ -2803,11 +2803,11 @@ __metadata: languageName: node linkType: hard -"@storybook/router@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/router@npm:6.5.14" +"@storybook/router@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/router@npm:6.5.15" dependencies: - "@storybook/client-logger": 6.5.14 + "@storybook/client-logger": 6.5.15 core-js: ^3.8.2 memoizerific: ^1.11.3 qs: ^6.10.0 @@ -2815,7 +2815,7 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: ec2550568c02f45de5307e77928eaeb39413049944e994adbc397d9c7e083ac7e110886e40517ddae40e3879c172f458167682f1d73d0bb150bc93ab9dd61514 + checksum: d5ac1ac0d161e53764411dc84febed3819c5cefe669f2933434bcdc25bf011f89d2df2a504af8bf77f454e6598a74c794a17d01aad734c6ebe28cc13c490fff9 languageName: node linkType: hard @@ -2831,12 +2831,12 @@ __metadata: languageName: node linkType: hard -"@storybook/source-loader@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/source-loader@npm:6.5.14" +"@storybook/source-loader@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/source-loader@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/client-logger": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/client-logger": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 core-js: ^3.8.2 estraverse: ^5.2.0 @@ -2848,17 +2848,17 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 81f8908a31eb3428835a201418b89981c7ce7ece669bef2a6487b643025e45238956fe98f8fd70aa61843db0eee2c595a13e84b46835cb28b1eef59defe00740 + checksum: 2330d2b16f097c4be4b0eccc466ae0142c2e04198acc529204d80c1005c1c32b6da8313661b10e641020efdfe4f1dd4f0ac67bc2c3797ae49383815f668ede5d languageName: node linkType: hard -"@storybook/store@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/store@npm:6.5.14" +"@storybook/store@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/store@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/core-events": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/core-events": 6.5.15 "@storybook/csf": 0.0.2--canary.4566f4d.1 core-js: ^3.8.2 fast-deep-equal: ^3.1.3 @@ -2874,16 +2874,16 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 7330a2492c469bbe989a522873486cbccf660080bf8d03c873029a8fa56f82976d7d71030c69aa9b2df48bf3b6fdc8063f5beecba298908783058ea675f0a159 + checksum: 918c3ed8c7a55ae4bf8bcb3a108d99a9d077c951b3f386cb0f8939d2eed7c9a9a2000075b341d5c934c0308c24287fc5cd110042a384411c25cec7632dfa5abb languageName: node linkType: hard -"@storybook/telemetry@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/telemetry@npm:6.5.14" +"@storybook/telemetry@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/telemetry@npm:6.5.15" dependencies: - "@storybook/client-logger": 6.5.14 - "@storybook/core-common": 6.5.14 + "@storybook/client-logger": 6.5.15 + "@storybook/core-common": 6.5.15 chalk: ^4.1.0 core-js: ^3.8.2 detect-package-manager: ^2.0.1 @@ -2894,7 +2894,7 @@ __metadata: nanoid: ^3.3.1 read-pkg-up: ^7.0.1 regenerator-runtime: ^0.13.7 - checksum: 6f6323fe0e0fe9301b63a951e4f2959a68847bc20b67e3910587e6979b3e0b058ce5ec1b2bc89e666b77e91211dd0bb2ed8bd23060831f599365b8f41630db53 + checksum: aebb83186ff7308e21185a7152b27aed43f6d3967a7253ac94e3d4c1bce4935c471500c37d195e03f98953944812d2b24518d4147704e7ffb211430b27a2354e languageName: node linkType: hard @@ -2926,34 +2926,34 @@ __metadata: languageName: node linkType: hard -"@storybook/theming@npm:6.5.14, @storybook/theming@npm:^6.0.0": - version: 6.5.14 - resolution: "@storybook/theming@npm:6.5.14" +"@storybook/theming@npm:6.5.15, @storybook/theming@npm:^6.0.0": + version: 6.5.15 + resolution: "@storybook/theming@npm:6.5.15" dependencies: - "@storybook/client-logger": 6.5.14 + "@storybook/client-logger": 6.5.15 core-js: ^3.8.2 memoizerific: ^1.11.3 regenerator-runtime: ^0.13.7 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: d139325dd51e8dfa58458a5c033104123b019fc02ddc899898e02de2b5d1358fd318b5def7ef82e6138420f9198e90d50b0fdfbea926987ac6852fc3a2e77c6d + checksum: 84d09b6bdd0a00246b207ef4307fc0ecbb5861792547a070ed45470335c323f18ba607cd1d3f0a5cea7e979dd73315cdb091548fe70e5946c1593d8c691be7ba languageName: node linkType: hard -"@storybook/ui@npm:6.5.14": - version: 6.5.14 - resolution: "@storybook/ui@npm:6.5.14" +"@storybook/ui@npm:6.5.15": + version: 6.5.15 + resolution: "@storybook/ui@npm:6.5.15" dependencies: - "@storybook/addons": 6.5.14 - "@storybook/api": 6.5.14 - "@storybook/channels": 6.5.14 - "@storybook/client-logger": 6.5.14 - "@storybook/components": 6.5.14 - "@storybook/core-events": 6.5.14 - "@storybook/router": 6.5.14 + "@storybook/addons": 6.5.15 + "@storybook/api": 6.5.15 + "@storybook/channels": 6.5.15 + "@storybook/client-logger": 6.5.15 + "@storybook/components": 6.5.15 + "@storybook/core-events": 6.5.15 + "@storybook/router": 6.5.15 "@storybook/semver": ^7.3.2 - "@storybook/theming": 6.5.14 + "@storybook/theming": 6.5.15 core-js: ^3.8.2 memoizerific: ^1.11.3 qs: ^6.10.0 @@ -2962,94 +2962,94 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 898bf81d9ab64d792bdca23b0ec465500af1e42ed5ebace5847416d0ec36d32043fb7c547452a626ce285efd966569e6bfd4f84ddd691367259553ca59538646 + checksum: 8b75290c65a6a2beb3db4157ed95ce74dab06d5499dc3fc7a848fa5c9fc0f506bf6533638bb50c3a1f27acfeaa6ade0acdde8beede2241eba8d577965d85d299 languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-darwin-arm64@npm:1.3.22" +"@swc/core-darwin-arm64@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-darwin-arm64@npm:1.3.23" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-darwin-x64@npm:1.3.22" +"@swc/core-darwin-x64@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-darwin-x64@npm:1.3.23" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.22" +"@swc/core-linux-arm-gnueabihf@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.23" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.22" +"@swc/core-linux-arm64-gnu@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.23" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.22" +"@swc/core-linux-arm64-musl@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.23" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.22" +"@swc/core-linux-x64-gnu@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.23" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-x64-musl@npm:1.3.22" +"@swc/core-linux-x64-musl@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-x64-musl@npm:1.3.23" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.22" +"@swc/core-win32-arm64-msvc@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.23" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.22" +"@swc/core-win32-ia32-msvc@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.23" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.22" +"@swc/core-win32-x64-msvc@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.23" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.9": - version: 1.3.22 - resolution: "@swc/core@npm:1.3.22" + version: 1.3.23 + resolution: "@swc/core@npm:1.3.23" dependencies: - "@swc/core-darwin-arm64": 1.3.22 - "@swc/core-darwin-x64": 1.3.22 - "@swc/core-linux-arm-gnueabihf": 1.3.22 - "@swc/core-linux-arm64-gnu": 1.3.22 - "@swc/core-linux-arm64-musl": 1.3.22 - "@swc/core-linux-x64-gnu": 1.3.22 - "@swc/core-linux-x64-musl": 1.3.22 - "@swc/core-win32-arm64-msvc": 1.3.22 - "@swc/core-win32-ia32-msvc": 1.3.22 - "@swc/core-win32-x64-msvc": 1.3.22 + "@swc/core-darwin-arm64": 1.3.23 + "@swc/core-darwin-x64": 1.3.23 + "@swc/core-linux-arm-gnueabihf": 1.3.23 + "@swc/core-linux-arm64-gnu": 1.3.23 + "@swc/core-linux-arm64-musl": 1.3.23 + "@swc/core-linux-x64-gnu": 1.3.23 + "@swc/core-linux-x64-musl": 1.3.23 + "@swc/core-win32-arm64-msvc": 1.3.23 + "@swc/core-win32-ia32-msvc": 1.3.23 + "@swc/core-win32-x64-msvc": 1.3.23 dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -3073,7 +3073,7 @@ __metadata: optional: true bin: swcx: run_swcx.js - checksum: 5c6fa613502cbfae9985c7e97452649120e50e65695c8243111b422f6dddfebabdbc5ec94a9238e199e6a823a86906635e18e731f8ed45470bca8e4964d11659 + checksum: 2a92949c33f292a369f4a750a8a9759f88f6f399bc0beef54768fce3d1af5cf0c33a4c8f3c2478020ae95e99d99b7c17f301b79163cdbcdf533b91675f1d2e8d languageName: node linkType: hard diff --git a/yarn.lock b/yarn.lock index 4d60c18102..d6c0d3335d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -408,15 +408,15 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.229.0" +"@aws-sdk/client-cognito-identity@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.235.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.229.0 - "@aws-sdk/config-resolver": 3.226.0 - "@aws-sdk/credential-provider-node": 3.229.0 + "@aws-sdk/client-sts": 3.235.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/credential-provider-node": 3.235.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -425,7 +425,7 @@ __metadata: "@aws-sdk/middleware-host-header": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 + "@aws-sdk/middleware-retry": 3.235.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-signing": 3.226.0 "@aws-sdk/middleware-stack": 3.226.0 @@ -433,14 +433,14 @@ __metadata: "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 "@aws-sdk/util-endpoints": 3.226.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-user-agent-browser": 3.226.0 @@ -448,20 +448,20 @@ __metadata: "@aws-sdk/util-utf8-browser": 3.188.0 "@aws-sdk/util-utf8-node": 3.208.0 tslib: ^2.3.1 - checksum: 742e26278a61685b276e4dbaa15e3e3fc5702606ec2be72f59a210eedba99b8b66fabfd2d00927e76f7941dbe63701176f5e8c6cad82224f30dfeca2b125c186 + checksum: 4637132cc1a95823867c5ee80b35c7b84ddeed83c0778c2d7c197b26f24899641c825926c886c293f36d62e6b72be03ee091ac11cc9dbd875ad85936548ee178 languageName: node linkType: hard "@aws-sdk/client-s3@npm:^3.208.0": - version: 3.229.0 - resolution: "@aws-sdk/client-s3@npm:3.229.0" + version: 3.235.0 + resolution: "@aws-sdk/client-s3@npm:3.235.0" dependencies: "@aws-crypto/sha1-browser": 2.0.0 "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.229.0 - "@aws-sdk/config-resolver": 3.226.0 - "@aws-sdk/credential-provider-node": 3.229.0 + "@aws-sdk/client-sts": 3.235.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/credential-provider-node": 3.235.0 "@aws-sdk/eventstream-serde-browser": 3.226.0 "@aws-sdk/eventstream-serde-config-resolver": 3.226.0 "@aws-sdk/eventstream-serde-node": 3.226.0 @@ -480,8 +480,8 @@ __metadata: "@aws-sdk/middleware-location-constraint": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 - "@aws-sdk/middleware-sdk-s3": 3.226.0 + "@aws-sdk/middleware-retry": 3.235.0 + "@aws-sdk/middleware-sdk-s3": 3.231.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-signing": 3.226.0 "@aws-sdk/middleware-ssec": 3.226.0 @@ -491,14 +491,14 @@ __metadata: "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 "@aws-sdk/signature-v4-multi-region": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 "@aws-sdk/util-endpoints": 3.226.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-stream-browser": 3.226.0 @@ -511,19 +511,19 @@ __metadata: "@aws-sdk/xml-builder": 3.201.0 fast-xml-parser: 4.0.11 tslib: ^2.3.1 - checksum: 982874fcb2206ae29cc51ca765b50de5536bac7a0e4bd22fbfeee8c5163dcf49df093d61a239bb87dd27fb0267817ab89d4b2b1b918782272d7366d9063cbeb6 + checksum: b16ce0a34a4d302edbc9cae91296a90a907511d6f0985feccf2196d537e1f1bfff6bfc0dafcb7ea1d5d7d0afd79d843cc15f8a5f87debd08852de338c698169b languageName: node linkType: hard "@aws-sdk/client-sqs@npm:^3.208.0": - version: 3.229.0 - resolution: "@aws-sdk/client-sqs@npm:3.229.0" + version: 3.235.0 + resolution: "@aws-sdk/client-sqs@npm:3.235.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.229.0 - "@aws-sdk/config-resolver": 3.226.0 - "@aws-sdk/credential-provider-node": 3.229.0 + "@aws-sdk/client-sts": 3.235.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/credential-provider-node": 3.235.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -533,7 +533,7 @@ __metadata: "@aws-sdk/middleware-host-header": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 + "@aws-sdk/middleware-retry": 3.235.0 "@aws-sdk/middleware-sdk-sqs": 3.226.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-signing": 3.226.0 @@ -542,14 +542,14 @@ __metadata: "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 "@aws-sdk/util-endpoints": 3.226.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-user-agent-browser": 3.226.0 @@ -558,17 +558,17 @@ __metadata: "@aws-sdk/util-utf8-node": 3.208.0 fast-xml-parser: 4.0.11 tslib: ^2.3.1 - checksum: 50b4aec5194004edd0e3ddc85b3bb05e29d29e66c7b15fd6a20ee381d480cb8a74be24f4d73024ba8d255a8b825f75a3bad0473fc8d4ebd365f36aaa0f1c5b07 + checksum: 04da2ab0a850fa74265b9ab91b14fdf470d7f2850e31866b3582b83a01991bd9555b370e34bceba2445910b2d60cf8e17d7ead1f5caa94987e4114db949548f8 languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.229.0" +"@aws-sdk/client-sso-oidc@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.235.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.226.0 + "@aws-sdk/config-resolver": 3.234.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -577,21 +577,21 @@ __metadata: "@aws-sdk/middleware-host-header": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 + "@aws-sdk/middleware-retry": 3.235.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-stack": 3.226.0 "@aws-sdk/middleware-user-agent": 3.226.0 "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 "@aws-sdk/util-endpoints": 3.226.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-user-agent-browser": 3.226.0 @@ -599,17 +599,17 @@ __metadata: "@aws-sdk/util-utf8-browser": 3.188.0 "@aws-sdk/util-utf8-node": 3.208.0 tslib: ^2.3.1 - checksum: 031bedebd213f7f2522321abb55bb50a2271e4d63ad38e3596eab6daeddb39044a4d72f554fc3e716ea4108317b3169ffb681b6e75f45ec83f730619b588eac6 + checksum: c62558375fb6d3ce44136019de99e5134805894a80cec191e145003c0e065eb52ba0a288a62884371d6a69370f92df522b120e1c5428520c09ba0f4cdc5b91b7 languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/client-sso@npm:3.229.0" +"@aws-sdk/client-sso@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/client-sso@npm:3.235.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.226.0 + "@aws-sdk/config-resolver": 3.234.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -618,21 +618,21 @@ __metadata: "@aws-sdk/middleware-host-header": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 + "@aws-sdk/middleware-retry": 3.235.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-stack": 3.226.0 "@aws-sdk/middleware-user-agent": 3.226.0 "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 "@aws-sdk/util-endpoints": 3.226.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-user-agent-browser": 3.226.0 @@ -640,18 +640,18 @@ __metadata: "@aws-sdk/util-utf8-browser": 3.188.0 "@aws-sdk/util-utf8-node": 3.208.0 tslib: ^2.3.1 - checksum: 970e6ea9666a6e976f0b4e7f693e286ade8c090aca1ae780835050623f5d8bd3ecbc0336d1b3f4037e92d50c48b5d18d5ad6d595ddb62db7efe38b90ab928129 + checksum: 9852704cc383cbc8e44013eed6de514f60dc4f70ab89ceea79971b4b286db6b923648e8e4169d248f0888efed19c7c5fcc5748177577635d07080fd4980431d7 languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.229.0, @aws-sdk/client-sts@npm:^3.208.0": - version: 3.229.0 - resolution: "@aws-sdk/client-sts@npm:3.229.0" +"@aws-sdk/client-sts@npm:3.235.0, @aws-sdk/client-sts@npm:^3.208.0": + version: 3.235.0 + resolution: "@aws-sdk/client-sts@npm:3.235.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.226.0 - "@aws-sdk/credential-provider-node": 3.229.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/credential-provider-node": 3.235.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -660,7 +660,7 @@ __metadata: "@aws-sdk/middleware-host-header": 3.226.0 "@aws-sdk/middleware-logger": 3.226.0 "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 + "@aws-sdk/middleware-retry": 3.235.0 "@aws-sdk/middleware-sdk-sts": 3.226.0 "@aws-sdk/middleware-serde": 3.226.0 "@aws-sdk/middleware-signing": 3.226.0 @@ -669,14 +669,14 @@ __metadata: "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/node-http-handler": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/url-parser": 3.226.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 "@aws-sdk/util-endpoints": 3.226.0 "@aws-sdk/util-retry": 3.229.0 "@aws-sdk/util-user-agent-browser": 3.226.0 @@ -685,32 +685,32 @@ __metadata: "@aws-sdk/util-utf8-node": 3.208.0 fast-xml-parser: 4.0.11 tslib: ^2.3.1 - checksum: 18d357f2433ef832948f867c0e22ba34ac57c096e8b5209e0203d892acab9de60d9114a513f8ec9354ec83a89652a8285a49f89ee3203cededc514a25eea67f5 + checksum: 9a2ec3240bd01fd1ed95b2c6766ea8d141e4b85a6535fcbb5c57ac725ef58c2d1c1403a61c336adbb1eceb5dd306ac1d35d7b8f25ed1ebc544a14ad14fb038a7 languageName: node linkType: hard -"@aws-sdk/config-resolver@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/config-resolver@npm:3.226.0" +"@aws-sdk/config-resolver@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/config-resolver@npm:3.234.0" dependencies: "@aws-sdk/signature-v4": 3.226.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/util-config-provider": 3.208.0 "@aws-sdk/util-middleware": 3.226.0 tslib: ^2.3.1 - checksum: 08bfbc0528da98cba2b46bda05cd9af46f6eced3dbe5e415b11465501fe672d99b869adc9f08cfd2f138c9b61ac119b43eb9a90a490395aec705e1b795022d4d + checksum: a72bdb1748d7f04c95436ab1e8650b51c1bfd2745114e52f7d05339c61bb6a859306be0c6cc0034ecf4f3b29a2d68b48fe362762a58c90ec55a3444b93b5700d languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.229.0" +"@aws-sdk/credential-provider-cognito-identity@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.235.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.229.0 + "@aws-sdk/client-cognito-identity": 3.235.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 37cc46249390dc5bc6cb39b014a2c9710fcbe53d22b8cf90452473712f7464dffcf286c3c7cb72ae268988c136710a1dbcb52006d93d2de8973c40953ef79058 + checksum: 85d348faa5161282d226040315aaff1a754d3bbd23ccb9131f021a5f6a473be76b80e2b3f5132d3b0a119732822d6b76829626d64e6c71c4d61d1fcbeb6e0080 languageName: node linkType: hard @@ -738,37 +738,38 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.229.0" +"@aws-sdk/credential-provider-ini@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.235.0" dependencies: "@aws-sdk/credential-provider-env": 3.226.0 "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.229.0 + "@aws-sdk/credential-provider-process": 3.226.0 + "@aws-sdk/credential-provider-sso": 3.235.0 "@aws-sdk/credential-provider-web-identity": 3.226.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: fb573675c0c34c7fa0e207c78190bce73e42fc1713d93a25868b50002352a70f3584e2ab0a0b249103bcf25c3a60c26261ad3dcfc1d6280b4f5dc8ad4e4b3f49 + checksum: c910746d90ec363691dc99d53594beb49ea8562ef69c5a2e9a1702febc7d870cfe5b0f441afdae2bed643a4e8901b82f965660cdd70077bb006978fdafddeb05 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.229.0, @aws-sdk/credential-provider-node@npm:^3.208.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.229.0" +"@aws-sdk/credential-provider-node@npm:3.235.0, @aws-sdk/credential-provider-node@npm:^3.208.0": + version: 3.235.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.235.0" dependencies: "@aws-sdk/credential-provider-env": 3.226.0 "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.229.0 + "@aws-sdk/credential-provider-ini": 3.235.0 "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.229.0 + "@aws-sdk/credential-provider-sso": 3.235.0 "@aws-sdk/credential-provider-web-identity": 3.226.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: a8ad0f6aeb3c7ee03937e7389dbcabeb81f2a6e23c3bfeb84f518b063fb156a2d2f2e4a7267655c6bdfa178ba51e9e0ea74c98397dd6dd58b9a315d9e5a4a6de + checksum: bfea379a5e66c311c57a1f7390b2e508d42f8cf3e1a48a5b9585b33c76339c7e8806dba413c7d5bf6d669ffd05a4c55ef705f92bf4687ba8f5e359c5d3c7495e languageName: node linkType: hard @@ -784,17 +785,17 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.229.0" +"@aws-sdk/credential-provider-sso@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.235.0" dependencies: - "@aws-sdk/client-sso": 3.229.0 + "@aws-sdk/client-sso": 3.235.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/token-providers": 3.229.0 + "@aws-sdk/token-providers": 3.235.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 9497a8c5dfddf70a4740e9e485cea757070a6e9c5c94469cc51599918f2689f6ca794fcaba98320b20aa7b81e7e56c3b91f11d3cf8111335e445638825d0ee58 + checksum: 358fdda689c1f9be768516ca39de17e7fa7832d3d89d8893dd58f5d3377908ee2580155c1ba984c5ed21a410cda681bd22c7c74876af06b3496641a98b62353f languageName: node linkType: hard @@ -810,25 +811,25 @@ __metadata: linkType: hard "@aws-sdk/credential-providers@npm:^3.208.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-providers@npm:3.229.0" + version: 3.235.0 + resolution: "@aws-sdk/credential-providers@npm:3.235.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.229.0 - "@aws-sdk/client-sso": 3.229.0 - "@aws-sdk/client-sts": 3.229.0 - "@aws-sdk/credential-provider-cognito-identity": 3.229.0 + "@aws-sdk/client-cognito-identity": 3.235.0 + "@aws-sdk/client-sso": 3.235.0 + "@aws-sdk/client-sts": 3.235.0 + "@aws-sdk/credential-provider-cognito-identity": 3.235.0 "@aws-sdk/credential-provider-env": 3.226.0 "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.229.0 - "@aws-sdk/credential-provider-node": 3.229.0 + "@aws-sdk/credential-provider-ini": 3.235.0 + "@aws-sdk/credential-provider-node": 3.235.0 "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.229.0 + "@aws-sdk/credential-provider-sso": 3.235.0 "@aws-sdk/credential-provider-web-identity": 3.226.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 9acd1bfb97d5c45a3b02ed74540317791eb00a058bbe4ab2852099f59dff62ab6a7f834dcfdb1f75e80956b86d80a3b44c0574361a12473f8a3e493437a1b36a + checksum: 3c8436f78a4ddcf295b06d77ed3cb912a8ae56ee047526663f8316dde6b646095c8288480214c9e3f68cb98772511cb7fcec6f8c4100fba899c495a9429c3ba2 languageName: node linkType: hard @@ -966,11 +967,11 @@ __metadata: linkType: hard "@aws-sdk/lib-storage@npm:^3.208.0": - version: 3.229.0 - resolution: "@aws-sdk/lib-storage@npm:3.229.0" + version: 3.235.0 + resolution: "@aws-sdk/lib-storage@npm:3.235.0" dependencies: "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 buffer: 5.6.0 events: 3.3.0 stream-browserify: 3.0.0 @@ -978,7 +979,7 @@ __metadata: peerDependencies: "@aws-sdk/abort-controller": ^3.0.0 "@aws-sdk/client-s3": ^3.0.0 - checksum: 27466774f02d3d9b4f4628dc68c9fb0e4fd492b5d310c39be77a92675a3bc322aaf48511f810dc96d4a8d5a7e333363bbde8815fae74221051aa1ca48be70136 + checksum: a9a8993fdc8c05769a2f0c5c838e9b2ba72216f234e67c1a8bcebf8f812ab397d48c8b118959f4d9918ad8811fdf93b3b47812075b0995af8c11cb26c0f3c305 languageName: node linkType: hard @@ -1101,30 +1102,30 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-retry@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/middleware-retry@npm:3.229.0" +"@aws-sdk/middleware-retry@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/middleware-retry@npm:3.235.0" dependencies: "@aws-sdk/protocol-http": 3.226.0 "@aws-sdk/service-error-classification": 3.229.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-retry": 3.229.0 tslib: ^2.3.1 uuid: ^8.3.2 - checksum: a146879b0d4d940aed398c4bfd288b28e678bff7cbe04983123caf3bcb73fecc801ec19d13ca82ac1b2977515dc71ebe28efc400c07839004213017f93369b04 + checksum: 397226fd10d8b0587a35ccab92160223f10740beb01ccac75dda0e30336b83c091c9aa51b9132a56ff6cccd6353b9e3c6ecf21ae18f20f8127e7e9e209e59a2a languageName: node linkType: hard -"@aws-sdk/middleware-sdk-s3@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-sdk-s3@npm:3.226.0" +"@aws-sdk/middleware-sdk-s3@npm:3.231.0": + version: 3.231.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.231.0" dependencies: - "@aws-sdk/middleware-bucket-endpoint": 3.226.0 "@aws-sdk/protocol-http": 3.226.0 "@aws-sdk/types": 3.226.0 "@aws-sdk/util-arn-parser": 3.208.0 tslib: ^2.3.1 - checksum: 61902d5378ead403f91c55a7156571747f2163189790ee0f59a2200f5cacf55af2567c20373773c803a82578f371ab82b7368bc42c08fba1349b6feb99ee8c2c + checksum: d60f189d7fb4bcbbd002999f537c49f22c1e2a3e5969702a8840f17d0314f6e9eb586681995bb2b6634ae5162bebf44a3ccfecf23fdfc3c9fa6797f9adc83423 languageName: node linkType: hard @@ -1343,27 +1344,27 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/smithy-client@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/smithy-client@npm:3.226.0" +"@aws-sdk/smithy-client@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/smithy-client@npm:3.234.0" dependencies: "@aws-sdk/middleware-stack": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 7c77d26367b94286fd0eceb5036f3a931314ab24c01ae64f645ea1390b3dc94d443a751be2be504d36aeeef86c5412facdc7df9624a792d9e97e5d53531f850c + checksum: 7b8299f81fde410b8f597662d4174a29740cb2791a2377e5009a73c0e7531fb440712ab25c837a0351dbceac4763cc8fadc6d4362727cf3ae749b25515da4ea1 languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/token-providers@npm:3.229.0" +"@aws-sdk/token-providers@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/token-providers@npm:3.235.0" dependencies: - "@aws-sdk/client-sso-oidc": 3.229.0 + "@aws-sdk/client-sso-oidc": 3.235.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: b099537ba47f3c2520f8081590ef97d22279aea39fcb1f3883f611273c8f15f4190d7b44f3f2debfdb36900f124e5f188193b039ce95c45c6e20d3b48ef9a3da + checksum: 5b9cd8cfd697f04a7c628329af1cc5003ec25fe08626148c55389311b53ecbaa47b83f2c6b832fa847f9db2ca5a3f63bcb8a1059b1b3b3590010acf3d4610896 languageName: node linkType: hard @@ -1450,29 +1451,29 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-browser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.226.0" +"@aws-sdk/util-defaults-mode-browser@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.234.0" dependencies: "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/types": 3.226.0 bowser: ^2.11.0 tslib: ^2.3.1 - checksum: 80a1383ef46c9289b7ef88ed1223e07f06bd3989517157199e325492d3da465d42bd9a975432b6d7c0e7e11f21aea02e5d977ddcc28c9f8b9f13e172fce0e657 + checksum: 79a381a632f867477dc7f948243c8ba82932d3f10325c76a5f2cf96412560648d149ba43ee31794bc45d81158a8c361d890b291880fc0c05f9bafc99cded5ef4 languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-node@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-defaults-mode-node@npm:3.226.0" +"@aws-sdk/util-defaults-mode-node@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/util-defaults-mode-node@npm:3.234.0" dependencies: - "@aws-sdk/config-resolver": 3.226.0 + "@aws-sdk/config-resolver": 3.234.0 "@aws-sdk/credential-provider-imds": 3.226.0 "@aws-sdk/node-config-provider": 3.226.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: cb34426f745aa3965fe25d5c8e38eb4d1c3f85f6f071995b15ecad48afcd0ca01a01b7f572c26dacd917134d9c676625492df8f6fb01d702ad6becb65bd34105 + checksum: b70becd9e561c1622c75a452ed8c7a8b14b84eba35988159f29476db8c2b47ec72f0b7c19d1a252c725756af1fff1df4201e5e92b6136d1df9170e806dca5219 languageName: node linkType: hard @@ -3298,12 +3299,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.0, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.18.9 - resolution: "@babel/runtime@npm:7.18.9" +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.0, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": + version: 7.20.6 + resolution: "@babel/runtime@npm:7.20.6" dependencies: - regenerator-runtime: ^0.13.4 - checksum: 36dd736baba7164e82b3cc9d43e081f0cb2d05ff867ad39cac515d99546cee75b7f782018b02a3dcf5f2ef3d27f319faa68965fdfec49d4912c60c6002353a2e + regenerator-runtime: ^0.13.11 + checksum: 42a8504db21031b1859fbc0f52d698a3d2f5ada9519eb76c6f96a7e657d8d555732a18fe71ef428a67cc9fc81ca0d3562fb7afdc70549c5fec343190cbaa9b03 languageName: node linkType: hard @@ -3402,7 +3403,7 @@ __metadata: "@google-cloud/storage": ^6.0.0 "@keyv/memcache": ^1.3.5 "@keyv/redis": ^2.5.3 - "@kubernetes/client-node": 0.17.0 + "@kubernetes/client-node": 0.18.0 "@manypkg/get-packages": ^1.1.3 "@octokit/rest": ^19.0.3 "@types/archiver": ^5.1.0 @@ -3542,17 +3543,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-client@npm:^1.1.2": - version: 1.1.2 - resolution: "@backstage/catalog-client@npm:1.1.2" - dependencies: - "@backstage/catalog-model": ^1.1.3 - "@backstage/errors": ^1.1.3 - cross-fetch: ^3.1.5 - checksum: 1f57de39d9122cb104283ab8c0d107a40148d4cd0d7a2c012013851682831810df2cae204090d0d1382b7cd82a801b930e2c653b77df97f134d8e746a9e63900 - languageName: node - linkType: hard - "@backstage/catalog-client@workspace:^, @backstage/catalog-client@workspace:packages/catalog-client": version: 0.0.0-use.local resolution: "@backstage/catalog-client@workspace:packages/catalog-client" @@ -3565,22 +3555,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-model@npm:^1.1.2, @backstage/catalog-model@npm:^1.1.3": - version: 1.1.3 - resolution: "@backstage/catalog-model@npm:1.1.3" - dependencies: - "@backstage/config": ^1.0.4 - "@backstage/errors": ^1.1.3 - "@backstage/types": ^1.0.1 - ajv: ^8.10.0 - json-schema: ^0.4.0 - lodash: ^4.17.21 - uuid: ^8.0.0 - checksum: 51e6821be44201d012550d7429cf4dc278fdd7dc001f4f5f6339a44a7e4dc155fbd44105d0dd96ea07b409fe93cd113a5a67370a758dfd368ab7b8e18d37ee6a - languageName: node - linkType: hard - -"@backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model": +"@backstage/catalog-model@^1.1.2, @backstage/catalog-model@^1.1.3, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model": version: 0.0.0-use.local resolution: "@backstage/catalog-model@workspace:packages/catalog-model" dependencies: @@ -3793,17 +3768,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/config@npm:^1.0.3, @backstage/config@npm:^1.0.4": - version: 1.0.4 - resolution: "@backstage/config@npm:1.0.4" - dependencies: - "@backstage/types": ^1.0.1 - lodash: ^4.17.21 - checksum: f18e1afa024a752fc2667e2d0e54eadedfab231d9346a0fc8f8c0a5a5c04138ac1814209d89b43ec50f14309a76ad77f16213116675122fecc00bf085236d83e - languageName: node - linkType: hard - -"@backstage/config@workspace:^, @backstage/config@workspace:packages/config": +"@backstage/config@^1.0.3, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": version: 0.0.0-use.local resolution: "@backstage/config@workspace:packages/config" dependencies: @@ -3849,109 +3814,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-components@npm:^0.11.2": - version: 0.11.2 - resolution: "@backstage/core-components@npm:0.11.2" - dependencies: - "@backstage/config": ^1.0.3 - "@backstage/core-plugin-api": ^1.0.7 - "@backstage/errors": ^1.1.2 - "@backstage/theme": ^0.2.16 - "@backstage/version-bridge": ^1.0.1 - "@material-table/core": ^3.1.0 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@material-ui/lab": 4.0.0-alpha.57 - "@react-hookz/web": ^15.0.0 - "@types/react-sparklines": ^1.7.0 - "@types/react-text-truncate": ^0.14.0 - ansi-regex: ^6.0.1 - classnames: ^2.2.6 - d3-selection: ^3.0.0 - d3-shape: ^3.0.0 - d3-zoom: ^3.0.0 - dagre: ^0.8.5 - history: ^5.0.0 - immer: ^9.0.1 - lodash: ^4.17.21 - pluralize: ^8.0.0 - prop-types: ^15.7.2 - qs: ^6.9.4 - rc-progress: 3.4.0 - react-helmet: 6.1.0 - react-hook-form: ^7.12.2 - react-markdown: ^8.0.0 - react-sparklines: ^1.7.0 - react-syntax-highlighter: ^15.4.5 - react-text-truncate: ^0.19.0 - react-use: ^17.3.2 - react-virtualized-auto-sizer: ^1.0.6 - react-window: ^1.8.6 - remark-gfm: ^3.0.1 - zen-observable: ^0.8.15 - zod: ^3.11.6 - peerDependencies: - "@types/react": ^16.13.1 || ^17.0.0 - react: ^16.13.1 || ^17.0.0 - react-dom: ^16.13.1 || ^17.0.0 - react-router: 6.0.0-beta.0 || ^6.3.0 - react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 510a0c2594a9aa820293d79fbaeee72bef9ac5e6161645d05e2c64b7176050386984befa07921391f9758bfbf07f96170662f7881e894fb0b0f2787378b19182 - languageName: node - linkType: hard - -"@backstage/core-components@npm:^0.12.0": - version: 0.12.0 - resolution: "@backstage/core-components@npm:0.12.0" - dependencies: - "@backstage/config": ^1.0.4 - "@backstage/core-plugin-api": ^1.1.0 - "@backstage/errors": ^1.1.3 - "@backstage/theme": ^0.2.16 - "@backstage/version-bridge": ^1.0.2 - "@material-table/core": ^3.1.0 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@material-ui/lab": 4.0.0-alpha.57 - "@react-hookz/web": ^15.0.0 - "@types/react-sparklines": ^1.7.0 - "@types/react-text-truncate": ^0.14.0 - ansi-regex: ^6.0.1 - classnames: ^2.2.6 - d3-selection: ^3.0.0 - d3-shape: ^3.0.0 - d3-zoom: ^3.0.0 - dagre: ^0.8.5 - history: ^5.0.0 - immer: ^9.0.1 - lodash: ^4.17.21 - pluralize: ^8.0.0 - prop-types: ^15.7.2 - qs: ^6.9.4 - rc-progress: 3.4.0 - react-helmet: 6.1.0 - react-hook-form: ^7.12.2 - react-markdown: ^8.0.0 - react-sparklines: ^1.7.0 - react-syntax-highlighter: ^15.4.5 - react-text-truncate: ^0.19.0 - react-use: ^17.3.2 - react-virtualized-auto-sizer: ^1.0.6 - react-window: ^1.8.6 - remark-gfm: ^3.0.1 - zen-observable: ^0.8.15 - zod: ^3.11.6 - peerDependencies: - "@types/react": ^16.13.1 || ^17.0.0 - react: ^16.13.1 || ^17.0.0 - react-dom: ^16.13.1 || ^17.0.0 - react-router: 6.0.0-beta.0 || ^6.3.0 - react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: d113d62942b33b0a1290caf7ae73b223e88eb8a91c206be9a598dd4abd103faeec747dec76145af33e7e7ceb5209fdeefb507cbc21d8260681d15c449c005440 - languageName: node - linkType: hard - -"@backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components": +"@backstage/core-components@^0.12.0, @backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components": version: 0.0.0-use.local resolution: "@backstage/core-components@workspace:packages/core-components" dependencies: @@ -4022,25 +3885,58 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-plugin-api@npm:^1.0.7, @backstage/core-plugin-api@npm:^1.1.0": - version: 1.1.0 - resolution: "@backstage/core-plugin-api@npm:1.1.0" +"@backstage/core-components@npm:^0.11.2": + version: 0.11.2 + resolution: "@backstage/core-components@npm:0.11.2" dependencies: - "@backstage/config": ^1.0.4 - "@backstage/types": ^1.0.1 - "@backstage/version-bridge": ^1.0.2 + "@backstage/config": ^1.0.3 + "@backstage/core-plugin-api": ^1.0.7 + "@backstage/errors": ^1.1.2 + "@backstage/theme": ^0.2.16 + "@backstage/version-bridge": ^1.0.1 + "@material-table/core": ^3.1.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.57 + "@react-hookz/web": ^15.0.0 + "@types/react-sparklines": ^1.7.0 + "@types/react-text-truncate": ^0.14.0 + ansi-regex: ^6.0.1 + classnames: ^2.2.6 + d3-selection: ^3.0.0 + d3-shape: ^3.0.0 + d3-zoom: ^3.0.0 + dagre: ^0.8.5 history: ^5.0.0 + immer: ^9.0.1 + lodash: ^4.17.21 + pluralize: ^8.0.0 prop-types: ^15.7.2 + qs: ^6.9.4 + rc-progress: 3.4.0 + react-helmet: 6.1.0 + react-hook-form: ^7.12.2 + react-markdown: ^8.0.0 + react-sparklines: ^1.7.0 + react-syntax-highlighter: ^15.4.5 + react-text-truncate: ^0.19.0 + react-use: ^17.3.2 + react-virtualized-auto-sizer: ^1.0.6 + react-window: ^1.8.6 + remark-gfm: ^3.0.1 zen-observable: ^0.8.15 + zod: ^3.11.6 peerDependencies: "@types/react": ^16.13.1 || ^17.0.0 react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router: 6.0.0-beta.0 || ^6.3.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: e63d6ac2bcaa0678f3051c3f9e91dfbb302c16b25c01bf9b463f01aeda309aca616fc482774f0c7cc1ecf91647bcd2b4899a58712b71785831d3be62d3ff58f6 + checksum: 510a0c2594a9aa820293d79fbaeee72bef9ac5e6161645d05e2c64b7176050386984befa07921391f9758bfbf07f96170662f7881e894fb0b0f2787378b19182 languageName: node linkType: hard -"@backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api": +"@backstage/core-plugin-api@^1.0.7, @backstage/core-plugin-api@^1.1.0, @backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api": version: 0.0.0-use.local resolution: "@backstage/core-plugin-api@workspace:packages/core-plugin-api" dependencies: @@ -4125,18 +4021,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/errors@npm:^1.1.2, @backstage/errors@npm:^1.1.3": - version: 1.1.3 - resolution: "@backstage/errors@npm:1.1.3" - dependencies: - "@backstage/types": ^1.0.1 - cross-fetch: ^3.1.5 - serialize-error: ^8.0.1 - checksum: 7d5d68ea79c179557f494fd83e9e457621d417d2b785378c8494ab441271cf541f4c0952f5afcb8dade1a51e715c5da5d926ed3154af54868b60b6c1d4cc0cf4 - languageName: node - linkType: hard - -"@backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": +"@backstage/errors@^1.1.2, @backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": version: 0.0.0-use.local resolution: "@backstage/errors@workspace:packages/errors" dependencies: @@ -4166,26 +4051,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration-react@npm:^1.1.6": - version: 1.1.6 - resolution: "@backstage/integration-react@npm:1.1.6" - dependencies: - "@backstage/config": ^1.0.4 - "@backstage/core-components": ^0.12.0 - "@backstage/core-plugin-api": ^1.1.0 - "@backstage/integration": ^1.4.0 - "@backstage/theme": ^0.2.16 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@material-ui/lab": 4.0.0-alpha.57 - react-use: ^17.2.4 - peerDependencies: - react: ^16.13.1 || ^17.0.0 - checksum: d46bad383db0453fe5c2dc4a941c6b4aae7b519cc72e740259f9c34ebe295e6f62797ac6a1598c3babae015bd3666a94a4a8f684ee311aa86c00aec30a065e98 - languageName: node - linkType: hard - -"@backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react": +"@backstage/integration-react@^1.1.6, @backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react": version: 0.0.0-use.local resolution: "@backstage/integration-react@workspace:packages/integration-react" dependencies: @@ -4212,22 +4078,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration@npm:^1.4.0": - version: 1.4.0 - resolution: "@backstage/integration@npm:1.4.0" - dependencies: - "@backstage/config": ^1.0.4 - "@backstage/errors": ^1.1.3 - "@octokit/auth-app": ^4.0.0 - "@octokit/rest": ^19.0.3 - cross-fetch: ^3.1.5 - git-url-parse: ^13.0.0 - lodash: ^4.17.21 - luxon: ^3.0.0 - checksum: 69ca3c99c96ca840990bfeedbc7099f39668bafdc11298bb74000473efd49b5b43d9ad610adcef2635bfdaaa8eb0f6381413ee43d32a5a9725dccc020bada177 - languageName: node - linkType: hard - "@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": version: 0.0.0-use.local resolution: "@backstage/integration@workspace:packages/integration" @@ -5245,6 +5095,7 @@ __metadata: "@backstage/plugin-search-backend-node": "workspace:^" "@backstage/plugin-search-common": "workspace:^" "@backstage/types": "workspace:^" + "@opentelemetry/api": ^1.3.0 "@types/core-js": ^2.5.4 "@types/express": ^4.17.6 "@types/git-url-parse": ^9.0.0 @@ -5278,18 +5129,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-common@npm:^1.0.7, @backstage/plugin-catalog-common@npm:^1.0.8": - version: 1.0.8 - resolution: "@backstage/plugin-catalog-common@npm:1.0.8" - dependencies: - "@backstage/catalog-model": ^1.1.3 - "@backstage/plugin-permission-common": ^0.7.1 - "@backstage/plugin-search-common": ^1.1.1 - checksum: bcf05d3b05bfb6662b350e6168c6eae8d57b8ed0f4dcd029eac5b48ce87ffa424708f9cdf54f6ff3fc43c094b6553508d53a1bc74a4fad49a1766e1d1bca0b5d - languageName: node - linkType: hard - -"@backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": +"@backstage/plugin-catalog-common@^1.0.7, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-common@workspace:plugins/catalog-common" dependencies: @@ -5417,41 +5257,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-react@npm:^1.2.0, @backstage/plugin-catalog-react@npm:^1.2.1": - version: 1.2.1 - resolution: "@backstage/plugin-catalog-react@npm:1.2.1" - dependencies: - "@backstage/catalog-client": ^1.1.2 - "@backstage/catalog-model": ^1.1.3 - "@backstage/core-components": ^0.12.0 - "@backstage/core-plugin-api": ^1.1.0 - "@backstage/errors": ^1.1.3 - "@backstage/integration": ^1.4.0 - "@backstage/plugin-catalog-common": ^1.0.8 - "@backstage/plugin-permission-common": ^0.7.1 - "@backstage/plugin-permission-react": ^0.4.7 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.1 - "@backstage/version-bridge": ^1.0.2 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@material-ui/lab": 4.0.0-alpha.57 - classnames: ^2.2.6 - jwt-decode: ^3.1.0 - lodash: ^4.17.21 - qs: ^6.9.4 - react-use: ^17.2.4 - yaml: ^2.0.0 - zen-observable: ^0.8.15 - peerDependencies: - "@types/react": ^16.13.1 || ^17.0.0 - react: ^16.13.1 || ^17.0.0 - react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: 623103b7cb8cc4f08edb31b79e46d04e5f2eb27e6d95421430da4a9d1a18e74dc4aabc3d7c9e2ff15c615f6881b6a2e35fb953abe0bac7a8b93ec47d65432517 - languageName: node - linkType: hard - -"@backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react": +"@backstage/plugin-catalog-react@^1.2.0, @backstage/plugin-catalog-react@^1.2.1, @backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-react@workspace:plugins/catalog-react" dependencies: @@ -6027,7 +5833,7 @@ __metadata: express: ^4.18.1 express-promise-router: ^4.1.0 lodash: ^4.17.21 - msw: ^0.47.0 + msw: ^0.49.0 node-fetch: ^2.6.7 supertest: ^6.2.4 winston: ^3.2.1 @@ -6505,31 +6311,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-home@npm:^0.4.27": - version: 0.4.27 - resolution: "@backstage/plugin-home@npm:0.4.27" - dependencies: - "@backstage/catalog-model": ^1.1.3 - "@backstage/config": ^1.0.4 - "@backstage/core-components": ^0.12.0 - "@backstage/core-plugin-api": ^1.1.0 - "@backstage/plugin-catalog-react": ^1.2.1 - "@backstage/plugin-stack-overflow": ^0.1.7 - "@backstage/theme": ^0.2.16 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@material-ui/lab": 4.0.0-alpha.57 - lodash: ^4.17.21 - react-use: ^17.2.4 - peerDependencies: - "@types/react": ^16.13.1 || ^17.0.0 - react: ^16.13.1 || ^17.0.0 - react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: 294dfe9ea8e59cef24fe71051f61ab46ee0eb140bc26828e9daa677265394a82ba869729401d898bff1b430a972131190ca98c0c4e5e15e503995332b25c02c0 - languageName: node - linkType: hard - -"@backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": +"@backstage/plugin-home@^0.4.27, @backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": version: 0.0.0-use.local resolution: "@backstage/plugin-home@workspace:plugins/home" dependencies: @@ -6734,7 +6516,7 @@ __metadata: "@backstage/plugin-kubernetes-common": "workspace:^" "@google-cloud/container": ^4.0.0 "@jest-mock/express": ^2.0.1 - "@kubernetes/client-node": 0.17.0 + "@kubernetes/client-node": 0.18.0 "@types/aws4": ^1.5.1 "@types/express": ^4.17.6 "@types/http-proxy-middleware": ^0.19.3 @@ -6768,7 +6550,7 @@ __metadata: dependencies: "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" - "@kubernetes/client-node": 0.17.0 + "@kubernetes/client-node": 0.18.0 languageName: unknown linkType: soft @@ -6787,7 +6569,7 @@ __metadata: "@backstage/plugin-kubernetes-common": "workspace:^" "@backstage/test-utils": "workspace:^" "@backstage/theme": "workspace:^" - "@kubernetes/client-node": 0.17.0 + "@kubernetes/client-node": 0.18.0 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -7064,20 +6846,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-common@npm:^0.7.1": - version: 0.7.1 - resolution: "@backstage/plugin-permission-common@npm:0.7.1" - dependencies: - "@backstage/config": ^1.0.4 - "@backstage/errors": ^1.1.3 - "@backstage/types": ^1.0.1 - cross-fetch: ^3.1.5 - uuid: ^8.0.0 - zod: ^3.11.6 - checksum: d0ed7f8f3ed4163087db140f46e0fd055cc85e8127c0b26b17a595801df4dc0fa21330513f782be75e10cffb64c5f42f82b541b669e46e63113c41052277b65e - languageName: node - linkType: hard - "@backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common": version: 0.0.0-use.local resolution: "@backstage/plugin-permission-common@workspace:plugins/permission-common" @@ -7115,24 +6883,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-react@npm:^0.4.7": - version: 0.4.7 - resolution: "@backstage/plugin-permission-react@npm:0.4.7" - dependencies: - "@backstage/config": ^1.0.4 - "@backstage/core-plugin-api": ^1.1.0 - "@backstage/plugin-permission-common": ^0.7.1 - cross-fetch: ^3.1.5 - react-use: ^17.2.4 - swr: ^1.1.2 - peerDependencies: - "@types/react": ^16.13.1 || ^17.0.0 - react: ^16.13.1 || ^17.0.0 - react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: 4fac3ea7ac33012bf0690f6a4813ec63ea96c0e145a125012f1174a3b93cac84cc803854fe2f85735d84f29a6d11ee1f97391f6551b1a7907d62cb2351dc16be - languageName: node - linkType: hard - "@backstage/plugin-permission-react@workspace:^, @backstage/plugin-permission-react@workspace:plugins/permission-react": version: 0.0.0-use.local resolution: "@backstage/plugin-permission-react@workspace:plugins/permission-react" @@ -7485,11 +7235,11 @@ __metadata: "@material-ui/lab": 4.0.0-alpha.57 "@react-hookz/web": ^20.0.0 "@rjsf/core": ^3.2.1 - "@rjsf/core-v5": "npm:@rjsf/core@^5.0.0-beta.12" + "@rjsf/core-v5": "npm:@rjsf/core@^5.0.0-beta.14" "@rjsf/material-ui": ^3.2.1 - "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@^5.0.0-beta.12" - "@rjsf/utils": ^5.0.0-beta.12 - "@rjsf/validator-ajv8": ^5.0.0-beta.12 + "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@^5.0.0-beta.14" + "@rjsf/utils": ^5.0.0-beta.14 + "@rjsf/validator-ajv6": ^5.0.0-beta.14 "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 "@testing-library/react-hooks": ^8.0.0 @@ -7558,6 +7308,7 @@ __metadata: knex: ^2.0.0 lodash: ^4.17.21 uuid: ^8.3.2 + winston: ^3.2.1 languageName: unknown linkType: soft @@ -7610,16 +7361,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-search-common@npm:^1.1.1": - version: 1.1.1 - resolution: "@backstage/plugin-search-common@npm:1.1.1" - dependencies: - "@backstage/plugin-permission-common": ^0.7.1 - "@backstage/types": ^1.0.1 - checksum: 7c90229997c5545fe7ceca1fde7159b9f30339755551a7845e8ac628b640826793f300f820dfeb76bf6e57baf03a6469806b12f381e35bda373ca2e18374873e - languageName: node - linkType: hard - "@backstage/plugin-search-common@workspace:^, @backstage/plugin-search-common@workspace:plugins/search-common": version: 0.0.0-use.local resolution: "@backstage/plugin-search-common@workspace:plugins/search-common" @@ -7785,6 +7526,18 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-sonarqube-react@workspace:^, @backstage/plugin-sonarqube-react@workspace:plugins/sonarqube-react": + version: 0.0.0-use.local + resolution: "@backstage/plugin-sonarqube-react@workspace:plugins/sonarqube-react" + dependencies: + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + peerDependencies: + react: ^16.13.1 || ^17.0.0 + languageName: unknown + linkType: soft + "@backstage/plugin-sonarqube@workspace:plugins/sonarqube": version: 0.0.0-use.local resolution: "@backstage/plugin-sonarqube@workspace:plugins/sonarqube" @@ -7796,6 +7549,7 @@ __metadata: "@backstage/core-plugin-api": "workspace:^" "@backstage/dev-utils": "workspace:^" "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-sonarqube-react": "workspace:^" "@backstage/test-utils": "workspace:^" "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 @@ -7851,39 +7605,19 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-stack-overflow-backend@workspace:plugins/stack-overflow-backend" dependencies: + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" + "@backstage/plugin-search-backend-node": "workspace:^" "@backstage/plugin-search-common": "workspace:^" + msw: ^0.49.0 node-fetch: ^2.6.7 qs: ^6.9.4 winston: ^3.2.1 languageName: unknown linkType: soft -"@backstage/plugin-stack-overflow@npm:^0.1.7": - version: 0.1.7 - resolution: "@backstage/plugin-stack-overflow@npm:0.1.7" - dependencies: - "@backstage/config": ^1.0.4 - "@backstage/core-components": ^0.12.0 - "@backstage/core-plugin-api": ^1.1.0 - "@backstage/plugin-home": ^0.4.27 - "@backstage/plugin-search-common": ^1.1.1 - "@backstage/theme": ^0.2.16 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@testing-library/jest-dom": ^5.10.1 - cross-fetch: ^3.1.5 - lodash: ^4.17.21 - qs: ^6.9.4 - react-use: ^17.2.4 - peerDependencies: - "@types/react": ^16.13.1 || ^17.0.0 - react: ^16.13.1 || ^17.0.0 - checksum: 2e0bcba106cd042f4955b89ceabdd811dfa292a407e191330d9aa2e8e79d534dddc672db2cec02ca82831db50b24a1caeecf8dd45ff3b06408be679a46356eea - languageName: node - linkType: hard - "@backstage/plugin-stack-overflow@workspace:^, @backstage/plugin-stack-overflow@workspace:plugins/stack-overflow": version: 0.0.0-use.local resolution: "@backstage/plugin-stack-overflow@workspace:plugins/stack-overflow" @@ -8249,6 +7983,7 @@ __metadata: "@backstage/plugin-catalog-react": "workspace:^" "@backstage/plugin-search-common": "workspace:^" "@backstage/plugin-search-react": "workspace:^" + "@backstage/plugin-techdocs-module-addons-contrib": "workspace:^" "@backstage/plugin-techdocs-react": "workspace:^" "@backstage/test-utils": "workspace:^" "@backstage/theme": "workspace:^" @@ -8498,6 +8233,7 @@ __metadata: "@microsoft/api-extractor": ^7.23.0 "@microsoft/api-extractor-model": ^7.17.2 "@microsoft/tsdoc": 0.14.1 + "@microsoft/tsdoc-config": 0.16.2 "@types/is-glob": ^4.0.2 "@types/mock-fs": ^4.13.0 chalk: ^4.0.0 @@ -8508,6 +8244,13 @@ __metadata: minimatch: ^5.1.1 mock-fs: ^5.1.0 ts-node: ^10.0.0 + peerDependencies: + "@rushstack/node-core-library": "*" + prettier: ^2.8.1 + typescript: "> 3.0.0" + peerDependenciesMeta: + prettier: + optional: true bin: backstage-repo-tools: bin/backstage-repo-tools languageName: unknown @@ -8551,14 +8294,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/types@npm:^1.0.0, @backstage/types@npm:^1.0.1": - version: 1.0.1 - resolution: "@backstage/types@npm:1.0.1" - checksum: 4857bc916f6afb77516fee565bb8048f2110425e32621ae7f332b9b9d32a738df26886b641339e811f3342488d44383c7a2fdd799de897b08fcca2062f1a9a13 - languageName: node - linkType: hard - -"@backstage/types@workspace:^, @backstage/types@workspace:packages/types": +"@backstage/types@^1.0.0, @backstage/types@workspace:^, @backstage/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@backstage/types@workspace:packages/types" dependencies: @@ -8569,17 +8305,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/version-bridge@npm:^1.0.1, @backstage/version-bridge@npm:^1.0.2": - version: 1.0.2 - resolution: "@backstage/version-bridge@npm:1.0.2" - peerDependencies: - "@types/react": ^16.13.1 || ^17.0.0 - react: ^16.13.1 || ^17.0.0 - checksum: b45cbf5340afb7896d6baa2a650ee21e9a63743ee589d07a30139a6e035e7e5f996a5b9fa08f5db2ccdd95db288c4b4e73b17e419f7569e061065fd362f38e75 - languageName: node - linkType: hard - -"@backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge": +"@backstage/version-bridge@^1.0.1, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge": version: 0.0.0-use.local resolution: "@backstage/version-bridge@workspace:packages/version-bridge" dependencies: @@ -8614,15 +8340,15 @@ __metadata: languageName: node linkType: hard -"@changesets/apply-release-plan@npm:^6.1.2": - version: 6.1.2 - resolution: "@changesets/apply-release-plan@npm:6.1.2" +"@changesets/apply-release-plan@npm:^6.1.3": + version: 6.1.3 + resolution: "@changesets/apply-release-plan@npm:6.1.3" dependencies: - "@babel/runtime": ^7.10.4 - "@changesets/config": ^2.2.0 + "@babel/runtime": ^7.20.1 + "@changesets/config": ^2.3.0 "@changesets/get-version-range-type": ^0.3.2 - "@changesets/git": ^1.5.0 - "@changesets/types": ^5.2.0 + "@changesets/git": ^2.0.0 + "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 detect-indent: ^6.0.0 fs-extra: ^7.0.1 @@ -8631,51 +8357,51 @@ __metadata: prettier: ^2.7.1 resolve-from: ^5.0.0 semver: ^5.4.1 - checksum: efe2cdc493cb2182140b73ff76e34ee7c90887bfa2f42b4ec07db0107ec94b9c0e95519912dafcf9eb530ad2414487fbd61ca6e6d5f853fe383db93856d0d362 + checksum: 3772a6e0ede33abdac6fcc52359307f770d5fafa53295c83e0a11b81e5802b2fe5e74e4d672c0a082f5d73dc1a9ef56509870b81824111396f74de99ada9526b languageName: node linkType: hard -"@changesets/assemble-release-plan@npm:^5.2.2": - version: 5.2.2 - resolution: "@changesets/assemble-release-plan@npm:5.2.2" +"@changesets/assemble-release-plan@npm:^5.2.3": + version: 5.2.3 + resolution: "@changesets/assemble-release-plan@npm:5.2.3" dependencies: - "@babel/runtime": ^7.10.4 + "@babel/runtime": ^7.20.1 "@changesets/errors": ^0.1.4 - "@changesets/get-dependents-graph": ^1.3.4 - "@changesets/types": ^5.2.0 + "@changesets/get-dependents-graph": ^1.3.5 + "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 semver: ^5.4.1 - checksum: 4f4a2108537ecbfbf9a554e441f4899f9c6d7e2b933deddd186d6f670ea1e52ebbbef3da01bc61b5cb735470536258b94d7bbac1035fe98dc277615d5017c61a + checksum: 2c61894414736b12e9a26903d73c387b65f4caba398e280488b885f4d0f4bb307aaa6bae140dfd754c85de6557bd07645accda2af6b8794837ab43823ba6215c languageName: node linkType: hard -"@changesets/changelog-git@npm:^0.1.13": - version: 0.1.13 - resolution: "@changesets/changelog-git@npm:0.1.13" +"@changesets/changelog-git@npm:^0.1.14": + version: 0.1.14 + resolution: "@changesets/changelog-git@npm:0.1.14" dependencies: - "@changesets/types": ^5.2.0 - checksum: c0e3b11a0a63794304e064ef01444503a864a1fbfc4c592bd3aec91ba6aa5c24fac91a47f7f0159f449cd6ce99c334290b465d84b1c98b6577937ff55974cc7e + "@changesets/types": ^5.2.1 + checksum: 60b45bb899e66cec669ab3884d5d18550cd30bf5a8b06f335eb72aa6c9e018dd3e0187e4df61c91a22076153e346b735b792f0e9c6186e6245b1b7aec2fc42d4 languageName: node linkType: hard "@changesets/cli@npm:^2.14.0": - version: 2.25.2 - resolution: "@changesets/cli@npm:2.25.2" + version: 2.26.0 + resolution: "@changesets/cli@npm:2.26.0" dependencies: - "@babel/runtime": ^7.10.4 - "@changesets/apply-release-plan": ^6.1.2 - "@changesets/assemble-release-plan": ^5.2.2 - "@changesets/changelog-git": ^0.1.13 - "@changesets/config": ^2.2.0 + "@babel/runtime": ^7.20.1 + "@changesets/apply-release-plan": ^6.1.3 + "@changesets/assemble-release-plan": ^5.2.3 + "@changesets/changelog-git": ^0.1.14 + "@changesets/config": ^2.3.0 "@changesets/errors": ^0.1.4 - "@changesets/get-dependents-graph": ^1.3.4 - "@changesets/get-release-plan": ^3.0.15 - "@changesets/git": ^1.5.0 + "@changesets/get-dependents-graph": ^1.3.5 + "@changesets/get-release-plan": ^3.0.16 + "@changesets/git": ^2.0.0 "@changesets/logger": ^0.0.5 - "@changesets/pre": ^1.0.13 - "@changesets/read": ^0.5.8 - "@changesets/types": ^5.2.0 - "@changesets/write": ^0.2.2 + "@changesets/pre": ^1.0.14 + "@changesets/read": ^0.5.9 + "@changesets/types": ^5.2.1 + "@changesets/write": ^0.2.3 "@manypkg/get-packages": ^1.1.3 "@types/is-ci": ^3.0.0 "@types/semver": ^6.0.0 @@ -8697,22 +8423,22 @@ __metadata: tty-table: ^4.1.5 bin: changeset: bin.js - checksum: 815c69cb6cee75ede88361582581d94a860d96335e7bab179481cd5e2bb1e60cc39662dccd2b2b87818e9c63a84ff9eb469ed27f13b6adf4401a699e49beb79c + checksum: 12a911b4196ff390ce114e27b475e59f5f5e1fdc7049d1ab04effe73d4811d99db47a030de6abe332300b4b2c43cffc537cec4883476b59b69bc23aee07cd5c5 languageName: node linkType: hard -"@changesets/config@npm:^2.2.0": - version: 2.2.0 - resolution: "@changesets/config@npm:2.2.0" +"@changesets/config@npm:^2.3.0": + version: 2.3.0 + resolution: "@changesets/config@npm:2.3.0" dependencies: "@changesets/errors": ^0.1.4 - "@changesets/get-dependents-graph": ^1.3.4 + "@changesets/get-dependents-graph": ^1.3.5 "@changesets/logger": ^0.0.5 - "@changesets/types": ^5.2.0 + "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 fs-extra: ^7.0.1 micromatch: ^4.0.2 - checksum: 18a6ae52150a7426bcaeb4018f7eb4e330dec69a448b093d604f1cd73d89b689eb791777cee5af57f9e572403ccbf196a572b33dbb702bae4bccfbbbd3be5ffc + checksum: 68a61437ffeda219f22f6d4d32bf8d428e6f284d7e0e191c0629f64f035a051b4068222b1ea3ff1866e5944a153004735dab82205404919f6806c97c546700b1 languageName: node linkType: hard @@ -8725,31 +8451,31 @@ __metadata: languageName: node linkType: hard -"@changesets/get-dependents-graph@npm:^1.3.4": - version: 1.3.4 - resolution: "@changesets/get-dependents-graph@npm:1.3.4" +"@changesets/get-dependents-graph@npm:^1.3.5": + version: 1.3.5 + resolution: "@changesets/get-dependents-graph@npm:1.3.5" dependencies: - "@changesets/types": ^5.2.0 + "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 chalk: ^2.1.0 fs-extra: ^7.0.1 semver: ^5.4.1 - checksum: 584852e17fd102271dea520f851c85130605f232f7f52126d202b0041269af12d5681744bfa7fecf41048e5fd62a71da726be471207832060408d9cfb35ec3fb + checksum: d7abb1da21804fd66b1458e46be2f2aec741145a43500b0463a5acfbb420ac5ce776a7328fa660ad4e6e811f933bd6f36e7bbaf00fb3f591d46f0b8e7108fdcd languageName: node linkType: hard -"@changesets/get-release-plan@npm:^3.0.15": - version: 3.0.15 - resolution: "@changesets/get-release-plan@npm:3.0.15" +"@changesets/get-release-plan@npm:^3.0.16": + version: 3.0.16 + resolution: "@changesets/get-release-plan@npm:3.0.16" dependencies: - "@babel/runtime": ^7.10.4 - "@changesets/assemble-release-plan": ^5.2.2 - "@changesets/config": ^2.2.0 - "@changesets/pre": ^1.0.13 - "@changesets/read": ^0.5.8 - "@changesets/types": ^5.2.0 + "@babel/runtime": ^7.20.1 + "@changesets/assemble-release-plan": ^5.2.3 + "@changesets/config": ^2.3.0 + "@changesets/pre": ^1.0.14 + "@changesets/read": ^0.5.9 + "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 - checksum: f2d33982dfeabe12e0eba976a3cc68e05bdd834b4dd6283f42464d028852e46f90cb14b84f0b5425813c787494d0490dc12df5d25d63559d07f47f9a7cb87c12 + checksum: ab8360c17f69437ad51edfd8910a2609ab8dc1e8cf006994b3938b2551b1eb08b7ab8043b8bf1e94916cbadd89e357a0c1148e20eab8bb5e3ae284384d239942 languageName: node linkType: hard @@ -8760,17 +8486,18 @@ __metadata: languageName: node linkType: hard -"@changesets/git@npm:^1.5.0": - version: 1.5.0 - resolution: "@changesets/git@npm:1.5.0" +"@changesets/git@npm:^2.0.0": + version: 2.0.0 + resolution: "@changesets/git@npm:2.0.0" dependencies: - "@babel/runtime": ^7.10.4 + "@babel/runtime": ^7.20.1 "@changesets/errors": ^0.1.4 - "@changesets/types": ^5.2.0 + "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 is-subdir: ^1.1.1 + micromatch: ^4.0.2 spawndamnit: ^2.0.0 - checksum: 7208d5bff9c584aa752ca6f647ba5e97356213d00c88cce65c24c6bab1b3837c14f8977c2384a7fecb81e20a0586d4cc1fddb408a38e7dd818ef18377d01ee54 + checksum: 3820b7b689bbe8dfb93222c766bee214e68a45f07b2b5c8056891f9ffe6f1e369c0f84388246a9eea5317b496ae80ffd1508319190f79c359f060ebf8ccb7b13 languageName: node linkType: hard @@ -8783,42 +8510,42 @@ __metadata: languageName: node linkType: hard -"@changesets/parse@npm:^0.3.15": - version: 0.3.15 - resolution: "@changesets/parse@npm:0.3.15" +"@changesets/parse@npm:^0.3.16": + version: 0.3.16 + resolution: "@changesets/parse@npm:0.3.16" dependencies: - "@changesets/types": ^5.2.0 + "@changesets/types": ^5.2.1 js-yaml: ^3.13.1 - checksum: 1e17f494954140d7885f4be76ac7708c19930f08ecf0b58bcee09160ad6e59223da8899df0709a78e5b5fa419f0d60eccbb34bf0c11d564e24f766c4654e3384 + checksum: 475f808ac8d33ec90af3914d55af1da8eeb9336d6cab7dd9e5be74af844f0ec04f4a67d5237a1d3284a468e0c9198e2be01d0e5870a1b28e63bc240f5f1ffea9 languageName: node linkType: hard -"@changesets/pre@npm:^1.0.13": - version: 1.0.13 - resolution: "@changesets/pre@npm:1.0.13" +"@changesets/pre@npm:^1.0.14": + version: 1.0.14 + resolution: "@changesets/pre@npm:1.0.14" dependencies: - "@babel/runtime": ^7.10.4 + "@babel/runtime": ^7.20.1 "@changesets/errors": ^0.1.4 - "@changesets/types": ^5.2.0 + "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 fs-extra: ^7.0.1 - checksum: f1cc5721546c66977a2fc62428aae9d62f78a04aefac224ac7014172807afa9d07f6da1e326d0a14b1ff12840b0379a7ec24e7984839deb337cd203b63c24b1d + checksum: 6b849bd6f916476a5b5664bc4286020bee506985c82f723a757fa4e681b0b7129db81751f16072ac55a980ffd83a4b234d6b8d0f8b6bc889aa0c0fd5377431e8 languageName: node linkType: hard -"@changesets/read@npm:^0.5.8": - version: 0.5.8 - resolution: "@changesets/read@npm:0.5.8" +"@changesets/read@npm:^0.5.9": + version: 0.5.9 + resolution: "@changesets/read@npm:0.5.9" dependencies: - "@babel/runtime": ^7.10.4 - "@changesets/git": ^1.5.0 + "@babel/runtime": ^7.20.1 + "@changesets/git": ^2.0.0 "@changesets/logger": ^0.0.5 - "@changesets/parse": ^0.3.15 - "@changesets/types": ^5.2.0 + "@changesets/parse": ^0.3.16 + "@changesets/types": ^5.2.1 chalk: ^2.1.0 fs-extra: ^7.0.1 p-filter: ^2.1.0 - checksum: cc32c5a3366be58c5b00988940eb6677898814de7ce60a3c4785d064e0df7563627f8dcfa0620f3ef9cea6f328ce538b2ba7d430c35c883f212b71a94026b2d8 + checksum: 0875a80829186de2da55bc0347601cc31b269d54fb6967a5093abacbbd9f949e352907b8340b61348a304228fdade670ded151327f16eea3424b5b4b2bb9888c languageName: node linkType: hard @@ -8829,23 +8556,23 @@ __metadata: languageName: node linkType: hard -"@changesets/types@npm:^5.2.0": - version: 5.2.0 - resolution: "@changesets/types@npm:5.2.0" - checksum: 579cf8bd2d3a03f293871976d8641531667527f248dc29310a70928d6400cef5df3d09e75beeb2ccf5d384fa1f294f0a2db243c6ebf53913d1f67e283e826f91 +"@changesets/types@npm:^5.2.1": + version: 5.2.1 + resolution: "@changesets/types@npm:5.2.1" + checksum: 527dc1aa41b040fe35bcd55f7d07bec710320b179b000c429723e25b87aac18be487daf5047d4fecf2781aad78f73abff111e76e411b652f7a2e812a464c69f2 languageName: node linkType: hard -"@changesets/write@npm:^0.2.2": - version: 0.2.2 - resolution: "@changesets/write@npm:0.2.2" +"@changesets/write@npm:^0.2.3": + version: 0.2.3 + resolution: "@changesets/write@npm:0.2.3" dependencies: - "@babel/runtime": ^7.10.4 - "@changesets/types": ^5.2.0 + "@babel/runtime": ^7.20.1 + "@changesets/types": ^5.2.1 fs-extra: ^7.0.1 human-id: ^1.0.2 prettier: ^2.7.1 - checksum: e23fb4a88e12af32db59d2f1866380ec4a50e7fa55cb55d860619f0735c5078ed170f832125672bb007b7a0cced67d9304a1b81260a7224af6afe0e3957dc999 + checksum: 40ad8069f9adc565b78a5f25992e31b41a12e551d94c29e1b4def49ce98871a1e358feda6536be8b363a6dba18b1226a22ecfc60fdd7bc1e74bfcf46b07f91be languageName: node linkType: hard @@ -8879,8 +8606,8 @@ __metadata: linkType: hard "@codemirror/language@npm:^6.0.0": - version: 6.3.1 - resolution: "@codemirror/language@npm:6.3.1" + version: 6.3.2 + resolution: "@codemirror/language@npm:6.3.2" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 @@ -8888,7 +8615,7 @@ __metadata: "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 style-mod: ^4.0.0 - checksum: 349b9806e1e2ce5d99ba1f5815cc4772e6032f68c95718594e8335196ef0686bc6378db7cdd5f0fda57ba068eebf0ee413bb336e32cc1ff958a743190a0266da + checksum: b70ed9b85d0bea79181c86e88a1f5c0bada30680ee1fe6a68efc01bc037c3d14f94a83602fc46cc4b4393589605ef7e986ed5174443502f3365dd61f883894fa languageName: node linkType: hard @@ -9124,9 +8851,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/android-arm64@npm:0.16.3" +"@esbuild/android-arm64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/android-arm64@npm:0.16.10" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -9138,65 +8865,65 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/android-arm@npm:0.16.3" +"@esbuild/android-arm@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/android-arm@npm:0.16.10" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/android-x64@npm:0.16.3" +"@esbuild/android-x64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/android-x64@npm:0.16.10" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/darwin-arm64@npm:0.16.3" +"@esbuild/darwin-arm64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/darwin-arm64@npm:0.16.10" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/darwin-x64@npm:0.16.3" +"@esbuild/darwin-x64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/darwin-x64@npm:0.16.10" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/freebsd-arm64@npm:0.16.3" +"@esbuild/freebsd-arm64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/freebsd-arm64@npm:0.16.10" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/freebsd-x64@npm:0.16.3" +"@esbuild/freebsd-x64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/freebsd-x64@npm:0.16.10" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/linux-arm64@npm:0.16.3" +"@esbuild/linux-arm64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/linux-arm64@npm:0.16.10" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/linux-arm@npm:0.16.3" +"@esbuild/linux-arm@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/linux-arm@npm:0.16.10" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/linux-ia32@npm:0.16.3" +"@esbuild/linux-ia32@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/linux-ia32@npm:0.16.10" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -9208,86 +8935,86 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/linux-loong64@npm:0.16.3" +"@esbuild/linux-loong64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/linux-loong64@npm:0.16.10" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/linux-mips64el@npm:0.16.3" +"@esbuild/linux-mips64el@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/linux-mips64el@npm:0.16.10" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/linux-ppc64@npm:0.16.3" +"@esbuild/linux-ppc64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/linux-ppc64@npm:0.16.10" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/linux-riscv64@npm:0.16.3" +"@esbuild/linux-riscv64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/linux-riscv64@npm:0.16.10" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/linux-s390x@npm:0.16.3" +"@esbuild/linux-s390x@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/linux-s390x@npm:0.16.10" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/linux-x64@npm:0.16.3" +"@esbuild/linux-x64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/linux-x64@npm:0.16.10" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/netbsd-x64@npm:0.16.3" +"@esbuild/netbsd-x64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/netbsd-x64@npm:0.16.10" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/openbsd-x64@npm:0.16.3" +"@esbuild/openbsd-x64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/openbsd-x64@npm:0.16.10" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/sunos-x64@npm:0.16.3" +"@esbuild/sunos-x64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/sunos-x64@npm:0.16.10" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/win32-arm64@npm:0.16.3" +"@esbuild/win32-arm64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/win32-arm64@npm:0.16.10" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/win32-ia32@npm:0.16.3" +"@esbuild/win32-ia32@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/win32-ia32@npm:0.16.10" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.16.3": - version: 0.16.3 - resolution: "@esbuild/win32-x64@npm:0.16.3" +"@esbuild/win32-x64@npm:0.16.10": + version: 0.16.10 + resolution: "@esbuild/win32-x64@npm:0.16.10" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -9479,14 +9206,14 @@ __metadata: linkType: hard "@graphql-codegen/cli@npm:^2.3.1": - version: 2.15.0 - resolution: "@graphql-codegen/cli@npm:2.15.0" + version: 2.16.1 + resolution: "@graphql-codegen/cli@npm:2.16.1" dependencies: "@babel/generator": ^7.18.13 "@babel/template": ^7.18.10 "@babel/types": ^7.18.13 - "@graphql-codegen/core": 2.6.6 - "@graphql-codegen/plugin-helpers": ^2.7.2 + "@graphql-codegen/core": 2.6.8 + "@graphql-codegen/plugin-helpers": ^3.1.1 "@graphql-tools/apollo-engine-loader": ^7.3.6 "@graphql-tools/code-file-loader": ^7.3.13 "@graphql-tools/git-loader": ^7.2.13 @@ -9497,8 +9224,7 @@ __metadata: "@graphql-tools/prisma-loader": ^7.2.7 "@graphql-tools/url-loader": ^7.13.2 "@graphql-tools/utils": ^8.9.0 - "@whatwg-node/fetch": ^0.3.0 - ansi-escapes: ^4.3.1 + "@whatwg-node/fetch": ^0.5.0 chalk: ^4.1.0 chokidar: ^3.5.2 cosmiconfig: ^7.0.0 @@ -9524,117 +9250,117 @@ __metadata: graphql-code-generator: cjs/bin.js graphql-codegen: cjs/bin.js graphql-codegen-esm: esm/bin.js - checksum: 062f15b957c1b296b34316e8a052af2a07c73d94dcad58dfc2d640423ee41e297f9201fbcbd226b5c0f5979008e3670a31294f7b39a8d581c19c828e69b7dd0d + checksum: 5b8adecc90af4594b6819d97173acbcb0edbd2dd3b35981dd0ef79bda722c91e4e3c581fffa68396640a9f09097f3e826fd2cf16dc1718a95ef180f934376df8 languageName: node linkType: hard -"@graphql-codegen/core@npm:2.6.6": - version: 2.6.6 - resolution: "@graphql-codegen/core@npm:2.6.6" +"@graphql-codegen/core@npm:2.6.8": + version: 2.6.8 + resolution: "@graphql-codegen/core@npm:2.6.8" dependencies: - "@graphql-codegen/plugin-helpers": ^2.7.2 + "@graphql-codegen/plugin-helpers": ^3.1.1 "@graphql-tools/schema": ^9.0.0 "@graphql-tools/utils": ^9.1.1 tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 4a506dfb7dad577510b0358444ad5c5080459c00e1740099212d28c08fc4f02824014602172b95a61c6092cc97b3838fafd02b3e2eadf99dd9b6fa390464935a + checksum: 33a222798fd99adcaf5d6d48fcd6949798a62d7a25e9b2af5b13e4def3de4338e5a743e5ea87661d2b32ae3279e3ad8b555d0e212efe86018088cb85a7d59d6a languageName: node linkType: hard "@graphql-codegen/graphql-modules-preset@npm:^2.3.2": - version: 2.5.7 - resolution: "@graphql-codegen/graphql-modules-preset@npm:2.5.7" + version: 2.5.9 + resolution: "@graphql-codegen/graphql-modules-preset@npm:2.5.9" dependencies: - "@graphql-codegen/plugin-helpers": ^2.7.2 - "@graphql-codegen/visitor-plugin-common": 2.13.3 + "@graphql-codegen/plugin-helpers": ^3.1.1 + "@graphql-codegen/visitor-plugin-common": 2.13.5 "@graphql-tools/utils": ^8.8.0 - change-case-all: 1.0.14 + change-case-all: 1.0.15 parse-filepath: ^1.0.2 tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 75fcfa7b8b560ba95d7ee13777f3f15f90df632cd3371ef34bcc782c33f76db2c0e9b1b4d6da15626ccdce58e932283515e1531eca1c7a17a358cd3b5c1db122 + checksum: 8b192ac413b2a182a3a008c69af69ea63e548e4ba0015f193880a70f6eec8eff6f8a263a56cefe13e140e6b19238e8e2f9fbf6420adceece8c5320ce9240fd8d languageName: node linkType: hard -"@graphql-codegen/plugin-helpers@npm:^2.6.2, @graphql-codegen/plugin-helpers@npm:^2.7.2": - version: 2.7.2 - resolution: "@graphql-codegen/plugin-helpers@npm:2.7.2" +"@graphql-codegen/plugin-helpers@npm:^3.1.1": + version: 3.1.1 + resolution: "@graphql-codegen/plugin-helpers@npm:3.1.1" dependencies: "@graphql-tools/utils": ^8.8.0 - change-case-all: 1.0.14 + change-case-all: 1.0.15 common-tags: 1.8.2 import-from: 4.0.0 lodash: ~4.17.0 tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 66e0d507ad5db60b67092ebf7632d464d56ab446ac8fd87c293e00d9016944912d8cf9199e3e026b0a9247a50f50c4118a44f49e13675db64211652cd6259b05 + checksum: 22a15d4638ad449f654dab7a1e4968a82a50e3ab38f3b0974ae767a0a80e251fece436933f575f158da67564331d6046223b83eb10e0f1b93e78a15d7d0f684e languageName: node linkType: hard -"@graphql-codegen/schema-ast@npm:^2.5.1": - version: 2.5.1 - resolution: "@graphql-codegen/schema-ast@npm:2.5.1" +"@graphql-codegen/schema-ast@npm:^2.6.0": + version: 2.6.0 + resolution: "@graphql-codegen/schema-ast@npm:2.6.0" dependencies: - "@graphql-codegen/plugin-helpers": ^2.6.2 + "@graphql-codegen/plugin-helpers": ^3.1.1 "@graphql-tools/utils": ^8.8.0 tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: a488c4a35e360f46444fb140ef3b5dffdea1e70549060ce6c2dad6f39c0b3c2cf2bcd797bcec8084f20a3ea4b5ab3e8221b1418e4195d9baf392819425bdd300 + checksum: a32e22fdd5cdab743ed7920249de6b00cbca0742633cfdbfed330c04c397bf1e0179ab141303a70cf733b6db27e537a67c6b6b50e70fb1d0767fc8d8de7a129f languageName: node linkType: hard "@graphql-codegen/typescript-resolvers@npm:^2.4.3": - version: 2.7.8 - resolution: "@graphql-codegen/typescript-resolvers@npm:2.7.8" + version: 2.7.10 + resolution: "@graphql-codegen/typescript-resolvers@npm:2.7.10" dependencies: - "@graphql-codegen/plugin-helpers": ^2.7.2 - "@graphql-codegen/typescript": ^2.8.3 - "@graphql-codegen/visitor-plugin-common": 2.13.3 + "@graphql-codegen/plugin-helpers": ^3.1.1 + "@graphql-codegen/typescript": ^2.8.5 + "@graphql-codegen/visitor-plugin-common": 2.13.5 "@graphql-tools/utils": ^8.8.0 auto-bind: ~4.0.0 tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: be6b3f13624912e3e91df7e3e67225edde70e747a7a91a06c4bfd60ce7f8ba4bcaa2ba074c8dfa4f1d984ecb06ec463cb9a811735583826046ee836986fb149e + checksum: 42ade297e6bd75056d2576d8d59b59725a35a4c929613d1764887466dea8c3669c0e5a334b14727b66b49bc605ba340910ca07d6d95bab9a8359b2e475209894 languageName: node linkType: hard -"@graphql-codegen/typescript@npm:^2.4.2, @graphql-codegen/typescript@npm:^2.8.3": - version: 2.8.3 - resolution: "@graphql-codegen/typescript@npm:2.8.3" +"@graphql-codegen/typescript@npm:^2.4.2, @graphql-codegen/typescript@npm:^2.8.5": + version: 2.8.5 + resolution: "@graphql-codegen/typescript@npm:2.8.5" dependencies: - "@graphql-codegen/plugin-helpers": ^2.7.2 - "@graphql-codegen/schema-ast": ^2.5.1 - "@graphql-codegen/visitor-plugin-common": 2.13.3 + "@graphql-codegen/plugin-helpers": ^3.1.1 + "@graphql-codegen/schema-ast": ^2.6.0 + "@graphql-codegen/visitor-plugin-common": 2.13.5 auto-bind: ~4.0.0 tslib: ~2.4.0 peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 0ba1f651b218303e9e4c369a34eb4327213585b9d1e303226ea91dc460ab106b11d76ea607e3980f8d4e921ace29f05681e45e099de0aab9db67199df33f0ccc + checksum: dd13cd82f202e82591262fd515b4cfd6a9d270b1d9447240ed75f0b374565e0c4a13297724bc94df5a7ad1a400cf63f83c439af9155fd95386d813481845bd01 languageName: node linkType: hard -"@graphql-codegen/visitor-plugin-common@npm:2.13.3": - version: 2.13.3 - resolution: "@graphql-codegen/visitor-plugin-common@npm:2.13.3" +"@graphql-codegen/visitor-plugin-common@npm:2.13.5": + version: 2.13.5 + resolution: "@graphql-codegen/visitor-plugin-common@npm:2.13.5" dependencies: - "@graphql-codegen/plugin-helpers": ^2.7.2 + "@graphql-codegen/plugin-helpers": ^3.1.1 "@graphql-tools/optimize": ^1.3.0 "@graphql-tools/relay-operation-optimizer": ^6.5.0 "@graphql-tools/utils": ^8.8.0 auto-bind: ~4.0.0 - change-case-all: 1.0.14 + change-case-all: 1.0.15 dependency-graph: ^0.11.0 graphql-tag: ^2.11.0 parse-filepath: ^1.0.2 tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 62259f46a81ce890218adb91c8965e6cc7b7d08cf5d9b40899d9b7e921cacb439e29d6f12bafb282a55d143d031fef691e0c26793503882a73e5042f8d79a760 + checksum: 130c82c63d647b5af55ce9e463765228e7aebc9c50a3670590c7bb409c997e8fabd10987d63f175a51ad3e3847d18c59ac3af6dc620d529b7e974dd80f15118e languageName: node linkType: hard @@ -11077,7 +10803,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 @@ -11137,33 +10863,33 @@ __metadata: languageName: node linkType: hard -"@kubernetes/client-node@npm:0.17.0": - version: 0.17.0 - resolution: "@kubernetes/client-node@npm:0.17.0" +"@kubernetes/client-node@npm:0.18.0": + version: 0.18.0 + resolution: "@kubernetes/client-node@npm:0.18.0" dependencies: "@types/js-yaml": ^4.0.1 "@types/node": ^10.12.0 "@types/request": ^2.47.1 - "@types/stream-buffers": ^3.0.3 - "@types/tar": ^4.0.3 - "@types/underscore": ^1.8.9 "@types/ws": ^6.0.1 byline: ^5.0.0 execa: 5.0.0 isomorphic-ws: ^4.0.1 js-yaml: ^4.1.0 jsonpath-plus: ^0.19.0 - openid-client: ^5.1.6 + openid-client: ^5.3.0 request: ^2.88.0 rfc4648: ^1.3.0 shelljs: ^0.8.5 stream-buffers: ^3.0.2 tar: ^6.1.11 tmp-promise: ^3.0.2 - tslib: ^1.9.3 - underscore: ^1.9.1 + tslib: ^2.4.1 + underscore: ^1.13.6 ws: ^7.3.1 - checksum: 5a6edce96946966d8b61359ab043b42e69d1b31178133bc3bf4b5a5c9191766986e08f85d6ae814b56546ed20389817a79dca5101342543d79d750f30cba21f7 + dependenciesMeta: + openid-client: + optional: true + checksum: ea973ddf793b7351da5e1beaac461b8f2ae581cb6d65b62669f248f8cb345f0d54d4b888820fb49f471bc60bace37e706120f46d10d3726a63ccaed8b6cb401b languageName: node linkType: hard @@ -11549,15 +11275,15 @@ __metadata: languageName: node linkType: hard -"@microsoft/tsdoc-config@npm:~0.16.1": - version: 0.16.1 - resolution: "@microsoft/tsdoc-config@npm:0.16.1" +"@microsoft/tsdoc-config@npm:0.16.2, @microsoft/tsdoc-config@npm:~0.16.1": + version: 0.16.2 + resolution: "@microsoft/tsdoc-config@npm:0.16.2" dependencies: - "@microsoft/tsdoc": 0.14.1 + "@microsoft/tsdoc": 0.14.2 ajv: ~6.12.6 jju: ~1.4.0 resolve: ~1.19.0 - checksum: 2b2121803caf6584fe0264ad16f8fa10de68438c0b82bd25f918606052af5312050f38b6abd4bcf3d40f120713aab144762a7a280fa22dd12e5571cd08e348e1 + checksum: 12b0d703154076bcaac75ca42e804e4fc292672396441e54346d7eadd0d6b57f90980eda2b1bab89b224af86da34a2389f9054002e282011e795ca5919a4386f languageName: node linkType: hard @@ -11568,6 +11294,13 @@ __metadata: languageName: node linkType: hard +"@microsoft/tsdoc@npm:0.14.2": + version: 0.14.2 + resolution: "@microsoft/tsdoc@npm:0.14.2" + checksum: b167c89e916ba73ee20b9c9d5dba6aa3a0de25ed3d50050e8a344dca7cd43cb2e1059bd515c820369b6e708901dd3fda476a42bc643ca74a35671ce77f724a3a + languageName: node + linkType: hard + "@mswjs/cookies@npm:^0.2.0, @mswjs/cookies@npm:^0.2.2": version: 0.2.2 resolution: "@mswjs/cookies@npm:0.2.2" @@ -12024,18 +11757,18 @@ __metadata: languageName: node linkType: hard -"@octokit/core@npm:^4.0.0, @octokit/core@npm:^4.0.4": - version: 4.0.5 - resolution: "@octokit/core@npm:4.0.5" +"@octokit/core@npm:^4.0.0, @octokit/core@npm:^4.0.4, @octokit/core@npm:^4.1.0": + version: 4.1.0 + resolution: "@octokit/core@npm:4.1.0" dependencies: "@octokit/auth-token": ^3.0.0 "@octokit/graphql": ^5.0.0 "@octokit/request": ^6.0.0 "@octokit/request-error": ^3.0.0 - "@octokit/types": ^7.0.0 + "@octokit/types": ^8.0.0 before-after-hook: ^2.2.0 universal-user-agent: ^6.0.0 - checksum: 6e4a2161d22b9cb24cd1cf702e6d18200fc48a29dc66db08c37809d65243d29429123652072126d9f161e45aef6a57e72a5d56d7e975829c190e8c3c46b3f1b9 + checksum: 4e53e02ff3ebe808b74385be0055cc1cce4b548060b20e3f2d5dd1bf7877ff7b6556f11278edc070842bf24aa869f9f59a02638f1b14083eb290b9e297447a2d languageName: node linkType: hard @@ -12198,6 +11931,17 @@ __metadata: languageName: node linkType: hard +"@octokit/plugin-paginate-rest@npm:^5.0.0": + version: 5.0.1 + resolution: "@octokit/plugin-paginate-rest@npm:5.0.1" + dependencies: + "@octokit/types": ^8.0.0 + peerDependencies: + "@octokit/core": ">=4" + checksum: cfded297d9f66c7607bd34075eb0c5f7278a1617d6be86115997c0757151c9be2fcf7a8849c2a5cebab56931a263b5cc35742b6227935afe77f5ed61b0627a3d + languageName: node + linkType: hard + "@octokit/plugin-request-log@npm:^1.0.2, @octokit/plugin-request-log@npm:^1.0.4": version: 1.0.4 resolution: "@octokit/plugin-request-log@npm:1.0.4" @@ -12219,15 +11963,15 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-rest-endpoint-methods@npm:^6.0.0": - version: 6.3.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:6.3.0" +"@octokit/plugin-rest-endpoint-methods@npm:^6.0.0, @octokit/plugin-rest-endpoint-methods@npm:^6.7.0": + version: 6.7.0 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:6.7.0" dependencies: - "@octokit/types": ^7.0.0 + "@octokit/types": ^8.0.0 deprecation: ^2.3.1 peerDependencies: "@octokit/core": ">=3" - checksum: 8fefbdcfc16fe39aa216c440cf52c2861f6c0c905f1fdfbd0e720fb59815c079100b877535bcd428cb782ef31a8d508470d69d4ecf307b8af4ccc34a5669c050 + checksum: 513c6c0717d08f3e85848029bd700412b7d9787750f78cc79a3dede356e94b238bf8a518b108f556a7efe626871720dd0466de9f31091578ea4e0f5a016f0ae7 languageName: node linkType: hard @@ -12316,14 +12060,14 @@ __metadata: linkType: hard "@octokit/rest@npm:^19.0.3": - version: 19.0.4 - resolution: "@octokit/rest@npm:19.0.4" + version: 19.0.5 + resolution: "@octokit/rest@npm:19.0.5" dependencies: - "@octokit/core": ^4.0.0 - "@octokit/plugin-paginate-rest": ^4.0.0 + "@octokit/core": ^4.1.0 + "@octokit/plugin-paginate-rest": ^5.0.0 "@octokit/plugin-request-log": ^1.0.4 - "@octokit/plugin-rest-endpoint-methods": ^6.0.0 - checksum: 7eba9148b707c713705ba8d75c25fbb22488f30abef7967ce92884a51e411e709b90ff56b0e6fa5521b261f343a7fd33b8ad5d0b87cab4bc2e178002b2566cf2 + "@octokit/plugin-rest-endpoint-methods": ^6.7.0 + checksum: ed4c36859aafb64e23f7f708086fe7e2ecda17ffd8c1594817d539f766f5855af79f17f5d225d96d34cd9b97cbfea988dac3df39a7cc928b2d2b7b75ed981056 languageName: node linkType: hard @@ -12370,22 +12114,22 @@ __metadata: languageName: node linkType: hard -"@octokit/webhooks-types@npm:6.6.0": - version: 6.6.0 - resolution: "@octokit/webhooks-types@npm:6.6.0" - checksum: 27d5ebb43bbcdaeacb34c1f8d5c5a8c1dfab8ca3b7173e3016c18365c5c832f3f53a1611fbc86371a8159ef2bc030b7c22c2901ec819134a71855d66e52762f9 +"@octokit/webhooks-types@npm:6.7.0": + version: 6.7.0 + resolution: "@octokit/webhooks-types@npm:6.7.0" + checksum: 407a362f88c2f46261e973ba8e2a624a971134cb3e30a3cddcb08c192f1af4f02d49f6a624819b6ee72e6abe5a214923ffb2b80ed40b0c1717f71fb91783e3d3 languageName: node linkType: hard "@octokit/webhooks@npm:^10.0.0": - version: 10.3.1 - resolution: "@octokit/webhooks@npm:10.3.1" + version: 10.4.0 + resolution: "@octokit/webhooks@npm:10.4.0" dependencies: "@octokit/request-error": ^3.0.0 "@octokit/webhooks-methods": ^3.0.0 - "@octokit/webhooks-types": 6.6.0 + "@octokit/webhooks-types": 6.7.0 aggregate-error: ^3.1.0 - checksum: 2601528d67d9de25fa8d6b9c7b88a75de7887862f0f36569ce15592a35a02281f7f35870fcc3ff2ca2b9933905c676be3ada747efb88a1084cf3c2cdab1518b6 + checksum: 418de82c4840024d608bb523ffc6c98f07179a40096a9970d9ac2e09bc98e99a25c035d57038c992b3c764ae085a62befbc0165ebacda8963aa513aa72330f74 languageName: node linkType: hard @@ -12444,10 +12188,10 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/api@npm:^1.0.1": - version: 1.0.4 - resolution: "@opentelemetry/api@npm:1.0.4" - checksum: 793e9b5c21666b647a60c58c46c3e00ad1dac38505102b026ad0ef617571d637aca54a18533a73c1e288c95b5ac77e2db17f96467f11833ac1165338e1184260 +"@opentelemetry/api@npm:^1.0.1, @opentelemetry/api@npm:^1.3.0": + version: 1.3.0 + resolution: "@opentelemetry/api@npm:1.3.0" + checksum: 33d284b67b6fab20ff72961d289c6487d3cb27caf7489f0231d7030551f82871e081e744b0390751d8aef3bf1614bd79f854788901a354e15274f552581fb374 languageName: node linkType: hard @@ -12620,10 +12364,10 @@ __metadata: languageName: node linkType: hard -"@react-hookz/deep-equal@npm:^1.0.3": - version: 1.0.3 - resolution: "@react-hookz/deep-equal@npm:1.0.3" - checksum: d482b43746a0371094b90e1957d3e3a6aa70cbe8bd9cd88c759d8dcf21c2c1f57fbd1846b2103bccc20600e77d04d44e35c320ba9001fb5382c70a9a3385d34a +"@react-hookz/deep-equal@npm:^1.0.3, @react-hookz/deep-equal@npm:^1.0.4": + version: 1.0.4 + resolution: "@react-hookz/deep-equal@npm:1.0.4" + checksum: 0923e364d309e32ee54e0850471a86488faf149d7a04ee838552cf5d54f493964623a8d742880ec82410cc1105530123f056e66dfc72b7da235d4cc93fad708f languageName: node linkType: hard @@ -12644,10 +12388,10 @@ __metadata: linkType: hard "@react-hookz/web@npm:^20.0.0": - version: 20.0.1 - resolution: "@react-hookz/web@npm:20.0.1" + version: 20.0.3 + resolution: "@react-hookz/web@npm:20.0.3" dependencies: - "@react-hookz/deep-equal": ^1.0.3 + "@react-hookz/deep-equal": ^1.0.4 peerDependencies: js-cookie: ^3.0.1 react: ^16.8 || ^17 || ^18 @@ -12655,7 +12399,7 @@ __metadata: peerDependenciesMeta: js-cookie: optional: true - checksum: 433dcb140953a877d4c81e1c176cd4302c184293ccddc5ee8de3ae3e592441b528c0c88bc07ed29fea2c993bacb146dfe0c7541832cb56785f07d8717626a1a2 + checksum: b4942f422fc36c93138b9735ee9ef768214f9f32fca73e4b3d545e490bd043e92f2ee0ce65c0ffc57f7c47a8cec9742e6f80e9e06bf875a805ba606dffa06f3d languageName: node linkType: hard @@ -12666,9 +12410,9 @@ __metadata: languageName: node linkType: hard -"@rjsf/core-v5@npm:@rjsf/core@^5.0.0-beta.12": - version: 5.0.0-beta.12 - resolution: "@rjsf/core@npm:5.0.0-beta.12" +"@rjsf/core-v5@npm:@rjsf/core@^5.0.0-beta.14": + version: 5.0.0-beta.14 + resolution: "@rjsf/core@npm:5.0.0-beta.14" dependencies: lodash: ^4.17.15 lodash-es: ^4.17.15 @@ -12677,7 +12421,7 @@ __metadata: peerDependencies: "@rjsf/utils": ^5.0.0-beta.1 react: ^16.14.0 || >=17 - checksum: 6c3fe058a29716cb8d31d436e284aa7ab51ec3c272dc34d49275ea0033c3350a2486249767d454bca20a4ccd00ed910f7ed518d2ebe30693b0218db1b3c990ac + checksum: 2e1a1ba4b4385401868628a127da72439a617abc72952c64e07dd1134f2252dcc13a4ec57876cb3bc44ab519e1d3c05eccfd3764eb76178526ebea051179a6ba languageName: node linkType: hard @@ -12700,16 +12444,16 @@ __metadata: languageName: node linkType: hard -"@rjsf/material-ui-v5@npm:@rjsf/material-ui@^5.0.0-beta.12": - version: 5.0.0-beta.12 - resolution: "@rjsf/material-ui@npm:5.0.0-beta.12" +"@rjsf/material-ui-v5@npm:@rjsf/material-ui@^5.0.0-beta.14": + version: 5.0.0-beta.14 + resolution: "@rjsf/material-ui@npm:5.0.0-beta.14" peerDependencies: "@material-ui/core": ^4.12.3 "@material-ui/icons": ^4.11.2 "@rjsf/core": ^5.0.0-beta.1 "@rjsf/utils": ^5.0.0-beta.1 react: ^16.14.0 || >=17 - checksum: 9b67c64956e74af6230d722fe9510fc50e6133c6913642f5bcbcb8da38b7ff5d912bc90a6b6692eb3df315ba9b330136556fb41854fb351e432433d584c1a969 + checksum: 5abc14a274b97a29288abd489f80f9b3fca53e4429ff96f6c03368dfe625d34b3f66ec2e446a84a8a1874d9dc81cb62ef5a706fc1b200bbe1632c612960a9dc6 languageName: node linkType: hard @@ -12725,7 +12469,7 @@ __metadata: languageName: node linkType: hard -"@rjsf/utils@npm:^5.0.0-beta.12": +"@rjsf/utils@npm:^5.0.0-beta.14": version: 5.0.0-beta.14 resolution: "@rjsf/utils@npm:5.0.0-beta.14" dependencies: @@ -12740,17 +12484,16 @@ __metadata: languageName: node linkType: hard -"@rjsf/validator-ajv8@npm:^5.0.0-beta.12": - version: 5.0.0-beta.13 - resolution: "@rjsf/validator-ajv8@npm:5.0.0-beta.13" +"@rjsf/validator-ajv6@npm:^5.0.0-beta.14": + version: 5.0.0-beta.14 + resolution: "@rjsf/validator-ajv6@npm:5.0.0-beta.14" dependencies: - ajv-formats: ^2.1.1 - ajv8: "npm:ajv@^8.11.0" + ajv: ^6.7.0 lodash: ^4.17.15 lodash-es: ^4.17.15 peerDependencies: - "@rjsf/utils": ^5.0.0-beta.12 - checksum: e0a51e25845745da628794dadef2c7ffc910d26cb99a90fa763d4a5593b554b084c578a73ed688d02defbeb5ddec38066caae527f5dc8dabba7f012cec31e8a3 + "@rjsf/utils": ^5.0.0-beta.1 + checksum: 57b5c6968475a66762f644f2832aad077f8dde0ca9e71c8b0b27c06174855b7e6330f44fa6078fc0f347b728a4a5fd62399378fad26ada3cde32da89bddf6f9f languageName: node linkType: hard @@ -12779,8 +12522,8 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-github-insights@npm:^2.0.5": - version: 2.2.0 - resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.2.0" + version: 2.2.2 + resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.2.2" dependencies: "@backstage/catalog-model": ^1.1.3 "@backstage/core-components": ^0.12.0 @@ -12802,7 +12545,7 @@ __metadata: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: f48121c18cd15a0f1aa33991561ff06a438351de9aeadba810d08c95d129a7afc56341bf46aec87f2224c96ffdc810b176160b1aa416c698dba09204c626ddde + checksum: 866d0ec0cb169855c6206e075bea16122450c9be533f4937e3c7f9869d9dc32cf9a770b42b1468078c37484cc3745dc785dcf39431c5a66d6f54573994f20a34 languageName: node linkType: hard @@ -12862,21 +12605,21 @@ __metadata: linkType: hard "@rollup/plugin-commonjs@npm:^23.0.0": - version: 23.0.4 - resolution: "@rollup/plugin-commonjs@npm:23.0.4" + version: 23.0.7 + resolution: "@rollup/plugin-commonjs@npm:23.0.7" dependencies: "@rollup/pluginutils": ^5.0.1 commondir: ^1.0.1 estree-walker: ^2.0.2 glob: ^8.0.3 is-reference: 1.2.1 - magic-string: ^0.26.4 + magic-string: ^0.27.0 peerDependencies: rollup: ^2.68.0||^3.0.0 peerDependenciesMeta: rollup: optional: true - checksum: 32d84de06140d4d050c0b402c6a6d858a6f970c3d6f50ea1fba40495b0cd0f977486513639875058287885cfbddc6f8b1ab5ebbe0d28f0364506b372fd4b0bd6 + checksum: 01d90947bd4aa664c568cec172399825921f29afc035a6d8aec153868ab151ce7901ad56a101c76655e31b21567ddc70313c4bca476685b872218f041757a8c9 languageName: node linkType: hard @@ -13069,7 +12812,7 @@ __metadata: languageName: node linkType: hard -"@sinonjs/commons@npm:^1.6.0, @sinonjs/commons@npm:^1.7.0, @sinonjs/commons@npm:^1.8.3": +"@sinonjs/commons@npm:^1.7.0": version: 1.8.3 resolution: "@sinonjs/commons@npm:1.8.3" dependencies: @@ -13105,17 +12848,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/samsam@npm:^6.1.1": - version: 6.1.1 - resolution: "@sinonjs/samsam@npm:6.1.1" - dependencies: - "@sinonjs/commons": ^1.6.0 - lodash.get: ^4.4.2 - type-detect: ^4.0.8 - checksum: a09b0914bf573f0da82bd03c64ba413df81a7c173818dc3f0a90c2652240ac835ef583f4d52f0b215e626633c91a4095c255e0669f6ead97241319f34f05e7fc - languageName: node - linkType: hard - "@sinonjs/samsam@npm:^7.0.1": version: 7.0.1 resolution: "@sinonjs/samsam@npm:7.0.1" @@ -13166,6 +12898,16 @@ __metadata: languageName: node linkType: hard +"@spotify/eslint-plugin@npm:^14.1.3": + version: 14.1.3 + resolution: "@spotify/eslint-plugin@npm:14.1.3" + peerDependencies: + "@typescript-eslint/parser": ^5.13.0 + eslint: ^8.10.0 + checksum: 788f5d9aab6f7b6c0ad7e414ebd5f4504f058f26a769dc4bcd0088dd8e6d9e5334965c8f6fffcf5b7ed52dbe25de0dc7bba403bcffa79b6d94c7ba3094757b5f + languageName: node + linkType: hard + "@spotify/prettier-config@npm:^14.0.0": version: 14.0.1 resolution: "@spotify/prettier-config@npm:14.0.1" @@ -13359,90 +13101,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-darwin-arm64@npm:1.3.22" +"@swc/core-darwin-arm64@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-darwin-arm64@npm:1.3.23" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-darwin-x64@npm:1.3.22" +"@swc/core-darwin-x64@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-darwin-x64@npm:1.3.23" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.22" +"@swc/core-linux-arm-gnueabihf@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.23" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.22" +"@swc/core-linux-arm64-gnu@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.23" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.22" +"@swc/core-linux-arm64-musl@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.23" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.22" +"@swc/core-linux-x64-gnu@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.23" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-linux-x64-musl@npm:1.3.22" +"@swc/core-linux-x64-musl@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-linux-x64-musl@npm:1.3.23" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.22" +"@swc/core-win32-arm64-msvc@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.23" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.22" +"@swc/core-win32-ia32-msvc@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.23" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.22": - version: 1.3.22 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.22" +"@swc/core-win32-x64-msvc@npm:1.3.23": + version: 1.3.23 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.23" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.9": - version: 1.3.22 - resolution: "@swc/core@npm:1.3.22" + version: 1.3.23 + resolution: "@swc/core@npm:1.3.23" dependencies: - "@swc/core-darwin-arm64": 1.3.22 - "@swc/core-darwin-x64": 1.3.22 - "@swc/core-linux-arm-gnueabihf": 1.3.22 - "@swc/core-linux-arm64-gnu": 1.3.22 - "@swc/core-linux-arm64-musl": 1.3.22 - "@swc/core-linux-x64-gnu": 1.3.22 - "@swc/core-linux-x64-musl": 1.3.22 - "@swc/core-win32-arm64-msvc": 1.3.22 - "@swc/core-win32-ia32-msvc": 1.3.22 - "@swc/core-win32-x64-msvc": 1.3.22 + "@swc/core-darwin-arm64": 1.3.23 + "@swc/core-darwin-x64": 1.3.23 + "@swc/core-linux-arm-gnueabihf": 1.3.23 + "@swc/core-linux-arm64-gnu": 1.3.23 + "@swc/core-linux-arm64-musl": 1.3.23 + "@swc/core-linux-x64-gnu": 1.3.23 + "@swc/core-linux-x64-musl": 1.3.23 + "@swc/core-win32-arm64-msvc": 1.3.23 + "@swc/core-win32-ia32-msvc": 1.3.23 + "@swc/core-win32-x64-msvc": 1.3.23 dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -13466,7 +13208,7 @@ __metadata: optional: true bin: swcx: run_swcx.js - checksum: 5c6fa613502cbfae9985c7e97452649120e50e65695c8243111b422f6dddfebabdbc5ec94a9238e199e6a823a86906635e18e731f8ed45470bca8e4964d11659 + checksum: 2a92949c33f292a369f4a750a8a9759f88f6f399bc0beef54768fce3d1af5cf0c33a4c8f3c2478020ae95e99d99b7c17f301b79163cdbcdf533b91675f1d2e8d languageName: node linkType: hard @@ -13480,14 +13222,14 @@ __metadata: linkType: hard "@swc/jest@npm:^0.2.22": - version: 0.2.23 - resolution: "@swc/jest@npm:0.2.23" + version: 0.2.24 + resolution: "@swc/jest@npm:0.2.24" dependencies: "@jest/create-cache-key-function": ^27.4.2 jsonc-parser: ^3.2.0 peerDependencies: "@swc/core": "*" - checksum: 1c7db1f6995916ad77369311be078e9d33f2c6a586be9c87927f6a36d124dcd49c29d8c596758cd9dbf4e388ec30f41989e70e574eb59bef3fb41d3131629763 + checksum: 3558213098970cc2882b1f2d1299e78ccea2e18e1e4a4c1820bb669b969ced648eacb14eb78b0bc6fe66e4a60816a7ad7a72c5048ece8382647b8ceac82b708a languageName: node linkType: hard @@ -13500,18 +13242,18 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:4.19.1": - version: 4.19.1 - resolution: "@tanstack/query-core@npm:4.19.1" - checksum: a54a613d5b7abe2bba352fa26228bee0589eb8116bf482760dbe39474202b08cfc3899100e478f0bd1ae1a7bd60dcda0634c04bec56a98346763d32bc7720b54 +"@tanstack/query-core@npm:4.20.4": + version: 4.20.4 + resolution: "@tanstack/query-core@npm:4.20.4" + checksum: bdb652296e4093d8cb042a67b9c035bc0a756e09a3b12aeb070068b07adc1c71174c2e6108f2a8c3322a26cb73ba57f431326aa0b813c81621674b9cc208cd93 languageName: node linkType: hard "@tanstack/react-query@npm:^4.1.3": - version: 4.19.1 - resolution: "@tanstack/react-query@npm:4.19.1" + version: 4.20.4 + resolution: "@tanstack/react-query@npm:4.20.4" dependencies: - "@tanstack/query-core": 4.19.1 + "@tanstack/query-core": 4.20.4 use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -13522,7 +13264,7 @@ __metadata: optional: true react-native: optional: true - checksum: cce8b51c5cbaff007efb2fc54c5e03a2191e363626226903c345ae9baf0d48a36fc322383e24aff4f12250e672da67d3ceaa9819bbb16ace98a5c7bdff098a61 + checksum: ba9e2f175c58bde592c0ad14285f289585474763f8d68072d651fa75263a3a7f75eead5b62aa3140db133b95468498bc58817d07513f6f857be2bd8031b491da languageName: node linkType: hard @@ -14744,15 +14486,6 @@ __metadata: languageName: node linkType: hard -"@types/minipass@npm:*": - version: 3.1.2 - resolution: "@types/minipass@npm:3.1.2" - dependencies: - "@types/node": "*" - checksum: 0d01e11b5b959625385a482ad29ea16352be42506b459555b0f77fd82235e9c540946cc9c05a73fed1ae30b132914baaa4ccf257ed2cad20bc9773f0a06f4bac - languageName: node - linkType: hard - "@types/mock-fs@npm:^4.10.0, @types/mock-fs@npm:^4.13.0": version: 4.13.1 resolution: "@types/mock-fs@npm:4.13.1" @@ -15203,11 +14936,11 @@ __metadata: linkType: hard "@types/sanitize-html@npm:^2.6.2": - version: 2.6.2 - resolution: "@types/sanitize-html@npm:2.6.2" + version: 2.8.0 + resolution: "@types/sanitize-html@npm:2.8.0" dependencies: - htmlparser2: ^6.0.0 - checksum: 08b43427427cbd8acd2843bbf9e00576c06e3916fc523d27fd9016f39563f7999f78b632ff473ef83a77f86bdea9286de2f81e3a8f8a05af6721687651c84f1c + htmlparser2: ^8.0.0 + checksum: 6e583cac673832536fac8da53890073f753baf2c49826fd0c2831e615cb5527692d03b2b5ba9eb8caf8694de4bfb1c31fd12398d2b68331725590a6ceb8f82fe languageName: node linkType: hard @@ -15343,15 +15076,6 @@ __metadata: languageName: node linkType: hard -"@types/stream-buffers@npm:^3.0.3": - version: 3.0.4 - resolution: "@types/stream-buffers@npm:3.0.4" - dependencies: - "@types/node": "*" - checksum: 5b432b2bf963d612747b79ac317562888236d6a9ea14414fb055c24e7be9643b5e3c7b7470841fa82802aa1c1c0d752a4ba935bbc0cfb12de6b89f7e1dadee92 - languageName: node - linkType: hard - "@types/styled-jsx@npm:^2.2.8": version: 2.2.8 resolution: "@types/styled-jsx@npm:2.2.8" @@ -15398,16 +15122,6 @@ __metadata: languageName: node linkType: hard -"@types/tar@npm:^4.0.3": - version: 4.0.5 - resolution: "@types/tar@npm:4.0.5" - dependencies: - "@types/minipass": "*" - "@types/node": "*" - checksum: 476d8af8f4cffcd973de026e043271be76171f9cb07bb869ba38a193ce89ee361b59ff8484e28b57216266063d91502c5208d2ab6b976e7370d9bdf4c4dadadc - languageName: node - linkType: hard - "@types/tar@npm:^6.1.1": version: 6.1.3 resolution: "@types/tar@npm:6.1.3" @@ -15477,13 +15191,6 @@ __metadata: languageName: node linkType: hard -"@types/underscore@npm:^1.8.9": - version: 1.11.4 - resolution: "@types/underscore@npm:1.11.4" - checksum: db9f8486bc851b732259e51f42d62aad1ae2158be5724612dc125ece5f5d61c51447f9dea28284c2a0f79cb95e788d01cb5ce97709880019213e69fab0dd1696 - languageName: node - linkType: hard - "@types/unist@npm:*, @types/unist@npm:^2.0.0": version: 2.0.6 resolution: "@types/unist@npm:2.0.6" @@ -15796,9 +15503,9 @@ __metadata: languageName: node linkType: hard -"@uiw/codemirror-extensions-basic-setup@npm:4.19.3": - version: 4.19.3 - resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.19.3" +"@uiw/codemirror-extensions-basic-setup@npm:4.19.4": + version: 4.19.4 + resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.19.4" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/commands": ^6.0.0 @@ -15815,19 +15522,19 @@ __metadata: "@codemirror/search": ">=6.0.0" "@codemirror/state": ">=6.0.0" "@codemirror/view": ">=6.0.0" - checksum: 4205ca51952ba4943e6d5bc46c1d893b02866aa7086571a920afcb650ba678db22e2d8c907d2b7ae30b36a9aa975ee6bbf01ed18650e367d05b01c95ae2caacf + checksum: 041f6c67ad43a1991b2b5dea49bc907937b47de26f44d75de81c9937c9ac61193ed08e114b8dfacfa3de45fd05799d76cab0f529577671e61c04d52536287bb1 languageName: node linkType: hard "@uiw/react-codemirror@npm:^4.9.3": - version: 4.19.3 - resolution: "@uiw/react-codemirror@npm:4.19.3" + version: 4.19.4 + resolution: "@uiw/react-codemirror@npm:4.19.4" dependencies: "@babel/runtime": ^7.18.6 "@codemirror/commands": ^6.1.0 "@codemirror/state": ^6.1.1 "@codemirror/theme-one-dark": ^6.0.0 - "@uiw/codemirror-extensions-basic-setup": 4.19.3 + "@uiw/codemirror-extensions-basic-setup": 4.19.4 codemirror: ^6.0.0 peerDependencies: "@babel/runtime": ">=7.11.0" @@ -15837,7 +15544,7 @@ __metadata: codemirror: ">=6.0.0" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 99fc818c5ca915bdbfe1fc1dfd3e9533878a87c49752e735d51ca421a2fb6e33762f74ed73d904c6125faec324dd54c13dd7ea27de2b09b6c73acc30b647413d + checksum: 88f931ae71f42609db4ca81453d9d68774a57938c06827423588c7e8dabc0c5e0dfce18ca790d5ca078b69b68372ab5a929344333ca7915b27f6a6f66470c5d8 languageName: node linkType: hard @@ -16009,23 +15716,6 @@ __metadata: languageName: node linkType: hard -"@whatwg-node/fetch@npm:^0.3.0": - version: 0.3.2 - resolution: "@whatwg-node/fetch@npm:0.3.2" - dependencies: - "@peculiar/webcrypto": ^1.4.0 - abort-controller: ^3.0.0 - busboy: ^1.6.0 - event-target-polyfill: ^0.0.3 - form-data-encoder: ^1.7.1 - formdata-node: ^4.3.1 - node-fetch: ^2.6.7 - undici: ^5.8.0 - web-streams-polyfill: ^3.2.0 - checksum: d9cb1b1293694edf0d61889512e5b5a0b8b69db2cf8c4cca4acdbbe652f899742456d10954312ef96a8f7257a898d6275b50df03cc481e5a97740cb301930892 - languageName: node - linkType: hard - "@whatwg-node/fetch@npm:^0.5.0": version: 0.5.3 resolution: "@whatwg-node/fetch@npm:0.5.3" @@ -16279,18 +15969,6 @@ __metadata: languageName: node linkType: hard -"ajv8@npm:ajv@^8.11.0, ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.8.0": - version: 8.11.2 - resolution: "ajv@npm:8.11.2" - dependencies: - fast-deep-equal: ^3.1.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 53435bf79ee7d1eabba8085962dba4c08d08593334b304db7772887f0b7beebc1b3d957432f7437ed4b60e53b5d966a57b439869890209c50fed610459999e3e - languageName: node - linkType: hard - "ajv@npm:^6.10.0, ajv@npm:^6.10.1, ajv@npm:^6.12.2, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:^6.5.5, ajv@npm:^6.7.0, ajv@npm:~6.12.6": version: 6.12.6 resolution: "ajv@npm:6.12.6" @@ -16303,6 +15981,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.8.0": + version: 8.11.2 + resolution: "ajv@npm:8.11.2" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.2.2 + checksum: 53435bf79ee7d1eabba8085962dba4c08d08593334b304db7772887f0b7beebc1b3d957432f7437ed4b60e53b5d966a57b439869890209c50fed610459999e3e + languageName: node + linkType: hard + "alphanum-sort@npm:^1.0.2": version: 1.0.2 resolution: "alphanum-sort@npm:1.0.2" @@ -16333,7 +16023,7 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0, ansi-escapes@npm:^4.3.1": +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: @@ -17037,19 +16727,19 @@ __metadata: linkType: hard "aws-sdk-mock@npm:^5.2.1": - version: 5.7.0 - resolution: "aws-sdk-mock@npm:5.7.0" + version: 5.8.0 + resolution: "aws-sdk-mock@npm:5.8.0" dependencies: - aws-sdk: ^2.1122.0 - sinon: ^13.0.2 + aws-sdk: ^2.1231.0 + sinon: ^14.0.1 traverse: ^0.6.6 - checksum: 9ac22cffc2e99c64af7aa29d2b4030ff8fdbb36d98cb27008952371d159ce974d31538fded372484e5d89e3fa9c22df0b7835d635a325734696a68c96a09e668 + checksum: c0b06d63d375a6f6664a5860815bdcc21cbe752f227f3617db8bd9042e48604e5cc26834876909c8fc1e68ac937166f4cb0637b3cb565d05c9a64aa025fe3407 languageName: node linkType: hard -"aws-sdk@npm:^2.1122.0, aws-sdk@npm:^2.814.0, aws-sdk@npm:^2.840.0, aws-sdk@npm:^2.948.0": - version: 2.1224.0 - resolution: "aws-sdk@npm:2.1224.0" +"aws-sdk@npm:^2.1231.0, aws-sdk@npm:^2.814.0, aws-sdk@npm:^2.840.0, aws-sdk@npm:^2.948.0": + version: 2.1279.0 + resolution: "aws-sdk@npm:2.1279.0" dependencies: buffer: 4.9.2 events: 1.1.1 @@ -17061,7 +16751,7 @@ __metadata: util: ^0.12.4 uuid: 8.0.0 xml2js: 0.4.19 - checksum: 990b4db8b72462432cfd75b4fe2c71ff8b24abed2b0d6b6441d51211167afd00b002ff91d7c3ff02379b34f6e5dcae72bdf9e31f55a9c105f50ad96cfc8f08da + checksum: ee8e8ee7baea9abaa0e1d08294be8ff00795b9db606101ef69a45d1465dac936187e43079fbe7a28ff4a463c8f9cd728d9bfee3e3974b0b5b88eb437dc81295b languageName: node linkType: hard @@ -18262,9 +17952,9 @@ __metadata: languageName: node linkType: hard -"change-case-all@npm:1.0.14": - version: 1.0.14 - resolution: "change-case-all@npm:1.0.14" +"change-case-all@npm:1.0.15": + version: 1.0.15 + resolution: "change-case-all@npm:1.0.15" dependencies: change-case: ^4.1.2 is-lower-case: ^2.0.2 @@ -18276,7 +17966,7 @@ __metadata: title-case: ^3.0.3 upper-case: ^2.0.2 upper-case-first: ^2.0.2 - checksum: 6ff893e005e1bf115cc2969cc5ca3610f7c6ece9e90b7927ed12c980c7d3ea9a565150d246c6dba0fee21aaacbd38d69b98a4670d96b892c76f66e46616506d3 + checksum: e1dabdcd8447a3690f3faf15f92979dfbc113109b50916976e1d5e518e6cfdebee4f05f54d0ca24fb79a4bf835185b59ae25e967bb3dc10bd236a775b19ecc52 languageName: node linkType: hard @@ -19620,11 +19310,11 @@ __metadata: linkType: hard "css-loader@npm:^6.5.1": - version: 6.7.2 - resolution: "css-loader@npm:6.7.2" + version: 6.7.3 + resolution: "css-loader@npm:6.7.3" dependencies: icss-utils: ^5.1.0 - postcss: ^8.4.18 + postcss: ^8.4.19 postcss-modules-extract-imports: ^3.0.0 postcss-modules-local-by-default: ^4.0.0 postcss-modules-scope: ^3.0.0 @@ -19633,7 +19323,7 @@ __metadata: semver: ^7.3.8 peerDependencies: webpack: ^5.0.0 - checksum: f3c980cc9c033a02e60df7e5a2f33a1e8c2c3dd552f017485d2d81b383be623ae8c4189404e7a4a7403b52744683ae4b516def0f7ccf125c2b198cb647e46543 + checksum: 473cc32b6c837c2848e2051ad1ba331c1457449f47442e75a8c480d9891451434ada241f7e3de2347e57de17fcd84610b3bcfc4a9da41102cdaedd1e17902d31 languageName: node linkType: hard @@ -20776,6 +20466,17 @@ __metadata: languageName: node linkType: hard +"dom-serializer@npm:^2.0.0": + version: 2.0.0 + resolution: "dom-serializer@npm:2.0.0" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 + languageName: node + linkType: hard + "dom-walk@npm:^0.1.0": version: 0.1.1 resolution: "dom-walk@npm:0.1.1" @@ -20790,10 +20491,10 @@ __metadata: languageName: node linkType: hard -"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": - version: 2.2.0 - resolution: "domelementtype@npm:2.2.0" - checksum: 24cb386198640cd58aa36f8c987f2ea61859929106d06ffcc8f547e70cb2ed82a6dc56dcb8252b21fba1f1ea07df6e4356d60bfe57f77114ca1aed6828362629 +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 languageName: node linkType: hard @@ -20824,6 +20525,15 @@ __metadata: languageName: node linkType: hard +"domhandler@npm:^5.0.1, domhandler@npm:^5.0.2": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" + dependencies: + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c + languageName: node + linkType: hard + "dompurify@npm:=2.3.10": version: 2.3.10 resolution: "dompurify@npm:2.3.10" @@ -20849,6 +20559,17 @@ __metadata: languageName: node linkType: hard +"domutils@npm:^3.0.1": + version: 3.0.1 + resolution: "domutils@npm:3.0.1" + dependencies: + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.1 + checksum: 23aa7a840572d395220e173cb6263b0d028596e3950100520870a125af33ff819e6f609e1606d6f7d73bd9e7feb03bb404286e57a39063b5384c62b724d987b3 + languageName: node + linkType: hard + "dot-case@npm:^3.0.4": version: 3.0.4 resolution: "dot-case@npm:3.0.4" @@ -21166,7 +20887,7 @@ __metadata: languageName: node linkType: hard -"entities@npm:^4.3.0, entities@npm:^4.4.0": +"entities@npm:^4.2.0, entities@npm:^4.3.0, entities@npm:^4.4.0": version: 4.4.0 resolution: "entities@npm:4.4.0" checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2 @@ -21526,31 +21247,31 @@ __metadata: linkType: hard "esbuild@npm:^0.16.0": - version: 0.16.3 - resolution: "esbuild@npm:0.16.3" + version: 0.16.10 + resolution: "esbuild@npm:0.16.10" dependencies: - "@esbuild/android-arm": 0.16.3 - "@esbuild/android-arm64": 0.16.3 - "@esbuild/android-x64": 0.16.3 - "@esbuild/darwin-arm64": 0.16.3 - "@esbuild/darwin-x64": 0.16.3 - "@esbuild/freebsd-arm64": 0.16.3 - "@esbuild/freebsd-x64": 0.16.3 - "@esbuild/linux-arm": 0.16.3 - "@esbuild/linux-arm64": 0.16.3 - "@esbuild/linux-ia32": 0.16.3 - "@esbuild/linux-loong64": 0.16.3 - "@esbuild/linux-mips64el": 0.16.3 - "@esbuild/linux-ppc64": 0.16.3 - "@esbuild/linux-riscv64": 0.16.3 - "@esbuild/linux-s390x": 0.16.3 - "@esbuild/linux-x64": 0.16.3 - "@esbuild/netbsd-x64": 0.16.3 - "@esbuild/openbsd-x64": 0.16.3 - "@esbuild/sunos-x64": 0.16.3 - "@esbuild/win32-arm64": 0.16.3 - "@esbuild/win32-ia32": 0.16.3 - "@esbuild/win32-x64": 0.16.3 + "@esbuild/android-arm": 0.16.10 + "@esbuild/android-arm64": 0.16.10 + "@esbuild/android-x64": 0.16.10 + "@esbuild/darwin-arm64": 0.16.10 + "@esbuild/darwin-x64": 0.16.10 + "@esbuild/freebsd-arm64": 0.16.10 + "@esbuild/freebsd-x64": 0.16.10 + "@esbuild/linux-arm": 0.16.10 + "@esbuild/linux-arm64": 0.16.10 + "@esbuild/linux-ia32": 0.16.10 + "@esbuild/linux-loong64": 0.16.10 + "@esbuild/linux-mips64el": 0.16.10 + "@esbuild/linux-ppc64": 0.16.10 + "@esbuild/linux-riscv64": 0.16.10 + "@esbuild/linux-s390x": 0.16.10 + "@esbuild/linux-x64": 0.16.10 + "@esbuild/netbsd-x64": 0.16.10 + "@esbuild/openbsd-x64": 0.16.10 + "@esbuild/sunos-x64": 0.16.10 + "@esbuild/win32-arm64": 0.16.10 + "@esbuild/win32-ia32": 0.16.10 + "@esbuild/win32-x64": 0.16.10 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -21598,7 +21319,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: c2986b0433c6048b917c185067ea42427413ef4136c45012e180e48fc24e6f01af9c94ca7e9bc6dd29ac529af45d26c9d4eb5b8639c9a79f68f337d24aeda2af + checksum: 0c5671fa4611fe70f3daa3e80e92804ca5908d1fcb0ed7a418d69db72504c4f457ceebeaa2668d55f79aaa63334a9ffd3f30e8f9dee821f6ad1f367f08ff157b languageName: node linkType: hard @@ -21775,8 +21496,8 @@ __metadata: linkType: hard "eslint-plugin-jest@npm:^27.0.0": - version: 27.1.6 - resolution: "eslint-plugin-jest@npm:27.1.6" + version: 27.1.7 + resolution: "eslint-plugin-jest@npm:27.1.7" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: @@ -21787,7 +21508,7 @@ __metadata: optional: true jest: optional: true - checksum: 5b1640b5d575f0d5e27da8ef8cb3110a29f94ebd50ae51edc5ea34c1054f5dcf305416865b2919ac424bc02c4569848bbe7fd2c86e7e1aff23e77f1ff9ef7dfd + checksum: 1173e60450d8fa7a913d654e80e26176cc64c35f287d680d6fe4187a53974fd8c6883749924c8ea2a9328e295cba4d1be0b3047492653270e9341da1a3fec580 languageName: node linkType: hard @@ -22484,14 +22205,14 @@ __metadata: linkType: hard "express-prom-bundle@npm:^6.3.6": - version: 6.5.0 - resolution: "express-prom-bundle@npm:6.5.0" + version: 6.6.0 + resolution: "express-prom-bundle@npm:6.6.0" dependencies: on-finished: ^2.3.0 url-value-parser: ^2.0.0 peerDependencies: prom-client: ">=12.0.0" - checksum: 708c83d2d4c1774679cd5fc002328b5e4ac33a33ddb9dfe6c8316873bdcb963a03b16212543f49657d7e19252d92aea9aa6b91bbcac848b237f9598d395094b5 + checksum: 414451347abb7ed414fcecfbc35dd39ae6abf8f3d69824679640b539b5849dd53c8a94ce43c263bf6e78c3ec2646803ed843cfb5613b8385c0ded4b59465e9b7 languageName: node linkType: hard @@ -23140,8 +22861,8 @@ __metadata: linkType: hard "fork-ts-checker-webpack-plugin@npm:^7.0.0-alpha.8": - version: 7.2.13 - resolution: "fork-ts-checker-webpack-plugin@npm:7.2.13" + version: 7.2.14 + resolution: "fork-ts-checker-webpack-plugin@npm:7.2.14" dependencies: "@babel/code-frame": ^7.16.7 chalk: ^4.1.2 @@ -23162,7 +22883,7 @@ __metadata: peerDependenciesMeta: vue-template-compiler: optional: true - checksum: 3d4694c6fee4b8b2f213d0d10a3f40da770ca0ed3aa2a3dc8d1e701ad1ecaed3a1507f77a1b0cea6ef80539b04d8e5f5f02560e688d310bcb9e8c81f684d2950 + checksum: bf4b44e606677da14c5b8127693897003607e7f13ed93a92991665aea5ad5aa3f5629c022d95dbf9380b40bfc02d34fa42857f298525c7688194d1e94f2a2850 languageName: node linkType: hard @@ -24493,7 +24214,7 @@ __metadata: languageName: node linkType: hard -"htmlparser2@npm:^6.0.0, htmlparser2@npm:^6.1.0": +"htmlparser2@npm:^6.1.0": version: 6.1.0 resolution: "htmlparser2@npm:6.1.0" dependencies: @@ -24505,6 +24226,18 @@ __metadata: languageName: node linkType: hard +"htmlparser2@npm:^8.0.0": + version: 8.0.1 + resolution: "htmlparser2@npm:8.0.1" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + domutils: ^3.0.1 + entities: ^4.3.0 + checksum: 06d5c71e8313597722bc429ae2a7a8333d77bd3ab07ccb916628384b37332027b047f8619448d8f4a3312b6609c6ea3302a4e77435d859e9e686999e6699ca39 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0": version: 4.1.0 resolution: "http-cache-semantics@npm:4.1.0" @@ -26946,15 +26679,15 @@ __metadata: linkType: hard "json-schema-library@npm:^7.3.9": - version: 7.4.3 - resolution: "json-schema-library@npm:7.4.3" + version: 7.4.4 + resolution: "json-schema-library@npm:7.4.4" dependencies: "@sagold/json-pointer": ^5.0.0 "@sagold/json-query": ^6.0.0 deepmerge: ^4.2.2 fast-deep-equal: ^3.1.3 valid-url: ^1.0.9 - checksum: cc0d2a9e288fc6f1d56f0bd51dea74c978c931922c333e2c0a056ae3db0f20323ce44d304bcfd17afebc33c151c2c2c23fabe6ae1fc148599fa2c4e1d599a6c0 + checksum: e485c7f40bcfe04b96f457e02bc4ecb5bfe6b1d91df6a788909d1048a48bd51ecc5fe6bdd8759289a95c37fa63b3347b29d6d93f1b26a47f40cff21981d331d5 languageName: node linkType: hard @@ -27070,11 +26803,11 @@ __metadata: linkType: hard "json5@npm:^2.1.2, json5@npm:^2.1.3, json5@npm:^2.2.0, json5@npm:^2.2.1": - version: 2.2.1 - resolution: "json5@npm:2.2.1" + version: 2.2.2 + resolution: "json5@npm:2.2.2" bin: json5: lib/cli.js - checksum: 74b8a23b102a6f2bf2d224797ae553a75488b5adbaee9c9b6e5ab8b510a2fc6e38f876d4c77dea672d4014a44b2399e15f2051ac2b37b87f74c0c7602003543b + checksum: 9a878d66b72157b073cf0017f3e5d93ec209fa5943abcb38d37a54b208917c166bd473c26a24695e67a016ce65759aeb89946592991f8f9174fb96c8e2492683 languageName: node linkType: hard @@ -28267,7 +28000,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.26.4, magic-string@npm:^0.26.6": +"magic-string@npm:^0.26.6": version: 0.26.7 resolution: "magic-string@npm:0.26.7" dependencies: @@ -28276,6 +28009,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.27.0": + version: 0.27.0 + resolution: "magic-string@npm:0.27.0" + dependencies: + "@jridgewell/sourcemap-codec": ^1.4.13 + checksum: 273faaa50baadb7a2df6e442eac34ad611304fc08fe16e24fe2e472fd944bfcb73ffb50d2dc972dc04e92784222002af46868cb9698b1be181c81830fd95a13e + languageName: node + linkType: hard + "make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -29556,44 +29298,9 @@ __metadata: languageName: node linkType: hard -"msw@npm:^0.47.0": - version: 0.47.4 - resolution: "msw@npm:0.47.4" - dependencies: - "@mswjs/cookies": ^0.2.2 - "@mswjs/interceptors": ^0.17.5 - "@open-draft/until": ^1.0.3 - "@types/cookie": ^0.4.1 - "@types/js-levenshtein": ^1.1.1 - chalk: 4.1.1 - chokidar: ^3.4.2 - cookie: ^0.4.2 - graphql: ^15.0.0 || ^16.0.0 - headers-polyfill: ^3.1.0 - inquirer: ^8.2.0 - is-node-process: ^1.0.1 - js-levenshtein: ^1.1.6 - node-fetch: ^2.6.7 - outvariant: ^1.3.0 - path-to-regexp: ^6.2.0 - statuses: ^2.0.0 - strict-event-emitter: ^0.2.6 - type-fest: ^2.19.0 - yargs: ^17.3.1 - peerDependencies: - typescript: ">= 4.2.x <= 4.8.x" - peerDependenciesMeta: - typescript: - optional: true - bin: - msw: cli/index.js - checksum: 10ff632641d40384d6622abf4df6399e4ae649db0f676b5d1ee2d0a515ec96f33abe9d4fecba08cdba4b2e43255af419da9eefc020d40a7e10669d0906457197 - languageName: node - linkType: hard - "msw@npm:^0.49.0": - version: 0.49.1 - resolution: "msw@npm:0.49.1" + version: 0.49.2 + resolution: "msw@npm:0.49.2" dependencies: "@mswjs/cookies": ^0.2.2 "@mswjs/interceptors": ^0.17.5 @@ -29621,7 +29328,7 @@ __metadata: optional: true bin: msw: cli/index.js - checksum: 4d8ebcc21cbe20d73070857653a1e90b1be7c78ac2ea68ae497baa2a5d9bc1fb764ccfb292fc8eda0b6cfabd4542a80bbacb0302e9ba939a0bc94b024848850d + checksum: 10ec35671e10e53c2a24ca22c5e7a2262d4cdfb409a403a3ffe221150af404805490e7661611a581986e61790bb8996ce8a0f057d521ef359498304c2431234a languageName: node linkType: hard @@ -29794,7 +29501,7 @@ __metadata: languageName: node linkType: hard -"nise@npm:^5.1.1, nise@npm:^5.1.2": +"nise@npm:^5.1.2": version: 5.1.2 resolution: "nise@npm:5.1.2" dependencies: @@ -29900,8 +29607,8 @@ __metadata: linkType: hard "node-gyp@npm:^9.1.0": - version: 9.3.0 - resolution: "node-gyp@npm:9.3.0" + version: 9.3.1 + resolution: "node-gyp@npm:9.3.1" dependencies: env-paths: ^2.2.0 glob: ^7.1.4 @@ -29915,7 +29622,7 @@ __metadata: which: ^2.0.2 bin: node-gyp: bin/node-gyp.js - checksum: 589ddd3ed967724ef425f9624bfa47cf73022640ab3eba6d556e92cdc4ddef33b63fce3a467c93b995a3f61df92eafd3c3d1e8dbe4a2c00c383334487dea99c3 + checksum: b860e9976fa645ca0789c69e25387401b4396b93c8375489b5151a6c55cf2640a3b6183c212b38625ef7c508994930b72198338e3d09b9d7ade5acc4aaf51ea7 languageName: node linkType: hard @@ -30529,7 +30236,7 @@ __metadata: languageName: node linkType: hard -"openid-client@npm:^5.1.6, openid-client@npm:^5.2.1": +"openid-client@npm:^5.2.1, openid-client@npm:^5.3.0": version: 5.3.1 resolution: "openid-client@npm:5.3.1" dependencies: @@ -32145,7 +31852,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.0, postcss@npm:^8.4.18": +"postcss@npm:^8.1.0, postcss@npm:^8.4.19": version: 8.4.20 resolution: "postcss@npm:8.4.20" dependencies: @@ -33738,10 +33445,10 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.3, regenerator-runtime@npm:^0.13.4": - version: 0.13.9 - resolution: "regenerator-runtime@npm:0.13.9" - checksum: 65ed455fe5afd799e2897baf691ca21c2772e1a969d19bb0c4695757c2d96249eb74ee3553ea34a91062b2a676beedf630b4c1551cc6299afb937be1426ec55e +"regenerator-runtime@npm:^0.13.11, regenerator-runtime@npm:^0.13.3, regenerator-runtime@npm:^0.13.4": + version: 0.13.11 + resolution: "regenerator-runtime@npm:0.13.11" + checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 languageName: node linkType: hard @@ -34421,6 +34128,7 @@ __metadata: "@changesets/cli": ^2.14.0 "@manypkg/get-packages": ^1.1.3 "@octokit/rest": ^19.0.3 + "@spotify/eslint-plugin": ^14.1.3 "@spotify/prettier-config": ^14.0.0 "@techdocs/cli": "workspace:*" "@types/node": ^16.11.26 @@ -34431,6 +34139,7 @@ __metadata: e2e-test: "workspace:*" eslint: ^8.6.0 eslint-plugin-notice: ^0.9.10 + eslint-plugin-react: ^7.28.0 eslint-plugin-testing-library: ^5.9.1 fs-extra: 10.1.0 husky: ^8.0.0 @@ -35084,21 +34793,7 @@ __metadata: languageName: node linkType: hard -"sinon@npm:^13.0.2": - version: 13.0.2 - resolution: "sinon@npm:13.0.2" - dependencies: - "@sinonjs/commons": ^1.8.3 - "@sinonjs/fake-timers": ^9.1.2 - "@sinonjs/samsam": ^6.1.1 - diff: ^5.0.0 - nise: ^5.1.1 - supports-color: ^7.2.0 - checksum: 237f21c8c4a8b31574c71b1b9f4c0f74a63dde5c0e86bd116effa4ce63c52467bd45fb4034a8fa32656a7919d9b19fc7b108ca9e1e6e3144f3735da96dad2877 - languageName: node - linkType: hard - -"sinon@npm:^14.0.2": +"sinon@npm:^14.0.1, sinon@npm:^14.0.2": version: 14.0.2 resolution: "sinon@npm:14.0.2" dependencies: @@ -37083,10 +36778,10 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:~2.4.0": - version: 2.4.0 - resolution: "tslib@npm:2.4.0" - checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113 +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:~2.4.0": + version: 2.4.1 + resolution: "tslib@npm:2.4.1" + checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca languageName: node linkType: hard @@ -37410,10 +37105,10 @@ __metadata: languageName: node linkType: hard -"underscore@npm:^1.12.1, underscore@npm:^1.9.1, underscore@npm:~1.13.2": - version: 1.13.4 - resolution: "underscore@npm:1.13.4" - checksum: 6b04f66cd454e8793a552dc49c71e24e5208a29b9d9c0af988a96948af79103399c36fb15db43f3629bfed152f8b1fe94f44e1249e9d196069c0fc7edfadb636 +"underscore@npm:^1.12.1, underscore@npm:^1.13.6, underscore@npm:~1.13.2": + version: 1.13.6 + resolution: "underscore@npm:1.13.6" + checksum: d5cedd14a9d0d91dd38c1ce6169e4455bb931f0aaf354108e47bd46d3f2da7464d49b2171a5cf786d61963204a42d01ea1332a903b7342ad428deaafaf70ec36 languageName: node linkType: hard