diff --git a/.changeset/bright-pants-cry.md b/.changeset/bright-pants-cry.md new file mode 100644 index 0000000000..88d7356640 --- /dev/null +++ b/.changeset/bright-pants-cry.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed an issue where the CLI would fail to function when there was a mix of workspace and non-workspace versions of the same package in `yarn.lock` when using Yarn 3. diff --git a/.changeset/clever-starfishes-destroy.md b/.changeset/clever-starfishes-destroy.md new file mode 100644 index 0000000000..3d520410d8 --- /dev/null +++ b/.changeset/clever-starfishes-destroy.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-bazaar': patch +--- + +Created soft cut on `ProjectCard` to indicate more content. diff --git a/.changeset/cool-islands-laugh.md b/.changeset/cool-islands-laugh.md new file mode 100644 index 0000000000..5ea89043af --- /dev/null +++ b/.changeset/cool-islands-laugh.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Allow custom repository roles to be configured on github repos diff --git a/.changeset/create-app-1672154523.md b/.changeset/create-app-1672154523.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1672154523.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/curvy-ducks-explode.md b/.changeset/curvy-ducks-explode.md new file mode 100644 index 0000000000..1d631e60a8 --- /dev/null +++ b/.changeset/curvy-ducks-explode.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Use the project tsconfig in case of selection all packages diff --git a/.changeset/fluffy-fans-sing.md b/.changeset/fluffy-fans-sing.md new file mode 100644 index 0000000000..fd875ee00d --- /dev/null +++ b/.changeset/fluffy-fans-sing.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Add experimental environment variable to enable caching for production builds. diff --git a/.changeset/forty-years-retire.md b/.changeset/forty-years-retire.md new file mode 100644 index 0000000000..e7b887a1e4 --- /dev/null +++ b/.changeset/forty-years-retire.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +The frontend serve task now filters out allowed package duplicates during its package check, just like `versions:bump` and `versions:check`. diff --git a/.changeset/funny-pianos-grow.md b/.changeset/funny-pianos-grow.md new file mode 100644 index 0000000000..7823ca82b0 --- /dev/null +++ b/.changeset/funny-pianos-grow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Fixed bug in `EntityTagPicker` that filtered on unavailable tags for the selected kind. diff --git a/.changeset/good-geckos-reflect.md b/.changeset/good-geckos-reflect.md new file mode 100644 index 0000000000..315675a3b4 --- /dev/null +++ b/.changeset/good-geckos-reflect.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Move some dependencies as `peerDependencies` because we need to always use same version as in `api-extractor` diff --git a/.changeset/light-rice-end.md b/.changeset/light-rice-end.md new file mode 100644 index 0000000000..d403b10ed6 --- /dev/null +++ b/.changeset/light-rice-end.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +fix glob on windows os diff --git a/.changeset/lucky-apricots-dress.md b/.changeset/lucky-apricots-dress.md new file mode 100644 index 0000000000..777bddfc53 --- /dev/null +++ b/.changeset/lucky-apricots-dress.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Fix sizing of build log component to render all lines diff --git a/.changeset/metal-hotels-deliver.md b/.changeset/metal-hotels-deliver.md new file mode 100644 index 0000000000..6b7f9c109b --- /dev/null +++ b/.changeset/metal-hotels-deliver.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +add `onChange` handler to`Stepper` component diff --git a/.changeset/ninety-phones-tell.md b/.changeset/ninety-phones-tell.md new file mode 100644 index 0000000000..692ed27c23 --- /dev/null +++ b/.changeset/ninety-phones-tell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-app-backend': patch +--- + +The warning for missing app contents is now logged as an error instead, but only in production. diff --git a/.changeset/odd-kings-tell.md b/.changeset/odd-kings-tell.md new file mode 100644 index 0000000000..f3643040be --- /dev/null +++ b/.changeset/odd-kings-tell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-cost-insights': patch +--- + +Removed @backstage/test-utils dependency, since it was already in the devDependencies where it belongs. The main benefit is that this will exclude better-sqlite3 from the production build. diff --git a/.changeset/old-planets-care.md b/.changeset/old-planets-care.md new file mode 100644 index 0000000000..4b30ff7d2d --- /dev/null +++ b/.changeset/old-planets-care.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-code-coverage-backend': patch +--- + +`RouterOptions` now accepts an optional `catalogApi` argument, allowing custom catalog clients to be used. This is leveraged in the local standalone development runner to pass in a catalog client that returns fake data. diff --git a/.changeset/olive-eyes-sing.md b/.changeset/olive-eyes-sing.md index d0ae1dc08f..42fa4a1a7c 100644 --- a/.changeset/olive-eyes-sing.md +++ b/.changeset/olive-eyes-sing.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-stack-overflow-backend': minor +'@backstage/plugin-stack-overflow-backend': patch --- 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 30f0c873c4..375eabafc7 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -194,5 +194,33 @@ "@backstage/plugin-vault-backend": "0.2.5", "@backstage/plugin-xcmetrics": "0.2.32" }, - "changesets": [] + "changesets": [ + "bright-pants-cry", + "create-app-1672154523", + "curvy-ducks-explode", + "eight-dragons-accept", + "fifty-paws-attack", + "fifty-zoos-nail", + "fluffy-forks-happen", + "forty-years-retire", + "funny-pianos-grow", + "good-geckos-reflect", + "hungry-falcons-cross", + "metal-hotels-deliver", + "old-planets-care", + "olive-eyes-sing", + "renovate-3493165", + "renovate-968149a", + "search-break-loop", + "search-mele-kalikimaka", + "search-pressure-back", + "selfish-phones-smoke", + "silver-chicken-travel", + "strong-eyes-march", + "tasty-impalas-cross", + "tasty-impalas-mix", + "thick-stingrays-smile", + "two-buckets-do", + "witty-eels-itch" + ] } diff --git a/.changeset/proud-birds-worry.md b/.changeset/proud-birds-worry.md new file mode 100644 index 0000000000..cef7120fe1 --- /dev/null +++ b/.changeset/proud-birds-worry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-insights-backend': patch +--- + +Complete check results run when a single check errors so that we don't block other checks from working due to an error in a single check diff --git a/.changeset/renovate-3493165.md b/.changeset/renovate-3493165.md new file mode 100644 index 0000000000..aa5146931e --- /dev/null +++ b/.changeset/renovate-3493165.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-techdocs-react': patch +'@backstage/plugin-techdocs': patch +--- + +Updated dependency `jss` to `~10.9.0`. diff --git a/.changeset/search-break-loop.md b/.changeset/search-break-loop.md new file mode 100644 index 0000000000..ce65645900 --- /dev/null +++ b/.changeset/search-break-loop.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-elasticsearch': patch +--- + +Fixed a bug that could cause an indexing process to silently fail, timeout, and accumulate stale indices. diff --git a/.changeset/search-mele-kalikimaka.md b/.changeset/search-mele-kalikimaka.md new file mode 100644 index 0000000000..4f1faff02f --- /dev/null +++ b/.changeset/search-mele-kalikimaka.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-elasticsearch': patch +--- + +Fixed a bug that could cause the backstage backend to unexpectedly terminate when client errors were encountered during the indexing process. diff --git a/.changeset/search-pressure-back.md b/.changeset/search-pressure-back.md new file mode 100644 index 0000000000..3dd36456a7 --- /dev/null +++ b/.changeset/search-pressure-back.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-elasticsearch': patch +--- + +Improved index throughput by optimizing when and how many documents were made available to the bulk client. diff --git a/.changeset/selfish-phones-smoke.md b/.changeset/selfish-phones-smoke.md new file mode 100644 index 0000000000..42f33f9869 --- /dev/null +++ b/.changeset/selfish-phones-smoke.md @@ -0,0 +1,37 @@ +--- +'@backstage/plugin-scaffolder': minor +'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch +'@backstage/plugin-scaffolder-backend-module-rails': patch +'@backstage/plugin-scaffolder-backend-module-yeoman': patch +'@backstage/plugin-scaffolder-backend': patch +--- + +Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + +The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + +- Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + +- Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` diff --git a/.changeset/spicy-lions-dream.md b/.changeset/spicy-lions-dream.md new file mode 100644 index 0000000000..939d12dd30 --- /dev/null +++ b/.changeset/spicy-lions-dream.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Add Github repository support for squash merge commit title and message options diff --git a/.changeset/strong-eyes-march.md b/.changeset/strong-eyes-march.md new file mode 100644 index 0000000000..4f3bbacfc8 --- /dev/null +++ b/.changeset/strong-eyes-march.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-ilert': patch +--- + +fixed error on service page not showing if historical uptime was disabled on a service diff --git a/.changeset/sweet-tomatoes-cheer.md b/.changeset/sweet-tomatoes-cheer.md new file mode 100644 index 0000000000..d03a4b12c0 --- /dev/null +++ b/.changeset/sweet-tomatoes-cheer.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Avoid potential temporary directory conflict. diff --git a/.changeset/tasty-impalas-cross.md b/.changeset/tasty-impalas-cross.md new file mode 100644 index 0000000000..f7d7712b29 --- /dev/null +++ b/.changeset/tasty-impalas-cross.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +The `repo test`, `repo lint`, and `repo build` commands will now analyze `yarn.lock` for dependency changes when searching for changed packages. This allows you to use the `--since ` flag even if you have `yarn.lock` changes. diff --git a/.changeset/thick-stingrays-smile.md b/.changeset/thick-stingrays-smile.md new file mode 100644 index 0000000000..2b56803ede --- /dev/null +++ b/.changeset/thick-stingrays-smile.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-explore': patch +--- + +Makes the `GroupsDiagram` not grown on screen on its own. diff --git a/.changeset/tidy-flies-cheer.md b/.changeset/tidy-flies-cheer.md new file mode 100644 index 0000000000..78de902e63 --- /dev/null +++ b/.changeset/tidy-flies-cheer.md @@ -0,0 +1,7 @@ +--- +'@backstage/config': patch +--- + +Adds the ability to coerce values to their boolean representatives. +Values such as `"true"` `1` `on` and `y` will become `true` when using `getBoolean` and the opposites `false`. +This happens particularly when such parameters are used with environmental substitution as environment variables are always strings. diff --git a/.changeset/tricky-toys-teach.md b/.changeset/tricky-toys-teach.md new file mode 100644 index 0000000000..f19b907682 --- /dev/null +++ b/.changeset/tricky-toys-teach.md @@ -0,0 +1,7 @@ +--- +'@backstage/create-app': patch +--- + +Remove deprecated `create-plugin` script from the `default-app` template's `package.json.hbs`. +Also, update the documentation to not mention the `create-plugin` script and instead mention +the `new` script. diff --git a/.changeset/two-buckets-do.md b/.changeset/two-buckets-do.md new file mode 100644 index 0000000000..0f7652dcfa --- /dev/null +++ b/.changeset/two-buckets-do.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend': patch +--- + +Allow max page limit for search results to be configurable diff --git a/.changeset/witty-eels-itch.md b/.changeset/witty-eels-itch.md new file mode 100644 index 0000000000..5a2da8b570 --- /dev/null +++ b/.changeset/witty-eels-itch.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Workspace ranges are no longer considered invalid by version commands. diff --git a/.github/uffizzi/docker-compose.uffizzi.yml b/.github/uffizzi/docker-compose.uffizzi.yml index f505205505..49039cad2a 100644 --- a/.github/uffizzi/docker-compose.uffizzi.yml +++ b/.github/uffizzi/docker-compose.uffizzi.yml @@ -8,11 +8,11 @@ x-uffizzi: services: backstage: image: '${BACKSTAGE_IMAGE}' + environment: - POSTGRES_HOST: localhost + POSTGRES_HOST: db POSTGRES_USER: postgres POSTGRES_PASSWORD: example - GITHUB_TOKEN: abc NODE_ENV: production deploy: resources: @@ -21,7 +21,7 @@ services: entrypoint: '/bin/sh' command: - '-c' - - "APP_CONFIG_app_baseUrl=$$UFFIZZI_URL APP_CONFIG_backend_baseUrl=$$UFFIZZI_URL APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml --config app-config.production.yaml" + - "APP_CONFIG_app_baseUrl=$$UFFIZZI_URL APP_CONFIG_backend_baseUrl=$$UFFIZZI_URL APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml" db: image: postgres diff --git a/.github/uffizzi/uffizzi.production.app-config.yaml b/.github/uffizzi/uffizzi.production.app-config.yaml index d6df12a6af..56055c8342 100644 --- a/.github/uffizzi/uffizzi.production.app-config.yaml +++ b/.github/uffizzi/uffizzi.production.app-config.yaml @@ -2,9 +2,258 @@ app: title: Backstage Uffizzi Environment baseUrl: ${UFFIZZI_URL} +organization: + name: My Company + backend: baseUrl: ${UFFIZZI_URL} + auth: + keys: + # random mock key for uffizi deployments + - secret: 5TXvdjVZFxF7qf9K5RAYRDoGrLzJooqa + listen: + port: 7007 + database: + client: better-sqlite3 + connection: ':memory:' + cache: + store: memory cors: origin: ${UFFIZZI_URL} - methods: [GET, POST, PUT, DELETE] + methods: [GET, HEAD, PATCH, POST, PUT, DELETE] credentials: true + csp: + connect-src: ["'self'", 'http:', 'https:'] + # Content-Security-Policy directives follow the Helmet format: https://helmetjs.github.io/#reference + # Default Helmet Content-Security-Policy values can be removed by setting the key to false + +auth: + environment: production + providers: {} + +catalog: + locations: + - type: url + target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml + +proxy: + '/circleci/api': + target: https://circleci.com/api/v1.1 + headers: + Circle-Token: ${CIRCLECI_AUTH_TOKEN} + + '/jenkins/api': + target: http://localhost:8080 + headers: + Authorization: ${JENKINS_BASIC_AUTH_HEADER} + + '/travisci/api': + target: https://api.travis-ci.com + changeOrigin: true + headers: + Authorization: ${TRAVISCI_AUTH_TOKEN} + travis-api-version: '3' + + '/newrelic/apm/api': + target: https://api.newrelic.com/v2 + headers: + X-Api-Key: ${NEW_RELIC_REST_API_KEY} + + '/newrelic/api': + target: https://api.newrelic.com + headers: + X-Api-Key: ${NEW_RELIC_USER_KEY} + + '/pagerduty': + target: https://api.pagerduty.com + headers: + Authorization: Token token=${PAGERDUTY_TOKEN} + + '/buildkite/api': + target: https://api.buildkite.com/v2/ + headers: + Authorization: ${BUILDKITE_TOKEN} + + '/sentry/api': + target: https://sentry.io/api/ + allowedMethods: ['GET'] + headers: + Authorization: ${SENTRY_TOKEN} + + '/ilert': + target: https://api.ilert.com + allowedMethods: ['GET', 'POST', 'PUT'] + allowedHeaders: ['Authorization'] + headers: + Authorization: ${ILERT_AUTH_HEADER} + + '/airflow': + target: https://your.airflow.instance.com/api/v1 + headers: + Authorization: ${AIRFLOW_BASIC_AUTH_HEADER} + + '/gocd': + target: https://your.gocd.instance.com/go/api + allowedMethods: ['GET'] + allowedHeaders: ['Authorization'] + headers: + Authorization: Basic ${GOCD_AUTH_CREDENTIALS} + + '/dynatrace': + target: https://your.dynatrace.instance.com/api/v2 + headers: + Authorization: 'Api-Token ${DYNATRACE_ACCESS_TOKEN}' + +techdocs: + builder: 'local' # Alternatives - 'external' + generator: + runIn: 'docker' + # dockerImage: my-org/techdocs # use a custom docker image + # pullImage: true # or false to disable automatic pulling of image (e.g. if custom docker login is required) + publisher: + type: 'local' # Alternatives - 'googleGcs' or 'awsS3' or 'azureBlobStorage' or 'openStackSwift'. Read documentation for using alternatives. + +dynatrace: + baseUrl: https://your.dynatrace.instance.com + +# Score-cards sample configuration. +scorecards: + jsonDataUrl: https://raw.githubusercontent.com/Oriflame/backstage-plugins/main/plugins/score-card/sample-data/ + wikiLinkTemplate: https://link-to-wiki/{id} + +sentry: + organization: my-company + +rollbar: + organization: my-company + # NOTE: The rollbar-backend & accountToken key may be deprecated in the future (replaced by a proxy config) + accountToken: my-rollbar-account-token + +lighthouse: + baseUrl: http://localhost:3003 + +kubernetes: + serviceLocatorMethod: + type: 'multiTenant' + clusterLocatorMethods: + - type: 'config' + clusters: [] + +kafka: + clientId: backstage + clusters: + - name: cluster + dashboardUrl: https://akhq.io/ + brokers: + - localhost:9092 + +allure: + baseUrl: http://localhost:5050/allure-docker-service + +integrations: + github: + - host: github.com + token: ${GITHUB_TOKEN} + ### Example for how to add your GitHub Enterprise instance using the API: + # - host: ghe.example.net + # apiBaseUrl: https://ghe.example.net/api/v3 + # token: ${GHE_TOKEN} + ### Example for how to add your GitHub Enterprise instance using raw HTTP fetches (token is optional): + # - host: ghe.example.net + # rawBaseUrl: https://ghe.example.net/raw + # token: ${GHE_TOKEN} + gitlab: + - host: gitlab.com + token: ${GITLAB_TOKEN} + ### Example for how to add a bitbucket cloud integration + # bitbucketCloud: + # - username: ${BITBUCKET_USERNAME} + # appPassword: ${BITBUCKET_APP_PASSWORD} + ### Example for how to add your bitbucket server instance using the API: + # - host: server.bitbucket.com + # apiBaseUrl: server.bitbucket.com + # username: ${BITBUCKET_SERVER_USERNAME} + # appPassword: ${BITBUCKET_SERVER_APP_PASSWORD} + azure: + - host: dev.azure.com + token: ${AZURE_TOKEN} + # googleGcs: + # clientEmail: 'example@example.com' + # privateKey: ${GCS_PRIVATE_KEY} + awsS3: + - host: amazonaws.com + accessKeyId: ${AWS_ACCESS_KEY_ID} + secretAccessKey: ${AWS_SECRET_ACCESS_KEY} + +costInsights: + engineerCost: 200000 + engineerThreshold: 0.5 + products: + computeEngine: + name: Compute Engine + icon: compute + cloudDataflow: + name: Cloud Dataflow + icon: data + cloudStorage: + name: Cloud Storage + icon: storage + bigQuery: + name: BigQuery + icon: search + events: + name: Events + icon: data + metrics: + DAU: + name: Daily Active Users + default: true + MSC: + name: Monthly Subscribers + currencies: + engineers: + label: 'Engineers 🛠' + unit: 'engineer' + usd: + label: 'US Dollars 💵' + kind: 'USD' + unit: 'dollar' + prefix: '$' + rate: 1 + carbonOffsetTons: + label: 'Carbon Offset Tons ♻️⚖️s' + kind: 'CARBON_OFFSET_TONS' + unit: 'carbon offset ton' + rate: 3.5 + beers: + label: 'Beers 🍺' + kind: 'BEERS' + unit: 'beer' + rate: 4.5 + pintsIceCream: + label: 'Pints of Ice Cream 🍦' + kind: 'PINTS_OF_ICE_CREAM' + unit: 'ice cream pint' + rate: 5.5 +pagerduty: + eventsBaseUrl: 'https://events.pagerduty.com/v2' +jenkins: + instances: + - name: default + baseUrl: https://jenkins.example.com + username: backstage-bot + apiKey: 123456789abcdef0123456789abcedf012 + +azureDevOps: + host: dev.azure.com + token: my-token + organization: my-company + +apacheAirflow: + baseUrl: https://your.airflow.instance.com + +gocd: + baseUrl: https://your.gocd.instance.com + +permission: + enabled: true diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index 20e1c867a7..98160a496d 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -82,6 +82,7 @@ dependabot deps destructured destructuring +Deutsche dev devops devs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a37ae745c4..c4af6021b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -185,21 +185,10 @@ jobs: with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} - - name: check for yarn.lock changes - id: yarn-lock - run: git diff --quiet origin/master HEAD -- yarn.lock - continue-on-error: true - - name: lint changed packages - if: ${{ steps.yarn-lock.outcome == 'success' }} run: yarn backstage-cli repo lint --since origin/master - - name: lint all packages - if: ${{ steps.yarn-lock.outcome == 'failure' }} - run: yarn backstage-cli repo lint - - name: test changed packages - if: ${{ steps.yarn-lock.outcome == 'success' }} run: yarn backstage-cli repo test --maxWorkers=2 --workerIdleMemoryLimit=1300M --since origin/master env: BACKSTAGE_TEST_DISABLE_DOCKER: 1 @@ -207,17 +196,6 @@ jobs: BACKSTAGE_TEST_DATABASE_POSTGRES9_CONNECTION_STRING: postgresql://postgres:postgres@localhost:${{ job.services.postgres9.ports[5432] }} BACKSTAGE_TEST_DATABASE_MYSQL8_CONNECTION_STRING: mysql://root:root@localhost:${{ job.services.mysql8.ports[3306] }}/ignored - - name: test all packages (and upload coverage) - if: ${{ steps.yarn-lock.outcome == 'failure' }} - run: | - yarn backstage-cli repo test --maxWorkers=2 --workerIdleMemoryLimit=800M --coverage - bash <(curl -s https://codecov.io/bash) -N $(git rev-parse FETCH_HEAD) - env: - BACKSTAGE_TEST_DISABLE_DOCKER: 1 - BACKSTAGE_TEST_DATABASE_POSTGRES13_CONNECTION_STRING: postgresql://postgres:postgres@localhost:${{ job.services.postgres13.ports[5432] }} - BACKSTAGE_TEST_DATABASE_POSTGRES9_CONNECTION_STRING: postgresql://postgres:postgres@localhost:${{ job.services.postgres9.ports[5432] }} - BACKSTAGE_TEST_DATABASE_MYSQL8_CONNECTION_STRING: mysql://root:root@localhost:${{ job.services.mysql8.ports[3306] }}/ignored - - name: ensure clean working directory run: | if files=$(git ls-files --exclude-standard --others --modified) && [[ -z "$files" ]]; then diff --git a/.github/workflows/uffizzi-build.yml b/.github/workflows/uffizzi-build.yml index 163531a755..1a86f8de71 100644 --- a/.github/workflows/uffizzi-build.yml +++ b/.github/workflows/uffizzi-build.yml @@ -8,6 +8,9 @@ on: jobs: build-backstage: + env: + NODE_OPTIONS: --max-old-space-size=4096 + UFFIZZI_URL: https://uffizzi.com name: Build PR image runs-on: ubuntu-latest if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }} @@ -16,8 +19,6 @@ jobs: steps: - name: checkout uses: actions/checkout@v3 - with: - path: backstage - name: setup-node uses: actions/setup-node@v3 @@ -25,21 +26,22 @@ jobs: node-version: 16.x registry-url: https://registry.npmjs.org/ - - name: backstage create-app | delete if already exists - run: | - rm -rf ./example-app - npx @backstage/create-app - env: - BACKSTAGE_APP_NAME: example-app - - - name: yarn build - run: | - yarn build:all - working-directory: ./example-app + - name: yarn install + uses: backstage/actions/yarn-install@v0.5.12 + with: + cache-prefix: linux-v16 - name: Use Uffizzi's backstage app config run: | - cp ./backstage/.github/uffizzi/uffizzi.production.app-config.yaml ./example-app/app-config.production.yaml; + cp -f ./.github/uffizzi/uffizzi.production.app-config.yaml ./app-config.yaml + + - name: typescript build + run: | + yarn tsc + + - name: backstage build + run: | + yarn workspace example-backend build - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 @@ -58,8 +60,8 @@ jobs: - name: Build Image uses: docker/build-push-action@v2 with: - context: example-app - file: example-app/packages/backend/Dockerfile + context: . + file: packages/backend/Dockerfile tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} push: true diff --git a/.github/workflows/verify_e2e-tugboat.yml b/.github/workflows/verify_e2e-tugboat.yml deleted file mode 100644 index cb3a463a0d..0000000000 --- a/.github/workflows/verify_e2e-tugboat.yml +++ /dev/null @@ -1,131 +0,0 @@ -name: E2E Test Tugboat -on: deployment_status - -jobs: - set-pending: - if: github.event.deployment_status.state != 'success' && github.event.deployment_status.state != 'failed' - name: Set pending waiting for Tugboat - runs-on: ubuntu-latest - steps: - # Set an initial commit status message to indicate that the tests are - # running. - - name: set pending status - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - debug: true - script: | - return github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: context.sha, - state: 'pending', - context: 'Backstage Tugboat E2E Tests', - description: 'Waiting for Tugboat to complete deployment', - target_url: "https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" - }); - - run-tests: - # Only run after a successful Tugboat deployment. - if: github.event.deployment_status.state == 'success' - name: Run tests against Tugboat deployment - runs-on: ubuntu-latest - steps: - # Set an initial commit status message to indicate that the tests are - # running. - - name: set pending status - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - debug: true - script: | - return github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: context.sha, - state: 'pending', - context: 'Backstage Tugboat E2E Tests', - description: 'Running against tugboat preview', - target_url: "https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" - }); - - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: '16.x' - - - name: yarn install - run: yarn --cwd cypress install - - # This is required because the environment_url param that Tugboat uses - # to tell us where the preview is located isn't supported unless you - # specify the custom Accept header when getting the deployment_status, - # and GitHub actions doesn't do that by default. So instead we have to - # load the status object manually and get the data we need. - # https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements/ - - name: get deployment status - id: get-status-env - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - result-encoding: string - script: | - const result = await github.rest.repos.getDeploymentStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - deployment_id: context.payload.deployment.id, - status_id: context.payload.deployment_status.id, - headers: { - 'Accept': 'application/vnd.github.ant-man-preview+json' - }, - }); - console.log(result); - return result.data.environment_url; - - - name: cypress run - uses: cypress-io/github-action@v2 - env: - CYPRESS_baseUrl: ${{steps.get-status-env.outputs.result}} - with: - config-file: ./cypress.json - working-directory: ./cypress - browser: chrome - install: false - headless: true - - - name: update artifact - if: ${{ always() }} - uses: actions/upload-artifact@v3 - with: - name: cypress-videos - path: ./cypress/cypress/videos - - - name: set status - if: ${{ failure() }} - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - script: | - return github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: context.sha, - state: "error", - context: 'Backstage Tugboat E2E Tests', - target_url: "https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" - }); - - - name: set status - if: ${{ success() }} - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - script: | - return github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: context.sha, - state: "success", - context: 'Backstage Tugboat E2E Tests', - target_url: "https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" - }); diff --git a/.tugboat/config.yml b/.tugboat/config.yml deleted file mode 100644 index 1d06e39152..0000000000 --- a/.tugboat/config.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - backstage: - image: tugboatqa/node:lts - expose: 7007 - default: true - commands: - init: - - mkdir -p /etc/service/node - - echo "#!/bin/sh" > /etc/service/node/run - - echo "yarn --cwd ${TUGBOAT_ROOT} start-backend --config ${TUGBOAT_ROOT}/app-config.yaml --config ${TUGBOAT_ROOT}/.tugboat/tugboat.app-config.production.yaml" >> /etc/service/node/run - - chmod +x /etc/service/node/run - build: - - yarn install --immutable - - yarn workspace example-app build - start: - # wget the endpoint. Will retry every 2 seconds. 30 retries = 1m for service to come up. Plenty. - - wget -O /dev/null -o /dev/null --tries=30 --timeout=5 --retry-connrefused http://localhost:7007 diff --git a/.tugboat/tugboat.app-config.production.yaml b/.tugboat/tugboat.app-config.production.yaml deleted file mode 100644 index b264d53f3f..0000000000 --- a/.tugboat/tugboat.app-config.production.yaml +++ /dev/null @@ -1,10 +0,0 @@ -app: - title: Backstage Tugboat Preview - baseUrl: ${TUGBOAT_DEFAULT_SERVICE_URL} - -backend: - baseUrl: ${TUGBOAT_DEFAULT_SERVICE_URL} - cors: - origin: ${TUGBOAT_DEFAULT_SERVICE_URL} - methods: [GET, POST, PUT, DELETE] - credentials: true diff --git a/ADOPTERS.md b/ADOPTERS.md index 781610e3fb..9ee67e9bed 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -224,3 +224,4 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [FanDuel](https://fanduel.com) | [Diego Herrera](https://github.com/diegoh), [Christy Campbell](https://github.com/FD-ChristopherCampbell) | We use backstage as our developer portal to provide visibility of our software, ownership, strategy, and the state of maturity across disciplines. | | [Operate First](https://www.operate-first.cloud/) | [Tom Coufal](https://github.com/tumido), [Sam Kopecky](https://github.com/samokopecky) | Backstage provides us with a public service catalog and serves as a gateway to our community cloud. Our instance is publicly available to everyone [here](https://service-catalog.operate-first.cloud/) ([source](https://github.com/operate-first/service-catalog)) | | [Tractable AI](https://tractable.ai/) | [Stephan Schielke](https://github.com/stephanschielke) | We are hitting a critical point in our scale (100+ engineers) and need to get a handle on discoverability and ownership. The Service Catalog, TechDocs and Search are essential to us to achieve that. | +| [Garanti BBVA](https://www.garantibbva.com.tr/) | [Caglar Cataloglu](https://github.com/crozwise) | We are using Backstage focusing on improving experience of developer, minimizing friction from idea to code. We call our portal as "Hyperspace" and very excited for our community (2000+ engineers) that finally we have a platform to boost our productivity! diff --git a/cypress/README.md b/cypress/README.md index 4212af398c..be2960e63c 100644 --- a/cypress/README.md +++ b/cypress/README.md @@ -2,10 +2,6 @@ Hey 👋 Welcome to the Cypress tests for Backstage. They're designed to be run against the `packages/app` folder in the main repo, and be some form of smoke tests to make sure that we don't break any core functionality. -They run part of the PR build, and are triggered from the `.github/workflows/tugboat.yml` file. - -The main app gets built up part of a [Tugboat Build](https://tugboat.qa), which when complete, sends a `deployment event` to the PR triggering the aforementioned workflow. - ### Running Locally In order to make typescript happy, this `cypress` package is separate from all the Jest dependencies in the monorepo workspaces setup. diff --git a/docs/assets/getting-started/create-plugin_output.png b/docs/assets/getting-started/create-plugin_output.png index 47231c2079..78389fa02f 100644 Binary files a/docs/assets/getting-started/create-plugin_output.png and b/docs/assets/getting-started/create-plugin_output.png differ diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index f0151d7618..383fd698f9 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -251,6 +251,23 @@ the entity belongs to the `"default"` namespace. Namespaces may also be part of the catalog, and are `v1` / `Namespace` entities, i.e. not Backstage specific but the same as in Kubernetes. +### `uid` [output] + +Each entity gets an automatically generated globally unique ID when it first +enters the database. This field is not meant to be specified as input data, but +is rater created by the database engine itself when producing the output entity. + +Note that `uid` values are _not_ to be seen as stable, and should _not_ be used +as external references to an entity. The `uid` can change over time even when a +human observer might think that it wouldn't. As one of many examples, +unregistering and re-registering the exact same file will result in a different +`uid` value even though everything else is the same. Therefore there is very +little, if any, reason to read or use this field externally. + +If you want to refer to an entity by some form of an identifier, you should +always use [string-form entity reference](references.md#string-references) +instead. + ### `title` [optional] A display name of the entity, to be presented in user interfaces instead of the diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md index e5fdb034fb..71aa0ab758 100644 --- a/docs/features/software-templates/writing-templates.md +++ b/docs/features/software-templates/writing-templates.md @@ -44,8 +44,8 @@ spec: description: Owner of the component ui:field: OwnerPicker ui:options: - allowedKinds: - - Group + catalogFilter: + kind: Group - title: Choose a location required: - repoUrl @@ -165,11 +165,11 @@ this: "firstName": { "ui:autofocus": true, "ui:emptyValue": "", - "ui:autocomplete": "family-name" + "ui:autocomplete": "given-name" }, "lastName": { "ui:emptyValue": "", - "ui:autocomplete": "given-name" + "ui:autocomplete": "family-name" }, "nicknames": { "ui:options":{ @@ -211,12 +211,12 @@ spec: default: Chuck ui:autofocus: true ui:emptyValue: '' - ui:autocomplete: family-name + ui:autocomplete: given-name lastName: type: string title: Last name ui:emptyValue: '' - ui:autocomplete: given-name + ui:autocomplete: family-name nicknames: type: array items: @@ -459,7 +459,7 @@ an owner for them. Ideally, users should be able to select an owner when they go through the scaffolder form from the users and groups already known to Backstage. The `OwnerPicker` is a custom field that generates a searchable list of groups and/or users already in the catalog to pick an owner from. You can -specify which of the two kinds are listed in the `allowedKinds` option: +specify which of the two kinds (or both) are listed in the `catalogFilter.kind` option: ```yaml owner: @@ -468,8 +468,8 @@ owner: description: Owner of the component ui:field: OwnerPicker ui:options: - allowedKinds: - - Group + catalogFilter: + kind: [Group, User] ``` ## `spec.steps` - `Action[]` diff --git a/docs/getting-started/contributors.md b/docs/getting-started/contributors.md index cda53f8a54..b6a12be013 100644 --- a/docs/getting-started/contributors.md +++ b/docs/getting-started/contributors.md @@ -116,7 +116,7 @@ yarn clean # Remove all output folders and @backstage/cli cache yarn diff # Make sure all plugins are up to date with the latest plugin template -yarn create-plugin # Create a new plugin +yarn new # Create a new module ``` > See diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 16e361a19f..962919015b 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -49,7 +49,7 @@ installation. Running the command below will install Backstage. The wizard will create a subdirectory inside your current working directory. ```bash -npx @backstage/create-app +npx @backstage/create-app@latest ``` The wizard will ask you for the name of the app, which will also be the name of the directory diff --git a/docs/getting-started/project-structure.md b/docs/getting-started/project-structure.md index 858f0d8370..7873613a7b 100644 --- a/docs/getting-started/project-structure.md +++ b/docs/getting-started/project-structure.md @@ -101,7 +101,7 @@ are separated out into their own folder, see further down. - [`cli/`](https://github.com/backstage/backstage/tree/master/packages/cli) - One of the biggest packages in our project, the `cli` is used to build, serve, - diff, create-plugins and more. In the early days of this project, we started + diff, create plugins and more. In the early days of this project, we started out with calling tools directly - such as `eslint` - through `package.json`. But as it was tricky to have a good development experience around that when we change named tooling, we opted for wrapping those in our own CLI. That way diff --git a/docs/local-dev/cli-commands.md b/docs/local-dev/cli-commands.md index 715d586545..b43825d733 100644 --- a/docs/local-dev/cli-commands.md +++ b/docs/local-dev/cli-commands.md @@ -201,15 +201,15 @@ Usage: backstage-cli package postpack [options] Restores the changes made by the prepack command ``` -## create +## new -The `create` command opens up an interactive guide for you to create new things +The `new` command opens up an interactive guide for you to create new things in your app. If you do not pass in any options it is completely interactive, but it is possible to pre-select what you want to create using the `--select` flag, -and provide options using `--options`, for example: +and provide options using `--option`, for example: ```bash -backstage-cli create --select plugin --option id=foo +backstage-cli new --select plugin --option id=foo ``` This command is typically added as script in the root `package.json` to be diff --git a/docs/plugins/backend-plugin.md b/docs/plugins/backend-plugin.md index 65a668d391..517779d161 100644 --- a/docs/plugins/backend-plugin.md +++ b/docs/plugins/backend-plugin.md @@ -28,7 +28,7 @@ lowercase characters separated by dashes, for example `carmen`, if it's a package that adds an integration with a system named Carmen, for example. The full NPM package name would then be something like `@internal/plugin-carmen-backend`, depending on the other flags passed to the -`create-plugin` command, and your settings for the `create-plugin` command in +`new` command, and your settings for the `new` command in your root `package.json`. Creating the plugin will take a little while, so be patient. It will helpfully diff --git a/docs/plugins/create-a-plugin.md b/docs/plugins/create-a-plugin.md index 29607af140..da7cf0051a 100644 --- a/docs/plugins/create-a-plugin.md +++ b/docs/plugins/create-a-plugin.md @@ -11,7 +11,7 @@ A Backstage Plugin adds functionality to Backstage. To create a new plugin, make sure you've run `yarn install` and installed dependencies, then run the following on your command line (a shortcut to invoking the -[`backstage-cli create-plugin`](../local-dev/cli-commands.md#create-plugin)) +[`backstage-cli new --select plugin`](../local-dev/cli-commands.md#new)) from the root of your project. ```bash diff --git a/docs/plugins/integrating-plugin-into-software-catalog.md b/docs/plugins/integrating-plugin-into-software-catalog.md index 97efa56ac3..a44e6d01c0 100644 --- a/docs/plugins/integrating-plugin-into-software-catalog.md +++ b/docs/plugins/integrating-plugin-into-software-catalog.md @@ -21,7 +21,7 @@ should have a separate package in a folder, which represents your plugin. Example: ``` -$ yarn create-plugin +$ yarn new --select plugin > ? Enter an ID for the plugin [required] my-plugin > ? Enter the owner(s) of the plugin. If specified, this will be added to CODEOWNERS for the plugin path. [optional] diff --git a/docs/releases/v1.10.0-next.0-changelog.md b/docs/releases/v1.10.0-next.0-changelog.md new file mode 100644 index 0000000000..71bd712dbc --- /dev/null +++ b/docs/releases/v1.10.0-next.0-changelog.md @@ -0,0 +1,1916 @@ +# Release v1.10.0-next.0 + +## @backstage/catalog-client@1.3.0-next.0 + +### Minor Changes + +- f75bf76330: Implemented support for the `order` directive on `getEntities` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/errors@1.1.4 + +## @backstage/plugin-catalog-backend@1.7.0-next.0 + +### Minor Changes + +- f75bf76330: Implemented server side ordering in the entities endpoint + +### Patch Changes + +- d136793ff0: 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. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-scaffolder@1.10.0-next.0 + +### Minor Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +### Patch Changes + +- 3c112f6967: rollback `@rjsf/validator-ajv8` to `@rjsf/validator-v6` +- 223e2c5f03: add `onChange` handler to`Stepper` component +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-react@0.4.8 + +## @backstage/app-defaults@1.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-permission-react@0.4.8 + +## @backstage/backend-test-utils@0.1.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/backend-app-api@0.2.4 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/config@1.0.5 + +## @backstage/catalog-model@1.1.5-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## @backstage/cli@0.22.1-next.0 + +### Patch Changes + +- 47c10706df: Fixed an issue where the CLI would fail to function when there was a mix of workspace and non-workspace versions of the same package in `yarn.lock` when using Yarn 3. +- a62a1f9dca: The frontend serve task now filters out allowed package duplicates during its package check, just like `versions:bump` and `versions:check`. +- 7c8a974515: The `repo test`, `repo lint`, and `repo build` commands will now analyze `yarn.lock` for dependency changes when searching for changed packages. This allows you to use the `--since ` flag even if you have `yarn.lock` changes. +- e1b71e142e: Workspace ranges are no longer considered invalid by version commands. +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/config@1.0.5 + - @backstage/config-loader@1.1.7 + - @backstage/errors@1.1.4 + - @backstage/release-manifests@0.0.8 + - @backstage/types@1.0.2 + +## @backstage/core-components@0.12.3-next.0 + +### Patch Changes + +- f2ea446de0: Applied fix from v1.9.1 +- Updated dependencies + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/version-bridge@1.0.3 + +## @backstage/create-app@0.4.36-next.0 + +### Patch Changes + +- Bumped create-app version. +- Updated dependencies + - @backstage/cli-common@0.1.11 + +## @backstage/dev-utils@1.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + +## @backstage/integration-react@1.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/repo-tools@0.1.1-next.0 + +### Patch Changes + +- c447a5221b: Use the project tsconfig in case of selection all packages +- 93cff3053e: Move some dependencies as `peerDependencies` because we need to always use same version as in `api-extractor` +- 75275b0b0b: Updated dependency `@microsoft/tsdoc-config` to `0.16.2`. +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/errors@1.1.4 + +## @techdocs/cli@1.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/cli-common@0.1.11 + - @backstage/config@1.0.5 + - @backstage/plugin-techdocs-node@1.4.4-next.0 + +## @backstage/plugin-adr@0.2.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-adr-common@0.2.5-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-adr-backend@0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-adr-common@0.2.5-next.0 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-adr-common@0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/integration@1.4.1 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-airbrake@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/dev-utils@1.0.11-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + +## @backstage/plugin-allure@0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-analytics-module-ga@0.1.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-apache-airflow@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + +## @backstage/plugin-api-docs@0.8.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + +## @backstage/plugin-apollo-explorer@0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-auth-backend@0.17.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + +## @backstage/plugin-azure-devops@0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-devops-common@0.3.0 + +## @backstage/plugin-azure-sites@0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-sites-common@0.1.0 + +## @backstage/plugin-badges@0.2.38-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-badges-backend@0.1.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + +## @backstage/plugin-bazaar@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog@1.7.2-next.0 + +## @backstage/plugin-bazaar-backend@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + +## @backstage/plugin-bitrise@0.1.41-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-catalog@1.7.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-catalog-backend-module-aws@0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-azure@0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-node@0.2.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-github@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-node@0.2.0 + +## @backstage/plugin-catalog-backend-module-gitlab@0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-permission-common@0.7.2 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-backend-module-msgraph@0.4.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-common@1.0.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-catalog-graph@0.2.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-catalog-graphql@0.3.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/config@1.0.5 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-import@0.9.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.0 + +## @backstage/plugin-catalog-node@1.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + +## @backstage/plugin-catalog-react@1.2.4-next.0 + +### Patch Changes + +- 37426f6f5e: Fixed bug in `EntityTagPicker` that filtered on unavailable tags for the selected kind. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-react@0.4.8 + +## @backstage/plugin-cicd-statistics@0.1.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-plugin-api@1.2.0 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-cicd-statistics@0.1.16-next.0 + +## @backstage/plugin-circleci@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-cloudbuild@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-code-climate@0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-code-coverage@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-code-coverage-backend@0.2.6-next.0 + +### Patch Changes + +- dcfdaeccd3: `RouterOptions` now accepts an optional `catalogApi` argument, allowing custom catalog clients to be used. This is leveraged in the local standalone development runner to pass in a catalog client that returns fake data. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + +## @backstage/plugin-codescene@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-config-schema@0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## @backstage/plugin-cost-insights@0.12.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-cost-insights-common@0.1.1 + +## @backstage/plugin-dynatrace@1.0.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-explore@0.3.45-next.0 + +### Patch Changes + +- d318d4f659: Makes the `GroupsDiagram` not grown on screen on its own. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.24 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-explore-backend@0.0.2-next.0 + +### Patch Changes + +- 358554ff3c: Bump `msw` to `^0.49.0` +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-firehydrant@0.1.31-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-fossa@0.2.46-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gcalendar@0.3.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gcp-projects@0.3.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-git-release-manager@0.3.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/plugin-github-actions@0.5.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/plugin-github-deployments@0.1.45-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-github-issues@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/plugin-github-pull-requests-board@0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gitops-profiles@0.3.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gocd@0.1.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-graphiql@0.2.46-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-graphql-backend@0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-graphql@0.3.17-next.0 + +## @backstage/plugin-home@0.4.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-stack-overflow@0.1.10-next.0 + +## @backstage/plugin-ilert@0.2.3-next.0 + +### Patch Changes + +- b1279d396d: fixed error on service page not showing if historical uptime was disabled on a service +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-jenkins@0.7.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-jenkins-common@0.1.12-next.0 + +## @backstage/plugin-jenkins-backend@0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-jenkins-common@0.1.12-next.0 + - @backstage/plugin-permission-common@0.7.2 + +## @backstage/plugin-jenkins-common@0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + +## @backstage/plugin-kafka@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-kafka-backend@0.2.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + +## @backstage/plugin-kubernetes@0.7.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-kubernetes-common@0.5.1-next.0 + +## @backstage/plugin-kubernetes-backend@0.9.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-kubernetes-common@0.5.1-next.0 + +## @backstage/plugin-kubernetes-common@0.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + +## @backstage/plugin-lighthouse@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-newrelic@0.3.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-newrelic-dashboard@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + +## @backstage/plugin-org@0.6.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-org-react@0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-pagerduty@0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-periskop@0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-playlist@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/plugin-playlist-common@0.1.3 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-playlist-backend@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-playlist-common@0.1.3 + +## @backstage/plugin-rollbar@0.4.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-scaffolder-backend@1.9.1-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.15-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.8-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.13-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/config@1.0.5 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-common@1.2.4-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-search@1.0.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-search-backend@1.2.1-next.0 + +### Patch Changes + +- bfd66b0478: Allow max page limit for search results to be configurable +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-search-backend-module-elasticsearch@1.1.1-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- 1e1a9fe979: Fixed a bug that could cause an indexing process to silently fail, timeout, and accumulate stale indices. +- 56633804dd: Fixed a bug that could cause the backstage backend to unexpectedly terminate when client errors were encountered during the indexing process. +- aa33a06894: Improved index throughput by optimizing when and how many documents were made available to the bulk client. +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-search-backend-module-pg@0.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-search-backend-node@1.1.1-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-search-react@1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-sentry@0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-shortcuts@0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## @backstage/plugin-sonarqube@0.6.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-sonarqube-react@0.1.1-next.0 + +## @backstage/plugin-sonarqube-react@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-plugin-api@1.2.0 + +## @backstage/plugin-splunk-on-call@0.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-stack-overflow@0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-home@0.4.30-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-stack-overflow-backend@0.1.9-next.0 + +### Patch Changes + +- 06f6a4f0f1: 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. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-tech-insights@0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + +## @backstage/plugin-tech-insights-backend@0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + - @backstage/plugin-tech-insights-node@0.3.7 + +## @backstage/plugin-tech-radar@0.5.21-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-techdocs@1.4.3-next.0 + +### Patch Changes + +- 7115c7389b: Updated dependency `jss` to `~10.9.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-techdocs-backend@1.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-techdocs-node@1.4.4-next.0 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-techdocs-node@1.4.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-aws-node@0.1.0 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-techdocs-react@1.1.2-next.0 + +### Patch Changes + +- 7115c7389b: Updated dependency `jss` to `~10.9.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/version-bridge@1.0.3 + +## @backstage/plugin-todo@0.2.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-todo-backend@0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + +## @backstage/plugin-user-settings@0.6.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## @backstage/plugin-user-settings-backend@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + +## @backstage/plugin-vault@0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-vault-backend@0.2.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + +## @backstage/plugin-xcmetrics@0.2.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## example-app@0.2.79-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/plugin-scaffolder@1.10.0-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/plugin-explore@0.3.45-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/config@1.0.5 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-airbrake@0.3.14-next.0 + - @backstage/plugin-apache-airflow@0.2.7-next.0 + - @backstage/plugin-api-docs@0.8.14-next.0 + - @backstage/plugin-azure-devops@0.2.5-next.0 + - @backstage/plugin-azure-sites@0.1.3-next.0 + - @backstage/plugin-badges@0.2.38-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-graph@0.2.26-next.0 + - @backstage/plugin-catalog-import@0.9.4-next.0 + - @backstage/plugin-circleci@0.3.14-next.0 + - @backstage/plugin-cloudbuild@0.3.14-next.0 + - @backstage/plugin-code-coverage@0.2.7-next.0 + - @backstage/plugin-cost-insights@0.12.3-next.0 + - @backstage/plugin-dynatrace@1.0.4-next.0 + - @backstage/plugin-gcalendar@0.3.10-next.0 + - @backstage/plugin-gcp-projects@0.3.33-next.0 + - @backstage/plugin-github-actions@0.5.14-next.0 + - @backstage/plugin-gocd@0.1.20-next.0 + - @backstage/plugin-graphiql@0.2.46-next.0 + - @backstage/plugin-home@0.4.30-next.0 + - @backstage/plugin-jenkins@0.7.13-next.0 + - @backstage/plugin-kafka@0.3.14-next.0 + - @backstage/plugin-kubernetes@0.7.7-next.0 + - @backstage/plugin-lighthouse@0.3.14-next.0 + - @backstage/plugin-newrelic@0.3.32-next.0 + - @backstage/plugin-newrelic-dashboard@0.2.7-next.0 + - @backstage/plugin-org@0.6.4-next.0 + - @backstage/plugin-pagerduty@0.5.7-next.0 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/plugin-playlist@0.1.5-next.0 + - @backstage/plugin-rollbar@0.4.14-next.0 + - @backstage/plugin-search@1.0.7-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + - @backstage/plugin-sentry@0.4.7-next.0 + - @backstage/plugin-shortcuts@0.3.6-next.0 + - @backstage/plugin-stack-overflow@0.1.10-next.0 + - @backstage/plugin-tech-insights@0.3.6-next.0 + - @backstage/plugin-tech-radar@0.5.21-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.9-next.0 + - @backstage/plugin-todo@0.2.16-next.0 + - @backstage/plugin-user-settings@0.6.2-next.0 + - @internal/plugin-catalog-customized@0.0.6-next.0 + +## example-backend@0.2.79-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-search-backend-module-elasticsearch@1.1.1-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-explore-backend@0.0.2-next.0 + - @backstage/plugin-code-coverage-backend@0.2.6-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.8-next.0 + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/plugin-search-backend@1.2.1-next.0 + - example-app@0.2.79-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/plugin-app-backend@0.3.39 + - @backstage/plugin-auth-backend@0.17.3-next.0 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-azure-devops-backend@0.3.18 + - @backstage/plugin-azure-sites-backend@0.1.1 + - @backstage/plugin-badges-backend@0.1.34-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-backend@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/plugin-graphql-backend@0.1.30-next.0 + - @backstage/plugin-jenkins-backend@0.1.30-next.0 + - @backstage/plugin-kafka-backend@0.2.33-next.0 + - @backstage/plugin-kubernetes-backend@0.9.1-next.0 + - @backstage/plugin-permission-backend@0.5.14 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-playlist-backend@0.2.3-next.0 + - @backstage/plugin-proxy-backend@0.2.33 + - @backstage/plugin-rollbar-backend@0.1.36 + - @backstage/plugin-search-backend-module-pg@0.5.1-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-tech-insights-backend@0.5.6-next.0 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.23 + - @backstage/plugin-tech-insights-node@0.3.7 + - @backstage/plugin-techdocs-backend@1.5.1-next.0 + - @backstage/plugin-todo-backend@0.1.37-next.0 + +## example-backend-next@0.0.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-defaults@0.1.4 + - @backstage/plugin-app-backend@0.3.39 + +## techdocs-cli-embedded-app@0.2.78-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/config@1.0.5 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + +## @internal/plugin-catalog-customized@0.0.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/plugin-catalog@1.7.2-next.0 + +## @internal/plugin-todo-list@1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 diff --git a/docs/tutorials/journey.md b/docs/tutorials/journey.md index 126bb5ae0d..af78cbe597 100644 --- a/docs/tutorials/journey.md +++ b/docs/tutorials/journey.md @@ -28,7 +28,7 @@ organization to easily install and add to their Backstage installation. # 1. A New Plugin Sam chooses to develop this plugin in a standalone project and creates a new -plugin using `npx @backstage/cli create-plugin`, which detects that it's not +plugin using `npx @backstage/cli new --select plugin`, which detects that it's not being run in an existing project and therefore creates a separate plugin repo. Spinning up the frontend with `yarn start`, Sam goes to work with getting the diff --git a/docs/tutorials/quickstart-app-plugin.md b/docs/tutorials/quickstart-app-plugin.md index ea0a511c93..a1b30829b3 100644 --- a/docs/tutorials/quickstart-app-plugin.md +++ b/docs/tutorials/quickstart-app-plugin.md @@ -29,8 +29,8 @@ title: Adding Custom Plugin to Existing Monorepo App # The Skeleton Plugin -1. Start by using the built in creator. From the terminal and root of your - project run: `yarn create-plugin` +1. Start by using the built-in creator. From the terminal and root of your + project run: `yarn new --select plugin` 1. Enter a plugin ID. I used `github-playground` 1. When the process finishes, let's start the backend: `yarn --cwd packages/backend start` diff --git a/microsite-next/package.json b/microsite-next/package.json index 1b33d2896f..478fce0196 100644 --- a/microsite-next/package.json +++ b/microsite-next/package.json @@ -4,9 +4,8 @@ "license": "Apache-2.0", "private": true, "scripts": { - "examples": "docusaurus-examples", - "start": "docusaurus start", - "build": "docusaurus build", + "start": "node scripts/pre-build.js && docusaurus start", + "build": "node scripts/pre-build.js && docusaurus build", "prettier:check": "prettier --check .", "publish-gh-pages": "docusaurus-publish", "write-translations": "docusaurus-write-translations", @@ -20,7 +19,8 @@ "devDependencies": { "@spotify/prettier-config": "^14.0.0", "js-yaml": "^4.1.0", - "prettier": "^2.6.2" + "prettier": "^2.6.2", + "replace": "^1.2.2" }, "prettier": "@spotify/prettier-config", "dependencies": { diff --git a/microsite-next/scripts/pre-build.js b/microsite-next/scripts/pre-build.js new file mode 100644 index 0000000000..8b4fb4f71e --- /dev/null +++ b/microsite-next/scripts/pre-build.js @@ -0,0 +1,49 @@ +/* + * 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. + */ + +const replace = require('replace'); +const { existsSync, writeFileSync, mkdirSync } = require('fs'); +const path = require('path'); + +const PLACEHOLDER = `--- +id: "index" +title: "Package Index" +description: "Index of all Backstage Packages" +--- +Run \`yarn build:api-docs\` to generate the API docs. +`; + +async function main() { + const referencesDir = '../docs/reference'; + if (existsSync(referencesDir)) { + console.log('Removing HTML comments from docs/reference folder'); + replace({ + regex: '', + replacement: '', + paths: [referencesDir], + recursive: true, + silent: false, + }); + } else { + mkdirSync(referencesDir); + writeFileSync(path.join(referencesDir, 'index.md'), PLACEHOLDER); + } +} + +main().catch(error => { + console.error(error.stack); + process.exit(1); +}); diff --git a/microsite-next/sidebars.json b/microsite-next/sidebars.json index 0967ef424b..67c4209976 100644 --- a/microsite-next/sidebars.json +++ b/microsite-next/sidebars.json @@ -1 +1,366 @@ -{} +{ + "releases": { + "Release Notes": [ + "releases/v1.8.0", + "releases/v1.7.0", + "releases/v1.6.0", + "releases/v1.5.0", + "releases/v1.4.0", + "releases/v1.3.0", + "releases/v1.2.0", + "releases/v1.1.0", + "releases/v1.0.0" + ] + }, + "docs": { + "Overview": [ + "overview/what-is-backstage", + "overview/architecture-overview", + "overview/roadmap", + "overview/vision", + "overview/background", + "overview/adopting", + "overview/versioning-policy", + "overview/threat-model", + "overview/support", + "overview/glossary", + "overview/logos" + ], + "Getting Started": [ + "getting-started/index", + "getting-started/configuration", + "getting-started/create-an-app", + "getting-started/running-backstage-locally", + { + "type": "category", + "label": "App configuration", + "items": [ + "getting-started/configure-app-with-plugins", + "getting-started/app-custom-theme", + "getting-started/homepage" + ] + }, + "getting-started/keeping-backstage-updated", + "getting-started/concepts", + "getting-started/contributors", + "getting-started/project-structure" + ], + "Local Development": [ + { + "type": "category", + "label": "CLI", + "items": [ + "local-dev/cli-overview", + "local-dev/cli-build-system", + "local-dev/cli-commands" + ] + }, + "local-dev/linking-local-packages" + ], + "Core Features": [ + { + "type": "category", + "label": "Software Catalog", + "items": [ + "features/software-catalog/software-catalog-overview", + "features/software-catalog/life-of-an-entity", + "features/software-catalog/configuration", + "features/software-catalog/system-model", + "features/software-catalog/descriptor-format", + "features/software-catalog/references", + "features/software-catalog/well-known-annotations", + "features/software-catalog/well-known-relations", + "features/software-catalog/well-known-statuses", + "features/software-catalog/extending-the-model", + "features/software-catalog/external-integrations", + "features/software-catalog/catalog-customization", + "features/software-catalog/software-catalog-api" + ] + }, + { + "type": "category", + "label": "Kubernetes", + "items": [ + "features/kubernetes/overview", + "features/kubernetes/installation", + "features/kubernetes/configuration", + "features/kubernetes/authentication", + "features/kubernetes/troubleshooting" + ] + }, + { + "type": "category", + "label": "Software Templates", + "items": [ + "features/software-templates/software-templates-index", + "features/software-templates/configuration", + "features/software-templates/adding-templates", + "features/software-templates/writing-templates", + "features/software-templates/input-examples", + "features/software-templates/builtin-actions", + "features/software-templates/writing-custom-actions", + "features/software-templates/writing-custom-field-extensions", + "features/software-templates/writing-custom-step-layouts", + "features/software-templates/migrating-from-v1beta2-to-v1beta3" + ] + }, + { + "type": "category", + "label": "Backstage Search", + "items": [ + "features/search/search-overview", + "features/search/getting-started", + "features/search/concepts", + "features/search/architecture", + "features/search/search-engines", + "features/search/how-to-guides" + ] + }, + { + "type": "category", + "label": "TechDocs", + "items": [ + "features/techdocs/techdocs-overview", + "features/techdocs/getting-started", + "features/techdocs/concepts", + "features/techdocs/addons", + "features/techdocs/architecture", + "features/techdocs/creating-and-publishing", + "features/techdocs/configuration", + "features/techdocs/using-cloud-storage", + "features/techdocs/configuring-ci-cd", + "features/techdocs/cli", + "features/techdocs/how-to-guides", + "features/techdocs/troubleshooting", + "features/techdocs/faqs" + ] + } + ], + "Integrations": [ + "integrations/index", + { + "type": "category", + "label": "AWS S3", + "items": [ + "integrations/aws-s3/locations", + "integrations/aws-s3/discovery" + ] + }, + { + "type": "category", + "label": "Azure", + "items": [ + "integrations/azure/locations", + "integrations/azure/discovery", + "integrations/azure/org" + ] + }, + { + "type": "category", + "label": "Bitbucket Cloud", + "items": [ + "integrations/bitbucketCloud/locations", + "integrations/bitbucketCloud/discovery" + ] + }, + { + "type": "category", + "label": "Bitbucket Server", + "items": [ + "integrations/bitbucketServer/locations", + "integrations/bitbucketServer/discovery" + ] + }, + { + "type": "category", + "label": "Datadog", + "items": ["integrations/datadog-rum/installation"] + }, + { + "type": "category", + "label": "Gerrit", + "items": [ + "integrations/gerrit/locations", + "integrations/gerrit/discovery" + ] + }, + { + "type": "category", + "label": "GitHub", + "items": [ + "integrations/github/locations", + "integrations/github/discovery", + "integrations/github/org", + "integrations/github/github-apps" + ] + }, + { + "type": "category", + "label": "GitLab", + "items": [ + "integrations/gitlab/locations", + "integrations/gitlab/discovery" + ] + }, + { + "type": "category", + "label": "Gitea", + "items": ["integrations/gitea/locations"] + }, + { + "type": "category", + "label": "Google GCS", + "items": ["integrations/google-cloud-storage/locations"] + }, + { + "type": "category", + "label": "LDAP", + "items": ["integrations/ldap/org"] + } + ], + "Plugins": [ + "plugins/index", + "plugins/existing-plugins", + "plugins/create-a-plugin", + "plugins/plugin-development", + "plugins/structure-of-a-plugin", + "plugins/integrating-plugin-into-software-catalog", + "plugins/integrating-search-into-plugins", + "plugins/composability", + "plugins/customization", + "plugins/analytics", + "plugins/feature-flags", + { + "type": "category", + "label": "Backends and APIs", + "items": [ + "plugins/proxying", + "plugins/backend-plugin", + "plugins/call-existing-api", + "plugins/url-reader", + "plugins/new-backend-system" + ] + }, + { + "type": "category", + "label": "Testing", + "items": ["plugins/testing"] + }, + { + "type": "category", + "label": "Publishing", + "items": [ + "plugins/publish-private", + "plugins/add-to-marketplace", + "plugins/observability" + ] + } + ], + "Configuration": [ + "conf/index", + "conf/reading", + "conf/writing", + "conf/defining" + ], + "Auth and identity": [ + "auth/index", + { + "type": "category", + "label": "Included providers", + "items": [ + "auth/auth0/provider", + "auth/atlassian/provider", + "auth/bitbucket/provider", + "auth/microsoft/provider", + "auth/github/provider", + "auth/gitlab/provider", + "auth/google/provider", + "auth/google/gcp-iap-auth", + "auth/okta/provider", + "auth/onelogin/provider", + "auth/oauth2-proxy/provider" + ] + }, + "auth/identity-resolver", + "auth/oauth", + "auth/oidc", + "auth/add-auth-provider", + "auth/service-to-service-auth", + "auth/troubleshooting", + "auth/glossary" + ], + "Permissions": [ + "permissions/overview", + "permissions/concepts", + "permissions/getting-started", + "permissions/writing-a-policy", + "permissions/frontend-integration", + "permissions/custom-rules", + { + "type": "category", + "label": "Tutorial: using Permissions in your plugin", + "items": [ + "permissions/plugin-authors/01-setup", + "permissions/plugin-authors/02-adding-a-basic-permission-check", + "permissions/plugin-authors/03-adding-a-resource-permission-check", + "permissions/plugin-authors/04-authorizing-access-to-paginated-data", + "permissions/plugin-authors/05-frontend-authorization" + ] + } + ], + "Deployment": [ + "deployment/index", + "deployment/scaling", + "deployment/docker", + "deployment/k8s", + "deployment/heroku" + ], + "Designing for Backstage": [ + "dls/design", + "dls/component-design-guidelines", + "dls/contributing-to-storybook", + "dls/figma" + ], + "API Reference": [ + { + "type": "category", + "label": "Guides", + "items": ["api/utility-apis"] + }, + { + "type": "category", + "label": "API Reference", + "items": ["reference/index"] + }, + "api/deprecations" + ], + "Tutorials": [ + "tutorials/journey", + "tutorials/quickstart-app-plugin", + "tutorials/react-router-stable-migration", + "tutorials/package-role-migration", + "tutorials/migrating-away-from-core", + "tutorials/configuring-plugin-databases", + "tutorials/switching-sqlite-postgres", + "tutorials/using-backstage-proxy-within-plugin", + "tutorials/yarn-migration" + ], + "Architecture Decision Records (ADRs)": [ + "architecture-decisions/adrs-overview", + "architecture-decisions/adrs-adr001", + "architecture-decisions/adrs-adr002", + "architecture-decisions/adrs-adr003", + "architecture-decisions/adrs-adr004", + "architecture-decisions/adrs-adr005", + "architecture-decisions/adrs-adr006", + "architecture-decisions/adrs-adr007", + "architecture-decisions/adrs-adr008", + "architecture-decisions/adrs-adr009", + "architecture-decisions/adrs-adr010", + "architecture-decisions/adrs-adr011", + "architecture-decisions/adrs-adr012", + "architecture-decisions/adrs-adr013" + ], + "FAQ": ["FAQ"] + } +} diff --git a/microsite-next/yarn.lock b/microsite-next/yarn.lock index fa35b93945..c7dcd41c28 100644 --- a/microsite-next/yarn.lock +++ b/microsite-next/yarn.lock @@ -3573,6 +3573,7 @@ __metadata: prettier: ^2.6.2 react: ^17.0.2 react-dom: ^17.0.2 + replace: ^1.2.2 languageName: unknown linkType: soft @@ -3827,6 +3828,13 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:^5.0.0": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + "camelcase@npm:^6.2.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" @@ -3860,7 +3868,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0": +"chalk@npm:2.4.2, chalk@npm:^2.0.0": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -4021,6 +4029,17 @@ __metadata: languageName: node linkType: hard +"cliui@npm:^6.0.0": + version: 6.0.0 + resolution: "cliui@npm:6.0.0" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.0 + wrap-ansi: ^6.2.0 + checksum: 4fcfd26d292c9f00238117f39fc797608292ae36bac2168cfee4c85923817d0607fe21b3329a8621e01aedf512c99b7eaa60e363a671ffd378df6649fb48ae42 + languageName: node + linkType: hard + "clone-deep@npm:^4.0.1": version: 4.0.1 resolution: "clone-deep@npm:4.0.1" @@ -4597,6 +4616,13 @@ __metadata: languageName: node linkType: hard +"decamelize@npm:^1.2.0": + version: 1.2.0 + resolution: "decamelize@npm:1.2.0" + checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa + languageName: node + linkType: hard + "decompress-response@npm:^3.3.0": version: 3.3.0 resolution: "decompress-response@npm:3.3.0" @@ -5355,7 +5381,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^4.0.0": +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" dependencies: @@ -5544,6 +5570,13 @@ __metadata: languageName: node linkType: hard +"get-caller-file@npm:^2.0.1": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1": version: 1.1.3 resolution: "get-intrinsic@npm:1.1.3" @@ -7164,6 +7197,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:3.0.5": + version: 3.0.5 + resolution: "minimatch@npm:3.0.5" + dependencies: + brace-expansion: ^1.1.7 + checksum: a3b84b426eafca947741b864502cee02860c4e7b145de11ad98775cfcf3066fef422583bc0ffce0952ddf4750c1ccf4220b1556430d4ce10139f66247d87d69e + languageName: node + linkType: hard + "minimatch@npm:3.1.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -8982,6 +9024,27 @@ __metadata: languageName: node linkType: hard +"replace@npm:^1.2.2": + version: 1.2.2 + resolution: "replace@npm:1.2.2" + dependencies: + chalk: 2.4.2 + minimatch: 3.0.5 + yargs: ^15.3.1 + bin: + replace: bin/replace.js + search: bin/search.js + checksum: 1d69f43937a5fdf9dea278e78d6f3b51c1889ba5135bd201918bbda6330684adf8276e8e90e1c021034420dd4df239e51c23ca40752cb9bc6180c153d6d46a37 + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + languageName: node + linkType: hard + "require-from-string@npm:^2.0.2": version: 2.0.2 resolution: "require-from-string@npm:2.0.2" @@ -8996,6 +9059,13 @@ __metadata: languageName: node linkType: hard +"require-main-filename@npm:^2.0.0": + version: 2.0.0 + resolution: "require-main-filename@npm:2.0.0" + checksum: e9e294695fea08b076457e9ddff854e81bffbe248ed34c1eec348b7abbd22a0d02e8d75506559e2265e96978f3c4720bd77a6dad84755de8162b357eb6c778c7 + languageName: node + linkType: hard + "requires-port@npm:^1.0.0": version: 1.0.0 resolution: "requires-port@npm:1.0.0" @@ -10623,6 +10693,13 @@ __metadata: languageName: node linkType: hard +"which-module@npm:^2.0.0": + version: 2.0.0 + resolution: "which-module@npm:2.0.0" + checksum: 809f7fd3dfcb2cdbe0180b60d68100c88785084f8f9492b0998c051d7a8efe56784492609d3f09ac161635b78ea29219eb1418a98c15ce87d085bce905705c9c + languageName: node + linkType: hard + "which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" @@ -10679,6 +10756,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a + languageName: node + linkType: hard + "wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -10775,6 +10863,13 @@ __metadata: languageName: node linkType: hard +"y18n@npm:^4.0.0": + version: 4.0.3 + resolution: "y18n@npm:4.0.3" + checksum: 014dfcd9b5f4105c3bb397c1c8c6429a9df004aa560964fb36732bfb999bfe83d45ae40aeda5b55d21b1ee53d8291580a32a756a443e064317953f08025b1aa4 + languageName: node + linkType: hard + "yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0" @@ -10789,6 +10884,35 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^18.1.2": + version: 18.1.3 + resolution: "yargs-parser@npm:18.1.3" + dependencies: + camelcase: ^5.0.0 + decamelize: ^1.2.0 + checksum: 60e8c7d1b85814594d3719300ecad4e6ae3796748b0926137bfec1f3042581b8646d67e83c6fc80a692ef08b8390f21ddcacb9464476c39bbdf52e34961dd4d9 + languageName: node + linkType: hard + +"yargs@npm:^15.3.1": + version: 15.4.1 + resolution: "yargs@npm:15.4.1" + dependencies: + cliui: ^6.0.0 + decamelize: ^1.2.0 + find-up: ^4.1.0 + get-caller-file: ^2.0.1 + require-directory: ^2.1.1 + require-main-filename: ^2.0.0 + set-blocking: ^2.0.0 + string-width: ^4.2.0 + which-module: ^2.0.0 + y18n: ^4.0.0 + yargs-parser: ^18.1.2 + checksum: 40b974f508d8aed28598087720e086ecd32a5fd3e945e95ea4457da04ee9bdb8bdd17fd91acff36dc5b7f0595a735929c514c40c402416bbb87c03f6fb782373 + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" diff --git a/microsite/blog/2022-12-19-backstage-wrapped-2022.md b/microsite/blog/2022-12-19-backstage-wrapped-2022.md new file mode 100644 index 0000000000..967bc14433 --- /dev/null +++ b/microsite/blog/2022-12-19-backstage-wrapped-2022.md @@ -0,0 +1,79 @@ +--- +title: Backstage Wrapped 2022 +author: Francesco Corti & Suzanne Daniels +authorURL: https://github.com/fcorti +--- + +![wrapped header image](assets/2022-12-19/wrapped.png) + +If 2021 was the year of growth for the Backstage project and community, 2022 can be easily defined as the year of maturity. Both the project and the community continued to grow at an incredible pace and the platform is now more stable, more secure, and more powerful than ever. + +Our community is full of people from across the globe who bring incredible engagement and positive vibes to the project. And we finally got to experience this for the first time in real life during [BackstageCon](https://www.youtube.com/playlist?list=PLj6h78yzYM2OKySsTuiip3BqmdYZQRnSf), the very first in-person conference fully dedicated to Backstage, where hundreds of enthusiasts, the maintainers, adopters, and partners joined the event confirming the great momentum and the traction in the market. + +But before anticipating too much, let’s share some stats of this amazing 2022. + + + +## We grew … a lot! + +Last year we celebrated 75 [public adopters](https://github.com/backstage/backstage/blob/master/ADOPTERS.md) and today we have over 600 adopters, confirming the interest around Backstage across all the industries, sectors, and dimensions. Companies like [Toyota North America](https://aws.amazon.com/solutions/case-studies/toyota-ecs-case-study/), Deutsche Bank, Mercedes-Benz, Procter & Gamble, Siemens, LinkedIn, and many more joined the community this year and are actively contributing in growing the product and its maturity. + +![Accelerated growth of Public Backstage Adopters, from January 2021–December 2022.](assets/2022-12-19/public-backstage-adopters-2022.png) + +Not only are our adopters growing at an exponential rate, but so too are our contributors. Our [Discord server](https://discord.gg/backstage-687207715902193673) is a perfect example of the worlds of our adopters and contributors melding. On average, at any given hour of the day or night, there are more than 500 people online available to talk and provide support on any Backstage topic. Discord discussions run a full gamut of topics – from technical support questions to best practices for onboarding engineers to Backstage – basically, anything and everything an adopter may be interested to know and learn. At the very beginning of 2022, we “only” had 4k Discord members. Today, we have a growing membership of 8.2k. + +Isn’t it what we can call a great and vibrant community of enthusiasts? + +The growth of the ecosystem is not limited to the adopters and contributors. The ecosystem also includes big tech companies interested in growing Backstage by including it as part of their offering and integrations. Our [collaboration with VMWare](https://youtube.com/watch?v=GAzKCQO8Vt0&si=EnSIkaIECMiOmarE) is a great example of this, and [RedHat](https://developers.redhat.com/articles/2022/10/24/red-hat-joins-backstageio-community) joined the party this year – promising even faster growth in contributions and integrations for the Backstage project. + +Before we go any further, let’s take a quick look at some more numbers, mainly coming from the [Official Github repository](https://github.com/backstage/backstage). This year… + +- Our contributors grew from a group of 500 to 900+ +- Contributions to the project increased from 9k to 15k+ +- The number of forks shot up from 2k to 3k+ +- Backstage stars increased from 14k to almost 20k +- And lastly, we welcomed over 550 adopters into our community. + +All of these people driving the enormous growth and maturity of the project are represented in the chart below, which shows cumulative activities per month for Backstage: + +![Main Github metrics for Backstage.io.](assets/2022-12-19/github-metrics-for-backstage-io.png) + +Wow… that’s a lot of activity. We’ve generated this animation showing all of your contributions to the Backstage repository in 2022, look at this project grow: + + + +## But wait… there’s more + +The growth of the community is so exciting to see. And with all this community growth, comes growth and maturity of the product, making Backstage better able to support adopters in their developer experience challenges. The Backstage open source project has almost [100 plugins](https://backstage.io/plugins), each one amending Backstage with a tool or service to improve not only adopters’ Backstage apps, but their unique developer experiences. And almost every week we learn of a new one being contributed, which is amazing. + +The Backstage platform itself is leaving 2022 more mature than ever, thanks to milestones such as these: + +- [Backstage is now beyond version 1](https://backstage.io/blog/2022/03/17/backstage-1.0). +- [Backstage had its first Security Audit ever and now can rely on a Threat Model](https://backstage.io/blog/2022/08/23/backstage-security-audit). +- [Backstage Learn helps adopters get started more easily](https://backstage.spotify.com/learn/). +- [Backstage reached incubating status as part of the CNCF ecosystem](https://www.cncf.io/blog/2022/03/15/backstage-project-joins-the-cncf-incubator/). + +And like every mature project, now Backstage has also a mascot: Bowie the Beaver! + +![Bowie the Beaver.](assets/2022-12-19/bowie-the-beaver.png) + +Additionally, we launched a new [Special Interest Groups (SIGs)](https://github.com/backstage/community/tree/main/sigs) initiative this year, following the lead of Kubernetes. We believe Backstage SIGs will better coordinate contributions, grow the platform cohesively with the open source community, and allow contributors to dig even deeper as a community member. At this moment in time there two SIGs in place: + +- The [Catalog SIG](https://github.com/backstage/community/blob/main/sigs/sig-catalog/README.md), covering all aspects of the systems and components related to the Software Catalog. +- The [Adoption SIG](https://github.com/backstage/community/blob/main/sigs/sig-adoption/README.md), covering all aspects of the adoption journey of Backstage. + +Our plan is to open more SIGs in 2023 to engage more with the community and to keep driving towards cohesive growth for the community and project. + +Last but not least, we mustn't overlook the first ever conference fully dedicated to Backstage: BackstageCon. What was special there? SO much. But in particular two things: seeing everyone in real life and the incredible mood and conversations between maintainers, adopters, partners and enthusiasts. It’s hard to express just how positive and amazing the vibes were in a blog, but you can read our recap [here](https://backstage.io/blog/2022/10/28/backstagecon-kubecon-2022) or watch the sessions [here](https://www.youtube.com/playlist?list=PLj6h78yzYM2OKySsTuiip3BqmdYZQRnSf). And in the meantime, here are some great numbers from the event: + +- 250 attendees or a 100% full venue and packed room. +- 14 sessions +- 17 speakers + +## Goodbye, 2022. Hello, 2023! + +After this incredible year, thanks to everyone in the global Backstage community who contributed to the open source project in 2022. We are already working on the goals for 2023 – and as a roadmap teaser: we are very much committed to making the journey of adoption easier, faster, more valuable, and overall better. We would not be here today without our amazing community, so thank you for everything! + +Looking forward to continuing collaborating together for an exciting 2023. + +See you then! Happy holidays from everyone on the Backstage team at Spotify! diff --git a/microsite/blog/assets/2022-12-19/bowie-the-beaver.png b/microsite/blog/assets/2022-12-19/bowie-the-beaver.png new file mode 100644 index 0000000000..f01db5e002 Binary files /dev/null and b/microsite/blog/assets/2022-12-19/bowie-the-beaver.png differ diff --git a/microsite/blog/assets/2022-12-19/github-metrics-for-backstage-io.png b/microsite/blog/assets/2022-12-19/github-metrics-for-backstage-io.png new file mode 100644 index 0000000000..a6e64b3eb0 Binary files /dev/null and b/microsite/blog/assets/2022-12-19/github-metrics-for-backstage-io.png differ diff --git a/microsite/blog/assets/2022-12-19/public-backstage-adopters-2022.png b/microsite/blog/assets/2022-12-19/public-backstage-adopters-2022.png new file mode 100644 index 0000000000..ea14a32a42 Binary files /dev/null and b/microsite/blog/assets/2022-12-19/public-backstage-adopters-2022.png differ diff --git a/microsite/blog/assets/2022-12-19/wrapped.png b/microsite/blog/assets/2022-12-19/wrapped.png new file mode 100644 index 0000000000..e73fd860e7 Binary files /dev/null and b/microsite/blog/assets/2022-12-19/wrapped.png differ diff --git a/package.json b/package.json index 6e99f4f176..609d68a4b5 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "techdocs-cli": "node scripts/techdocs-cli.js", "techdocs-cli:dev": "cross-env TECHDOCS_CLI_DEV_MODE=true node scripts/techdocs-cli.js", "prepare": "husky install", - "postinstall": "husky install" + "postinstall": "husky install || true" }, "workspaces": { "packages": [ @@ -46,7 +46,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.9.0", + "version": "1.10.0-next.0", "dependencies": { "@backstage/errors": "workspace:^", "@manypkg/get-packages": "^1.1.3" diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 27f441671b..055399a21d 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/app-defaults +## 1.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-permission-react@0.4.8 + ## 1.0.10 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 4614379fd9..d3250e1f1d 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/app-defaults", "description": "Provides the default wiring of a Backstage App", - "version": "1.0.9", + "version": "1.0.11-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index f9a6433d6f..1c180b40aa 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,68 @@ # example-app +## 0.2.79-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/plugin-scaffolder@1.10.0-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/plugin-explore@0.3.45-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/config@1.0.5 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-airbrake@0.3.14-next.0 + - @backstage/plugin-apache-airflow@0.2.7-next.0 + - @backstage/plugin-api-docs@0.8.14-next.0 + - @backstage/plugin-azure-devops@0.2.5-next.0 + - @backstage/plugin-azure-sites@0.1.3-next.0 + - @backstage/plugin-badges@0.2.38-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-graph@0.2.26-next.0 + - @backstage/plugin-catalog-import@0.9.4-next.0 + - @backstage/plugin-circleci@0.3.14-next.0 + - @backstage/plugin-cloudbuild@0.3.14-next.0 + - @backstage/plugin-code-coverage@0.2.7-next.0 + - @backstage/plugin-cost-insights@0.12.3-next.0 + - @backstage/plugin-dynatrace@1.0.4-next.0 + - @backstage/plugin-gcalendar@0.3.10-next.0 + - @backstage/plugin-gcp-projects@0.3.33-next.0 + - @backstage/plugin-github-actions@0.5.14-next.0 + - @backstage/plugin-gocd@0.1.20-next.0 + - @backstage/plugin-graphiql@0.2.46-next.0 + - @backstage/plugin-home@0.4.30-next.0 + - @backstage/plugin-jenkins@0.7.13-next.0 + - @backstage/plugin-kafka@0.3.14-next.0 + - @backstage/plugin-kubernetes@0.7.7-next.0 + - @backstage/plugin-lighthouse@0.3.14-next.0 + - @backstage/plugin-newrelic@0.3.32-next.0 + - @backstage/plugin-newrelic-dashboard@0.2.7-next.0 + - @backstage/plugin-org@0.6.4-next.0 + - @backstage/plugin-pagerduty@0.5.7-next.0 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/plugin-playlist@0.1.5-next.0 + - @backstage/plugin-rollbar@0.4.14-next.0 + - @backstage/plugin-search@1.0.7-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + - @backstage/plugin-sentry@0.4.7-next.0 + - @backstage/plugin-shortcuts@0.3.6-next.0 + - @backstage/plugin-stack-overflow@0.1.10-next.0 + - @backstage/plugin-tech-insights@0.3.6-next.0 + - @backstage/plugin-tech-radar@0.5.21-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.9-next.0 + - @backstage/plugin-todo@0.2.16-next.0 + - @backstage/plugin-user-settings@0.6.2-next.0 + - @internal/plugin-catalog-customized@0.0.6-next.0 + ## 0.2.79 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 575afe2c77..bdf019f107 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.78", + "version": "0.2.79-next.0", "private": true, "backstage": { "role": "frontend" diff --git a/packages/app/src/components/scaffolder/defaultPreviewTemplate.ts b/packages/app/src/components/scaffolder/defaultPreviewTemplate.ts index 56f34779de..5d8a2accda 100644 --- a/packages/app/src/components/scaffolder/defaultPreviewTemplate.ts +++ b/packages/app/src/components/scaffolder/defaultPreviewTemplate.ts @@ -31,8 +31,8 @@ parameters: description: Owner of the component ui:field: OwnerPicker ui:options: - allowedKinds: - - Group + catalogFilter: + kind: Group - title: Choose a location required: - repoUrl diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md index 380fb4e056..33d9a2ae3c 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,15 @@ # example-backend-next +## 0.0.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-defaults@0.1.4 + - @backstage/plugin-app-backend@0.3.39 + ## 0.0.6 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index c83c32a851..cee84a1928 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.6", + "version": "0.0.7-next.0", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index e18d60ab81..954ceb58c3 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/backend-test-utils +## 0.1.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/backend-app-api@0.2.4 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/config@1.0.5 + ## 0.1.31 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index f1f598c9a5..c7c04926dd 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.1.31", + "version": "0.1.32-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index d23a91a4a9..8f993ff421 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,52 @@ # example-backend +## 0.2.79-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-search-backend-module-elasticsearch@1.1.1-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-explore-backend@0.0.2-next.0 + - @backstage/plugin-code-coverage-backend@0.2.6-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.8-next.0 + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/plugin-search-backend@1.2.1-next.0 + - example-app@0.2.79-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/plugin-app-backend@0.3.39 + - @backstage/plugin-auth-backend@0.17.3-next.0 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-azure-devops-backend@0.3.18 + - @backstage/plugin-azure-sites-backend@0.1.1 + - @backstage/plugin-badges-backend@0.1.34-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-backend@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/plugin-graphql-backend@0.1.30-next.0 + - @backstage/plugin-jenkins-backend@0.1.30-next.0 + - @backstage/plugin-kafka-backend@0.2.33-next.0 + - @backstage/plugin-kubernetes-backend@0.9.1-next.0 + - @backstage/plugin-permission-backend@0.5.14 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-playlist-backend@0.2.3-next.0 + - @backstage/plugin-proxy-backend@0.2.33 + - @backstage/plugin-rollbar-backend@0.1.36 + - @backstage/plugin-search-backend-module-pg@0.5.1-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-tech-insights-backend@0.5.6-next.0 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.23 + - @backstage/plugin-tech-insights-node@0.3.7 + - @backstage/plugin-techdocs-backend@1.5.1-next.0 + - @backstage/plugin-todo-backend@0.1.37-next.0 + ## 0.2.78 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 0757cfbdfc..5229a4a141 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.78", + "version": "0.2.79-next.0", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/catalog-client/CHANGELOG.md b/packages/catalog-client/CHANGELOG.md index 5cc20dc2bb..b2e9ed7c99 100644 --- a/packages/catalog-client/CHANGELOG.md +++ b/packages/catalog-client/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/catalog-client +## 1.3.0-next.0 + +### Minor Changes + +- f75bf76330: Implemented support for the `order` directive on `getEntities` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/errors@1.1.4 + ## 1.2.0 ### Minor Changes diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index 23e913bf87..a7e2094417 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-client", "description": "An isomorphic client for the catalog backend", - "version": "1.2.0", + "version": "1.3.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/catalog-model/CHANGELOG.md b/packages/catalog-model/CHANGELOG.md index fd400f1257..e45ca6d4d4 100644 --- a/packages/catalog-model/CHANGELOG.md +++ b/packages/catalog-model/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/catalog-model +## 1.1.5-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + ## 1.1.4 ### Patch Changes diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 40d8152700..8f198462db 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-model", "description": "Types and validators that help describe the model of a Backstage Catalog", - "version": "1.1.4", + "version": "1.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 99339fe759..0f5a50d14a 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/cli +## 0.22.1-next.0 + +### Patch Changes + +- 47c10706df: Fixed an issue where the CLI would fail to function when there was a mix of workspace and non-workspace versions of the same package in `yarn.lock` when using Yarn 3. +- a62a1f9dca: The frontend serve task now filters out allowed package duplicates during its package check, just like `versions:bump` and `versions:check`. +- 7c8a974515: The `repo test`, `repo lint`, and `repo build` commands will now analyze `yarn.lock` for dependency changes when searching for changed packages. This allows you to use the `--since ` flag even if you have `yarn.lock` changes. +- e1b71e142e: Workspace ranges are no longer considered invalid by version commands. +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/config@1.0.5 + - @backstage/config-loader@1.1.7 + - @backstage/errors@1.1.4 + - @backstage/release-manifests@0.0.8 + - @backstage/types@1.0.2 + ## 0.22.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 43f3c9a44e..e3efe52c77 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.22.0", + "version": "0.22.1-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/cli/src/commands/repo/build.ts b/packages/cli/src/commands/repo/build.ts index 21b1580cb9..a6bf87da82 100644 --- a/packages/cli/src/commands/repo/build.ts +++ b/packages/cli/src/commands/repo/build.ts @@ -84,6 +84,7 @@ export async function command(opts: OptionValues, cmd: Command): Promise { const graph = PackageGraph.fromPackages(packages); const changedPackages = await graph.listChangedPackages({ ref: opts.since, + analyzeLockfile: true, }); const withDevDependents = graph.collectPackageNames( changedPackages.map(pkg => pkg.name), diff --git a/packages/cli/src/commands/repo/lint.ts b/packages/cli/src/commands/repo/lint.ts index 61d85b3773..8e8ec20ff8 100644 --- a/packages/cli/src/commands/repo/lint.ts +++ b/packages/cli/src/commands/repo/lint.ts @@ -34,7 +34,10 @@ export async function command(opts: OptionValues): Promise { if (opts.since) { const graph = PackageGraph.fromPackages(packages); - packages = await graph.listChangedPackages({ ref: opts.since }); + packages = await graph.listChangedPackages({ + ref: opts.since, + analyzeLockfile: true, + }); } // Packages are ordered from most to least number of dependencies, as a diff --git a/packages/cli/src/commands/repo/test.ts b/packages/cli/src/commands/repo/test.ts index 578cb15e83..95bfe8f449 100644 --- a/packages/cli/src/commands/repo/test.ts +++ b/packages/cli/src/commands/repo/test.ts @@ -93,6 +93,7 @@ export async function command(opts: OptionValues, cmd: Command): Promise { const graph = PackageGraph.fromPackages(packages); const changedPackages = await graph.listChangedPackages({ ref: opts.since, + analyzeLockfile: true, }); const packageNames = Array.from( diff --git a/packages/cli/src/commands/start/startFrontend.ts b/packages/cli/src/commands/start/startFrontend.ts index f6923632c8..b7b81e6bff 100644 --- a/packages/cli/src/commands/start/startFrontend.ts +++ b/packages/cli/src/commands/start/startFrontend.ts @@ -21,7 +21,8 @@ import { serveBundle } from '../../lib/bundler'; import { loadCliConfig } from '../../lib/config'; import { paths } from '../../lib/paths'; import { Lockfile } from '../../lib/versioning'; -import { includedFilter } from '../versions/lint'; +import { forbiddenDuplicatesFilter, includedFilter } from '../versions/lint'; +import { PackageGraph } from '../../lib/monorepo'; interface StartAppOptions { verifyVersions?: boolean; @@ -36,10 +37,13 @@ export async function startFrontend(options: StartAppOptions) { const lockfile = await Lockfile.load(paths.resolveTargetRoot('yarn.lock')); const result = lockfile.analyze({ filter: includedFilter, + localPackages: PackageGraph.fromPackages( + await PackageGraph.listTargetPackages(), + ), }); - const problemPackages = [...result.newVersions, ...result.newRanges].map( - ({ name }) => name, - ); + const problemPackages = [...result.newVersions, ...result.newRanges] + .map(({ name }) => name) + .filter(forbiddenDuplicatesFilter); if (problemPackages.length > 1) { console.log( diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 1905aded20..45b966a52d 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -39,6 +39,7 @@ import { ReleaseManifest, } from '@backstage/release-manifests'; import 'global-agent/bootstrap'; +import { PackageGraph } from '../../lib/monorepo'; const DEP_TYPES = [ 'dependencies', @@ -200,7 +201,7 @@ export default async (opts: OptionValues) => { lockfile.remove(name, range); } } - await lockfile.save(); + await lockfile.save(lockfilePath); } const breakingUpdates = new Map(); @@ -305,8 +306,12 @@ export default async (opts: OptionValues) => { // Finally we make sure the new lockfile doesn't have any duplicates const dedupLockfile = await Lockfile.load(lockfilePath); + const result = dedupLockfile.analyze({ filter, + localPackages: PackageGraph.fromPackages( + await PackageGraph.listTargetPackages(), + ), }); if (result.newVersions.length > 0) { diff --git a/packages/cli/src/commands/versions/lint.ts b/packages/cli/src/commands/versions/lint.ts index 9939b2ba51..8de38548a9 100644 --- a/packages/cli/src/commands/versions/lint.ts +++ b/packages/cli/src/commands/versions/lint.ts @@ -18,6 +18,7 @@ import { OptionValues } from 'commander'; import { Lockfile } from '../../lib/versioning'; import { paths } from '../../lib/paths'; import partition from 'lodash/partition'; +import { PackageGraph } from '../../lib/monorepo'; // Packages that we try to avoid duplicates for const INCLUDED = [/^@backstage\//]; @@ -52,9 +53,13 @@ export default async (cmd: OptionValues) => { let success = true; - const lockfile = await Lockfile.load(paths.resolveTargetRoot('yarn.lock')); + const lockfilePath = paths.resolveTargetRoot('yarn.lock'); + const lockfile = await Lockfile.load(lockfilePath); const result = lockfile.analyze({ filter: includedFilter, + localPackages: PackageGraph.fromPackages( + await PackageGraph.listTargetPackages(), + ), }); logArray( @@ -65,7 +70,7 @@ export default async (cmd: OptionValues) => { if (fix) { lockfile.replaceVersions(result.newVersions); - await lockfile.save(); + await lockfile.save(lockfilePath); } else { const [newVersionsForbidden, newVersionsAllowed] = partition( result.newVersions, diff --git a/packages/cli/src/lib/bundler/bundle.ts b/packages/cli/src/lib/bundler/bundle.ts index 2f23d5cae6..a8967bb250 100644 --- a/packages/cli/src/lib/bundler/bundle.ts +++ b/packages/cli/src/lib/bundler/bundle.ts @@ -42,7 +42,6 @@ export async function buildBundle(options: BuildOptions) { isDev: false, baseUrl: resolveBaseUrl(options.frontendConfig), }); - const compiler = webpack(config); const isCi = yn(process.env.CI, { default: false }); @@ -64,7 +63,7 @@ export async function buildBundle(options: BuildOptions) { ); } - const { stats } = await build(compiler, isCi).catch(error => { + const { stats } = await build(config, isCi).catch(error => { console.log(chalk.red('Failed to compile.\n')); throw new Error(`Failed to compile.\n${error.message || error}`); }); @@ -90,10 +89,10 @@ export async function buildBundle(options: BuildOptions) { ); } -async function build(compiler: webpack.Compiler, isCi: boolean) { +async function build(config: webpack.Configuration, isCi: boolean) { const stats = await new Promise( (resolve, reject) => { - compiler.run((err, buildStats) => { + webpack(config, (err, buildStats) => { if (err) { if (err.message) { const { errors } = formatWebpackMessages({ diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 1974153f02..ce216f5c59 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -35,6 +35,9 @@ import { paths as cliPaths } from '../../lib/paths'; import { runPlain } from '../run'; import ESLintPlugin from 'eslint-webpack-plugin'; import pickBy from 'lodash/pickBy'; +import yn from 'yn'; + +const BUILD_CACHE_ENV_VAR = 'BACKSTAGE_CLI_EXPERIMENTAL_BUILD_CACHE'; export function resolveBaseUrl(config: Config): URL { const baseUrl = config.getString('app.baseUrl'); @@ -146,6 +149,8 @@ export async function createConfig( require.resolve('react-refresh'), ]; + const withCache = yn(process.env[BUILD_CACHE_ENV_VAR], { default: false }); + return { mode: isDev ? 'development' : 'production', profile: false, @@ -206,6 +211,16 @@ export async function createConfig( : {}), }, plugins, + ...(withCache + ? { + cache: { + type: 'filesystem', + buildDependencies: { + config: [__filename], + }, + }, + } + : {}), }; } diff --git a/packages/cli/src/lib/git.ts b/packages/cli/src/lib/git.ts index 074260b38f..c0b50f5140 100644 --- a/packages/cli/src/lib/git.ts +++ b/packages/cli/src/lib/git.ts @@ -64,3 +64,23 @@ export async function listChangedFiles(ref: string) { return Array.from(new Set([...tracked, ...untracked])); } + +/** + * Returns the contents of a file at a specific ref. + */ +export async function readFileAtRef(path: string, ref: string) { + let showRef = ref; + try { + const [base] = await runGit('merge-base', 'HEAD', ref); + showRef = base; + } catch { + // silently fall back to using the ref directly if merge base is not available + } + + const { stdout } = await execFile('git', ['show', `${showRef}:${path}`], { + shell: true, + cwd: paths.targetRoot, + maxBuffer: 1024 * 1024 * 50, + }); + return stdout; +} diff --git a/packages/cli/src/lib/monorepo/PackageGraph.test.ts b/packages/cli/src/lib/monorepo/PackageGraph.test.ts index feb1709bf7..d8edff9c81 100644 --- a/packages/cli/src/lib/monorepo/PackageGraph.test.ts +++ b/packages/cli/src/lib/monorepo/PackageGraph.test.ts @@ -14,19 +14,25 @@ * limitations under the License. */ +import { resolve as resolvePath } from 'path'; import { getPackages } from '@manypkg/get-packages'; import { PackageGraph } from './PackageGraph'; -import { listChangedFiles } from '../git'; +import { Lockfile } from '../versioning/Lockfile'; +import { listChangedFiles, readFileAtRef } from '../git'; jest.mock('../git'); const mockListChangedFiles = listChangedFiles as jest.MockedFunction< typeof listChangedFiles >; +const mockReadFileAtRef = readFileAtRef as jest.MockedFunction< + typeof readFileAtRef +>; jest.mock('../paths', () => ({ paths: { targetRoot: '/', + resolveTargetRoot: (...paths: string[]) => resolvePath('/', ...paths), }, })); @@ -177,4 +183,54 @@ describe('PackageGraph', () => { graph.listChangedPackages({ ref: 'origin/master' }), ).resolves.toEqual([graph.get('a'), graph.get('b')]); }); + + it('lists changed packages with lockfile analysis', async () => { + const graph = PackageGraph.fromPackages(testPackages); + + mockListChangedFiles.mockResolvedValueOnce( + ['README.md', 'packages/a/src/foo.ts', 'yarn.lock'].sort(), + ); + mockReadFileAtRef.mockResolvedValueOnce(` +a@^1: + version: "1.0.0" + +c@^1: + version: "1.0.0" + dependencies: + c-dep: ^1 + +c-dep@^2: + version: "2.0.0" + integrity: sha512-xyz +`); + jest.spyOn(Lockfile, 'load').mockResolvedValueOnce( + Lockfile.parse(` +a@^1: + version: "1.0.0" + +c@^1: + version: "1.0.0" + dependencies: + c-dep: ^1 + +c-dep@^2: + version: "2.0.0" + integrity: sha512-xyz-other +`), + ); + + await expect( + graph + .listChangedPackages({ + ref: 'origin/master', + analyzeLockfile: true, + }) + .then(pkgs => pkgs.map(pkg => pkg.name)), + ).resolves.toEqual(['a', 'c']); + + expect(mockReadFileAtRef).toHaveBeenCalledWith( + 'yarn.lock', + 'origin/master', + ); + }); }); diff --git a/packages/cli/src/lib/monorepo/PackageGraph.ts b/packages/cli/src/lib/monorepo/PackageGraph.ts index c65f5c003c..a1fc95e669 100644 --- a/packages/cli/src/lib/monorepo/PackageGraph.ts +++ b/packages/cli/src/lib/monorepo/PackageGraph.ts @@ -18,7 +18,8 @@ import path from 'path'; import { getPackages, Package } from '@manypkg/get-packages'; import { paths } from '../paths'; import { PackageRole } from '../role'; -import { listChangedFiles } from '../git'; +import { listChangedFiles, readFileAtRef } from '../git'; +import { Lockfile } from '../versioning'; type PackageJSON = Package['packageJson']; @@ -191,7 +192,10 @@ export class PackageGraph extends Map { return targets; } - async listChangedPackages(options: { ref: string }) { + async listChangedPackages(options: { + ref: string; + analyzeLockfile?: boolean; + }) { const changedFiles = await listChangedFiles(options.ref); const dirMap = new Map( @@ -234,6 +238,77 @@ export class PackageGraph extends Map { } } + if (changedFiles.includes('yarn.lock') && options.analyzeLockfile) { + // Load the lockfile in the working tree and the one at the ref and diff them + let thisLockfile: Lockfile; + let otherLockfile: Lockfile; + try { + thisLockfile = await Lockfile.load( + paths.resolveTargetRoot('yarn.lock'), + ); + otherLockfile = Lockfile.parse( + await readFileAtRef('yarn.lock', options.ref), + ); + } catch (error) { + console.warn( + `Failed to read lockfiles, assuming all packages have changed, ${error}`, + ); + return Array.from(this.values()); + } + const diff = thisLockfile.diff(otherLockfile); + + // Create a simplified dependency graph only keeps track of package names + const graph = thisLockfile.createSimplifiedDependencyGraph(); + + // Merge the dependency graph from the other lockfile into this one in + // order to be able to detect removals accurately. + { + const otherGraph = thisLockfile.createSimplifiedDependencyGraph(); + for (const [name, dependencies] of otherGraph) { + const node = graph.get(name); + if (node) { + dependencies.forEach(d => node.add(d)); + } else { + graph.set(name, dependencies); + } + } + } + + // The check is simplified by only considering the package names rather + // than the exact version range queries that were changed. + // TODO(Rugvip): Use a more exact check + const changedPackages = new Set( + [...diff.added, ...diff.changed, ...diff.removed].map(e => e.name), + ); + + // Starting with our set of changed packages from the diff, we loop through + // the full graph and add any package that has a dependency on a changed package. + // We keep looping until all transitive dependencies have been detected. + let changed = false; + do { + changed = false; + for (const [name, dependencies] of graph) { + if (changedPackages.has(name)) { + continue; + } + for (const dep of dependencies) { + if (changedPackages.has(dep)) { + changed = true; + changedPackages.add(name); + break; + } + } + } + } while (changed); + + // Add all local packages that had a transitive dependency change to the result set + for (const node of this.values()) { + if (changedPackages.has(node.name) && !result.includes(node)) { + result.push(node); + } + } + } + return result; } } diff --git a/packages/cli/src/lib/new/factories/webLibraryPackage.test.ts b/packages/cli/src/lib/new/factories/webLibraryPackage.test.ts index 03be32dbaa..50fef44a67 100644 --- a/packages/cli/src/lib/new/factories/webLibraryPackage.test.ts +++ b/packages/cli/src/lib/new/factories/webLibraryPackage.test.ts @@ -16,7 +16,7 @@ import fs from 'fs-extra'; import mockFs from 'mock-fs'; -import { resolve as resolvePath } from 'path'; +import { resolve as resolvePath, join as joinPath } from 'path'; import { paths } from '../../paths'; import { Task } from '../../tasks'; import { FactoryRegistry } from '../FactoryRegistry'; @@ -73,7 +73,7 @@ describe('webLibraryPackage factory', () => { '', `Creating web-library package ${expectedwebLibraryPackageName}`, 'Checking Prerequisites:', - `availability packages/${expectedwebLibraryPackageName}`, + `availability ${joinPath('packages', expectedwebLibraryPackageName)}`, 'creating temp dir', 'Executing Template:', 'copying .eslintrc.js', @@ -82,7 +82,7 @@ describe('webLibraryPackage factory', () => { 'templating index.ts.hbs', 'copying setupTests.ts', 'Installing:', - `moving packages/${expectedwebLibraryPackageName}`, + `moving ${joinPath('packages', expectedwebLibraryPackageName)}`, ]); await expect( diff --git a/packages/cli/src/lib/versioning/Lockfile.test.ts b/packages/cli/src/lib/versioning/Lockfile.test.ts index 4621b43372..0275c5ee50 100644 --- a/packages/cli/src/lib/versioning/Lockfile.test.ts +++ b/packages/cli/src/lib/versioning/Lockfile.test.ts @@ -16,14 +16,23 @@ import fs from 'fs-extra'; import mockFs from 'mock-fs'; +import { ExtendedPackage } from '../monorepo'; import { Lockfile } from './Lockfile'; -const HEADER = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +const LEGACY_HEADER = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 `; -const mockA = `${HEADER} +const MODERN_HEADER = `# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 +`; + +const mockA = `${LEGACY_HEADER} a@^1: version "1.0.1" resolved "https://my-registry/a-1.0.01.tgz#abc123" @@ -38,7 +47,7 @@ b@^2: version "2.0.0" `; -const mockADedup = `${HEADER} +const mockADedup = `${LEGACY_HEADER} a@^1: version "1.0.1" resolved "https://my-registry/a-1.0.01.tgz#abc123" @@ -50,7 +59,7 @@ b@2.0.x, b@^2: version "2.0.1" `; -const mockB = `${HEADER} +const mockB = `${LEGACY_HEADER} "@s/a@*", "@s/a@1 || 2", "@s/a@^1": version "1.0.1" @@ -58,7 +67,7 @@ const mockB = `${HEADER} version "2.0.0" `; -const mockBDedup = `${HEADER} +const mockBDedup = `${LEGACY_HEADER} "@s/a@*", "@s/a@1 || 2", "@s/a@^2.0.x": version "2.0.0" @@ -77,10 +86,12 @@ describe('Lockfile', () => { }); const lockfile = await Lockfile.load('/yarn.lock'); - expect(lockfile.get('a')).toEqual([{ range: '^1', version: '1.0.1' }]); + expect(lockfile.get('a')).toEqual([ + { range: '^1', version: '1.0.1', dataKey: 'a@^1' }, + ]); expect(lockfile.get('b')).toEqual([ - { range: '2.0.x', version: '2.0.1' }, - { range: '^2', version: '2.0.0' }, + { range: '2.0.x', version: '2.0.1', dataKey: 'b@2.0.x' }, + { range: '^2', version: '2.0.0', dataKey: 'b@^2' }, ]); expect(lockfile.toString()).toBe(mockA); }); @@ -91,7 +102,7 @@ describe('Lockfile', () => { }); const lockfile = await Lockfile.load('/yarn.lock'); - const result = lockfile.analyze(); + const result = lockfile.analyze({ localPackages: new Map() }); expect(result).toEqual({ invalidRanges: [], newRanges: [], @@ -110,7 +121,7 @@ describe('Lockfile', () => { expect(lockfile.toString()).toBe(mockADedup); await expect(fs.readFile('/yarn.lock', 'utf8')).resolves.toBe(mockA); - await expect(lockfile.save()).resolves.toBeUndefined(); + await expect(lockfile.save('/yarn.lock')).resolves.toBeUndefined(); await expect(fs.readFile('/yarn.lock', 'utf8')).resolves.toBe(mockADedup); }); @@ -120,7 +131,7 @@ describe('Lockfile', () => { }); const lockfile = await Lockfile.load('/yarn.lock'); - const result = lockfile.analyze(); + const result = lockfile.analyze({ localPackages: new Map() }); expect(result).toEqual({ invalidRanges: [], newRanges: [ @@ -154,15 +165,7 @@ describe('Lockfile', () => { }); }); -const newHeader = `# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 6 - cacheKey: 8 -`; - -const mockANew = `${newHeader} +const mockANew = `${MODERN_HEADER} a@^1: version: 1.0.1 dependencies: @@ -177,7 +180,7 @@ b@^2: version: 2.0.0 `; -const mockANewDedup = `${newHeader} +const mockANewDedup = `${MODERN_HEADER} a@^1: version: 1.0.1 dependencies: @@ -192,6 +195,36 @@ b@^2: version: 2.0.1 `; +const mockANewLocal = `${MODERN_HEADER} +a@^1: + version: 1.0.1 + dependencies: + b: ^2 + integrity: sha512-xyz + resolved: "https://my-registry/a-1.0.01.tgz#abc123" + +"b@2.0.x, b@^2.0.1": + version: 0.0.0-use.local + +b@^2: + version: 2.0.0 +`; + +const mockANewLocalDedup = `${MODERN_HEADER} +a@^1: + version: 1.0.1 + dependencies: + b: ^2 + integrity: sha512-xyz + resolved: "https://my-registry/a-1.0.01.tgz#abc123" + +"b@2.0.x, b@^2.0.1": + version: 0.0.0-use.local + +b@^2: + version: 0.0.0-use.local +`; + describe('New Lockfile', () => { afterEach(() => { mockFs.restore(); @@ -203,11 +236,13 @@ describe('New Lockfile', () => { }); const lockfile = await Lockfile.load('/yarn.lock'); - expect(lockfile.get('a')).toEqual([{ range: '^1', version: '1.0.1' }]); + expect(lockfile.get('a')).toEqual([ + { range: '^1', version: '1.0.1', dataKey: 'a@^1' }, + ]); expect(lockfile.get('b')).toEqual([ - { range: '2.0.x', version: '2.0.1' }, - { range: '^2.0.1', version: '2.0.1' }, - { range: '^2', version: '2.0.0' }, + { range: '2.0.x', version: '2.0.1', dataKey: 'b@2.0.x, b@^2.0.1' }, + { range: '^2.0.1', version: '2.0.1', dataKey: 'b@2.0.x, b@^2.0.1' }, + { range: '^2', version: '2.0.0', dataKey: 'b@^2' }, ]); expect(lockfile.toString()).toBe(mockANew); }); @@ -218,7 +253,7 @@ describe('New Lockfile', () => { }); const lockfile = await Lockfile.load('/yarn.lock'); - const result = lockfile.analyze(); + const result = lockfile.analyze({ localPackages: new Map() }); expect(result).toEqual({ invalidRanges: [], newRanges: [], @@ -237,9 +272,515 @@ describe('New Lockfile', () => { expect(lockfile.toString()).toBe(mockANewDedup); await expect(fs.readFile('/yarn.lock', 'utf8')).resolves.toBe(mockANew); - await expect(lockfile.save()).resolves.toBeUndefined(); + await expect(lockfile.save('/yarn.lock')).resolves.toBeUndefined(); await expect(fs.readFile('/yarn.lock', 'utf8')).resolves.toBe( mockANewDedup, ); }); + + it('should deduplicate and save mockANewLocal', async () => { + mockFs({ + '/yarn.lock': mockANewLocal, + }); + + const lockfile = await Lockfile.load('/yarn.lock'); + const result = lockfile.analyze({ + localPackages: new Map([ + [ + 'b', + { + packageJson: { version: '2.0.1' }, + } as ExtendedPackage, + ], + ]), + }); + expect(result).toEqual({ + invalidRanges: [], + newRanges: [], + newVersions: [ + { + name: 'b', + range: '^2', + oldVersion: '2.0.0', + newVersion: '0.0.0-use.local', + }, + ], + }); + + expect(lockfile.toString()).toBe(mockANewLocal); + lockfile.replaceVersions(result.newVersions); + expect(lockfile.toString()).toBe(mockANewLocalDedup); + + await expect(fs.readFile('/yarn.lock', 'utf8')).resolves.toBe( + mockANewLocal, + ); + await expect(lockfile.save('/yarn.lock')).resolves.toBeUndefined(); + await expect(fs.readFile('/yarn.lock', 'utf8')).resolves.toBe( + mockANewLocalDedup, + ); + }); + + describe('diff', () => { + const lockfileLegacyA = Lockfile.parse(`${LEGACY_HEADER} +a@^1: + version "1.0.1" + resolved "https://my-registry/a-1.0.01.tgz#abc123" + integrity sha512-xyz + dependencies: + b "^2" + +b@3: + version "3.0.1" + integrity sha512-abc1 + +b@2.0.x: + version "2.0.1" + integrity sha512-abc2 + +b@^2: + version "2.0.0" + integrity sha512-abc3 + +c@^1: + version "1.0.1" + integrity x +`); + + const lockfileLegacyB = Lockfile.parse(`${LEGACY_HEADER} +a@^1: + version "1.0.1" + resolved "https://my-registry/a-1.0.01.tgz#abc123" + integrity sha512-xyz-other + dependencies: + b "^2" + +b@2.0.x, b@^2: + version "2.0.0" + integrity sha512-abc3 + +b@4: + version "4.0.0" + integrity sha512-abc + +d@^1: + version "1.0.1" + integrity x +`); + + const lockfileModernA = Lockfile.parse(`${MODERN_HEADER} +"a@npm:^1": + version: "1.0.1" + resolved: "https://my-registry/a-1.0.01.tgz#abc123" + checksum: sha512-xyz + dependencies: + b: "^2" + +"b@npm:3": + version: "3.0.1" + checksum: sha512-abc1 + +"b@npm:2.0.x": + version: "2.0.1" + checksum: sha512-abc2 + +"b@npm:^2": + version: "2.0.0" + checksum: sha512-abc3 + +"c@npm:^1": + version: "1.0.1" + checksum: x +`); + + const lockfileModernB = Lockfile.parse(`${MODERN_HEADER} +"a@npm:^1": + version: "1.0.1" + resolution: "a@npm:1.0.1" + checksum: sha512-xyz-other + dependencies: + b: "^2" + +"b@npm:2.0.x, b@npm:^2": + version: "2.0.0" + checksum: sha512-abc3 + +"b@npm:4": + version: "4.0.0" + checksum: sha512-abc + +"d@npm:^1": + version: "1.0.1" + checksum: x +`); + + it('should diff two legacy lockfiles', async () => { + expect(lockfileLegacyA.diff(lockfileLegacyB)).toEqual({ + added: [ + { name: 'b', range: '3' }, + { name: 'c', range: '^1' }, + ], + changed: [ + { name: 'a', range: '^1' }, + { name: 'b', range: '2.0.x' }, + ], + removed: [ + { name: 'b', range: '4' }, + { name: 'd', range: '^1' }, + ], + }); + expect(lockfileLegacyB.diff(lockfileLegacyA)).toEqual({ + added: [ + { name: 'b', range: '4' }, + { name: 'd', range: '^1' }, + ], + changed: [ + { name: 'a', range: '^1' }, + { name: 'b', range: '2.0.x' }, + ], + removed: [ + { name: 'b', range: '3' }, + { name: 'c', range: '^1' }, + ], + }); + }); + + it('should diff two modern lockfiles', async () => { + expect(lockfileModernA.diff(lockfileModernB)).toEqual({ + added: [ + { name: 'b', range: '3' }, + { name: 'c', range: '^1' }, + ], + changed: [ + { name: 'a', range: '^1' }, + { name: 'b', range: '2.0.x' }, + ], + removed: [ + { name: 'b', range: '4' }, + { name: 'd', range: '^1' }, + ], + }); + expect(lockfileModernB.diff(lockfileModernA)).toEqual({ + added: [ + { name: 'b', range: '4' }, + { name: 'd', range: '^1' }, + ], + changed: [ + { name: 'a', range: '^1' }, + { name: 'b', range: '2.0.x' }, + ], + removed: [ + { name: 'b', range: '3' }, + { name: 'c', range: '^1' }, + ], + }); + }); + + it('should diff legacy and modern lockfiles', async () => { + expect(lockfileLegacyA.diff(lockfileModernB)).toEqual({ + added: [ + { name: 'b', range: '3' }, + { name: 'c', range: '^1' }, + ], + changed: [ + { name: 'a', range: '^1' }, + { name: 'b', range: '2.0.x' }, + ], + removed: [ + { name: 'b', range: '4' }, + { name: 'd', range: '^1' }, + ], + }); + expect(lockfileLegacyB.diff(lockfileModernA)).toEqual({ + added: [ + { name: 'b', range: '4' }, + { name: 'd', range: '^1' }, + ], + changed: [ + { name: 'a', range: '^1' }, + { name: 'b', range: '2.0.x' }, + ], + removed: [ + { name: 'b', range: '3' }, + { name: 'c', range: '^1' }, + ], + }); + }); + + it('should diff modern and legacy lockfiles', async () => { + expect(lockfileModernA.diff(lockfileLegacyB)).toEqual({ + added: [ + { name: 'b', range: '3' }, + { name: 'c', range: '^1' }, + ], + changed: [ + { name: 'a', range: '^1' }, + { name: 'b', range: '2.0.x' }, + ], + removed: [ + { name: 'b', range: '4' }, + { name: 'd', range: '^1' }, + ], + }); + expect(lockfileModernB.diff(lockfileLegacyA)).toEqual({ + added: [ + { name: 'b', range: '4' }, + { name: 'd', range: '^1' }, + ], + changed: [ + { name: 'a', range: '^1' }, + { name: 'b', range: '2.0.x' }, + ], + removed: [ + { name: 'b', range: '3' }, + { name: 'c', range: '^1' }, + ], + }); + }); + + it('should handle workspace ranges', async () => { + const lockfile = `${MODERN_HEADER} +"@backstage/app-defaults@workspace:^, @backstage/app-defaults@workspace:packages/app-defaults": + version: 0.0.0-use.local + resolution: "@backstage/app-defaults@workspace:packages/app-defaults" + dependencies: + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/plugin-permission-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@testing-library/jest-dom": ^5.10.1 + "@testing-library/react": ^12.1.3 + "@types/node": ^16.11.26 + "@types/react": ^16.13.1 || ^17.0.0 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + languageName: unknown + linkType: soft + +"@backstage/backend-app-api@workspace:^, @backstage/backend-app-api@workspace:packages/backend-app-api": + version: 0.0.0-use.local + resolution: "@backstage/backend-app-api@workspace:packages/backend-app-api" + dependencies: + "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-permission-node": "workspace:^" + express: ^4.17.1 + express-promise-router: ^4.1.0 + winston: ^3.2.1 + languageName: unknown + linkType: soft +`; + expect(Lockfile.parse(lockfile).diff(Lockfile.parse(lockfile))).toEqual({ + added: [], + changed: [], + removed: [], + }); + }); + }); + + describe('createSimplifiedDependencyGraph', () => { + it('for modern lockfile', () => { + expect( + Lockfile.parse( + `${MODERN_HEADER} +"@backstage/app-defaults@workspace:^, @backstage/app-defaults@workspace:packages/app-defaults": + version: 0.0.0-use.local + resolution: "@backstage/app-defaults@workspace:packages/app-defaults" + dependencies: + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/plugin-permission-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@testing-library/jest-dom": ^5.10.1 + "@testing-library/react": ^12.1.3 + "@types/node": ^16.11.26 + "@types/react": ^16.13.1 || ^17.0.0 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + languageName: unknown + linkType: soft + +"@backstage/backend-app-api@workspace:^, @backstage/backend-app-api@workspace:packages/backend-app-api": + version: 0.0.0-use.local + resolution: "@backstage/backend-app-api@workspace:packages/backend-app-api" + dependencies: + "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-permission-node": "workspace:^" + express: ^4.17.1 + express-promise-router: ^4.1.0 + winston: ^3.2.1 + languageName: unknown + linkType: soft +`, + ).createSimplifiedDependencyGraph(), + ).toEqual( + new Map([ + [ + '@backstage/app-defaults', + new Set([ + '@backstage/cli', + '@backstage/core-app-api', + '@backstage/core-components', + '@backstage/core-plugin-api', + '@backstage/plugin-permission-react', + '@backstage/test-utils', + '@backstage/theme', + '@material-ui/core', + '@material-ui/icons', + '@testing-library/jest-dom', + '@testing-library/react', + '@types/node', + '@types/react', + 'react', + 'react-dom', + 'react-router-dom', + ]), + ], + [ + '@backstage/backend-app-api', + new Set([ + '@backstage/backend-common', + '@backstage/backend-plugin-api', + '@backstage/backend-tasks', + '@backstage/cli', + '@backstage/errors', + '@backstage/plugin-permission-node', + 'express', + 'express-promise-router', + 'winston', + ]), + ], + ]), + ); + }); + + it('for simple lockfile without dependencies', () => { + expect( + Lockfile.parse( + `${MODERN_HEADER} +"a@npm:^1": + version: "1.0.1" + +"b@npm:3": + version: "3.0.1" + +"b@npm:2.0.x": + version: "2.0.1" + checksum: sha512-abc2 +`, + ).createSimplifiedDependencyGraph(), + ).toEqual( + new Map([ + ['a', new Set()], + ['b', new Set()], + ]), + ); + }); + + it('for lockfile with dependencies', () => { + expect( + Lockfile.parse( + `${MODERN_HEADER} +"a@npm:^1": + version: "1.0.1" + dependencies: + b: "^2" + +"b@npm:3": + version: "3.0.1" + checksum: sha512-abc1 + +"b@npm:2.0.x": + version: "2.0.1" + checksum: sha512-abc2 + dependencies: + c: "^1" + +"b@npm:^2": + version: "2.0.0" + checksum: sha512-abc3 + peerDependencies: + d: "^1" + +"c@npm:^1": + version: "1.0.1" + +"d@npm:^1": + version: "1.0.2" +`, + ).createSimplifiedDependencyGraph(), + ).toEqual( + new Map([ + ['a', new Set(['b'])], + ['b', new Set(['c', 'd'])], + ['c', new Set()], + ['d', new Set()], + ]), + ); + }); + + it('for legacy lockfile', () => { + expect( + Lockfile.parse( + `${LEGACY_HEADER} +a@^1: + version "1.0.1" + dependencies: + b "^2" + +b@3: + version "3.0.1" + integrity sha512-abc1 + +b@2.0.x: + version "2.0.1" + integrity sha512-abc2 + dependencies: + c "^1" + +b@^2: + version "2.0.0" + integrity sha512-abc3 + dependencies: + d "^1" + +c@^1: + version "1.0.1" + integrity x + +d@^1: + version "1.0.1" + integrity x +`, + ).createSimplifiedDependencyGraph(), + ).toEqual( + new Map([ + ['a', new Set(['b'])], + ['b', new Set(['c', 'd'])], + ['c', new Set()], + ['d', new Set()], + ]), + ); + }); + }); }); diff --git a/packages/cli/src/lib/versioning/Lockfile.ts b/packages/cli/src/lib/versioning/Lockfile.ts index 016593ea8d..4eadaf55f9 100644 --- a/packages/cli/src/lib/versioning/Lockfile.ts +++ b/packages/cli/src/lib/versioning/Lockfile.ts @@ -18,6 +18,7 @@ import fs from 'fs-extra'; import semver from 'semver'; import { parseSyml, stringifySyml } from '@yarnpkg/parsers'; import { stringify as legacyStringifyLockfile } from '@yarnpkg/lockfile'; +import { ExtendedPackage } from '../monorepo'; const ENTRY_PATTERN = /^((?:@[^/]+\/)?[^@/]+)@(.+)$/; @@ -25,14 +26,28 @@ type LockfileData = { [entry: string]: { version: string; resolved?: string; - integrity?: string; + integrity?: string /* old */; + checksum?: string /* new */; dependencies?: { [name: string]: string }; + peerDependencies?: { [name: string]: string }; }; }; type LockfileQueryEntry = { range: string; version: string; + dataKey: string; +}; + +type LockfileDiffEntry = { + name: string; + range: string; +}; + +type LockfileDiff = { + added: LockfileDiffEntry[]; + changed: LockfileDiffEntry[]; + removed: LockfileDiffEntry[]; }; /** Entries that have an invalid version range, for example an npm tag */ @@ -64,20 +79,6 @@ type AnalyzeResult = { newRanges: AnalyzeResultNewRange[]; }; -function parseLockfile(lockfileContents: string) { - try { - return { - object: parseSyml(lockfileContents), - type: 'success', - }; - } catch (err) { - return { - object: null, - type: err, - }; - } -} - // the new yarn header is handled out of band of the parsing // https://github.com/yarnpkg/berry/blob/0c5974f193a9397630e9aee2b3876cca62611149/packages/yarnpkg-core/sources/Project.ts#L1741-L1746 const NEW_HEADER = `${[ @@ -85,11 +86,6 @@ const NEW_HEADER = `${[ `# Manual changes might be lost - proceed with caution!\n`, ].join(``)}\n`; -function stringifyLockfile(data: LockfileData, legacy: boolean) { - return legacy - ? legacyStringifyLockfile(data) - : NEW_HEADER + stringifySyml(data); -} // taken from yarn parser package // https://github.com/yarnpkg/berry/blob/0c5974f193a9397630e9aee2b3876cca62611149/packages/yarnpkg-parsers/sources/syml.ts#L136 const LEGACY_REGEX = /^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i; @@ -110,13 +106,19 @@ const SPECIAL_OBJECT_KEYS = [ export class Lockfile { static async load(path: string) { const lockfileContents = await fs.readFile(path, 'utf8'); - const legacy = LEGACY_REGEX.test(lockfileContents); - const lockfile = parseLockfile(lockfileContents); - if (lockfile.type !== 'success') { - throw new Error(`Failed yarn.lock parse with ${lockfile.type}`); + return Lockfile.parse(lockfileContents); + } + + static parse(content: string) { + const legacy = LEGACY_REGEX.test(content); + + let data: LockfileData; + try { + data = parseSyml(content); + } catch (err) { + throw new Error(`Failed yarn.lock parse, ${err}`); } - const data = lockfile.object as LockfileData; const packages = new Map(); for (const [key, value] of Object.entries(data)) { @@ -139,15 +141,14 @@ export class Lockfile { if (range.startsWith('npm:')) { range = range.slice('npm:'.length); } - queries.push({ range, version: value.version }); + queries.push({ range, version: value.version, dataKey: key }); } } - return new Lockfile(path, packages, data, legacy); + return new Lockfile(packages, data, legacy); } private constructor( - private readonly path: string, private readonly packages: Map, private readonly data: LockfileData, private readonly legacy: boolean = false, @@ -164,8 +165,11 @@ export class Lockfile { } /** Analyzes the lockfile to identify possible actions and warnings for the entries */ - analyze(options?: { filter?: (name: string) => boolean }): AnalyzeResult { - const { filter } = options ?? {}; + analyze(options: { + filter?: (name: string) => boolean; + localPackages: Map; + }): AnalyzeResult { + const { filter, localPackages } = options; const result: AnalyzeResult = { invalidRanges: [], newVersions: [], @@ -178,7 +182,9 @@ export class Lockfile { } // Get rid of and signal any invalid ranges upfront - const invalid = allEntries.filter(e => !semver.validRange(e.range)); + const invalid = allEntries.filter( + e => !semver.validRange(e.range) && !e.range.startsWith('workspace:'), + ); result.invalidRanges.push( ...invalid.map(({ range }) => ({ name, range })), ); @@ -190,36 +196,55 @@ export class Lockfile { } // Find all versions currently in use - const versions = Array.from(new Set(entries.map(e => e.version))).sort( - (v1, v2) => semver.rcompare(v1, v2), - ); + const versions = Array.from(new Set(entries.map(e => e.version))) + .map(v => { + // Translate workspace:^ references to the actual version + if (v === '0.0.0-use.local') { + const local = localPackages.get(name); + if (!local) { + throw new Error(`No local package found for ${name}`); + } + if (!local.packageJson.version) { + throw new Error(`No version found for local package ${name}`); + } + return { + entryVersion: v, + actualVersion: local.packageJson.version, + }; + } + return { entryVersion: v, actualVersion: v }; + }) + .sort((v1, v2) => semver.rcompare(v1.actualVersion, v2.actualVersion)); // If we're not using at least 2 different versions we're done if (versions.length < 2) { continue; } + // TODO(Rugvip): Support bumping into workspace ranges too const acceptedVersions = new Set(); for (const { version, range } of entries) { // Finds the highest matching version from the the known versions // TODO(Rugvip): We may want to select the version that satisfies the most ranges rather than the highest one - const acceptedVersion = versions.find(v => semver.satisfies(v, range)); + const acceptedVersion = versions.find(v => + semver.satisfies(v.actualVersion, range), + ); if (!acceptedVersion) { throw new Error( `No existing version was accepted for range ${range}, searching through ${versions}, for package ${name}`, ); } - if (acceptedVersion !== version) { + if (acceptedVersion.entryVersion !== version) { result.newVersions.push({ name, range, - newVersion: acceptedVersion, + newVersion: acceptedVersion.entryVersion, oldVersion: version, }); } - acceptedVersions.add(acceptedVersion); + acceptedVersions.add(acceptedVersion.actualVersion); } // If all ranges were able to accept the same version, we're done @@ -315,11 +340,91 @@ export class Lockfile { } } - async save() { - await fs.writeFile(this.path, this.toString(), 'utf8'); + createSimplifiedDependencyGraph(): Map> { + const graph = new Map>(); + + for (const [name, entries] of this.packages) { + const dependencies = new Set( + entries.flatMap(e => { + const data = this.data[e.dataKey]; + return [ + ...Object.keys(data?.dependencies ?? {}), + ...Object.keys(data?.peerDependencies ?? {}), + ]; + }), + ); + graph.set(name, dependencies); + } + + return graph; + } + + /** + * Diff with another lockfile, returning entries that have been + * added, changed, and removed compared to the other lockfile. + */ + diff(otherLockfile: Lockfile): LockfileDiff { + const diff = { + added: new Array<{ name: string; range: string }>(), + changed: new Array<{ name: string; range: string }>(), + removed: new Array<{ name: string; range: string }>(), + }; + + // Keeps track of packages that only exist in this lockfile + const remainingOldNames = new Set(this.packages.keys()); + + for (const [name, otherQueries] of otherLockfile.packages) { + remainingOldNames.delete(name); + + const thisQueries = this.packages.get(name); + // If the packages doesn't exist in this lockfile, add all entries + if (!thisQueries) { + diff.removed.push(...otherQueries.map(q => ({ name, range: q.range }))); + continue; + } + + const remainingOldRanges = new Set(thisQueries.map(q => q.range)); + + for (const otherQuery of otherQueries) { + remainingOldRanges.delete(otherQuery.range); + + const thisQuery = thisQueries.find(q => q.range === otherQuery.range); + if (!thisQuery) { + diff.removed.push({ name, range: otherQuery.range }); + continue; + } + + const otherPkg = otherLockfile.data[otherQuery.dataKey]; + const thisPkg = this.data[thisQuery.dataKey]; + if (otherPkg && thisPkg) { + const thisCheck = thisPkg.integrity || thisPkg.checksum; + const otherCheck = otherPkg.integrity || otherPkg.checksum; + if (thisCheck !== otherCheck) { + diff.changed.push({ name, range: otherQuery.range }); + } + } + } + + for (const thisRange of remainingOldRanges) { + diff.added.push({ name, range: thisRange }); + } + } + + for (const name of remainingOldNames) { + const queries = this.packages.get(name) ?? []; + diff.added.push(...queries.map(q => ({ name, range: q.range }))); + } + + return diff; + } + + async save(path: string) { + await fs.writeFile(path, this.toString(), 'utf8'); } toString() { - return stringifyLockfile(this.data, this.legacy); + return this.legacy + ? legacyStringifyLockfile(this.data) + : NEW_HEADER + stringifySyml(this.data); } } diff --git a/packages/config/src/reader.test.ts b/packages/config/src/reader.test.ts index c0627a200b..c4c2a4ecbf 100644 --- a/packages/config/src/reader.test.ts +++ b/packages/config/src/reader.test.ts @@ -22,6 +22,15 @@ const DATA = { one: 1, true: true, false: false, + yes: 'yes', + no: 'no', + y: 'y', + n: 'n', + on: 'on', + off: 'off', + zeroString: '0', + oneString: '1', + stringFalse: 'false', null: null, string: 'string', emptyString: '', @@ -53,6 +62,17 @@ function expectValidValues(config: ConfigReader) { expect(config.getOptional('true')).toBe(true); expect(config.getBoolean('true')).toBe(true); expect(config.getBoolean('false')).toBe(false); + expect(config.getBoolean('stringFalse')).toBe(false); + expect(config.getBoolean('zero')).toBe(false); + expect(config.getBoolean('one')).toBe(true); + expect(config.getBoolean('zeroString')).toBe(false); + expect(config.getBoolean('oneString')).toBe(true); + expect(config.getBoolean('yes')).toBe(true); + expect(config.getBoolean('no')).toBe(false); + expect(config.getBoolean('y')).toBe(true); + expect(config.getBoolean('n')).toBe(false); + expect(config.getBoolean('on')).toBe(true); + expect(config.getBoolean('off')).toBe(false); expect(config.getString('string')).toBe('string'); expect(config.get('strings')).toEqual(['string1', 'string2']); expect(config.getStringArray('strings')).toEqual(['string1', 'string2']); @@ -86,7 +106,7 @@ function expectValidValues(config: ConfigReader) { function expectInvalidValues(config: ConfigReader) { expect(() => config.getBoolean('string')).toThrow( - "Invalid type in config for key 'string' in 'ctx', got string, wanted boolean", + "Unable to convert config value for key 'string' in 'ctx' to a boolean", ); expect(() => config.getNumber('string')).toThrow( "Unable to convert config value for key 'string' in 'ctx' to a number", diff --git a/packages/config/src/reader.ts b/packages/config/src/reader.ts index 1ce54590b5..4a570b6977 100644 --- a/packages/config/src/reader.ts +++ b/packages/config/src/reader.ts @@ -280,10 +280,25 @@ export class ConfigReader implements Config { /** {@inheritdoc Config.getOptionalBoolean} */ getOptionalBoolean(key: string): boolean | undefined { - return this.readConfigValue( + const value = this.readConfigValue( key, - value => typeof value === 'boolean' || { expected: 'boolean' }, + val => + typeof val === 'boolean' || + typeof val === 'number' || + typeof val === 'string' || { expected: 'boolean' }, ); + if (typeof value === 'boolean' || value === undefined) { + return value; + } + const valueString = String(value).trim(); + + if (/^(?:y|yes|true|1|on)$/i.test(valueString)) { + return true; + } + if (/^(?:n|no|false|0|off)$/i.test(valueString)) { + return false; + } + throw new Error(errors.convert(this.fullKey(key), this.context, 'boolean')); } /** {@inheritdoc Config.getString} */ diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index c8dad2ef8b..48d5b18506 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/core-components +## 0.12.3-next.0 + +### Patch Changes + +- f2ea446de0: Applied fix from v1.9.1 +- Updated dependencies + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/version-bridge@1.0.3 + ## 0.12.2 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 3e81aed792..cca96ffe23 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.12.1", + "version": "0.12.3-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index f9a5ff6219..aea6266535 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/create-app +## 0.4.36-next.0 + +### Patch Changes + +- Bumped create-app version. +- Updated dependencies + - @backstage/cli-common@0.1.11 + ## 0.4.35 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 83a4ef9fff..35d77aa4cb 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", + "version": "0.4.36-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/create-app/src/lib/tasks.test.ts b/packages/create-app/src/lib/tasks.test.ts index 8dc351ac97..2894f1ffe9 100644 --- a/packages/create-app/src/lib/tasks.test.ts +++ b/packages/create-app/src/lib/tasks.test.ts @@ -284,7 +284,7 @@ describe('tasks', () => { }); describe('readGitConfig', () => { - const tmpDir = resolvePath(os.tmpdir(), 'git-temp-dir'); + const tmpDirPrefix = resolvePath(os.tmpdir(), 'git-temp-dir-'); it('should return git config if git package is installed and git credentials are set', async () => { mockExec.mockImplementation((_command, _options, callback) => { @@ -299,17 +299,17 @@ describe('tasks', () => { expect(mockExec).toHaveBeenCalledTimes(3); expect(mockExec).toHaveBeenCalledWith( 'git init', - { cwd: tmpDir }, + { cwd: expect.stringContaining(tmpDirPrefix) }, expect.any(Function), ); expect(mockExec).toHaveBeenCalledWith( 'git commit --allow-empty -m "Initial commit"', - { cwd: tmpDir }, + { cwd: expect.stringContaining(tmpDirPrefix) }, expect.any(Function), ); expect(mockExec).toHaveBeenCalledWith( 'git branch --format="%(refname:short)"', - { cwd: tmpDir }, + { cwd: expect.stringContaining(tmpDirPrefix) }, expect.any(Function), ); }); diff --git a/packages/create-app/src/lib/tasks.ts b/packages/create-app/src/lib/tasks.ts index ff519912a8..23017c8ec7 100644 --- a/packages/create-app/src/lib/tasks.ts +++ b/packages/create-app/src/lib/tasks.ts @@ -248,11 +248,9 @@ export async function moveAppTask( * @throws if `exec` fails */ export async function readGitConfig(): Promise { - const tempDir = resolvePath(os.tmpdir(), 'git-temp-dir'); + const tempDir = await fs.mkdtemp(resolvePath(os.tmpdir(), 'git-temp-dir-')); try { - await fs.mkdir(tempDir); - await exec('git init', { cwd: tempDir }); await exec('git commit --allow-empty -m "Initial commit"', { cwd: tempDir, diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index 05c2436933..734de5c6e4 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -20,7 +20,6 @@ "lint": "backstage-cli repo lint --since origin/{{defaultBranch}}", "lint:all": "backstage-cli repo lint", "prettier:check": "prettier --check .", - "create-plugin": "backstage-cli create-plugin --scope internal", "new": "backstage-cli new --scope internal" }, "workspaces": { diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index f75de52dcf..2450e277b0 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/dev-utils +## 1.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + ## 1.0.10 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 74414da5c3..db1c035df0 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", + "version": "1.0.11-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index f359f4ea87..e4bc723d88 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/integration-react +## 1.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 1.1.8 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 594c0defc4..d519c33967 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", + "version": "1.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index 4777225550..24ce98b30e 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/repo-tools +## 0.1.1-next.0 + +### Patch Changes + +- c447a5221b: Use the project tsconfig in case of selection all packages +- 93cff3053e: Move some dependencies as `peerDependencies` because we need to always use same version as in `api-extractor` +- 75275b0b0b: Updated dependency `@microsoft/tsdoc-config` to `0.16.2`. +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/errors@1.1.4 + ## 0.1.0 ### Minor Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 09d5fe03f8..a638496887 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", + "version": "0.1.1-next.0", "publishConfig": { "access": "public" }, @@ -35,9 +35,6 @@ "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.17.11", "@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", @@ -53,6 +50,9 @@ "mock-fs": "^5.1.0" }, "peerDependencies": { + "@microsoft/api-extractor-model": "*", + "@microsoft/tsdoc": "*", + "@microsoft/tsdoc-config": "*", "@rushstack/node-core-library": "*", "prettier": "^2.8.1", "typescript": "> 3.0.0" 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 6139b5b782..a5a8635b7f 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 @@ -15,7 +15,7 @@ */ import mockFs from 'mock-fs'; -import { resolve as resolvePath } from 'path'; +import { normalize, resolve as resolvePath } from 'path'; import * as pathsLib from '../../lib/paths'; import { @@ -46,9 +46,11 @@ jest.mock('./api-extractor', () => ({ const projectPaths = pathsLib.paths; -jest.spyOn(projectPaths, 'targetRoot', 'get').mockReturnValue('/root'); +jest + .spyOn(projectPaths, 'targetRoot', 'get') + .mockReturnValue(normalize('/root')); jest.spyOn(projectPaths, 'resolveTargetRoot').mockImplementation((...path) => { - return resolvePath('/root', ...path); + return resolvePath(normalize('/root'), ...path); }); describe('buildApiReports', () => { @@ -95,36 +97,35 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ]); expect(generateTypeDeclarations).not.toHaveBeenCalled(); expect(runApiExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ], - tsconfigFilePath: '/root/tsconfig.json', + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', - 'plugins/plugin-b', - - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ], isLocalBuild: true, }); @@ -140,19 +141,19 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', + normalize('packages/package-a'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [normalize('packages/package-a')], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a'], + packageDirs: [normalize('packages/package-a')], isLocalBuild: true, }); @@ -165,20 +166,26 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'packages/package-b', + normalize('packages/package-a'), + normalize('packages/package-b'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], isLocalBuild: true, }); @@ -191,20 +198,26 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'packages/package-b', + normalize('packages/package-a'), + normalize('packages/package-b'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], isLocalBuild: true, }); @@ -218,28 +231,28 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), ], - tsconfigFilePath: '/root/tsconfig.json', + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), ], isLocalBuild: true, }); @@ -254,31 +267,31 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ], - tsconfigFilePath: '/root/tsconfig.json', + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ], isLocalBuild: true, }); @@ -296,12 +309,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: ['packages/package-a'], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); @@ -314,12 +330,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: ['packages/package-a', 'packages/package-b'], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); @@ -332,12 +351,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: ['packages/package-a', 'packages/package-b'], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); }); @@ -351,12 +373,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: true, omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); }); @@ -370,12 +395,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: ['ae-missing-release-tag'], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); @@ -388,12 +416,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: ['ae-missing-release-tag', 'ae-missing-annotations'], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); @@ -406,12 +437,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: ['ae-missing-release-tag', 'ae-missing-annotations'], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); }); @@ -425,15 +459,21 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: false, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], isLocalBuild: false, }); }); @@ -448,8 +488,8 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(buildDocs).toHaveBeenCalledWith({ - inputDir: '/root/node_modules/.cache/api-extractor', - outputDir: '/root/docs/reference', + inputDir: resolvePath('/root/node_modules/.cache/api-extractor'), + outputDir: resolvePath('/root/docs/reference'), }); }); }); diff --git a/packages/repo-tools/src/commands/api-reports/api-reports.ts b/packages/repo-tools/src/commands/api-reports/api-reports.ts index 6270072912..66436644d2 100644 --- a/packages/repo-tools/src/commands/api-reports/api-reports.ts +++ b/packages/repo-tools/src/commands/api-reports/api-reports.ts @@ -66,7 +66,7 @@ export const buildApiReports = async (paths: string[] = [], opts: Options) => { } let temporaryTsConfigPath: string | undefined; - if (selectedPackageDirs) { + if (!isAllPackages) { temporaryTsConfigPath = await createTemporaryTsConfig(selectedPackageDirs); } const tsconfigFilePath = diff --git a/packages/repo-tools/src/lib/paths.test.ts b/packages/repo-tools/src/lib/paths.test.ts index c642900612..601ba636c3 100644 --- a/packages/repo-tools/src/lib/paths.test.ts +++ b/packages/repo-tools/src/lib/paths.test.ts @@ -15,13 +15,13 @@ */ import mockFs from 'mock-fs'; -import { resolve as resolvePath } from 'path'; +import { resolve as resolvePath, join as joinPath, normalize } from 'path'; import { resolvePackagePath, paths, findPackageDirs } from './paths'; describe('paths', () => { - jest.spyOn(paths, 'targetRoot', 'get').mockReturnValue('/root'); + jest.spyOn(paths, 'targetRoot', 'get').mockReturnValue(normalize('/root')); jest.spyOn(paths, 'resolveTargetRoot').mockImplementation((...path) => { - return resolvePath('/root', ...path); + return resolvePath(normalize('/root'), ...path); }); beforeEach(() => { @@ -61,15 +61,15 @@ describe('paths', () => { }); it('should return the path to the package if it exists and has a package.json', async () => { expect(await resolvePackagePath('packages/package-a')).toBe( - 'packages/package-a', + joinPath('packages', 'package-a'), ); expect(await resolvePackagePath('packages/package-b')).toBe( - 'packages/package-b', + joinPath('packages', 'package-b'), ); }); it('should work with absolute paths', async () => { expect(await resolvePackagePath('/root/packages/package-a')).toBe( - 'packages/package-a', + joinPath('packages', 'package-a'), ); }); it('should return undefined if the pat is not a directory', async () => { @@ -79,19 +79,19 @@ describe('paths', () => { describe('findPackageDirs', () => { it('should return only the given packages', async () => { expect(await findPackageDirs(['packages/package-a'])).toEqual([ - 'packages/package-a', + joinPath('packages', 'package-a'), ]); }); it('should return only the given packages when using glob patterns', async () => { expect(await findPackageDirs(['packages/*'])).toEqual([ - 'packages/package-a', - 'packages/package-b', + joinPath('packages', 'package-a'), + joinPath('packages', 'package-b'), ]); expect(await findPackageDirs(['packages/*', 'plugins/*'])).toEqual([ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', - 'plugins/plugin-b', + joinPath('packages', 'package-a'), + joinPath('packages', 'package-b'), + joinPath('plugins', 'plugin-a'), + joinPath('plugins', 'plugin-b'), ]); }); it('should return only the given packages when using absolute paths', async () => { @@ -100,15 +100,18 @@ describe('paths', () => { '/root/packages/package-a', '/root/plugins/plugin-b', ]), - ).toEqual(['packages/package-a', 'plugins/plugin-b']); + ).toEqual([ + joinPath('packages', 'package-a'), + joinPath('plugins', 'plugin-b'), + ]); }); it('should return only the given packages when using absolute paths with glob patterns', async () => { expect( await findPackageDirs(['/root/packages/*', '/root/plugins/*-a']), ).toEqual([ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', + joinPath('packages', 'package-a'), + joinPath('packages', 'package-b'), + joinPath('plugins', 'plugin-a'), ]); }); }); diff --git a/packages/repo-tools/src/lib/paths.ts b/packages/repo-tools/src/lib/paths.ts index 874bb48ea1..01a5d92db1 100644 --- a/packages/repo-tools/src/lib/paths.ts +++ b/packages/repo-tools/src/lib/paths.ts @@ -52,10 +52,10 @@ export async function resolvePackagePath( export async function findPackageDirs(selectedPaths: string[] = []) { const packageDirs = new Array(); for (const packageRoot of selectedPaths) { - const fullPath = paths.resolveTargetRoot(packageRoot); - // if the path contain any glob notation we resolve all the paths to process one by one - const dirs = isGlob(fullPath) ? await glob(fullPath) : [fullPath]; + const dirs = isGlob(packageRoot) + ? await glob(packageRoot, { cwd: paths.targetRoot }) + : [packageRoot]; for (const dir of dirs) { const packageDir = await resolvePackagePath(dir); if (!packageDir) { diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index f79140a2a6..d9189d184b 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,24 @@ # techdocs-cli-embedded-app +## 0.2.78-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/config@1.0.5 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + ## 0.2.78 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 3c085d0204..8fe18bb628 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", + "version": "0.2.78-next.0", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index d9252e8b31..06f782756e 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,16 @@ # @techdocs/cli +## 1.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/cli-common@0.1.11 + - @backstage/config@1.0.5 + - @backstage/plugin-techdocs-node@1.4.4-next.0 + ## 1.2.4 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 7e5b9f18ac..5333ea3c4c 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", + "version": "1.2.5-next.0", "publishConfig": { "access": "public" }, diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index b6a64d6aed..9a8bba28a5 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-adr-backend +## 0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-adr-common@0.2.5-next.0 + - @backstage/plugin-search-common@1.2.0 + ## 0.2.4 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 45fb52474b..b5ce10db01 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", + "version": "0.2.5-next.0", "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 9c69ab12f8..968165e590 100644 --- a/plugins/adr-common/CHANGELOG.md +++ b/plugins/adr-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-adr-common +## 0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/integration@1.4.1 + - @backstage/plugin-search-common@1.2.0 + ## 0.2.4 ### Patch Changes diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index 8ff7496493..5a60252d92 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", + "version": "0.2.5-next.0", "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 a4100b72e8..cddb10c4f2 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-adr +## 0.2.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-adr-common@0.2.5-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 0.2.5 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index fc66e1bc82..3a5ff925e5 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.2.4", + "version": "0.2.6-next.0", "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 f70f9de6cc..2a8dd5ab42 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-airbrake +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/dev-utils@1.0.11-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index cf5140bec6..e61f80ae3c 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.12", + "version": "0.3.14-next.0", "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 3ceb702535..ccf663cc28 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-allure +## 0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.29 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 0e89a3c64b..3252cf3823 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", + "version": "0.1.30-next.0", "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 d58dcfc9af..4e9bcc1373 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-analytics-module-ga +## 0.1.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.24 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index 72535e062e..0db298e8d0 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", + "version": "0.1.25-next.0", "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 3e8b0fe432..f87d852fbf 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-apache-airflow +## 0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + ## 0.2.6 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 296b215768..d76d42d9e6 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", + "version": "0.2.7-next.0", "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 54c79c55a7..7834ec6b17 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-api-docs +## 0.8.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + ## 0.8.13 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index da8989ddae..a806fff7a7 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", + "version": "0.8.14-next.0", "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 428bc261dd..9bddb69807 100644 --- a/plugins/apollo-explorer/CHANGELOG.md +++ b/plugins/apollo-explorer/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-apollo-explorer +## 0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.6 ### Patch Changes diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index 9595996971..0309118a58 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", + "version": "0.1.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-backend/src/service/router.ts b/plugins/app-backend/src/service/router.ts index de299fd895..4e94138439 100644 --- a/plugins/app-backend/src/service/router.ts +++ b/plugins/app-backend/src/service/router.ts @@ -96,9 +96,11 @@ export async function createRouter( const staticDir = resolvePath(appDistDir, 'static'); if (!(await fs.pathExists(staticDir))) { - logger.warn( - `Can't serve static app content from ${staticDir}, directory doesn't exist`, - ); + if (process.env.NODE_ENV === 'production') { + logger.error( + `Can't serve static app content from ${staticDir}, directory doesn't exist`, + ); + } return Router(); } diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index 09fb03ce94..0967fe5f02 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-auth-backend +## 0.17.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + ## 0.17.2 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 0811b909be..d2a96fa9e5 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", + "version": "0.17.3-next.0", "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 287ea2fe25..bdb58fa6e5 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-azure-devops +## 0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.2.4 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index ac530f638b..873619adef 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", + "version": "0.2.5-next.0", "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 38d21df511..acd36df67d 100644 --- a/plugins/azure-sites/CHANGELOG.md +++ b/plugins/azure-sites/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-azure-sites +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.2 ### Patch Changes diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index 6772d177bf..935ca4d115 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", + "version": "0.1.3-next.0", "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 196cc33613..6d22ed2319 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-badges-backend +## 0.1.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + ## 0.1.33 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index 479fba351b..b3acf7fbe6 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", + "version": "0.1.34-next.0", "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 a1e0773ffb..6a90405b9a 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-badges +## 0.2.38-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.37 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index c8e1b23f88..1bd09db71d 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", + "version": "0.2.38-next.0", "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 900bacf0f1..40cdf18220 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-bazaar-backend +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + ## 0.2.2 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index c5b89f9ddf..010e78c11b 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", + "version": "0.2.3-next.0", "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 e2b039c4b2..e9920b65ab 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-bazaar +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog@1.7.2-next.0 + ## 0.2.2 ### Patch Changes diff --git a/plugins/bazaar/media/overviewCard.png b/plugins/bazaar/media/overviewCard.png index ef41ca48e5..a2c2756d9b 100644 Binary files a/plugins/bazaar/media/overviewCard.png and b/plugins/bazaar/media/overviewCard.png differ diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 94a48473e5..d5c4801d76 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.2.1", + "version": "0.2.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,6 +30,7 @@ "@backstage/errors": "workspace:^", "@backstage/plugin-catalog": "workspace:^", "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/bazaar/src/components/BazaarOverviewCard/BazaarOverviewCard.tsx b/plugins/bazaar/src/components/BazaarOverviewCard/BazaarOverviewCard.tsx index c58ee3db1c..da43d4a206 100644 --- a/plugins/bazaar/src/components/BazaarOverviewCard/BazaarOverviewCard.tsx +++ b/plugins/bazaar/src/components/BazaarOverviewCard/BazaarOverviewCard.tsx @@ -146,7 +146,7 @@ export const BazaarOverviewCard = (props: BazaarOverviewCardProps) => { catalogEntities={unlinkedCatalogEntities || []} useTablePagination={false} gridSize={fullWidth ? 2 : 4} - height={fullHeight ? '13rem' : '7rem'} + height={fullHeight ? 'large' : 'small'} /> ); diff --git a/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx b/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx index 9193215804..97b247e289 100644 --- a/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx +++ b/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx @@ -29,39 +29,41 @@ import { BazaarProject } from '../../types'; import { DateTime } from 'luxon'; import { HomePageBazaarInfoCard } from '../HomePageBazaarInfoCard'; import { Entity } from '@backstage/catalog-model'; +import { BackstageTheme } from '@backstage/theme'; type Props = { project: BazaarProject; fetchBazaarProjects: () => Promise; catalogEntities: Entity[]; - height?: string; + height: 'large' | 'small'; }; -const useStyles = makeStyles({ +type StyleProps = { + height: 'large' | 'small'; +}; + +const useStyles = makeStyles((theme: BackstageTheme) => ({ + description: (props: StyleProps) => ({ + height: props.height === 'large' ? '10rem' : '4rem', + WebkitBackgroundClip: 'text', + backgroundImage: `linear-gradient(180deg, ${theme.palette.textContrast} 0%, ${theme.palette.textContrast} 60%, transparent 100%)`, + color: 'transparent', + }), statusTag: { display: 'inline-block', whiteSpace: 'nowrap', marginBottom: '0.8rem', }, - description: { - display: '-webkit-box', - WebkitLineClamp: 7, - WebkitBoxOrient: 'vertical', - overflow: 'hidden', - }, memberCount: { float: 'right', }, - content: { - height: '13rem', - }, header: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', height: '5rem', }, -}); +})); export const ProjectCard = ({ project, @@ -69,7 +71,7 @@ export const ProjectCard = ({ catalogEntities, height, }: Props) => { - const classes = useStyles(); + const classes = useStyles({ height }); const [openCard, setOpenCard] = useState(false); const { id, title, status, updatedAt, description, membersCount } = project; @@ -103,7 +105,7 @@ export const ProjectCard = ({ base: DateTime.now(), })}`} /> - + {Number(membersCount) === Number(1) diff --git a/plugins/bazaar/src/components/ProjectPreview/ProjectPreview.tsx b/plugins/bazaar/src/components/ProjectPreview/ProjectPreview.tsx index 216cf50c2f..8f7160600a 100644 --- a/plugins/bazaar/src/components/ProjectPreview/ProjectPreview.tsx +++ b/plugins/bazaar/src/components/ProjectPreview/ProjectPreview.tsx @@ -27,7 +27,7 @@ type Props = { catalogEntities: Entity[]; useTablePagination?: boolean; gridSize?: GridSize; - height: string; + height: 'large' | 'small'; }; const useStyles = makeStyles({ @@ -56,7 +56,7 @@ export const ProjectPreview = ({ catalogEntities, useTablePagination = true, gridSize = 2, - height, + height = 'large', }: Props) => { const classes = useStyles(); const [page, setPage] = useState(1); diff --git a/plugins/bazaar/src/components/SortView/SortView.tsx b/plugins/bazaar/src/components/SortView/SortView.tsx index 68b63a6885..b3e592fc6f 100644 --- a/plugins/bazaar/src/components/SortView/SortView.tsx +++ b/plugins/bazaar/src/components/SortView/SortView.tsx @@ -199,7 +199,7 @@ export const SortView = () => { bazaarProjects={getSearchResults() || []} fetchBazaarProjects={fetchBazaarProjects} catalogEntities={unlinkedCatalogEntities || []} - height="13rem" + height="large" /> diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index b274d25bfe..592633d0e4 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-bitrise +## 0.1.41-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.40 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index edc6cbbfe4..a5c6aca81b 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", + "version": "0.1.41-next.0", "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 d88bba552e..8c91279d92 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.12 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 2ed36817ca..40e2a8a859 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", + "version": "0.1.13-next.0", "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 4dc3624a85..b4f6c0219e 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.10 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 0af593dee2..3697af2e88 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", + "version": "0.1.11-next.0", "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 a240521910..0a3b71daf5 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-node@0.2.0 + ## 0.1.6 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index affc83b05b..2b85f0a991 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", + "version": "0.1.7-next.0", "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 de9972965d..db86e86567 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 50f44815fd..7b978e7676 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", + "version": "0.1.5-next.0", "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 c4938eb94b..c51ad71f1b 100644 --- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-bitbucket +## 0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + ## 0.2.6 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index 032aed5ee8..69950c4181 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", + "version": "0.2.7-next.0", "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 1779022c20..23aad8c621 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.7 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index 3e54000888..66dff4d7cb 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", + "version": "0.1.8-next.0", "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 8877483f7b..b2a4783fd0 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog-backend-module-github +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-node@0.2.0 + ## 0.2.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 743fd144e8..f1d784efa4 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", + "version": "0.2.3-next.0", "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 dcd18fbf80..85b007d7b9 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.10 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index eaebc9f80a..6c3509e22c 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", + "version": "0.1.11-next.0", "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 8e9208a52c..7405ad98cb 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-permission-common@0.7.2 + ## 0.1.0 ### Minor Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index c6ebae6623..67619ffaa4 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", + "version": "0.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 79a54cc97b..a78753d1eb 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.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + ## 0.5.6 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index e36e63c7ee..ffc4c53711 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", + "version": "0.5.7-next.0", "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 3fa0d7b2e0..71ed866eaa 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.4.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.4.5 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 00b1802fcf..bcc402d55f 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", + "version": "0.4.6-next.0", "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 cf90405cc1..cd92eedb88 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.5 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 6504fd7a61..54c6f3bd5c 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", + "version": "0.1.6-next.0", "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 4fdf3aaf4e..4fab02d5d5 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-catalog-backend +## 1.7.0-next.0 + +### Minor Changes + +- f75bf76330: Implemented server side ordering in the entities endpoint + +### Patch Changes + +- d136793ff0: 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. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-search-common@1.2.0 + ## 1.6.0 ### Minor Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 17f8c790aa..fa4ba69d7c 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", + "version": "1.7.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md index b5026487e6..db253ed97e 100644 --- a/plugins/catalog-common/CHANGELOG.md +++ b/plugins/catalog-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-common +## 1.0.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + ## 1.0.9 ### Patch Changes diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index b9bee625c9..133e7af092 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", + "version": "1.0.10-next.0", "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 f56901d2f4..4f023ccbd1 100644 --- a/plugins/catalog-customized/CHANGELOG.md +++ b/plugins/catalog-customized/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-catalog-customized +## 0.0.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/plugin-catalog@1.7.2-next.0 + ## 0.0.6 ### Patch Changes diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index dcf16e7969..a619a663c7 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", + "version": "0.0.6-next.0", "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 0d941652c7..ed25c8f536 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-graph +## 0.2.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.2.25 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 7df0346279..65b0e75143 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", + "version": "0.2.26-next.0", "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 385be702f3..698c00417e 100644 --- a/plugins/catalog-graphql/CHANGELOG.md +++ b/plugins/catalog-graphql/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-graphql +## 0.3.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/config@1.0.5 + - @backstage/types@1.0.2 + ## 0.3.16 ### Patch Changes diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index fc7cf5308f..7f60475530 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", + "version": "0.3.17-next.0", "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 2327f692e8..e660fe6734 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-import +## 0.9.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.0 + ## 0.9.3 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index f56b096b01..e1077a276d 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", + "version": "0.9.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index e50643a9ae..51e4b75151 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-node +## 1.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + ## 1.3.0 ### Minor Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 83f2fa5913..b4a6691889 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", + "version": "1.3.1-next.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 17372fa42b..7ec0230c4e 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog-react +## 1.2.4-next.0 + +### Patch Changes + +- 37426f6f5e: Fixed bug in `EntityTagPicker` that filtered on unavailable tags for the selected kind. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-react@0.4.8 + ## 1.2.3 ### Patch Changes @@ -11,6 +30,7 @@ ### Patch Changes +- 2cb9998: Fixed bug in `EntityOwnerPicker` and `EntityLifecyclePicker` that filtered on unavailable tags for the selected kind. - 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`. diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index ce7acd08df..fef5eb03d5 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", + "version": "1.2.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx index 7da357d806..de7bbb89be 100644 --- a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx +++ b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx @@ -202,4 +202,33 @@ describe('', () => { tags: new EntityTagFilter(['tag2']), }); }); + it('removes tags from filters if there are none available', async () => { + const updateFilters = jest.fn(); + const mockCatalogApiRefNoTags = { + getEntityFacets: async () => ({ + facets: { + 'metadata.tags': {}, + }, + }), + } as unknown as CatalogApi; + + render( + + + + + , + , + ); + await waitFor(() => + expect(updateFilters).toHaveBeenLastCalledWith({ + tags: undefined, + }), + ); + }); }); diff --git a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx index 25f02e8adc..4a1dc03e96 100644 --- a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx +++ b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx @@ -93,10 +93,14 @@ export const EntityTagPicker = (props: EntityTagPickerProps) => { }, [queryParamTags]); useEffect(() => { + const tags = Object.keys(availableTags ?? {}); updateFilters({ - tags: selectedTags.length ? new EntityTagFilter(selectedTags) : undefined, + tags: + selectedTags.length && tags.length + ? new EntityTagFilter(selectedTags) + : undefined, }); - }, [selectedTags, updateFilters]); + }, [selectedTags, updateFilters, availableTags]); if (!Object.keys(availableTags ?? {}).length) return null; diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index f154f5d260..ce39f68cce 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog +## 1.7.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 1.7.1 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index d1d1570ee5..b8719aca94 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", + "version": "1.7.2-next.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 dca85d1c00..8280433443 100644 --- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md +++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-cicd-statistics-module-gitlab +## 0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-cicd-statistics@0.1.16-next.0 + ## 0.1.9 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index d5805aa03a..8e6d09c93e 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", + "version": "0.1.10-next.0", "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 ff0877c7a5..c2b3d38677 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-cicd-statistics +## 0.1.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-plugin-api@1.2.0 + ## 0.1.15 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index 390eaec6bf..aa2e1f571b 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", + "version": "0.1.16-next.0", "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 f6a7c15545..88d39e4319 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-circleci +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 4c03a25116..9695a995c9 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", + "version": "0.3.14-next.0", "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 a4338da90f..4cd0120e12 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-cloudbuild +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index b2fc5badaf..66aa34dd8e 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", + "version": "0.3.14-next.0", "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 09626076d0..4338ac9b17 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-code-climate +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.13 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 1a541ff220..824d155e4e 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", + "version": "0.1.14-next.0", "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 5bab00763e..f3bf90c480 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.6-next.0 + +### Patch Changes + +- dcfdaeccd3: `RouterOptions` now accepts an optional `catalogApi` argument, allowing custom catalog clients to be used. This is leveraged in the local standalone development runner to pass in a catalog client that returns fake data. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + ## 0.2.5 ### Patch Changes diff --git a/plugins/code-coverage-backend/api-report.md b/plugins/code-coverage-backend/api-report.md index c33874064b..440af50714 100644 --- a/plugins/code-coverage-backend/api-report.md +++ b/plugins/code-coverage-backend/api-report.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; @@ -15,6 +16,8 @@ export function createRouter(options: RouterOptions): Promise; // @public export interface RouterOptions { + // (undocumented) + catalogApi?: CatalogApi; // (undocumented) config: Config; // (undocumented) diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 3cf997f2c9..166fe0fa07 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", + "version": "0.2.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-coverage-backend/src/service/CoverageUtils.test.ts b/plugins/code-coverage-backend/src/service/CoverageUtils.test.ts index e0b4c6589e..44b1411cc4 100644 --- a/plugins/code-coverage-backend/src/service/CoverageUtils.test.ts +++ b/plugins/code-coverage-backend/src/service/CoverageUtils.test.ts @@ -209,7 +209,7 @@ describe('CodeCoverageUtils', () => { } catch (error: any) { err = error; } - expect(err?.message).toEqual('Content-Type missing'); + expect(err?.message).toEqual('Content-Type header missing'); }); it('rejects unsupported content type', () => { @@ -223,7 +223,9 @@ describe('CodeCoverageUtils', () => { } catch (error: any) { err = error; } - expect(err?.message).toEqual('Illegal Content-Type'); + expect(err?.message).toEqual( + 'Content-Type header "application/json" not supported, expected "text/xml" possibly followed by a charset', + ); }); it('parses the body', () => { diff --git a/plugins/code-coverage-backend/src/service/CoverageUtils.ts b/plugins/code-coverage-backend/src/service/CoverageUtils.ts index d965ae6300..a4d3405868 100644 --- a/plugins/code-coverage-backend/src/service/CoverageUtils.ts +++ b/plugins/code-coverage-backend/src/service/CoverageUtils.ts @@ -162,9 +162,11 @@ export class CoverageUtils { validateRequestBody(req: Request) { const contentType = req.headers['content-type']; if (!contentType) { - throw new InputError('Content-Type missing'); + throw new InputError('Content-Type header missing'); } else if (!contentType.match(/^text\/xml($|;)/)) { - throw new InputError('Illegal Content-Type'); + throw new InputError( + `Content-Type header "${contentType}" not supported, expected "text/xml" possibly followed by a charset`, + ); } const body = req.body; if (!body) { diff --git a/plugins/code-coverage-backend/src/service/converter/jacoco.ts b/plugins/code-coverage-backend/src/service/converter/jacoco.ts index f3047d9f00..ac5ccbfa45 100644 --- a/plugins/code-coverage-backend/src/service/converter/jacoco.ts +++ b/plugins/code-coverage-backend/src/service/converter/jacoco.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { BranchHit, FileEntry } from '../types'; import { JacocoSourceFile, JacocoXML } from './types'; import { Logger } from 'winston'; diff --git a/plugins/code-coverage-backend/src/service/router.ts b/plugins/code-coverage-backend/src/service/router.ts index b87b21bffd..4d4fb779b5 100644 --- a/plugins/code-coverage-backend/src/service/router.ts +++ b/plugins/code-coverage-backend/src/service/router.ts @@ -46,6 +46,7 @@ export interface RouterOptions { database: PluginDatabaseManager; urlReader: UrlReader; logger: Logger; + catalogApi?: CatalogApi; } export interface CodeCoverageApi { @@ -59,7 +60,8 @@ export const makeRouter = async ( const codeCoverageDatabase = await CodeCoverageDatabase.create(database); const codecovUrl = await discovery.getExternalBaseUrl('code-coverage'); - const catalogApi: CatalogApi = new CatalogClient({ discoveryApi: discovery }); + const catalogApi = + options.catalogApi ?? new CatalogClient({ discoveryApi: discovery }); const scm = ScmIntegrations.fromConfig(config); const router = Router(); @@ -167,10 +169,10 @@ export const makeRouter = async ( * /report?entity=component:default/mycomponent&coverageType=cobertura */ router.post('/report', async (req, res) => { - const { entity, coverageType } = req.query; - const entityLookup = await catalogApi.getEntityByRef(entity as string); - if (!entityLookup) { - throw new NotFoundError(`No entity found matching ${entity}`); + const { entity: entityRef, coverageType } = req.query; + const entity = await catalogApi.getEntityByRef(entityRef as string); + if (!entity) { + throw new NotFoundError(`No entity found matching ${entityRef}`); } let converter: Converter; @@ -185,7 +187,7 @@ export const makeRouter = async ( } const { sourceLocation, vcs, scmFiles, body } = - await utils.processCoveragePayload(entityLookup, req); + await utils.processCoveragePayload(entity, req); const files = converter.convert(body, scmFiles); if (!files || files.length === 0) { @@ -193,7 +195,7 @@ export const makeRouter = async ( } const coverage = await utils.buildCoverage( - entityLookup, + entity, sourceLocation, vcs, files, @@ -204,7 +206,7 @@ export const makeRouter = async ( links: [ { rel: 'coverage', - href: `${codecovUrl}/report?entity=${entity}`, + href: `${codecovUrl}/report?entity=${entityRef}`, }, ], }); diff --git a/plugins/code-coverage-backend/src/service/standaloneServer.ts b/plugins/code-coverage-backend/src/service/standaloneServer.ts index c4ced6baeb..41493660fb 100644 --- a/plugins/code-coverage-backend/src/service/standaloneServer.ts +++ b/plugins/code-coverage-backend/src/service/standaloneServer.ts @@ -21,6 +21,8 @@ import { UrlReaders, useHotMemoize, } from '@backstage/backend-common'; +import { CatalogApi } from '@backstage/catalog-client'; +import { CompoundEntityRef, parseEntityRef } from '@backstage/catalog-model'; import { Server } from 'http'; import knexFactory from 'knex'; import { Logger } from 'winston'; @@ -52,13 +54,27 @@ export async function startStandaloneServer( return knex; }); + const catalogApi = { + async getEntityByRef(entityRef: string | CompoundEntityRef) { + const { kind, namespace, name } = parseEntityRef(entityRef); + return { + apiVersion: 'backstage.io/v1alpha1', + kind, + metadata: { name, namespace }, + spec: {}, + }; + }, + } as Partial as CatalogApi; + logger.debug('Starting application server...'); + const router = await createRouter({ database: { getClient: async () => db }, config, discovery: SingleHostDiscovery.fromConfig(config), urlReader: UrlReaders.default({ logger, config }), logger, + catalogApi, }); let service = createServiceBuilder(module) diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index a3dab7b6aa..d844d752c0 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-code-coverage +## 0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.6 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 40e81db84a..8b42f28aae 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", + "version": "0.2.7-next.0", "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 eef5987551..01343539e6 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-codescene +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.8 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index 44d1614b3d..1a814486e2 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "version": "0.1.7", + "version": "0.1.9-next.0", "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 7fe68a41fd..2d697c5bfb 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-config-schema +## 0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + ## 0.1.36 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index f8e337f873..2621057bcd 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", + "version": "0.1.37-next.0", "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 187b8416cb..7d9eab807e 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-cost-insights +## 0.12.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-cost-insights-common@0.1.1 + ## 0.12.2 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index defc54f904..d8c4805f73 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", + "version": "0.12.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,7 +38,6 @@ "@backstage/core-plugin-api": "workspace:^", "@backstage/plugin-catalog-react": "workspace:^", "@backstage/plugin-cost-insights-common": "workspace:^", - "@backstage/test-utils": "workspace:^", "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md index e477ee1c1b..4cf2e34619 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-dynatrace +## 1.0.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 1.0.3 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index d359156787..018a2c3f5a 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "1.0.2", + "version": "1.0.4-next.0", "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 bc012467a4..11155a5b8e 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,14 @@ # @internal/plugin-todo-list +## 1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 1.0.9 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index ee34b6541f..70db766f36 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", + "version": "1.0.9-next.0", "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 55e62824f2..c58091a05f 100644 --- a/plugins/explore-backend/CHANGELOG.md +++ b/plugins/explore-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-explore-backend +## 0.0.2-next.0 + +### Patch Changes + +- 358554ff3c: Bump `msw` to `^0.49.0` +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.0 + ## 0.0.1 ### Patch Changes diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json index 748a4e0a09..5ae66e8dba 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", + "version": "0.0.2-next.0", "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 50fd45e426..7d48154ca3 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-explore +## 0.3.45-next.0 + +### Patch Changes + +- d318d4f659: Makes the `GroupsDiagram` not grown on screen on its own. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.24 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 0.3.44 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 9f6f700950..ab764106b9 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", + "version": "0.3.45-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx b/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx index 674ef1e43f..fd1d5ba5fb 100644 --- a/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx +++ b/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx @@ -44,8 +44,10 @@ import useAsync from 'react-use/lib/useAsync'; const useStyles = makeStyles((theme: BackstageTheme) => ({ graph: { minHeight: '100%', + flex: 1, }, graphWrapper: { + display: 'flex', height: '100%', }, organizationNode: { diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index 513c3cb6ec..6c36794380 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-firehydrant +## 0.1.31-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.30 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 81a329ec5f..95ef78ac5f 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", + "version": "0.1.31-next.0", "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 4513e8b733..1c71cbb118 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-fossa +## 0.2.46-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.45 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index c0ece5f0f0..3174653bd0 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", + "version": "0.2.46-next.0", "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 ac13f9ab37..8fbc2de101 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-gcalendar +## 0.3.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.3.9 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 71cd4b999c..7d791a7944 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.8", + "version": "0.3.10-next.0", "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 43bb34a972..6d4246b981 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-gcp-projects +## 0.3.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.32 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index dc0653d122..5073aaa3ff 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", + "version": "0.3.33-next.0", "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 6f5750b4fe..28bc204a2e 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-git-release-manager +## 0.3.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 0.3.26 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index fe65ff159b..f757ee36fd 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", + "version": "0.3.27-next.0", "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 7fa266e31f..10665d7a8f 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-github-actions +## 0.5.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 0.5.13 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index aecce63b3f..dc5139629a 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", + "version": "0.5.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index 5d7609cb7a..f74c9e6e1c 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-github-deployments +## 0.1.45-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + ## 0.1.44 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 70c6d53f10..2f427f9d43 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", + "version": "0.1.45-next.0", "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 7152069b86..7b1021d9e1 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-github-issues +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 0.2.2 ### Patch Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index c10d0283e0..b82f580727 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", + "version": "0.2.3-next.0", "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 4593291133..d95a3ef35a 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 0.1.7 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index ce059d64cf..2211465eaf 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", + "version": "0.1.8-next.0", "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 d5d07b87f0..f8a2949b11 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-gitops-profiles +## 0.3.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.31 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index e3025031bf..bb41e8ffc5 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", + "version": "0.3.32-next.0", "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 1b257486ac..2f90bd9ab8 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-gocd +## 0.1.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.19 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index 3b25b36669..a0f146e602 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", + "version": "0.1.20-next.0", "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 a499bb2f7e..8f704104c7 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphiql +## 0.2.46-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.2.45 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 5752000ec5..45bcd08599 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", + "version": "0.2.46-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md index da362fb71d..19c55e9d4b 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphql-backend +## 0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-graphql@0.3.17-next.0 + ## 0.1.29 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 10d5426cc8..4efa773b91 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", + "version": "0.1.30-next.0", "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 0fd26937a8..017c221abf 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-home +## 0.4.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-stack-overflow@0.1.10-next.0 + ## 0.4.29 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 1196950333..7d52f85eb9 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", + "version": "0.4.30-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index 79a87148b4..5b0baf044a 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-ilert +## 0.2.3-next.0 + +### Patch Changes + +- b1279d396d: fixed error on service page not showing if historical uptime was disabled on a service +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.2 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 605e1f367e..93d341062e 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", + "version": "0.2.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/ilert/src/components/ServicesPage/ServicesTable.tsx b/plugins/ilert/src/components/ServicesPage/ServicesTable.tsx index 30a83e4cec..2597986031 100644 --- a/plugins/ilert/src/components/ServicesPage/ServicesTable.tsx +++ b/plugins/ilert/src/components/ServicesPage/ServicesTable.tsx @@ -86,7 +86,7 @@ export const ServicesTable = ({ cellStyle: smColumnStyle, headerStyle: smColumnStyle, render: rowData => ( - {rowData.uptime.uptimePercentage.p90} + {rowData.uptime?.uptimePercentage?.p90 || ''} ), }; const actionsColumn: TableColumn = { diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index 685579d3d6..027e54e3e1 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-jenkins-backend +## 0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-jenkins-common@0.1.12-next.0 + - @backstage/plugin-permission-common@0.7.2 + ## 0.1.29 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 4b83b449cf..9078ddf51c 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", + "version": "0.1.30-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins-common/CHANGELOG.md b/plugins/jenkins-common/CHANGELOG.md index 13568fe8f3..86cab7defe 100644 --- a/plugins/jenkins-common/CHANGELOG.md +++ b/plugins/jenkins-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-jenkins-common +## 0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + ## 0.1.11 ### Patch Changes diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index ce639d5d9c..dc99c7861e 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", + "version": "0.1.12-next.0", "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 8b5c2d4c88..529f42e53b 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-jenkins +## 0.7.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-jenkins-common@0.1.12-next.0 + ## 0.7.12 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index d15e5b580d..5cb72c6ca5 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", + "version": "0.7.13-next.0", "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 b573ae4eb3..84a3776e48 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-kafka-backend +## 0.2.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + ## 0.2.32 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 66c4ffce0a..e5feaa34fb 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", + "version": "0.2.33-next.0", "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 bde6951455..208ac47962 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-kafka +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index a56c915946..4050cea0ee 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", + "version": "0.3.14-next.0", "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 fd60b462bb..d06d99e6f9 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-kubernetes-backend +## 0.9.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-kubernetes-common@0.5.1-next.0 + ## 0.9.0 ### Minor Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 9b163361f3..6f938818d9 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.9.0", + "version": "0.9.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-common/CHANGELOG.md b/plugins/kubernetes-common/CHANGELOG.md index 51f7f1fcd8..3d6a83c355 100644 --- a/plugins/kubernetes-common/CHANGELOG.md +++ b/plugins/kubernetes-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kubernetes-common +## 0.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + ## 0.5.0 ### Minor Changes diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index b06ddb3783..9c346dcec9 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.5.0", + "version": "0.5.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index 4295426b6f..d5424be52a 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-kubernetes +## 0.7.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-kubernetes-common@0.5.1-next.0 + ## 0.7.6 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index a922adff16..be9da8bf8e 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", + "version": "0.7.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index 73efb99869..a8239ad58d 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-lighthouse +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 3cb414f4bc..61736711e6 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", + "version": "0.3.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index e16250ccef..3b44ee9f9a 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-newrelic-dashboard +## 0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + ## 0.2.6 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index d68150c6ba..93ae31d937 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", + "version": "0.2.7-next.0", "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 aa636a1e99..0c8ad823db 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-newrelic +## 0.3.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.31 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index b42a25db95..c4812d561e 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", + "version": "0.3.32-next.0", "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 9b53209201..7f85bb12a8 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-org-react +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.2 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 61a5e8dc58..41c1fd2d1e 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", + "version": "0.1.3-next.0", "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 a3bff0d6ec..6a5a25304c 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-org +## 0.6.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.6.3 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index a22f17a6b4..e2538a5c0c 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", + "version": "0.6.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md index 38b5e0c5bc..49cf4ea69c 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-pagerduty +## 0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.5.6 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 902df09231..9279e53b30 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", + "version": "0.5.7-next.0", "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 eee49c545d..5da6ee061a 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-periskop +## 0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.11 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 10daf69de6..0863fc6402 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.10", + "version": "0.1.12-next.0", "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 26dc5378d3..4686f83912 100644 --- a/plugins/playlist-backend/CHANGELOG.md +++ b/plugins/playlist-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-playlist-backend +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-playlist-common@0.1.3 + ## 0.2.2 ### Patch Changes diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 19785706ed..20426c56aa 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", + "version": "0.2.3-next.0", "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 0434a916f2..a33c434e9f 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-playlist +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/plugin-playlist-common@0.1.3 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index db5b1d822b..4beea85e27 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.1.3", + "version": "0.1.5-next.0", "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 5c41131e97..808f14c81d 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-rollbar +## 0.4.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.4.13 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 6ad58bcff4..3a29ab0847 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", + "version": "0.4.14-next.0", "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 2c5e107f06..630249b954 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,47 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.15-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + ## 0.2.14 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/README.md b/plugins/scaffolder-backend-module-cookiecutter/README.md index 8516139e64..ae34e09c96 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/README.md +++ b/plugins/scaffolder-backend-module-cookiecutter/README.md @@ -73,16 +73,16 @@ spec: description: Owner of the component ui:field: OwnerPicker ui:options: - allowedKinds: - - Group + catalogFilter: + kind: Group system: title: System type: string description: System of the component ui:field: EntityPicker ui:options: - allowedKinds: - - System + catalogFilter: + kind: System defaultKind: System - title: Choose a location diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index a1aa35dfb7..f31bc54e84 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", + "version": "0.2.15-next.0", "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 b856284bfd..5a30e61310 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,47 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.8-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + ## 0.4.7 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/README.md b/plugins/scaffolder-backend-module-rails/README.md index 738cd43cff..f4ec086775 100644 --- a/plugins/scaffolder-backend-module-rails/README.md +++ b/plugins/scaffolder-backend-module-rails/README.md @@ -74,16 +74,16 @@ spec: description: Owner of the component ui:field: OwnerPicker ui:options: - allowedKinds: - - Group + catalogFilter: + kind: Group system: title: System type: string description: System of the component ui:field: EntityPicker ui:options: - allowedKinds: - - System + catalogFilter: + kind: System defaultKind: System - title: Choose a location diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index 967d1d94ec..90cf0e0f40 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", + "version": "0.4.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index b5837e89b0..b1eec339ae 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,44 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.13-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/config@1.0.5 + - @backstage/types@1.0.2 + ## 0.2.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/README.md b/plugins/scaffolder-backend-module-yeoman/README.md index 5242ef298c..b5c7b4d026 100644 --- a/plugins/scaffolder-backend-module-yeoman/README.md +++ b/plugins/scaffolder-backend-module-yeoman/README.md @@ -73,16 +73,16 @@ spec: description: Owner of the component ui:field: OwnerPicker ui:options: - allowedKinds: - - Group + catalogFilter: + kind: Group system: title: System type: string description: System of the component ui:field: EntityPicker ui:options: - allowedKinds: - - System + catalogFilter: + kind: System defaultKind: System - title: Choose a location diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index 2de3d42a31..ff48903d1d 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", + "version": "0.2.13-next.0", "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 174a8e7570..a2150fc2c8 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,54 @@ # @backstage/plugin-scaffolder-backend +## 1.9.1-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 1.9.0 ### Minor Changes diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 69ef893dc3..66757a01cd 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -195,6 +195,12 @@ export function createGithubRepoCreateAction(options: { gitAuthorEmail?: string | undefined; allowRebaseMerge?: boolean | undefined; allowSquashMerge?: boolean | undefined; + squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined; + squashMergeCommitMessage?: + | 'PR_BODY' + | 'COMMIT_MESSAGES' + | 'BLANK' + | undefined; allowMergeCommit?: boolean | undefined; allowAutoMerge?: boolean | undefined; requireCodeOwnerReviews?: boolean | undefined; @@ -213,11 +219,11 @@ export function createGithubRepoCreateAction(options: { | ( | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { username: string; @@ -383,6 +389,12 @@ export function createPublishGithubAction(options: { gitAuthorEmail?: string | undefined; allowRebaseMerge?: boolean | undefined; allowSquashMerge?: boolean | undefined; + squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined; + squashMergeCommitMessage?: + | 'PR_BODY' + | 'COMMIT_MESSAGES' + | 'BLANK' + | undefined; allowMergeCommit?: boolean | undefined; allowAutoMerge?: boolean | undefined; sourcePath?: string | undefined; @@ -403,11 +415,11 @@ export function createPublishGithubAction(options: { | ( | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { username: string; diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index ef77b8c0f3..d57e330b5d 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", + "version": "1.9.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend/sample-templates/bitbucket-demo/template.yaml b/plugins/scaffolder-backend/sample-templates/bitbucket-demo/template.yaml index 58955582d2..0a7c841d8f 100644 --- a/plugins/scaffolder-backend/sample-templates/bitbucket-demo/template.yaml +++ b/plugins/scaffolder-backend/sample-templates/bitbucket-demo/template.yaml @@ -49,8 +49,8 @@ spec: description: Owner of the component ui:field: OwnerPicker ui:options: - allowedKinds: - - Group + catalogFilter: + kind: Group steps: - id: fetch-base 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 3c37f28ccd..824db27e84 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 @@ -106,6 +106,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -126,6 +128,8 @@ describe('github:repo:create', () => { private: false, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -147,6 +151,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -169,6 +175,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -194,6 +202,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -222,6 +232,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -242,6 +254,8 @@ describe('github:repo:create', () => { private: false, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -263,6 +277,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -285,6 +301,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -310,6 +328,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, 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 598e3314fb..f41150b504 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts @@ -49,6 +49,8 @@ export function createGithubRepoCreateAction(options: { gitAuthorEmail?: string; allowRebaseMerge?: boolean; allowSquashMerge?: boolean; + squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE'; + squashMergeCommitMessage?: 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK'; allowMergeCommit?: boolean; allowAutoMerge?: boolean; requireCodeOwnerReviews?: boolean; @@ -64,11 +66,11 @@ export function createGithubRepoCreateAction(options: { collaborators?: Array< | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { /** @deprecated This field is deprecated in favor of team */ @@ -103,6 +105,8 @@ export function createGithubRepoCreateAction(options: { deleteBranchOnMerge: inputProps.deleteBranchOnMerge, allowMergeCommit: inputProps.allowMergeCommit, allowSquashMerge: inputProps.allowSquashMerge, + squashMergeCommitTitle: inputProps.squashMergeCommitTitle, + squashMergeCommitMessage: inputProps.squashMergeCommitMessage, allowRebaseMerge: inputProps.allowRebaseMerge, allowAutoMerge: inputProps.allowAutoMerge, collaborators: inputProps.collaborators, @@ -131,6 +135,8 @@ export function createGithubRepoCreateAction(options: { deleteBranchOnMerge = false, allowMergeCommit = true, allowSquashMerge = true, + squashMergeCommitTitle = 'COMMIT_OR_PR_TITLE', + squashMergeCommitMessage = 'COMMIT_MESSAGES', allowRebaseMerge = true, allowAutoMerge = false, collaborators, @@ -165,6 +171,8 @@ export function createGithubRepoCreateAction(options: { deleteBranchOnMerge, allowMergeCommit, allowSquashMerge, + squashMergeCommitTitle, + squashMergeCommitMessage, allowRebaseMerge, allowAutoMerge, access, 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 499826ee6b..9caee49f98 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts @@ -102,6 +102,8 @@ export async function createGithubRepoWithCollaboratorsAndTopics( deleteBranchOnMerge: boolean, allowMergeCommit: boolean, allowSquashMerge: boolean, + squashMergeCommitTitle: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined, + squashMergeCommitMessage: 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK' | undefined, allowRebaseMerge: boolean, allowAutoMerge: boolean, access: string | undefined, @@ -109,11 +111,11 @@ export async function createGithubRepoWithCollaboratorsAndTopics( | ( | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { /** @deprecated This field is deprecated in favor of team */ @@ -144,6 +146,8 @@ export async function createGithubRepoWithCollaboratorsAndTopics( delete_branch_on_merge: deleteBranchOnMerge, allow_merge_commit: allowMergeCommit, allow_squash_merge: allowSquashMerge, + squash_merge_commit_title: squashMergeCommitTitle, + squash_merge_commit_message: squashMergeCommitMessage, allow_rebase_merge: allowRebaseMerge, allow_auto_merge: allowAutoMerge, homepage: homepage, @@ -158,6 +162,8 @@ export async function createGithubRepoWithCollaboratorsAndTopics( delete_branch_on_merge: deleteBranchOnMerge, allow_merge_commit: allowMergeCommit, allow_squash_merge: allowSquashMerge, + squash_merge_commit_title: squashMergeCommitTitle, + squash_merge_commit_message: squashMergeCommitMessage, allow_rebase_merge: allowRebaseMerge, allow_auto_merge: allowAutoMerge, homepage: homepage, 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 07dd0f8163..3fc7126754 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts @@ -94,6 +94,17 @@ const allowSquashMerge = { type: 'boolean', description: `Allow squash merges. The default value is 'true'`, }; +const squashMergeCommitTitle = { + title: 'Default squash merge commit title', + enum: ['PR_TITLE', 'COMMIT_OR_PR_TITLE'], + description: `Sets the default value for a squash merge commit title. The default value is 'COMMIT_OR_PR_TITLE'`, +}; +const squashMergeCommitMessage = { + title: 'Default squash merge commit message', + enum: ['PR_BODY', 'COMMIT_MESSAGES', 'BLANK'], + description: `Sets the default value for a squash merge commit message. The default value is 'COMMIT_MESSAGES'`, +}; + const allowRebaseMerge = { title: 'Allow Rebase Merges', type: 'boolean', @@ -116,7 +127,6 @@ const collaborators = { access: { type: 'string', description: 'The type of access for the user', - enum: ['push', 'pull', 'admin', 'maintain', 'triage'], }, user: { type: 'string', @@ -219,6 +229,8 @@ export { access }; export { allowMergeCommit }; export { allowRebaseMerge }; export { allowSquashMerge }; +export { squashMergeCommitTitle }; +export { squashMergeCommitMessage }; export { allowAutoMerge }; export { collaborators }; export { defaultBranch }; 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 68e6521187..e4c92c624e 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 @@ -111,6 +111,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -131,6 +133,8 @@ describe('publish:github', () => { private: false, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -152,6 +156,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -174,6 +180,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -199,6 +207,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -227,6 +237,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -247,6 +259,8 @@ describe('publish:github', () => { private: false, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -268,6 +282,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -290,6 +306,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -315,6 +333,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: 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 edb1c699d7..5430f30657 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts @@ -57,6 +57,8 @@ export function createPublishGithubAction(options: { gitAuthorEmail?: string; allowRebaseMerge?: boolean; allowSquashMerge?: boolean; + squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE'; + squashMergeCommitMessage?: 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK'; allowMergeCommit?: boolean; allowAutoMerge?: boolean; sourcePath?: string; @@ -76,11 +78,11 @@ export function createPublishGithubAction(options: { collaborators?: Array< | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { /** @deprecated This field is deprecated in favor of team */ @@ -123,6 +125,8 @@ export function createPublishGithubAction(options: { gitAuthorEmail: inputProps.gitAuthorEmail, allowMergeCommit: inputProps.allowMergeCommit, allowSquashMerge: inputProps.allowSquashMerge, + squashMergeCommitTitle: inputProps.squashMergeCommitTitle, + squashMergeCommitMessage: inputProps.squashMergeCommitMessage, allowRebaseMerge: inputProps.allowRebaseMerge, allowAutoMerge: inputProps.allowAutoMerge, sourcePath: inputProps.sourcePath, @@ -164,6 +168,8 @@ export function createPublishGithubAction(options: { gitAuthorEmail, allowMergeCommit = true, allowSquashMerge = true, + squashMergeCommitTitle = 'COMMIT_OR_PR_TITLE', + squashMergeCommitMessage = 'COMMIT_MESSAGES', allowRebaseMerge = true, allowAutoMerge = false, collaborators, @@ -198,6 +204,8 @@ export function createPublishGithubAction(options: { deleteBranchOnMerge, allowMergeCommit, allowSquashMerge, + squashMergeCommitTitle, + squashMergeCommitMessage, allowRebaseMerge, allowAutoMerge, access, diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md index 355f125b9b..8642dc63c6 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-common +## 1.2.4-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/types@1.0.2 + ## 1.2.3 ### Patch Changes diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index a2f4ae5bcf..fa7286b180 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", + "version": "1.2.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index 6126798c2c..4cb61dfa18 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,59 @@ # @backstage/plugin-scaffolder +## 1.10.0-next.0 + +### Minor Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +### Patch Changes + +- 3c112f6967: rollback `@rjsf/validator-ajv8` to `@rjsf/validator-v6` +- 223e2c5f03: add `onChange` handler to`Stepper` component +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-react@0.4.8 + ## 1.9.1 ### Patch Changes diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 3fe1208ba9..1c4d163123 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -88,6 +88,10 @@ export const EntityPickerFieldExtension: FieldExtensionComponent< defaultNamespace?: string | false | undefined; allowedKinds?: string[] | undefined; allowArbitraryValues?: boolean | undefined; + catalogFilter?: + | Record + | Record[] + | undefined; } >; @@ -99,6 +103,10 @@ export const EntityPickerFieldSchema: FieldSchema< defaultNamespace?: string | false | undefined; allowedKinds?: string[] | undefined; allowArbitraryValues?: boolean | undefined; + catalogFilter?: + | Record + | Record[] + | undefined; } >; @@ -316,6 +324,10 @@ export const OwnerPickerFieldExtension: FieldExtensionComponent< defaultNamespace?: string | false | undefined; allowedKinds?: string[] | undefined; allowArbitraryValues?: boolean | undefined; + catalogFilter?: + | Record + | Record[] + | undefined; } >; @@ -326,6 +338,10 @@ export const OwnerPickerFieldSchema: FieldSchema< defaultNamespace?: string | false | undefined; allowedKinds?: string[] | undefined; allowArbitraryValues?: boolean | undefined; + catalogFilter?: + | Record + | Record[] + | undefined; } >; diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index ebc2e91511..4bb7b29068 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", + "version": "1.10.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder/src/components/TemplateEditorPage/TemplateFormPreviewer.tsx b/plugins/scaffolder/src/components/TemplateEditorPage/TemplateFormPreviewer.tsx index 041b7797ee..5bc32ed581 100644 --- a/plugins/scaffolder/src/components/TemplateEditorPage/TemplateFormPreviewer.tsx +++ b/plugins/scaffolder/src/components/TemplateEditorPage/TemplateFormPreviewer.tsx @@ -53,8 +53,8 @@ parameters: description: Owner of the component ui:field: OwnerPicker ui:options: - allowedKinds: - - Group + catalogFilter: + kind: Group - title: Choose a location required: - repoUrl diff --git a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.test.tsx b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.test.tsx index 942eef9d82..b6d6688a09 100644 --- a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.test.tsx +++ b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.test.tsx @@ -14,6 +14,7 @@ * limitations under the License. */ +import { EntityFilterQuery } from '@backstage/catalog-client'; import { Entity } from '@backstage/catalog-model'; import { CatalogApi, catalogApiRef } from '@backstage/plugin-catalog-react'; import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; @@ -34,7 +35,13 @@ describe('', () => { const schema = {}; const required = false; let uiSchema: { - 'ui:options': { allowedKinds?: string[]; defaultKind?: string }; + 'ui:options': { + allowedKinds?: string[]; + defaultKind?: string; + allowArbitraryValues?: boolean; + defaultNamespace?: string | false; + catalogFilter?: EntityFilterQuery; + }; }; const rawErrors: string[] = []; const formData = undefined; @@ -66,7 +73,7 @@ describe('', () => { afterEach(() => jest.resetAllMocks()); - describe('without allowedKinds', () => { + describe('without allowedKinds and catalogFilter', () => { beforeEach(() => { uiSchema = { 'ui:options': {} }; props = { @@ -136,4 +143,97 @@ describe('', () => { }); }); }); + + describe('with catalogFilter', () => { + beforeEach(() => { + uiSchema = { + 'ui:options': { + catalogFilter: [ + { + kind: ['Group'], + 'metadata.name': 'test-entity', + }, + { + kind: ['User'], + 'metadata.name': 'test-entity', + }, + ], + }, + }; + props = { + onChange, + schema, + required, + uiSchema, + rawErrors, + formData, + } as unknown as FieldProps; + + catalogApi.getEntities.mockResolvedValue({ items: entities }); + }); + + it('searches for a specific group entity', async () => { + await renderInTestApp( + + + , + ); + + expect(catalogApi.getEntities).toHaveBeenCalledWith({ + filter: [ + { + kind: ['Group'], + 'metadata.name': 'test-entity', + }, + { + kind: ['User'], + 'metadata.name': 'test-entity', + }, + ], + }); + }); + }); + + describe('catalogFilter should take precedence over allowedKinds', () => { + beforeEach(() => { + uiSchema = { + 'ui:options': { + catalogFilter: [ + { + kind: ['Group'], + 'metadata.name': 'test-group', + }, + ], + allowedKinds: ['User'], + }, + }; + props = { + onChange, + schema, + required, + uiSchema, + rawErrors, + formData, + } as unknown as FieldProps; + + catalogApi.getEntities.mockResolvedValue({ items: entities }); + }); + + it('searches for a Group entity', async () => { + await renderInTestApp( + + + , + ); + + expect(catalogApi.getEntities).toHaveBeenCalledWith({ + filter: [ + { + kind: ['Group'], + 'metadata.name': 'test-group', + }, + ], + }); + }); + }); }); diff --git a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx index bc78e00576..48e60b60ad 100644 --- a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { type EntityFilterQuery } from '@backstage/catalog-client'; import { useApi } from '@backstage/core-plugin-api'; import { catalogApiRef, @@ -44,6 +45,11 @@ export const EntityPicker = (props: EntityPickerProps) => { idSchema, } = props; const allowedKinds = uiSchema['ui:options']?.allowedKinds; + + const catalogFilter: EntityFilterQuery | undefined = + uiSchema['ui:options']?.catalogFilter || + (allowedKinds && { kind: allowedKinds }); + const defaultKind = uiSchema['ui:options']?.defaultKind; const defaultNamespace = uiSchema['ui:options']?.defaultNamespace; @@ -51,7 +57,7 @@ export const EntityPicker = (props: EntityPickerProps) => { const { value: entities, loading } = useAsync(() => catalogApi.getEntities( - allowedKinds ? { filter: { kind: allowedKinds } } : undefined, + catalogFilter ? { filter: catalogFilter } : undefined, ), ); diff --git a/plugins/scaffolder/src/components/fields/EntityPicker/schema.ts b/plugins/scaffolder/src/components/fields/EntityPicker/schema.ts index 9236457fc0..f83dfbf817 100644 --- a/plugins/scaffolder/src/components/fields/EntityPicker/schema.ts +++ b/plugins/scaffolder/src/components/fields/EntityPicker/schema.ts @@ -16,16 +16,28 @@ import { z } from 'zod'; import { makeFieldSchemaFromZod } from '../utils'; +/** + * @public + */ +export const entityQueryFilterExpressionSchema = z.record( + z.string().or(z.array(z.string())), +); + /** * @public */ export const EntityPickerFieldSchema = makeFieldSchemaFromZod( z.string(), z.object({ + /** + * @deprecated Use `catalogFilter` instead. + */ allowedKinds: z .array(z.string()) .optional() - .describe('List of kinds of entities to derive options from'), + .describe( + 'DEPRECATED: Use `catalogFilter` instead. List of kinds of entities to derive options from', + ), defaultKind: z .string() .optional() @@ -42,6 +54,11 @@ export const EntityPickerFieldSchema = makeFieldSchemaFromZod( .describe( 'The default namespace. Options with this namespace will not be prefixed.', ), + catalogFilter: z + .array(entityQueryFilterExpressionSchema) + .or(entityQueryFilterExpressionSchema) + .optional() + .describe('List of key-value filter expression for entities'), }), ); diff --git a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.test.tsx b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.test.tsx index b78d3add9e..00508593f5 100644 --- a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.test.tsx +++ b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.test.tsx @@ -14,6 +14,7 @@ * limitations under the License. */ +import { type EntityFilterQuery } from '@backstage/catalog-client'; import { Entity } from '@backstage/catalog-model'; import { CatalogApi, catalogApiRef } from '@backstage/plugin-catalog-react'; import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; @@ -32,7 +33,15 @@ describe('', () => { const onChange = jest.fn(); const schema = {}; const required = false; - let uiSchema: { 'ui:options': { allowedKinds?: string[] } }; + let uiSchema: { + 'ui:options': { + allowedKinds?: string[]; + defaultKind?: string; + allowArbitraryValues?: boolean; + defaultNamespace?: string | false; + catalogFilter?: EntityFilterQuery; + }; + }; const rawErrors: string[] = []; const formData = undefined; @@ -63,7 +72,7 @@ describe('', () => { afterEach(() => jest.resetAllMocks()); - describe('without allowedKinds', () => { + describe('without catalogFilter and allowedKinds', () => { beforeEach(() => { uiSchema = { 'ui:options': {} }; props = { @@ -108,7 +117,7 @@ describe('', () => { catalogApi.getEntities.mockResolvedValue({ items: entities }); }); - it('searches for users and groups', async () => { + it('searches for users', async () => { await renderInTestApp( @@ -122,4 +131,93 @@ describe('', () => { }); }); }); + + describe('with catalogFilter', () => { + beforeEach(() => { + uiSchema = { + 'ui:options': { + catalogFilter: [ + { + kind: ['Group'], + 'spec.type': 'team', + }, + ], + }, + }; + props = { + onChange, + schema, + required, + uiSchema, + rawErrors, + formData, + } as unknown as FieldProps; + + catalogApi.getEntities.mockResolvedValue({ items: entities }); + }); + + it('searches for group entities of type team', async () => { + await renderInTestApp( + + + , + ); + + expect(catalogApi.getEntities).toHaveBeenCalledWith({ + filter: [ + { + kind: ['Group'], + 'spec.type': 'team', + }, + ], + }); + }); + }); + + describe('catalogFilter should take precedence over allowedKinds', () => { + beforeEach(() => { + uiSchema = { + 'ui:options': { + allowedKinds: ['User'], + catalogFilter: [ + { + kind: ['Group', 'User'], + }, + { + 'spec.type': ['team', 'business-unit'], + }, + ], + }, + }; + props = { + onChange, + schema, + required, + uiSchema, + rawErrors, + formData, + } as unknown as FieldProps; + + catalogApi.getEntities.mockResolvedValue({ items: entities }); + }); + + it('searches for users and groups or teams and business units', async () => { + await renderInTestApp( + + + , + ); + + expect(catalogApi.getEntities).toHaveBeenCalledWith({ + filter: [ + { + kind: ['Group', 'User'], + }, + { + 'spec.type': ['team', 'business-unit'], + }, + ], + }); + }); + }); }); diff --git a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx index 1c4c356906..5c69e73e12 100644 --- a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx +++ b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx @@ -33,14 +33,16 @@ export const OwnerPicker = (props: OwnerPickerProps) => { } = props; const defaultNamespace = uiSchema['ui:options']?.defaultNamespace; + const allowedKinds = uiSchema['ui:options']?.allowedKinds; + + const catalogFilter = uiSchema['ui:options']?.catalogFilter || { + kind: allowedKinds || ['Group', 'User'], + }; const ownerUiSchema = { ...uiSchema, 'ui:options': { - allowedKinds: (uiSchema['ui:options']?.allowedKinds || [ - 'Group', - 'User', - ]) as string[], + catalogFilter, defaultKind: 'Group', allowArbitraryValues: uiSchema['ui:options']?.allowArbitraryValues ?? true, diff --git a/plugins/scaffolder/src/components/fields/OwnerPicker/schema.ts b/plugins/scaffolder/src/components/fields/OwnerPicker/schema.ts index 56edef1343..0dbe2fa74f 100644 --- a/plugins/scaffolder/src/components/fields/OwnerPicker/schema.ts +++ b/plugins/scaffolder/src/components/fields/OwnerPicker/schema.ts @@ -15,6 +15,7 @@ */ import { z } from 'zod'; import { makeFieldSchemaFromZod } from '../utils'; +import { entityQueryFilterExpressionSchema } from '../EntityPicker/schema'; /** * @public @@ -22,12 +23,15 @@ import { makeFieldSchemaFromZod } from '../utils'; export const OwnerPickerFieldSchema = makeFieldSchemaFromZod( z.string(), z.object({ + /** + * @deprecated Use `catalogFilter` instead. + */ allowedKinds: z .array(z.string()) .default(['Group', 'User']) .optional() .describe( - 'List of kinds of entities to derive options from. Defaults to Group and User', + 'DEPRECATED: Use `catalogFilter` instead. List of kinds of entities to derive options from. Defaults to Group and User', ), allowArbitraryValues: z .boolean() @@ -39,6 +43,11 @@ export const OwnerPickerFieldSchema = makeFieldSchemaFromZod( .describe( 'The default namespace. Options with this namespace will not be prefixed.', ), + catalogFilter: z + .array(entityQueryFilterExpressionSchema) + .or(entityQueryFilterExpressionSchema) + .optional() + .describe('List of key-value filter expression for entities'), }), ); diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx index af86abf1c6..2660eed47d 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx @@ -20,6 +20,7 @@ import { renderInTestApp } from '@backstage/test-utils'; import { act, fireEvent } from '@testing-library/react'; import type { RJSFValidationError } from '@rjsf/utils'; import { JsonValue } from '@backstage/types'; +import { NextFieldExtensionComponentProps } from '../../../extensions/types'; describe('Stepper', () => { it('should render the step titles for each step of the manifest', async () => { @@ -110,6 +111,98 @@ describe('Stepper', () => { ); }); + it('should merge nested formData correctly in multiple steps', async () => { + const Repo = ({ + onChange, + }: NextFieldExtensionComponentProps<{ repository: string }, any>) => ( + onChange({ repository: e.target.value })} + defaultValue="" + /> + ); + + const Owner = ({ + onChange, + }: NextFieldExtensionComponentProps<{ owner: string }, any>) => ( + onChange({ owner: e.target.value })} + defaultValue="" + /> + ); + + const manifest: TemplateParameterSchema = { + steps: [ + { + title: 'Step 1', + schema: { + properties: { + first: { + type: 'object', + 'ui:field': 'Repo', + }, + }, + }, + }, + { + title: 'Step 2', + schema: { + properties: { + second: { + type: 'object', + 'ui:field': 'Owner', + }, + }, + }, + }, + ], + title: 'React JSON Schema Form Test', + }; + + const onComplete = jest.fn(async (values: Record) => { + expect(values).toEqual({ + first: { repository: 'Repo' }, + second: { owner: 'Owner' }, + }); + }); + + const { getByRole } = await renderInTestApp( + , + ); + + await fireEvent.change(getByRole('textbox', { name: 'repo' }), { + target: { value: 'Repo' }, + }); + + await act(async () => { + await fireEvent.click(getByRole('button', { name: 'Next' })); + }); + + await fireEvent.change(getByRole('textbox', { name: 'owner' }), { + target: { value: 'Owner' }, + }); + + await act(async () => { + await fireEvent.click(getByRole('button', { name: 'Review' })); + }); + + await act(async () => { + await fireEvent.click(getByRole('button', { name: 'Create' })); + }); + + expect(onComplete).toHaveBeenCalled(); + }); + it('should render custom field extensions properly', async () => { const MockComponent = () => { return

im a custom field extension

; diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx index 3d5cb1bfd2..d4d57eed22 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx @@ -26,9 +26,9 @@ import { Button, makeStyles, } from '@material-ui/core'; -import { withTheme } from '@rjsf/core-v5'; +import { type IChangeEvent, withTheme } from '@rjsf/core-v5'; import { ErrorSchema, FieldValidation } from '@rjsf/utils'; -import React, { useMemo, useState } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import { NextFieldExtensionOptions } from '../../../extensions'; import { TemplateParameterSchema } from '../../../types'; import { createAsyncValidators } from './createAsyncValidators'; @@ -36,7 +36,6 @@ import { useTemplateSchema } from './useTemplateSchema'; import { ReviewState } from './ReviewState'; import validator from '@rjsf/validator-ajv6'; import { selectedTemplateRouteRef } from '../../../routes'; -import { getDefaultFormState } from '@rjsf/utils'; import { useFormData } from './useFormData'; import { FormProps } from '../../types'; @@ -102,6 +101,12 @@ export const Stepper = (props: StepperProps) => { setActiveStep(prevActiveStep => prevActiveStep - 1); }; + const handleChange = useCallback( + (e: IChangeEvent) => + setFormState(current => ({ ...current, ...e.formData })), + [setFormState], + ); + const handleNext = async ({ formData, }: { @@ -111,18 +116,7 @@ export const Stepper = (props: StepperProps) => { // to display it's own loading? Or should we grey out the entire form. setErrors(undefined); - const schema = steps[activeStep]?.schema; - const rootSchema = steps[activeStep]?.mergedSchema; - - const newFormData = getDefaultFormState( - validator, - schema, - formData, - rootSchema, - true, - ); - - const returnedValidation = await validation(newFormData); + const returnedValidation = await validation(formData); const hasErrors = Object.values(returnedValidation).some( i => i.__errors?.length, @@ -138,7 +132,7 @@ export const Stepper = (props: StepperProps) => { return stepNum; }); } - setFormState(current => ({ ...current, ...newFormData })); + setFormState(current => ({ ...current, ...formData })); }; return ( @@ -165,6 +159,7 @@ export const Stepper = (props: StepperProps) => { onSubmit={handleNext} fields={extensions} showErrorList={false} + onChange={handleChange} {...(props.FormProps ?? {})} >
diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md index 75060fe96f..dfbcec24e4 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.1.1-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- 1e1a9fe979: Fixed a bug that could cause an indexing process to silently fail, timeout, and accumulate stale indices. +- 56633804dd: Fixed a bug that could cause the backstage backend to unexpectedly terminate when client errors were encountered during the indexing process. +- aa33a06894: Improved index throughput by optimizing when and how many documents were made available to the bulk client. +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + ## 1.1.0 ### Minor Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index fa1868879e..79cf3d2a97 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-elasticsearch", "description": "A module for the search backend that implements search using ElasticSearch", - "version": "1.1.0", + "version": "1.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.test.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.test.ts index 92193976b4..94b59fcf42 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.test.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.test.ts @@ -250,4 +250,33 @@ describe('ElasticSearchSearchEngineIndexer', () => { // Final deletion shouldn't be called. expect(deleteSpy).not.toHaveBeenCalled(); }); + + it('handles bulk client rejection', async () => { + // Given an ES client wrapper that rejects an error + const expectedError = new Error('HTTP Timeout'); + const mockClientWrapper = ElasticSearchClientWrapper.fromClientOptions({ + node: 'http://localhost:9200', + Connection: mock.getConnection(), + }); + mockClientWrapper.bulk = jest.fn().mockRejectedValue(expectedError); + + // And a search engine indexer that uses that client wrapper + indexer = new ElasticSearchSearchEngineIndexer({ + type: 'some-type', + indexPrefix: '', + indexSeparator: '-index__', + alias: 'some-type-index__search', + logger: getVoidLogger(), + elasticSearchClientWrapper: mockClientWrapper, + batchSize: 1000, + }); + + // When the indexer is run in the test pipeline + const { error } = await TestPipeline.fromIndexer(indexer) + .withDocuments([{ title: 'a', location: 'a', text: '/a' }]) + .execute(); + + // Then the pipeline should have received the expected error + expect(error).toBe(expectedError); + }); }); diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.ts index 29f20ea650..a9d15c421e 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.ts @@ -45,7 +45,6 @@ function duration(startTimestamp: [number, number]): string { * @public */ export class ElasticSearchSearchEngineIndexer extends BatchSearchEngineIndexer { - private received: number = 0; private processed: number = 0; private removableIndices: string[] = []; @@ -59,10 +58,13 @@ export class ElasticSearchSearchEngineIndexer extends BatchSearchEngineIndexer { private readonly logger: Logger; private readonly sourceStream: Readable; private readonly elasticSearchClientWrapper: ElasticSearchClientWrapper; + private configuredBatchSize: number; private bulkResult: Promise; + private bulkClientError?: Error; constructor(options: ElasticSearchSearchEngineIndexerOptions) { super({ batchSize: options.batchSize }); + this.configuredBatchSize = options.batchSize; this.logger = options.logger.child({ documentType: options.type }); this.startTimestamp = process.hrtime(); this.type = options.type; @@ -94,6 +96,11 @@ export class ElasticSearchSearchEngineIndexer extends BatchSearchEngineIndexer { }, refreshOnCompletion: that.indexName, }); + + // Safely catch errors thrown by the bulk helper client, e.g. HTTP timeouts + this.bulkResult.catch(e => { + this.bulkClientError = e; + }); } async initialize(): Promise { @@ -115,7 +122,6 @@ export class ElasticSearchSearchEngineIndexer extends BatchSearchEngineIndexer { async index(documents: IndexableDocument[]): Promise { await this.isReady(); documents.forEach(document => { - this.received++; this.sourceStream.push(document); }); } @@ -197,11 +203,41 @@ export class ElasticSearchSearchEngineIndexer extends BatchSearchEngineIndexer { * backpressure in other parts of the indexing pipeline. */ private isReady(): Promise { - return new Promise(resolve => { + // Early exit if the underlying ES client encountered an error. + if (this.bulkClientError) { + return Promise.reject(this.bulkClientError); + } + + // Optimization: if the stream that ES reads from has fewer docs queued + // than the configured batch size, continue early to allow more docs to be + // queued + if (this.sourceStream.readableLength < this.configuredBatchSize) { + return Promise.resolve(); + } + + // Otherwise, continue periodically checking the stream queue to see if + // ES has consumed the documents and continue when it's ready for more. + return new Promise((isReady, abort) => { + let streamLengthChecks = 0; const interval = setInterval(() => { - if (this.received === this.processed) { + streamLengthChecks++; + + if (this.sourceStream.readableLength < this.configuredBatchSize) { clearInterval(interval); - resolve(); + isReady(); + } + + // Do not allow this interval to loop endlessly; anything longer than 5 + // minutes likely indicates an unrecoverable error in ES; direct the + // user to inspect ES logs for more clues and abort in order to allow + // the index to be cleaned up. + if (streamLengthChecks >= 6000) { + clearInterval(interval); + abort( + new Error( + 'Exceeded 5 minutes waiting for elastic to be ready to accept more documents. Check the elastic logs for possible problems.', + ), + ); } }, 50); }); diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index bcede8121b..103e4b384b 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + ## 0.5.0 ### Minor Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index fae43de36a..402c1b9102 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-pg", "description": "A module for the search backend that implements search using PostgreSQL", - "version": "0.5.0", + "version": "0.5.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md index f119c80353..9d6a32acf3 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-node +## 1.1.1-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + ## 1.1.0 ### Minor Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 08f0b45cb6..d58239c574 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-node", "description": "A library for Backstage backend plugins that want to interact with the search backend plugin", - "version": "1.1.0", + "version": "1.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index b296c171c9..1b2f3188c7 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-search-backend +## 1.2.1-next.0 + +### Patch Changes + +- bfd66b0478: Allow max page limit for search results to be configurable +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-search-common@1.2.0 + ## 1.2.0 ### Minor Changes diff --git a/plugins/search-backend/config.d.ts b/plugins/search-backend/config.d.ts index 99f4d0ab2f..3dbdf78dfe 100644 --- a/plugins/search-backend/config.d.ts +++ b/plugins/search-backend/config.d.ts @@ -17,6 +17,11 @@ export interface Config { /** Configuration options for the search plugin */ search?: { + /** + * Sets the maximum max page limit size. Defaults to 100. + */ + maxPageLimit?: number; + /** * Options related to the search integration with the Backstage permissions system */ diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index 6032f1af79..d84f66d968 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend", "description": "The Backstage backend plugin that provides your backstage app with search", - "version": "1.2.0", + "version": "1.2.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -48,6 +48,7 @@ "supertest": "^6.1.3" }, "files": [ - "dist" + "dist", + "config.d.ts" ] } diff --git a/plugins/search-backend/src/service/router.test.ts b/plugins/search-backend/src/service/router.test.ts index c3eb6ea00f..1dbd145bce 100644 --- a/plugins/search-backend/src/service/router.test.ts +++ b/plugins/search-backend/src/service/router.test.ts @@ -59,7 +59,10 @@ describe('createRouter', () => { 'first-type': {}, 'second-type': {}, }, - config: new ConfigReader({ permissions: { enabled: false } }), + config: new ConfigReader({ + permissions: { enabled: false }, + search: { maxPageLimit: 200 }, + }), permissions: mockPermissionEvaluator, logger, }); @@ -112,8 +115,8 @@ describe('createRouter', () => { }); }); - it('should accept per page value under or equal to 100', async () => { - const response = await request(app).get(`/query?pageLimit=30`); + it('should accept per page value under or equal to configured max', async () => { + const response = await request(app).get(`/query?pageLimit=200`); expect(response.status).toEqual(200); expect(response.body).toMatchObject({ @@ -121,13 +124,13 @@ describe('createRouter', () => { }); }); - it('should reject per page value over 100', async () => { - const response = await request(app).get(`/query?pageLimit=200`); + it('should reject per page value over configured max', async () => { + const response = await request(app).get(`/query?pageLimit=300`); expect(response.status).toEqual(400); expect(response.body).toMatchObject({ error: { - message: /The page limit "200" is greater than "100"/i, + message: /The page limit "300" is greater than "200"/i, }, }); }); diff --git a/plugins/search-backend/src/service/router.ts b/plugins/search-backend/src/service/router.ts index 0100c35e1d..b51dcead14 100644 --- a/plugins/search-backend/src/service/router.ts +++ b/plugins/search-backend/src/service/router.ts @@ -62,7 +62,7 @@ export type RouterOptions = { logger: Logger; }; -const maxPageLimit = 100; +const defaultMaxPageLimit = 100; const allowedLocationProtocols = ['http:', 'https:']; /** @@ -73,6 +73,9 @@ export async function createRouter( ): Promise { const { engine: inputEngine, types, permissions, config, logger } = options; + const maxPageLimit = + config.getOptionalNumber('search.maxPageLimit') ?? defaultMaxPageLimit; + const requestSchema = z.object({ term: z.string().default(''), filters: jsonObjectSchema.optional(), diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index a08a1f43dd..024ba60bc5 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-react +## 1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.0 + ## 1.3.1 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 9f4bd5a4f2..f07908d093 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-react", - "version": "1.3.0", + "version": "1.3.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index 46f8fde85e..51e7e56d3c 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-search +## 1.0.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 1.0.6 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 301bcb1fc6..bc0cb235ef 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search", "description": "The Backstage plugin that provides your backstage app with search", - "version": "1.0.5", + "version": "1.0.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md index c34eab0bb6..c5b378ef71 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-sentry +## 0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.4.6 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 88c9697b19..7bada620ef 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sentry", "description": "A Backstage plugin that integrates towards Sentry", - "version": "0.4.5", + "version": "0.4.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/shortcuts/CHANGELOG.md b/plugins/shortcuts/CHANGELOG.md index 22698bf7f2..7893f09f7f 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-shortcuts +## 0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + ## 0.3.5 ### Patch Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index 39d272279d..a3c555b94c 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-shortcuts", "description": "A Backstage plugin that provides a shortcuts feature to the sidebar", - "version": "0.3.4", + "version": "0.3.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube-react/CHANGELOG.md b/plugins/sonarqube-react/CHANGELOG.md index feec05cbab..6a66840aab 100644 --- a/plugins/sonarqube-react/CHANGELOG.md +++ b/plugins/sonarqube-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-sonarqube-react +## 0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-plugin-api@1.2.0 + ## 0.1.0 ### Minor Changes diff --git a/plugins/sonarqube-react/package.json b/plugins/sonarqube-react/package.json index ad66e526e5..fb87d3a39e 100644 --- a/plugins/sonarqube-react/package.json +++ b/plugins/sonarqube-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sonarqube-react", - "version": "0.1.0", + "version": "0.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md index 28c4acc72f..eebe45549c 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-sonarqube +## 0.6.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-sonarqube-react@0.1.1-next.0 + ## 0.6.1 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 39cc45201b..a77d5d0944 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.6.0", + "version": "0.6.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md index 31d9bd58e1..7cf052e511 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-splunk-on-call +## 0.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.4.2 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 60ab22ff15..7a50704018 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-splunk-on-call", "description": "A Backstage plugin that integrates towards Splunk On-Call", - "version": "0.4.1", + "version": "0.4.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md index 5a77d47a98..bafb72bcd7 100644 --- a/plugins/stack-overflow-backend/CHANGELOG.md +++ b/plugins/stack-overflow-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-stack-overflow-backend +## 0.1.9-next.0 + +### Patch Changes + +- 06f6a4f0f1: 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. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index c9111f3a7e..a1aa2603d7 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow-backend", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md index 713bb6c330..198df1b115 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-stack-overflow +## 0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-home@0.4.30-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 0.1.9 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index b0d6c87b8b..981194ef00 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow", - "version": "0.1.8", + "version": "0.1.10-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md index c3c2d4b2e8..006f6f9d11 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-tech-insights-backend +## 0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + - @backstage/plugin-tech-insights-node@0.3.7 + ## 0.5.5 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 74bdb33647..ec84f9839e 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend", - "version": "0.5.5", + "version": "0.5.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-backend/src/service/router.ts b/plugins/tech-insights-backend/src/service/router.ts index 6dba290422..5e58df1b20 100644 --- a/plugins/tech-insights-backend/src/service/router.ts +++ b/plugins/tech-insights-backend/src/service/router.ts @@ -32,6 +32,7 @@ import { stringifyEntityRef, } from '@backstage/catalog-model'; import { errorHandler } from '@backstage/backend-common'; +import { serializeError } from '@backstage/errors'; /** * @public @@ -106,11 +107,21 @@ export async function createRouter< const tasks = entities.map(async entity => { const entityTriplet = typeof entity === 'string' ? entity : stringifyEntityRef(entity); - const results = await factChecker.runChecks(entityTriplet, checks); - return { - entity: entityTriplet, - results, - }; + try { + const results = await factChecker.runChecks(entityTriplet, checks); + return { + entity: entityTriplet, + results, + }; + } catch (e: any) { + const error = serializeError(e); + logger.error(`${error.name}: ${error.message}`); + return { + entity: entityTriplet, + error: error, + results: [], + }; + } }); const results = await Promise.all(tasks); return res.json(results); diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md index 57e36f5924..9c2b98c15f 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-tech-insights +## 0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + ## 0.3.5 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 7d596c136e..156d00ef69 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights", - "version": "0.3.4", + "version": "0.3.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md index e5fe9f2b64..14b1c8b155 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-radar +## 0.5.21-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.5.20 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 916396c78c..2ab0252912 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-tech-radar", "description": "A Backstage plugin that lets you display a Tech Radar for your organization", - "version": "0.5.19", + "version": "0.5.21-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 4739e91191..8b26101721 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 1.0.8 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index 2edebb6c22..3142ef04ec 100644 --- a/plugins/techdocs-addons-test-utils/package.json +++ b/plugins/techdocs-addons-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-addons-test-utils", - "version": "1.0.7", + "version": "1.0.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index 2dc59b2968..a516600d4b 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-techdocs-backend +## 1.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-techdocs-node@1.4.4-next.0 + ## 1.5.0 ### Minor Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 35679ed84d..bdd644d75c 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-backend", "description": "The Backstage backend plugin that renders technical documentation for your components", - "version": "1.5.0", + "version": "1.5.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index 6b87304dae..b99e8b6765 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + ## 1.0.8 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 080f45d942..94559a6418 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-module-addons-contrib", "description": "Plugin module for contributed TechDocs Addons", - "version": "1.0.7", + "version": "1.0.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index 16a4cc9ffb..a355cb5b9b 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-techdocs-node +## 1.4.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-aws-node@0.1.0 + - @backstage/plugin-search-common@1.2.0 + ## 1.4.3 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 62a35c960c..f973588399 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-node", "description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", - "version": "1.4.3", + "version": "1.4.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 19e8527f9a..1f7a0f062c 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs-react +## 1.1.2-next.0 + +### Patch Changes + +- 7115c7389b: Updated dependency `jss` to `~10.9.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/version-bridge@1.0.3 + ## 1.1.1 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 2f91a4af60..9b49225a2d 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-react", "description": "Shared frontend utilities for TechDocs and Addons", - "version": "1.1.0", + "version": "1.1.2-next.0", "publishConfig": { "access": "public", "alphaTypes": "dist/index.alpha.d.ts", @@ -42,7 +42,7 @@ "@material-ui/core": "^4.12.2", "@material-ui/lab": "4.0.0-alpha.57", "@material-ui/styles": "^4.11.0", - "jss": "~10.8.2", + "jss": "~10.9.0", "lodash": "^4.17.21", "react-helmet": "6.1.0", "react-use": "^17.2.4" diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index d83d5bd075..7ae15d7cab 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-techdocs +## 1.4.3-next.0 + +### Patch Changes + +- 7115c7389b: Updated dependency `jss` to `~10.9.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 1.4.2 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 4da8b45b12..eed7209f9b 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs", "description": "The Backstage plugin that renders technical documentation for your components", - "version": "1.4.1", + "version": "1.4.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -52,7 +52,7 @@ "dompurify": "^2.2.9", "event-source-polyfill": "1.0.25", "git-url-parse": "^13.0.0", - "jss": "~10.8.2", + "jss": "~10.9.0", "lodash": "^4.17.21", "react-helmet": "6.1.0", "react-use": "^17.2.4" diff --git a/plugins/techdocs/src/reader/components/TechDocsBuildLogs.tsx b/plugins/techdocs/src/reader/components/TechDocsBuildLogs.tsx index dc446a55d8..01e638e59c 100644 --- a/plugins/techdocs/src/reader/components/TechDocsBuildLogs.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsBuildLogs.tsx @@ -86,7 +86,9 @@ export const TechDocsBuildLogsDrawerContent = ({ - + + + ); }; diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md index b7851f68a3..24b16fe287 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-todo-backend +## 0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + ## 0.1.36 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index d2b5f91db0..ec67dde9df 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", + "version": "0.1.37-next.0", "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 4cd17a216c..851658cf1f 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-todo +## 0.2.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.15 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index 975907945f..69afbebb09 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", + "version": "0.2.16-next.0", "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 9ea1450606..38ef37607f 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-user-settings-backend +## 0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + ## 0.1.3 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index d3ff237132..159ad346dd 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", + "version": "0.1.4-next.0", "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 4987fe8b13..b4f4eff261 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-user-settings +## 0.6.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + ## 0.6.1 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index ecaef90fb6..896e86a322 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", + "version": "0.6.2-next.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 cee1579921..55a8a76b04 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-vault-backend +## 0.2.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + ## 0.2.5 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 0dfba1efcd..bc17458b69 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", + "version": "0.2.6-next.0", "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 baab6ca848..f951d096bb 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-vault +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.7 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index f08cc0701f..7840d78be0 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", + "version": "0.1.8-next.0", "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 48c727f1da..d56e9ed626 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-xcmetrics +## 0.2.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.33 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 58ca732ec4..56d46fe989 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", + "version": "0.2.34-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/storybook/yarn.lock b/storybook/yarn.lock index 9c2eb64ca9..2d785e97be 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -2966,90 +2966,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-darwin-arm64@npm:1.3.23" +"@swc/core-darwin-arm64@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-darwin-arm64@npm:1.3.24" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-darwin-x64@npm:1.3.23" +"@swc/core-darwin-x64@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-darwin-x64@npm:1.3.24" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.23" +"@swc/core-linux-arm-gnueabihf@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.24" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.23" +"@swc/core-linux-arm64-gnu@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.24" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.23" +"@swc/core-linux-arm64-musl@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.24" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.23" +"@swc/core-linux-x64-gnu@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.24" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-x64-musl@npm:1.3.23" +"@swc/core-linux-x64-musl@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-x64-musl@npm:1.3.24" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.23" +"@swc/core-win32-arm64-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.24" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.23" +"@swc/core-win32-ia32-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.24" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.23" +"@swc/core-win32-x64-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.24" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.9": - version: 1.3.23 - resolution: "@swc/core@npm:1.3.23" + version: 1.3.24 + resolution: "@swc/core@npm:1.3.24" dependencies: - "@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 + "@swc/core-darwin-arm64": 1.3.24 + "@swc/core-darwin-x64": 1.3.24 + "@swc/core-linux-arm-gnueabihf": 1.3.24 + "@swc/core-linux-arm64-gnu": 1.3.24 + "@swc/core-linux-arm64-musl": 1.3.24 + "@swc/core-linux-x64-gnu": 1.3.24 + "@swc/core-linux-x64-musl": 1.3.24 + "@swc/core-win32-arm64-msvc": 1.3.24 + "@swc/core-win32-ia32-msvc": 1.3.24 + "@swc/core-win32-x64-msvc": 1.3.24 dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -3073,7 +3073,7 @@ __metadata: optional: true bin: swcx: run_swcx.js - checksum: 2a92949c33f292a369f4a750a8a9759f88f6f399bc0beef54768fce3d1af5cf0c33a4c8f3c2478020ae95e99d99b7c17f301b79163cdbcdf533b91675f1d2e8d + checksum: a27b842be129b83c116f804e63deaa51dbd5d9b77d6260888d549f6408df1dd05aeef20046ceacc9fd7458e6afda6723545249bd77f77086b98bd9bf84738c19 languageName: node linkType: hard diff --git a/yarn.lock b/yarn.lock index 79e1d065fe..9a0e0e00f7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -408,15 +408,15 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.235.0": - version: 3.235.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.235.0" +"@aws-sdk/client-cognito-identity@npm:3.236.0": + version: 3.236.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.236.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.235.0 + "@aws-sdk/client-sts": 3.236.0 "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-node": 3.235.0 + "@aws-sdk/credential-provider-node": 3.236.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 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: 4637132cc1a95823867c5ee80b35c7b84ddeed83c0778c2d7c197b26f24899641c825926c886c293f36d62e6b72be03ee091ac11cc9dbd875ad85936548ee178 + checksum: 808339bd0113f65674dea0d65af25c350ff5a8f2595f9dd11215b6e457df5d243db156042dc4bfbb39b302d6f871a71fbbed20f403207fb6e4c9e444eb802bf1 languageName: node linkType: hard "@aws-sdk/client-s3@npm:^3.208.0": - version: 3.235.0 - resolution: "@aws-sdk/client-s3@npm:3.235.0" + version: 3.236.0 + resolution: "@aws-sdk/client-s3@npm:3.236.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.235.0 + "@aws-sdk/client-sts": 3.236.0 "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-node": 3.235.0 + "@aws-sdk/credential-provider-node": 3.236.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 @@ -511,19 +511,19 @@ __metadata: "@aws-sdk/xml-builder": 3.201.0 fast-xml-parser: 4.0.11 tslib: ^2.3.1 - checksum: b16ce0a34a4d302edbc9cae91296a90a907511d6f0985feccf2196d537e1f1bfff6bfc0dafcb7ea1d5d7d0afd79d843cc15f8a5f87debd08852de338c698169b + checksum: 6a8953c229a1824bf1639dfa1a593bff3419c2c338da8df956d5cd3098dc3c1236ee63564347a22f40dc5947322b3f315ae7e39dd9c115ccf8a28199168c6d3b languageName: node linkType: hard "@aws-sdk/client-sqs@npm:^3.208.0": - version: 3.235.0 - resolution: "@aws-sdk/client-sqs@npm:3.235.0" + version: 3.236.0 + resolution: "@aws-sdk/client-sqs@npm:3.236.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.235.0 + "@aws-sdk/client-sts": 3.236.0 "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-node": 3.235.0 + "@aws-sdk/credential-provider-node": 3.236.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -558,13 +558,13 @@ __metadata: "@aws-sdk/util-utf8-node": 3.208.0 fast-xml-parser: 4.0.11 tslib: ^2.3.1 - checksum: 04da2ab0a850fa74265b9ab91b14fdf470d7f2850e31866b3582b83a01991bd9555b370e34bceba2445910b2d60cf8e17d7ead1f5caa94987e4114db949548f8 + checksum: c1d3eb3886d8d799afd081cf76822627e359495daa94edb615a001704933b31d276249828c5e5823af49ba08826875a4c768d8e6b4493abe9b65583a585839b7 languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.235.0": - version: 3.235.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.235.0" +"@aws-sdk/client-sso-oidc@npm:3.236.0": + version: 3.236.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.236.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 @@ -599,13 +599,13 @@ __metadata: "@aws-sdk/util-utf8-browser": 3.188.0 "@aws-sdk/util-utf8-node": 3.208.0 tslib: ^2.3.1 - checksum: c62558375fb6d3ce44136019de99e5134805894a80cec191e145003c0e065eb52ba0a288a62884371d6a69370f92df522b120e1c5428520c09ba0f4cdc5b91b7 + checksum: 6fbbebb37547bafc9345c1fd03692728d6b6015f7583f22b2542beaac7f395ab29af884f1a353e78dd147ebf8b109b1d6678f9d1ae18c2b70739e9ceee6781ef languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.235.0": - version: 3.235.0 - resolution: "@aws-sdk/client-sso@npm:3.235.0" +"@aws-sdk/client-sso@npm:3.236.0": + version: 3.236.0 + resolution: "@aws-sdk/client-sso@npm:3.236.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.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: 9852704cc383cbc8e44013eed6de514f60dc4f70ab89ceea79971b4b286db6b923648e8e4169d248f0888efed19c7c5fcc5748177577635d07080fd4980431d7 + checksum: 15cb25a3c12fe0f11ed320c8f02f72ee0d43291a14c06fce81f608fbc75a85785698fbffc3112e7e92ece25460d24670ba345535b43003b20798a0fcc8a7b31d languageName: node linkType: hard -"@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" +"@aws-sdk/client-sts@npm:3.236.0, @aws-sdk/client-sts@npm:^3.208.0": + version: 3.236.0 + resolution: "@aws-sdk/client-sts@npm:3.236.0" dependencies: "@aws-crypto/sha256-browser": 2.0.0 "@aws-crypto/sha256-js": 2.0.0 "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-node": 3.235.0 + "@aws-sdk/credential-provider-node": 3.236.0 "@aws-sdk/fetch-http-handler": 3.226.0 "@aws-sdk/hash-node": 3.226.0 "@aws-sdk/invalid-dependency": 3.226.0 @@ -685,7 +685,7 @@ __metadata: "@aws-sdk/util-utf8-node": 3.208.0 fast-xml-parser: 4.0.11 tslib: ^2.3.1 - checksum: 9a2ec3240bd01fd1ed95b2c6766ea8d141e4b85a6535fcbb5c57ac725ef58c2d1c1403a61c336adbb1eceb5dd306ac1d35d7b8f25ed1ebc544a14ad14fb038a7 + checksum: 98463fe50a588032b82be5289445c6e7250bd947076e5981ba7c126386d567f3b1ea9a9652c032da919503cdba2c3b517061911ddffae0c91f880f7eabaeaa08 languageName: node linkType: hard @@ -702,15 +702,15 @@ __metadata: languageName: node linkType: hard -"@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" +"@aws-sdk/credential-provider-cognito-identity@npm:3.236.0": + version: 3.236.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.236.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.235.0 + "@aws-sdk/client-cognito-identity": 3.236.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 85d348faa5161282d226040315aaff1a754d3bbd23ccb9131f021a5f6a473be76b80e2b3f5132d3b0a119732822d6b76829626d64e6c71c4d61d1fcbeb6e0080 + checksum: 29d3178f490cbb711553103c0fb544604c5e70e36395f1edc6b9bd2ee0e928160b911b4893fe89418c182548d0dddfbd44e9ef629ad690ab1724a2a693368c16 languageName: node linkType: hard @@ -738,38 +738,38 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.235.0": - version: 3.235.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.235.0" +"@aws-sdk/credential-provider-ini@npm:3.236.0": + version: 3.236.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.236.0" dependencies: "@aws-sdk/credential-provider-env": 3.226.0 "@aws-sdk/credential-provider-imds": 3.226.0 "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.235.0 + "@aws-sdk/credential-provider-sso": 3.236.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: c910746d90ec363691dc99d53594beb49ea8562ef69c5a2e9a1702febc7d870cfe5b0f441afdae2bed643a4e8901b82f965660cdd70077bb006978fdafddeb05 + checksum: e748aba37dab11ed395fa60c7eee119b997e4c64b1a838c93258cfe6a6e289dfa0aa20d292b94d06da8148b7cb32604b24f84aadc2a389bf8248c64d80ef44d5 languageName: node linkType: hard -"@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" +"@aws-sdk/credential-provider-node@npm:3.236.0, @aws-sdk/credential-provider-node@npm:^3.208.0": + version: 3.236.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.236.0" dependencies: "@aws-sdk/credential-provider-env": 3.226.0 "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.235.0 + "@aws-sdk/credential-provider-ini": 3.236.0 "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.235.0 + "@aws-sdk/credential-provider-sso": 3.236.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: bfea379a5e66c311c57a1f7390b2e508d42f8cf3e1a48a5b9585b33c76339c7e8806dba413c7d5bf6d669ffd05a4c55ef705f92bf4687ba8f5e359c5d3c7495e + checksum: d5a26b40a985edfef5006efde921d58b78829b67eed9fea56e108b99eec437a02721b93ef0e2dcd9a4739716c85d8db75935a71d2afa1190b0f1d0010511f649 languageName: node linkType: hard @@ -785,17 +785,17 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.235.0": - version: 3.235.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.235.0" +"@aws-sdk/credential-provider-sso@npm:3.236.0": + version: 3.236.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.236.0" dependencies: - "@aws-sdk/client-sso": 3.235.0 + "@aws-sdk/client-sso": 3.236.0 "@aws-sdk/property-provider": 3.226.0 "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/token-providers": 3.235.0 + "@aws-sdk/token-providers": 3.236.0 "@aws-sdk/types": 3.226.0 tslib: ^2.3.1 - checksum: 358fdda689c1f9be768516ca39de17e7fa7832d3d89d8893dd58f5d3377908ee2580155c1ba984c5ed21a410cda681bd22c7c74876af06b3496641a98b62353f + checksum: 215e0cd08c4dca453a80ce695bf4dddb94ce7562100bfa64e2ba5406ab3aeb6cf92882bd714b6ee95d3f13c45f3286eb616d32e1ffc58728f1e21e7eb171b301 languageName: node linkType: hard @@ -811,25 +811,25 @@ __metadata: linkType: hard "@aws-sdk/credential-providers@npm:^3.208.0": - version: 3.235.0 - resolution: "@aws-sdk/credential-providers@npm:3.235.0" + version: 3.236.0 + resolution: "@aws-sdk/credential-providers@npm:3.236.0" dependencies: - "@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/client-cognito-identity": 3.236.0 + "@aws-sdk/client-sso": 3.236.0 + "@aws-sdk/client-sts": 3.236.0 + "@aws-sdk/credential-provider-cognito-identity": 3.236.0 "@aws-sdk/credential-provider-env": 3.226.0 "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.235.0 - "@aws-sdk/credential-provider-node": 3.235.0 + "@aws-sdk/credential-provider-ini": 3.236.0 + "@aws-sdk/credential-provider-node": 3.236.0 "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.235.0 + "@aws-sdk/credential-provider-sso": 3.236.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: 3c8436f78a4ddcf295b06d77ed3cb912a8ae56ee047526663f8316dde6b646095c8288480214c9e3f68cb98772511cb7fcec6f8c4100fba899c495a9429c3ba2 + checksum: 3105661946fa12322b18a2227f26a8b734072850882e771493b398e714b433c024873a4495a18d55a4213022b07c658cb7ed38859b5fa152fc2ce1e02b408ca1 languageName: node linkType: hard @@ -967,8 +967,8 @@ __metadata: linkType: hard "@aws-sdk/lib-storage@npm:^3.208.0": - version: 3.235.0 - resolution: "@aws-sdk/lib-storage@npm:3.235.0" + version: 3.236.0 + resolution: "@aws-sdk/lib-storage@npm:3.236.0" dependencies: "@aws-sdk/middleware-endpoint": 3.226.0 "@aws-sdk/smithy-client": 3.234.0 @@ -979,7 +979,7 @@ __metadata: peerDependencies: "@aws-sdk/abort-controller": ^3.0.0 "@aws-sdk/client-s3": ^3.0.0 - checksum: a9a8993fdc8c05769a2f0c5c838e9b2ba72216f234e67c1a8bcebf8f812ab397d48c8b118959f4d9918ad8811fdf93b3b47812075b0995af8c11cb26c0f3c305 + checksum: 783b67c4605a4f7d4072ce38b2b2416a0a6771784f9ba5b1608be3777e7d21a18c820fff94218856607f984c453376e25e80393ef233365476850e354f8e15f8 languageName: node linkType: hard @@ -1355,16 +1355,16 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.235.0": - version: 3.235.0 - resolution: "@aws-sdk/token-providers@npm:3.235.0" +"@aws-sdk/token-providers@npm:3.236.0": + version: 3.236.0 + resolution: "@aws-sdk/token-providers@npm:3.236.0" dependencies: - "@aws-sdk/client-sso-oidc": 3.235.0 + "@aws-sdk/client-sso-oidc": 3.236.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: 5b9cd8cfd697f04a7c628329af1cc5003ec25fe08626148c55389311b53ecbaa47b83f2c6b832fa847f9db2ca5a3f63bcb8a1059b1b3b3590010acf3d4610896 + checksum: c5e6c88f22d35002f2d575d23ba5a530ee195b7220d7c0c58603bc2fafb6632a6755bc863cb7519eadda110d2f3193a144f34cc0236df285fcde40c980ba653a languageName: node linkType: hard @@ -3543,6 +3543,17 @@ __metadata: languageName: unknown linkType: soft +"@backstage/catalog-client@npm:^1.2.0": + version: 1.2.0 + resolution: "@backstage/catalog-client@npm:1.2.0" + dependencies: + "@backstage/catalog-model": ^1.1.4 + "@backstage/errors": ^1.1.4 + cross-fetch: ^3.1.5 + checksum: 29c782f663d3dea622d92ac0e0051ff25dbe9160edadcc027ff1f08514412e2cd2332e3cd476d2c4c112e1bc82f89879182ad2230f8626d463fa2e9b9c33caa3 + 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" @@ -3555,7 +3566,22 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-model@^1.1.2, @backstage/catalog-model@^1.1.3, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model": +"@backstage/catalog-model@npm:^1.1.2, @backstage/catalog-model@npm:^1.1.3, @backstage/catalog-model@npm:^1.1.4": + version: 1.1.4 + resolution: "@backstage/catalog-model@npm:1.1.4" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/errors": ^1.1.4 + "@backstage/types": ^1.0.2 + ajv: ^8.10.0 + json-schema: ^0.4.0 + lodash: ^4.17.21 + uuid: ^8.0.0 + checksum: 0676a837ec0899d97c7741e8d21c2938626364cbe237364bd701d47878881f0eb37fd886616e408c78f65008fe4dbd0423af0aa599d218a42f62ebf7cdacfe7a + languageName: node + linkType: hard + +"@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: @@ -3768,7 +3794,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/config@^1.0.3, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": +"@backstage/config@^1.0.3, @backstage/config@^1.0.5, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": version: 0.0.0-use.local resolution: "@backstage/config@workspace:packages/config" dependencies: @@ -3814,7 +3840,108 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-components@^0.12.0, @backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components": +"@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, @backstage/core-components@npm:^0.12.2": + version: 0.12.2 + resolution: "@backstage/core-components@npm:0.12.2" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/errors": ^1.1.4 + "@backstage/theme": ^0.2.16 + "@backstage/version-bridge": ^1.0.3 + "@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": ^20.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.1 + 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.10.0 + zod: ~3.18.0 + 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-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: fe8d6cf3350597653b1578f1bbbb3d9be70000e17a9c7ea9384f5f1b833794de580052dd7e589cc5b2d3bb80cfabe3dfd3b507f61c37f714822a16b3f8e968e4 + languageName: node + linkType: hard + +"@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: @@ -3885,58 +4012,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-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": +"@backstage/core-plugin-api@^1.0.7, @backstage/core-plugin-api@^1.1.0, @backstage/core-plugin-api@^1.2.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: @@ -4021,7 +4097,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/errors@^1.1.2, @backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": +"@backstage/errors@^1.1.2, @backstage/errors@^1.1.4, @backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": version: 0.0.0-use.local resolution: "@backstage/errors@workspace:packages/errors" dependencies: @@ -4051,7 +4127,26 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration-react@^1.1.6, @backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react": +"@backstage/integration-react@npm:^1.1.6": + version: 1.1.8 + resolution: "@backstage/integration-react@npm:1.1.8" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/integration": ^1.4.1 + "@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: b11f248b071efb28ccb88a40ab2acc2014ea88b1102f7947683c5d6a28a65d2f6c5daacf33e52fea17873a56c45e5a4f64dfd590d6fae2e17374470a4affd4cb + languageName: node + linkType: hard + +"@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: @@ -4078,7 +4173,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": +"@backstage/integration@^1.4.1, @backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": version: 0.0.0-use.local resolution: "@backstage/integration@workspace:packages/integration" dependencies: @@ -4706,6 +4801,7 @@ __metadata: "@backstage/errors": "workspace:^" "@backstage/plugin-catalog": "workspace:^" "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/theme": "workspace:^" "@date-io/luxon": 1.x "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 @@ -5130,7 +5226,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-common@^1.0.7, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": +"@backstage/plugin-catalog-common@npm:^1.0.7, @backstage/plugin-catalog-common@npm:^1.0.9": + version: 1.0.9 + resolution: "@backstage/plugin-catalog-common@npm:1.0.9" + dependencies: + "@backstage/catalog-model": ^1.1.4 + "@backstage/plugin-permission-common": ^0.7.2 + "@backstage/plugin-search-common": ^1.2.0 + checksum: 4697e105834ff4079172788925738ff915c3908a6a6609409bb4fb1f5652dd9dc609ad98ef66f889683d6da6c7e32b2349e20f917174fa9ee7a70b7741fbc1e7 + languageName: node + linkType: hard + +"@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: @@ -5258,7 +5365,41 @@ __metadata: languageName: unknown linkType: soft -"@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": +"@backstage/plugin-catalog-react@npm:^1.2.0, @backstage/plugin-catalog-react@npm:^1.2.1, @backstage/plugin-catalog-react@npm:^1.2.3": + version: 1.2.3 + resolution: "@backstage/plugin-catalog-react@npm:1.2.3" + dependencies: + "@backstage/catalog-client": ^1.2.0 + "@backstage/catalog-model": ^1.1.4 + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/errors": ^1.1.4 + "@backstage/integration": ^1.4.1 + "@backstage/plugin-catalog-common": ^1.0.9 + "@backstage/plugin-permission-common": ^0.7.2 + "@backstage/plugin-permission-react": ^0.4.8 + "@backstage/theme": ^0.2.16 + "@backstage/types": ^1.0.2 + "@backstage/version-bridge": ^1.0.3 + "@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.10.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: c80084f6c96e7e1279294ec2e4544b14bd6ae4be53fc00d9bf52a6faeb3d766d593a44b88b8dd0544b08aae742655a08dfeae5f7a704ef7abf815b1b204ac83f + languageName: node + linkType: hard + +"@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: @@ -6312,7 +6453,31 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-home@^0.4.27, @backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": +"@backstage/plugin-home@npm:^0.4.27, @backstage/plugin-home@npm:^0.4.29": + version: 0.4.29 + resolution: "@backstage/plugin-home@npm:0.4.29" + dependencies: + "@backstage/catalog-model": ^1.1.4 + "@backstage/config": ^1.0.5 + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/plugin-catalog-react": ^1.2.3 + "@backstage/plugin-stack-overflow": ^0.1.9 + "@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-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: e3b287455524df9c8c00fca397b0f2e7374285dc53539296de32086118c260e5ce04583f94c619b0d8f7a98d401f1c249e8ec40455b03de0a047d57aff14d637 + languageName: node + linkType: hard + +"@backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": version: 0.0.0-use.local resolution: "@backstage/plugin-home@workspace:plugins/home" dependencies: @@ -6847,7 +7012,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common": +"@backstage/plugin-permission-common@^0.7.2, @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" dependencies: @@ -6884,7 +7049,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-react@workspace:^, @backstage/plugin-permission-react@workspace:plugins/permission-react": +"@backstage/plugin-permission-react@^0.4.8, @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" dependencies: @@ -7362,7 +7527,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-search-common@workspace:^, @backstage/plugin-search-common@workspace:plugins/search-common": +"@backstage/plugin-search-common@^1.2.0, @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" dependencies: @@ -7372,6 +7537,30 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-search-react@npm:^1.3.1": + version: 1.3.1 + resolution: "@backstage/plugin-search-react@npm:1.3.1" + dependencies: + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/plugin-search-common": ^1.2.0 + "@backstage/theme": ^0.2.16 + "@backstage/types": ^1.0.2 + "@backstage/version-bridge": ^1.0.3 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.57 + lodash: ^4.17.21 + qs: ^6.9.4 + react-use: ^17.3.2 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: 41b27c0c8530903d45978950f5b6f81b72f9ffb94f6152f06892b12e9a158cb0a091addfcba81e2fcec5b8034017c3c414d920ef940d506ffc337be5d0fb3065 + languageName: node + linkType: hard + "@backstage/plugin-search-react@workspace:^, @backstage/plugin-search-react@workspace:plugins/search-react": version: 0.0.0-use.local resolution: "@backstage/plugin-search-react@workspace:plugins/search-react" @@ -7619,6 +7808,31 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-stack-overflow@npm:^0.1.9": + version: 0.1.9 + resolution: "@backstage/plugin-stack-overflow@npm:0.1.9" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/plugin-home": ^0.4.29 + "@backstage/plugin-search-common": ^1.2.0 + "@backstage/plugin-search-react": ^1.3.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: a4de011cd288ad138bc077b0c99980b40700dea16a08f789a5baf43b8cb5ee21c4209c89a7ebfba8df0051036b0a0b79507c10a19060bd12e8e3b53c1cff4366 + 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" @@ -7956,7 +8170,7 @@ __metadata: "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 "@testing-library/react-hooks": ^8.0.0 - jss: ~10.8.2 + jss: ~10.9.0 lodash: ^4.17.21 react-helmet: 6.1.0 react-use: ^17.2.4 @@ -8004,7 +8218,7 @@ __metadata: dompurify: ^2.2.9 event-source-polyfill: 1.0.25 git-url-parse: ^13.0.0 - jss: ~10.8.2 + jss: ~10.9.0 lodash: ^4.17.21 msw: ^0.49.0 react-helmet: 6.1.0 @@ -8232,9 +8446,6 @@ __metadata: "@manypkg/get-packages": ^1.1.3 "@microsoft/api-documenter": ^7.17.11 "@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 @@ -8246,6 +8457,9 @@ __metadata: mock-fs: ^5.1.0 ts-node: ^10.0.0 peerDependencies: + "@microsoft/api-extractor-model": "*" + "@microsoft/tsdoc": "*" + "@microsoft/tsdoc-config": "*" "@rushstack/node-core-library": "*" prettier: ^2.8.1 typescript: "> 3.0.0" @@ -8295,7 +8509,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/types@^1.0.0, @backstage/types@workspace:^, @backstage/types@workspace:packages/types": +"@backstage/types@^1.0.0, @backstage/types@^1.0.2, @backstage/types@workspace:^, @backstage/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@backstage/types@workspace:packages/types" dependencies: @@ -8306,7 +8520,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/version-bridge@^1.0.1, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge": +"@backstage/version-bridge@^1.0.1, @backstage/version-bridge@^1.0.3, @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: @@ -8852,9 +9066,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/android-arm64@npm:0.16.10" +"@esbuild/android-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/android-arm64@npm:0.16.12" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -8866,65 +9080,65 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/android-arm@npm:0.16.10" +"@esbuild/android-arm@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/android-arm@npm:0.16.12" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/android-x64@npm:0.16.10" +"@esbuild/android-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/android-x64@npm:0.16.12" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/darwin-arm64@npm:0.16.10" +"@esbuild/darwin-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/darwin-arm64@npm:0.16.12" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/darwin-x64@npm:0.16.10" +"@esbuild/darwin-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/darwin-x64@npm:0.16.12" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/freebsd-arm64@npm:0.16.10" +"@esbuild/freebsd-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/freebsd-arm64@npm:0.16.12" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/freebsd-x64@npm:0.16.10" +"@esbuild/freebsd-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/freebsd-x64@npm:0.16.12" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-arm64@npm:0.16.10" +"@esbuild/linux-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-arm64@npm:0.16.12" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-arm@npm:0.16.10" +"@esbuild/linux-arm@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-arm@npm:0.16.12" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-ia32@npm:0.16.10" +"@esbuild/linux-ia32@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-ia32@npm:0.16.12" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -8936,104 +9150,104 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-loong64@npm:0.16.10" +"@esbuild/linux-loong64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-loong64@npm:0.16.12" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-mips64el@npm:0.16.10" +"@esbuild/linux-mips64el@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-mips64el@npm:0.16.12" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-ppc64@npm:0.16.10" +"@esbuild/linux-ppc64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-ppc64@npm:0.16.12" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-riscv64@npm:0.16.10" +"@esbuild/linux-riscv64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-riscv64@npm:0.16.12" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-s390x@npm:0.16.10" +"@esbuild/linux-s390x@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-s390x@npm:0.16.12" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-x64@npm:0.16.10" +"@esbuild/linux-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-x64@npm:0.16.12" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/netbsd-x64@npm:0.16.10" +"@esbuild/netbsd-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/netbsd-x64@npm:0.16.12" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/openbsd-x64@npm:0.16.10" +"@esbuild/openbsd-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/openbsd-x64@npm:0.16.12" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/sunos-x64@npm:0.16.10" +"@esbuild/sunos-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/sunos-x64@npm:0.16.12" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/win32-arm64@npm:0.16.10" +"@esbuild/win32-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/win32-arm64@npm:0.16.12" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/win32-ia32@npm:0.16.10" +"@esbuild/win32-ia32@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/win32-ia32@npm:0.16.12" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/win32-x64@npm:0.16.10" +"@esbuild/win32-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/win32-x64@npm:0.16.12" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@eslint/eslintrc@npm:^1.3.3": - version: 1.3.3 - resolution: "@eslint/eslintrc@npm:1.3.3" +"@eslint/eslintrc@npm:^1.4.0": + version: 1.4.0 + resolution: "@eslint/eslintrc@npm:1.4.0" dependencies: ajv: ^6.12.4 debug: ^4.3.2 espree: ^9.4.0 - globals: ^13.15.0 + globals: ^13.19.0 ignore: ^5.2.0 import-fresh: ^3.2.1 js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: f03e9d6727efd3e0719da2051ea80c0c73d20e28c171121527dbb868cd34232ca9c1d0525a66e517a404afea26624b1e47895b6a92474678418c2f50c9566694 + checksum: 73e39c833deafde8d8706e6fa9b52b6d99927c094ead8e405ea4174e8197ec24aac9ba88ae38cc8ad32eaccf07b9c7fc5dc70761d1fba6da41a928691447305f languageName: node linkType: hard @@ -9207,14 +9421,14 @@ __metadata: linkType: hard "@graphql-codegen/cli@npm:^2.3.1": - version: 2.16.1 - resolution: "@graphql-codegen/cli@npm:2.16.1" + version: 2.16.2 + resolution: "@graphql-codegen/cli@npm:2.16.2" dependencies: "@babel/generator": ^7.18.13 "@babel/template": ^7.18.10 "@babel/types": ^7.18.13 "@graphql-codegen/core": 2.6.8 - "@graphql-codegen/plugin-helpers": ^3.1.1 + "@graphql-codegen/plugin-helpers": ^3.1.2 "@graphql-tools/apollo-engine-loader": ^7.3.6 "@graphql-tools/code-file-loader": ^7.3.13 "@graphql-tools/git-loader": ^7.2.13 @@ -9222,14 +9436,14 @@ __metadata: "@graphql-tools/graphql-file-loader": ^7.5.0 "@graphql-tools/json-file-loader": ^7.4.1 "@graphql-tools/load": 7.8.0 - "@graphql-tools/prisma-loader": ^7.2.7 + "@graphql-tools/prisma-loader": ^7.2.49 "@graphql-tools/url-loader": ^7.13.2 - "@graphql-tools/utils": ^8.9.0 + "@graphql-tools/utils": ^9.0.0 "@whatwg-node/fetch": ^0.5.0 chalk: ^4.1.0 chokidar: ^3.5.2 cosmiconfig: ^7.0.0 - cosmiconfig-typescript-loader: 4.1.1 + cosmiconfig-typescript-loader: 4.3.0 debounce: ^1.2.0 detect-indent: ^6.0.0 graphql-config: 4.3.6 @@ -9251,7 +9465,7 @@ __metadata: graphql-code-generator: cjs/bin.js graphql-codegen: cjs/bin.js graphql-codegen-esm: esm/bin.js - checksum: 5b8adecc90af4594b6819d97173acbcb0edbd2dd3b35981dd0ef79bda722c91e4e3c581fffa68396640a9f09097f3e826fd2cf16dc1718a95ef180f934376df8 + checksum: b44a89ba8c536adccc4fe23446df593b3e5a33d7cefb1602c61a714288e0a8d69cd69fcf8543a59edd6023d8cb0e9ab87fe64e418c2ffb5c45d0e57e17ded06a languageName: node linkType: hard @@ -9270,26 +9484,26 @@ __metadata: linkType: hard "@graphql-codegen/graphql-modules-preset@npm:^2.3.2": - version: 2.5.9 - resolution: "@graphql-codegen/graphql-modules-preset@npm:2.5.9" + version: 2.5.10 + resolution: "@graphql-codegen/graphql-modules-preset@npm:2.5.10" dependencies: - "@graphql-codegen/plugin-helpers": ^3.1.1 - "@graphql-codegen/visitor-plugin-common": 2.13.5 - "@graphql-tools/utils": ^8.8.0 + "@graphql-codegen/plugin-helpers": ^3.1.2 + "@graphql-codegen/visitor-plugin-common": 2.13.6 + "@graphql-tools/utils": ^9.0.0 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: 8b192ac413b2a182a3a008c69af69ea63e548e4ba0015f193880a70f6eec8eff6f8a263a56cefe13e140e6b19238e8e2f9fbf6420adceece8c5320ce9240fd8d + checksum: 559b8cc0c837394d0c972d72656e8ea48c04c542885d55fc66471f6fa968cc314f6f6f57576685c0ea0d8072f3f5752ab98ef758b3406bee1915c06e74093c4b languageName: node linkType: hard -"@graphql-codegen/plugin-helpers@npm:^3.1.1": - version: 3.1.1 - resolution: "@graphql-codegen/plugin-helpers@npm:3.1.1" +"@graphql-codegen/plugin-helpers@npm:^3.1.1, @graphql-codegen/plugin-helpers@npm:^3.1.2": + version: 3.1.2 + resolution: "@graphql-codegen/plugin-helpers@npm:3.1.2" dependencies: - "@graphql-tools/utils": ^8.8.0 + "@graphql-tools/utils": ^9.0.0 change-case-all: 1.0.15 common-tags: 1.8.2 import-from: 4.0.0 @@ -9297,62 +9511,62 @@ __metadata: 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: 22a15d4638ad449f654dab7a1e4968a82a50e3ab38f3b0974ae767a0a80e251fece436933f575f158da67564331d6046223b83eb10e0f1b93e78a15d7d0f684e + checksum: 4d0c615738570681b5ffd3c07305a35d6aa3e5fd87c9199c0a670b95529ab865b1df978ce584d5b415107a567ac484e56a48db129a6d1d2eb8a254fbd3260e39 languageName: node linkType: hard -"@graphql-codegen/schema-ast@npm:^2.6.0": - version: 2.6.0 - resolution: "@graphql-codegen/schema-ast@npm:2.6.0" +"@graphql-codegen/schema-ast@npm:^2.6.1": + version: 2.6.1 + resolution: "@graphql-codegen/schema-ast@npm:2.6.1" dependencies: - "@graphql-codegen/plugin-helpers": ^3.1.1 - "@graphql-tools/utils": ^8.8.0 + "@graphql-codegen/plugin-helpers": ^3.1.2 + "@graphql-tools/utils": ^9.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: a32e22fdd5cdab743ed7920249de6b00cbca0742633cfdbfed330c04c397bf1e0179ab141303a70cf733b6db27e537a67c6b6b50e70fb1d0767fc8d8de7a129f + checksum: f44338ac66e6a1f6238c33cdf65778bb467fe5a93767988135cb4e112d3be4d3c7e8aeeffe323754e8d6b0cbc5a52cb71452bfc42a15bc7031ebaa9b3d5da676 languageName: node linkType: hard "@graphql-codegen/typescript-resolvers@npm:^2.4.3": - version: 2.7.10 - resolution: "@graphql-codegen/typescript-resolvers@npm:2.7.10" + version: 2.7.11 + resolution: "@graphql-codegen/typescript-resolvers@npm:2.7.11" dependencies: - "@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 + "@graphql-codegen/plugin-helpers": ^3.1.2 + "@graphql-codegen/typescript": ^2.8.6 + "@graphql-codegen/visitor-plugin-common": 2.13.6 + "@graphql-tools/utils": ^9.0.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: 42ade297e6bd75056d2576d8d59b59725a35a4c929613d1764887466dea8c3669c0e5a334b14727b66b49bc605ba340910ca07d6d95bab9a8359b2e475209894 + checksum: 0954d98f88814dd545cb50cf93d6a6d8616ff6bb999570bd965c177e665a4ff4ed33cf68576c932fd8d630ee0bbcd6888e41801f751f5386286046608167d8ce languageName: node linkType: hard -"@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" +"@graphql-codegen/typescript@npm:^2.4.2, @graphql-codegen/typescript@npm:^2.8.6": + version: 2.8.6 + resolution: "@graphql-codegen/typescript@npm:2.8.6" dependencies: - "@graphql-codegen/plugin-helpers": ^3.1.1 - "@graphql-codegen/schema-ast": ^2.6.0 - "@graphql-codegen/visitor-plugin-common": 2.13.5 + "@graphql-codegen/plugin-helpers": ^3.1.2 + "@graphql-codegen/schema-ast": ^2.6.1 + "@graphql-codegen/visitor-plugin-common": 2.13.6 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: dd13cd82f202e82591262fd515b4cfd6a9d270b1d9447240ed75f0b374565e0c4a13297724bc94df5a7ad1a400cf63f83c439af9155fd95386d813481845bd01 + checksum: 15f75f1cfea8d632d05a0836cfe657f580d7a49bfafe9b8a143b32f71985b09773dbc45e1e09010654789ea4dba15952767bc3dc412bda16b90eb57a3657f328 languageName: node linkType: hard -"@graphql-codegen/visitor-plugin-common@npm:2.13.5": - version: 2.13.5 - resolution: "@graphql-codegen/visitor-plugin-common@npm:2.13.5" +"@graphql-codegen/visitor-plugin-common@npm:2.13.6": + version: 2.13.6 + resolution: "@graphql-codegen/visitor-plugin-common@npm:2.13.6" dependencies: - "@graphql-codegen/plugin-helpers": ^3.1.1 + "@graphql-codegen/plugin-helpers": ^3.1.2 "@graphql-tools/optimize": ^1.3.0 "@graphql-tools/relay-operation-optimizer": ^6.5.0 - "@graphql-tools/utils": ^8.8.0 + "@graphql-tools/utils": ^9.0.0 auto-bind: ~4.0.0 change-case-all: 1.0.15 dependency-graph: ^0.11.0 @@ -9361,7 +9575,7 @@ __metadata: 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: 130c82c63d647b5af55ce9e463765228e7aebc9c50a3670590c7bb409c997e8fabd10987d63f175a51ad3e3847d18c59ac3af6dc620d529b7e974dd80f15118e + checksum: 3e3bcbe6c7f3fa665b53f35016bce4385fd045ef54b1a986add0b86a14abec6c5b30201496b210ab493afe6bb89bed80f81d164efd643155621fd7bf7fbafec7 languageName: node linkType: hard @@ -9393,6 +9607,20 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/batch-execute@npm:8.5.14": + version: 8.5.14 + resolution: "@graphql-tools/batch-execute@npm:8.5.14" + dependencies: + "@graphql-tools/utils": 9.1.3 + dataloader: 2.1.0 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: a48a11f471fe804852abb60f361eb8e398e5fd9d3b8bc61e3734983a5c8c284f3087b903b5277a2c7e365434947af534a881e67c147b0a3d47849617e124ac33 + languageName: node + linkType: hard + "@graphql-tools/code-file-loader@npm:^7.3.13": version: 7.3.13 resolution: "@graphql-tools/code-file-loader@npm:7.3.13" @@ -9424,6 +9652,88 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/delegate@npm:9.0.21": + version: 9.0.21 + resolution: "@graphql-tools/delegate@npm:9.0.21" + dependencies: + "@graphql-tools/batch-execute": 8.5.14 + "@graphql-tools/executor": 0.0.11 + "@graphql-tools/schema": 9.0.12 + "@graphql-tools/utils": 9.1.3 + dataloader: 2.1.0 + tslib: ~2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fab07abfb06325d82382e6de45bbf2bc6501f18ebabbe50661772b58f512d6e713565be16bd7f99f71fcb00ffeed25bba871d4d459a705880803878e20c2a183 + languageName: node + linkType: hard + +"@graphql-tools/executor-graphql-ws@npm:0.0.5": + version: 0.0.5 + resolution: "@graphql-tools/executor-graphql-ws@npm:0.0.5" + dependencies: + "@graphql-tools/utils": 9.1.3 + "@repeaterjs/repeater": 3.0.4 + "@types/ws": ^8.0.0 + graphql-ws: 5.11.2 + isomorphic-ws: 5.0.0 + tslib: ^2.4.0 + ws: 8.11.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 79ced279e56b7508282859f805ca8fe1286eec3b53592893e35517f93e5204eca2db327258599749b0d832918d9d709962059087b4e6a894eacc16ceb0142273 + languageName: node + linkType: hard + +"@graphql-tools/executor-http@npm:0.0.7": + version: 0.0.7 + resolution: "@graphql-tools/executor-http@npm:0.0.7" + dependencies: + "@graphql-tools/utils": 9.1.3 + "@repeaterjs/repeater": 3.0.4 + "@whatwg-node/fetch": 0.5.3 + dset: 3.1.2 + extract-files: ^11.0.0 + meros: 1.2.1 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 05918ee65cb7d3e927e707acddb184ba2efbccf03656454ff8b172654aa41c4ad35bed487c0399ca085ba39ca434421cdaadb78dec4d7ebabbd25fe3c5cbb81c + languageName: node + linkType: hard + +"@graphql-tools/executor-legacy-ws@npm:0.0.5": + version: 0.0.5 + resolution: "@graphql-tools/executor-legacy-ws@npm:0.0.5" + dependencies: + "@graphql-tools/utils": 9.1.3 + "@types/ws": ^8.0.0 + isomorphic-ws: 5.0.0 + tslib: ^2.4.0 + ws: 8.11.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 2705e57ae81fbe3117d14900d50ab2459618d93192f795db97e2b98e9a772ebfe2308c17e72d92735123ec32fbedad014158d20fd1cc569fa287d47c90037a71 + languageName: node + linkType: hard + +"@graphql-tools/executor@npm:0.0.11": + version: 0.0.11 + resolution: "@graphql-tools/executor@npm:0.0.11" + dependencies: + "@graphql-tools/utils": 9.1.3 + "@graphql-typed-document-node/core": 3.1.1 + "@repeaterjs/repeater": 3.0.4 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 9f4c5d50eb574ab788a70684150502d4ad25b2681a3933a9415a0bbd78bfdf5ee203dca8bccc4cef93727157254216f0c22c5359bef1c1738f652b3122048b17 + languageName: node + linkType: hard + "@graphql-tools/git-loader@npm:^7.2.13": version: 7.2.13 resolution: "@graphql-tools/git-loader@npm:7.2.13" @@ -9600,32 +9910,32 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/prisma-loader@npm:^7.2.7": - version: 7.2.7 - resolution: "@graphql-tools/prisma-loader@npm:7.2.7" +"@graphql-tools/prisma-loader@npm:^7.2.49": + version: 7.2.49 + resolution: "@graphql-tools/prisma-loader@npm:7.2.49" dependencies: - "@graphql-tools/url-loader": 7.13.2 - "@graphql-tools/utils": 8.9.0 + "@graphql-tools/url-loader": 7.16.28 + "@graphql-tools/utils": 9.1.3 "@types/js-yaml": ^4.0.0 "@types/json-stable-stringify": ^1.0.32 "@types/jsonwebtoken": ^8.5.0 chalk: ^4.1.0 debug: ^4.3.1 dotenv: ^16.0.0 - graphql-request: ^4.0.0 + graphql-request: ^5.0.0 http-proxy-agent: ^5.0.0 https-proxy-agent: ^5.0.0 isomorphic-fetch: ^3.0.0 js-yaml: ^4.0.0 json-stable-stringify: ^1.0.1 - jsonwebtoken: ^8.5.1 + jsonwebtoken: ^9.0.0 lodash: ^4.17.20 scuid: ^1.1.0 tslib: ^2.4.0 yaml-ast-parser: ^0.0.43 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 986e33b1ec4044a26b31f8363ca0531d742e4ea67f9601ba150ec7ff6cc6fd1fb0d949057837ecf9fec6c3174a83689eb1fca6134462f368bc9d37546d4cde28 + checksum: 9a392346107ec5e468a8725c1d931b638e1899c25a80e34e9c888c050abf85dfde85faea9fdb19a8bfd9425bdb97949e14e759157d083aa91812fcff516ad82d languageName: node linkType: hard @@ -9670,6 +9980,20 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/schema@npm:9.0.12, @graphql-tools/schema@npm:^9.0.0": + version: 9.0.12 + resolution: "@graphql-tools/schema@npm:9.0.12" + dependencies: + "@graphql-tools/merge": 8.3.14 + "@graphql-tools/utils": 9.1.3 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: c5ea750466181b425dd77822b1dc774227bcdb3a01631f114734d450cfc2dabeac60b3fac40e047090d6035b6a559b614716f1b61068889cf5aae0785650c31b + languageName: node + linkType: hard + "@graphql-tools/schema@npm:9.0.4": version: 9.0.4 resolution: "@graphql-tools/schema@npm:9.0.4" @@ -9684,46 +10008,30 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/schema@npm:^9.0.0": - version: 9.0.12 - resolution: "@graphql-tools/schema@npm:9.0.12" - dependencies: - "@graphql-tools/merge": 8.3.14 - "@graphql-tools/utils": 9.1.3 - tslib: ^2.4.0 - value-or-promise: 1.0.11 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: c5ea750466181b425dd77822b1dc774227bcdb3a01631f114734d450cfc2dabeac60b3fac40e047090d6035b6a559b614716f1b61068889cf5aae0785650c31b - languageName: node - linkType: hard - -"@graphql-tools/url-loader@npm:7.13.2, @graphql-tools/url-loader@npm:^7.13.2, @graphql-tools/url-loader@npm:^7.9.7": - version: 7.13.2 - resolution: "@graphql-tools/url-loader@npm:7.13.2" +"@graphql-tools/url-loader@npm:7.16.28, @graphql-tools/url-loader@npm:^7.13.2, @graphql-tools/url-loader@npm:^7.9.7": + version: 7.16.28 + resolution: "@graphql-tools/url-loader@npm:7.16.28" dependencies: "@ardatan/sync-fetch": 0.0.1 - "@graphql-tools/delegate": 8.8.1 - "@graphql-tools/utils": 8.9.0 - "@graphql-tools/wrap": 8.5.1 - "@n1ru4l/graphql-live-query": ^0.9.0 + "@graphql-tools/delegate": 9.0.21 + "@graphql-tools/executor-graphql-ws": 0.0.5 + "@graphql-tools/executor-http": 0.0.7 + "@graphql-tools/executor-legacy-ws": 0.0.5 + "@graphql-tools/utils": 9.1.3 + "@graphql-tools/wrap": 9.2.23 "@types/ws": ^8.0.0 - "@whatwg-node/fetch": ^0.2.4 - dset: ^3.1.2 - extract-files: ^11.0.0 - graphql-ws: ^5.4.1 - isomorphic-ws: ^5.0.0 - meros: ^1.1.4 + "@whatwg-node/fetch": ^0.5.0 + isomorphic-ws: 5.0.0 tslib: ^2.4.0 value-or-promise: ^1.0.11 - ws: ^8.3.0 + ws: 8.11.0 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 21928a4a12ad07bed0c0729ec183277a1462da6b4a4fa8f083bf2fc7acb80137feb17f7fca283a58f2a8544f024bd5bcefc44c442f9cd58104656bb3f164c089 + checksum: fca2dada0d80c051358f928a321eda0cfa96bb71704b4feb7e61dfd7226f78fb1dd2e8268f4e81080a2984cf57ee92ef6c8608c89c6f931860a0cbdd63bcb031 languageName: node linkType: hard -"@graphql-tools/utils@npm:8.12.0, @graphql-tools/utils@npm:^8.6.5, @graphql-tools/utils@npm:^8.8.0, @graphql-tools/utils@npm:^8.9.0": +"@graphql-tools/utils@npm:8.12.0, @graphql-tools/utils@npm:^8.6.5": version: 8.12.0 resolution: "@graphql-tools/utils@npm:8.12.0" dependencies: @@ -9778,7 +10086,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/utils@npm:9.1.3, @graphql-tools/utils@npm:^9.1.1": +"@graphql-tools/utils@npm:9.1.3, @graphql-tools/utils@npm:^9.0.0, @graphql-tools/utils@npm:^9.1.1": version: 9.1.3 resolution: "@graphql-tools/utils@npm:9.1.3" dependencies: @@ -9789,7 +10097,22 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/wrap@npm:8.5.1, @graphql-tools/wrap@npm:^8.3.1": +"@graphql-tools/wrap@npm:9.2.23": + version: 9.2.23 + resolution: "@graphql-tools/wrap@npm:9.2.23" + dependencies: + "@graphql-tools/delegate": 9.0.21 + "@graphql-tools/schema": 9.0.12 + "@graphql-tools/utils": 9.1.3 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 8f4f289d51adb92a7099940892c52b710e61f76d02580a3223e80aaed790d32f769cae33a4afeff398357f33a55267427d9703de6f0bd30ec9ba57ee3bd5ef5c + languageName: node + linkType: hard + +"@graphql-tools/wrap@npm:^8.3.1": version: 8.5.1 resolution: "@graphql-tools/wrap@npm:8.5.1" dependencies: @@ -9804,7 +10127,7 @@ __metadata: languageName: node linkType: hard -"@graphql-typed-document-node/core@npm:^3.1.0": +"@graphql-typed-document-node/core@npm:3.1.1, @graphql-typed-document-node/core@npm:^3.1.0, @graphql-typed-document-node/core@npm:^3.1.1": version: 3.1.1 resolution: "@graphql-typed-document-node/core@npm:3.1.1" peerDependencies: @@ -9854,14 +10177,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.6": - version: 0.11.7 - resolution: "@humanwhocodes/config-array@npm:0.11.7" +"@humanwhocodes/config-array@npm:^0.11.8": + version: 0.11.8 + resolution: "@humanwhocodes/config-array@npm:0.11.8" dependencies: "@humanwhocodes/object-schema": ^1.2.1 debug: ^4.1.1 minimatch: ^3.0.5 - checksum: cf506dc45d9488af7fbf108ea6ac2151ba1a25e6d2b94b9b4fc36d2c1e4099b89ff560296dbfa13947e44604d4ca4a90d97a4fb167370bf8dd01a6ca2b6d83ac + checksum: 0fd6b3c54f1674ce0a224df09b9c2f9846d20b9e54fabae1281ecfc04f2e6ad69bf19e1d6af6a28f88e8aa3990168b6cb9e1ef755868c3256a630605ec2cb1d3 languageName: node linkType: hard @@ -11236,7 +11559,7 @@ __metadata: languageName: node linkType: hard -"@microsoft/api-extractor-model@npm:7.17.2, @microsoft/api-extractor-model@npm:^7.17.2": +"@microsoft/api-extractor-model@npm:7.17.2": version: 7.17.2 resolution: "@microsoft/api-extractor-model@npm:7.17.2" dependencies: @@ -11276,7 +11599,7 @@ __metadata: languageName: node linkType: hard -"@microsoft/tsdoc-config@npm:0.16.2, @microsoft/tsdoc-config@npm:~0.16.1": +"@microsoft/tsdoc-config@npm:~0.16.1": version: 0.16.2 resolution: "@microsoft/tsdoc-config@npm:0.16.2" dependencies: @@ -11342,15 +11665,6 @@ __metadata: languageName: node linkType: hard -"@n1ru4l/graphql-live-query@npm:^0.9.0": - version: 0.9.0 - resolution: "@n1ru4l/graphql-live-query@npm:0.9.0" - peerDependencies: - graphql: ^15.4.0 || ^16.0.0 - checksum: 746c7a2b23440a2daee5737aece454c756bf9f3e77decd53feed921f88907743301b569209d124afde63271b3f9db59a1fb997c0c280205662a7622992057e4a - languageName: node - linkType: hard - "@n1ru4l/push-pull-async-iterable-iterator@npm:^3.1.0": version: 3.1.0 resolution: "@n1ru4l/push-pull-async-iterable-iterator@npm:3.1.0" @@ -12411,6 +12725,13 @@ __metadata: languageName: node linkType: hard +"@repeaterjs/repeater@npm:3.0.4": + version: 3.0.4 + resolution: "@repeaterjs/repeater@npm:3.0.4" + checksum: cca0db3e802bc26fcce0b4a574074d9956da53bf43094de03c0e4732d05e13441279a92f0b96e2a7a39da50933684947a138c1213406eaafe39cfd4683d6c0df + languageName: node + linkType: hard + "@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" @@ -12471,8 +12792,8 @@ __metadata: linkType: hard "@rjsf/utils@npm:^5.0.0-beta.14": - version: 5.0.0-beta.14 - resolution: "@rjsf/utils@npm:5.0.0-beta.14" + version: 5.0.0-beta.15 + resolution: "@rjsf/utils@npm:5.0.0-beta.15" dependencies: json-schema-merge-allof: ^0.8.1 jsonpointer: ^5.0.1 @@ -12481,20 +12802,20 @@ __metadata: react-is: ^18.2.0 peerDependencies: react: ^16.14.0 || >=17 - checksum: 66d29377c98f6e778ec0b167734a949528b0ca2bfb4776dea74fd70add1fb339e14ec878b9162a152e83804bc8094c3ebcd9ebf8b1b68a63c6ee2bf4548938c8 + checksum: e22b1cc13183d6a6a57b900bb80825eff1c4680edadb554adb6737c21237c7862b2a249e5b67c0c6971094b5d21224daf108ad1f400286be924bbc5c29784a00 languageName: node linkType: hard "@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" + version: 5.0.0-beta.15 + resolution: "@rjsf/validator-ajv6@npm:5.0.0-beta.15" dependencies: ajv: ^6.7.0 lodash: ^4.17.15 lodash-es: ^4.17.15 peerDependencies: "@rjsf/utils": ^5.0.0-beta.1 - checksum: 57b5c6968475a66762f644f2832aad077f8dde0ca9e71c8b0b27c06174855b7e6330f44fa6078fc0f347b728a4a5fd62399378fad26ada3cde32da89bddf6f9f + checksum: ce6d2cd110eee21e37ae08e4081b0f0fd65ac22f8c94ceeaff9f9a9482072897c3f988de1bc770c25031932117e7f71dda0bd166c2bb953af420d0ce1fd255d0 languageName: node linkType: hard @@ -12523,8 +12844,8 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-github-insights@npm:^2.0.5": - version: 2.2.2 - resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.2.2" + version: 2.3.0 + resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.3.0" dependencies: "@backstage/catalog-model": ^1.1.3 "@backstage/core-components": ^0.12.0 @@ -12546,7 +12867,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: 866d0ec0cb169855c6206e075bea16122450c9be533f4937e3c7f9869d9dc32cf9a770b42b1468078c37484cc3745dc785dcf39431c5a66d6f54573994f20a34 + checksum: 874fc76baf02ac6568f150aaf14ef4a35ddbffca410a44350c2cd4f47c900e28aa6d7d82ddfc0dd3065fc6764abd16af2a802d303f9af47ff296006cd14afe2a languageName: node linkType: hard @@ -13102,90 +13423,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-darwin-arm64@npm:1.3.23" +"@swc/core-darwin-arm64@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-darwin-arm64@npm:1.3.24" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-darwin-x64@npm:1.3.23" +"@swc/core-darwin-x64@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-darwin-x64@npm:1.3.24" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.23" +"@swc/core-linux-arm-gnueabihf@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.24" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.23" +"@swc/core-linux-arm64-gnu@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.24" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.23" +"@swc/core-linux-arm64-musl@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.24" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.23" +"@swc/core-linux-x64-gnu@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.24" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-x64-musl@npm:1.3.23" +"@swc/core-linux-x64-musl@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-x64-musl@npm:1.3.24" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.23" +"@swc/core-win32-arm64-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.24" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.23" +"@swc/core-win32-ia32-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.24" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.23" +"@swc/core-win32-x64-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.24" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.9": - version: 1.3.23 - resolution: "@swc/core@npm:1.3.23" + version: 1.3.24 + resolution: "@swc/core@npm:1.3.24" dependencies: - "@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 + "@swc/core-darwin-arm64": 1.3.24 + "@swc/core-darwin-x64": 1.3.24 + "@swc/core-linux-arm-gnueabihf": 1.3.24 + "@swc/core-linux-arm64-gnu": 1.3.24 + "@swc/core-linux-arm64-musl": 1.3.24 + "@swc/core-linux-x64-gnu": 1.3.24 + "@swc/core-linux-x64-musl": 1.3.24 + "@swc/core-win32-arm64-msvc": 1.3.24 + "@swc/core-win32-ia32-msvc": 1.3.24 + "@swc/core-win32-x64-msvc": 1.3.24 dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -13209,7 +13530,7 @@ __metadata: optional: true bin: swcx: run_swcx.js - checksum: 2a92949c33f292a369f4a750a8a9759f88f6f399bc0beef54768fce3d1af5cf0c33a4c8f3c2478020ae95e99d99b7c17f301b79163cdbcdf533b91675f1d2e8d + checksum: a27b842be129b83c116f804e63deaa51dbd5d9b77d6260888d549f6408df1dd05aeef20046ceacc9fd7458e6afda6723545249bd77f77086b98bd9bf84738c19 languageName: node linkType: hard @@ -14542,9 +14863,9 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 18.11.9 - resolution: "@types/node@npm:18.11.9" - checksum: cc0aae109e9b7adefc32eecb838d6fad931663bb06484b5e9cbbbf74865c721b03d16fd8d74ad90e31dbe093d956a7c2c306ba5429ba0c00f3f7505103d7a496 + version: 18.11.18 + resolution: "@types/node@npm:18.11.18" + checksum: 03f17f9480f8d775c8a72da5ea7e9383db5f6d85aa5fefde90dd953a1449bd5e4ffde376f139da4f3744b4c83942166d2a7603969a6f8ea826edfb16e6e3b49d languageName: node linkType: hard @@ -14584,9 +14905,9 @@ __metadata: linkType: hard "@types/node@npm:^16.0.0, @types/node@npm:^16.11.26, @types/node@npm:^16.9.2": - version: 16.18.3 - resolution: "@types/node@npm:16.18.3" - checksum: 6b8ba2ea5d842f7986e366cb9184c54d273d492784dc62e08fd5afeae938d9b61aec6e4222d2541cd18f9b1412ba361bbcb3f4204fb003608af80a2a6af959f9 + version: 16.18.11 + resolution: "@types/node@npm:16.18.11" + checksum: 2a3b1da13063debe6e26f732defb5f03ef4ef732c3e08daba838d8850433bd00e537ce1a97ce9bcfc4b15db5218d701d1265fae94e0d6926906bec157e6b46e0 languageName: node linkType: hard @@ -15324,12 +15645,12 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^5.9.0": - version: 5.45.1 - resolution: "@typescript-eslint/eslint-plugin@npm:5.45.1" + version: 5.47.1 + resolution: "@typescript-eslint/eslint-plugin@npm:5.47.1" dependencies: - "@typescript-eslint/scope-manager": 5.45.1 - "@typescript-eslint/type-utils": 5.45.1 - "@typescript-eslint/utils": 5.45.1 + "@typescript-eslint/scope-manager": 5.47.1 + "@typescript-eslint/type-utils": 5.47.1 + "@typescript-eslint/utils": 5.47.1 debug: ^4.3.4 ignore: ^5.2.0 natural-compare-lite: ^1.4.0 @@ -15342,7 +15663,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 9fc7cc17ebd1d6f9b1321afa3dcedb936ba538f95a026035a436c4b75eb976ac61140be44be304634c8f87612e30690ce12bf3498ac59826134387d91d75d888 + checksum: 59fe719a8fbad14c37b8ce0dd292f6b8066bba370090f5e40eeab03033b97a12df1f1d0963c7070ac8cf4f7f319974fa6747e70932660055d222fa993c239b6a languageName: node linkType: hard @@ -15363,29 +15684,29 @@ __metadata: linkType: hard "@typescript-eslint/parser@npm:^5.9.0": - version: 5.45.1 - resolution: "@typescript-eslint/parser@npm:5.45.1" + version: 5.47.1 + resolution: "@typescript-eslint/parser@npm:5.47.1" dependencies: - "@typescript-eslint/scope-manager": 5.45.1 - "@typescript-eslint/types": 5.45.1 - "@typescript-eslint/typescript-estree": 5.45.1 + "@typescript-eslint/scope-manager": 5.47.1 + "@typescript-eslint/types": 5.47.1 + "@typescript-eslint/typescript-estree": 5.47.1 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 48704224972e67d7ecf928118d47a1eda6732afd585bb4aab6716b7d363e5d4a2e0b0f1bbb92cbef80c7dd75ede10b610e858eb0cb86a67d1866fd17d0722895 + checksum: 36806686a2c5cc60558c09b13e885861aa21ec6250539d8d3d3c8abb90b321662e57dacec44915c87726a5a0d74187b58a65880a0613024eaeeb7ad0197a345d languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/scope-manager@npm:5.45.1" +"@typescript-eslint/scope-manager@npm:5.47.1": + version: 5.47.1 + resolution: "@typescript-eslint/scope-manager@npm:5.47.1" dependencies: - "@typescript-eslint/types": 5.45.1 - "@typescript-eslint/visitor-keys": 5.45.1 - checksum: ee0f47ad85e6d8649a5c25cc923933e439542079929e02a7eb20332e18291674af36b25ab579f7d067745ca27c2b37e5d9be605902269968e274d26c1d2b684e + "@typescript-eslint/types": 5.47.1 + "@typescript-eslint/visitor-keys": 5.47.1 + checksum: 73e2e2949b6e0122d89cfd44e1d24eda38d774899b834746700a4f1eb096effd1432c953f8be743a3ea3c7fc8fbf6e0882b11ee0f39b7ced6d8abf6a8665f1c8 languageName: node linkType: hard @@ -15399,12 +15720,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/type-utils@npm:5.45.1" +"@typescript-eslint/type-utils@npm:5.47.1": + version: 5.47.1 + resolution: "@typescript-eslint/type-utils@npm:5.47.1" dependencies: - "@typescript-eslint/typescript-estree": 5.45.1 - "@typescript-eslint/utils": 5.45.1 + "@typescript-eslint/typescript-estree": 5.47.1 + "@typescript-eslint/utils": 5.47.1 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -15412,14 +15733,14 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: dcb9f425803b399c340ab3d72c3f7e61f2a136d4281bd710853e954c1c101064ac0bb4b768c84c1ad310ec493cd8dc6b754054d9a81cb56be37ef1f4130c2c3a + checksum: 84a1e6c8fd47d419dc66430e31b818774d4c0329a5f355a5a9e8af94378be4c0c24a89916d5cc1380fdbb640693527b906c2e6adee486a2e6786cb5e08bd9eb3 languageName: node linkType: hard -"@typescript-eslint/types@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/types@npm:5.45.1" - checksum: 7f809d2951812ae5752c9d1617b7e6dfd662370390b0ddba72005ebc62bd5f04745567bb62cf00a9e43db9dfd222d18ea22945f5457f76ea86386ef7b98c8424 +"@typescript-eslint/types@npm:5.47.1": + version: 5.47.1 + resolution: "@typescript-eslint/types@npm:5.47.1" + checksum: 9b3df8661862a8927ec29d21d6b5826cae7dd8b4797b5b54d66289d8abcf46081453a5cbaf9cc0a5b6c8249ca381dda61c2623da2a704e47f9d86175639a8cea languageName: node linkType: hard @@ -15430,12 +15751,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/typescript-estree@npm:5.45.1" +"@typescript-eslint/typescript-estree@npm:5.47.1": + version: 5.47.1 + resolution: "@typescript-eslint/typescript-estree@npm:5.47.1" dependencies: - "@typescript-eslint/types": 5.45.1 - "@typescript-eslint/visitor-keys": 5.45.1 + "@typescript-eslint/types": 5.47.1 + "@typescript-eslint/visitor-keys": 5.47.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -15444,7 +15765,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 867b19ba050af7410c75e4e42b511d4299c8043d238959e9794bb65d7a9db1a875880e5dd50f112896218f3a3d163cd8ce61db94034ca628eca4f7ddccb1d348 + checksum: 803214a53fd4faf19b6b325dd4e8ddaa5bb1ebb9b52358d26ebeaeb86b431cea5bc09f3b43ca8abfdd3a72fdea667467a1abfda50cbad866696ec5739afae2ac languageName: node linkType: hard @@ -15466,31 +15787,31 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.45.1, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.13.0": - version: 5.45.1 - resolution: "@typescript-eslint/utils@npm:5.45.1" +"@typescript-eslint/utils@npm:5.47.1, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.13.0": + version: 5.47.1 + resolution: "@typescript-eslint/utils@npm:5.47.1" dependencies: "@types/json-schema": ^7.0.9 "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.45.1 - "@typescript-eslint/types": 5.45.1 - "@typescript-eslint/typescript-estree": 5.45.1 + "@typescript-eslint/scope-manager": 5.47.1 + "@typescript-eslint/types": 5.47.1 + "@typescript-eslint/typescript-estree": 5.47.1 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 semver: ^7.3.7 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 7e673b07e207a0b596b23f60e6c2d4b04fd534bd15dc326ce67d7f61637ed2c211fe5a5ffdcf6b3fa3f39000fe61de0bf7d0c7feb03dcd3d72c382ae35287ad9 + checksum: 5167d26b8d5579de4d9aae36e18f980b33e01006ecc87cff59b761e15f69234092ac555bcf64a9f18d7c3e68a971df2a37b3912fc523c2586c2ba3f4544cc3d3 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/visitor-keys@npm:5.45.1" +"@typescript-eslint/visitor-keys@npm:5.47.1": + version: 5.47.1 + resolution: "@typescript-eslint/visitor-keys@npm:5.47.1" dependencies: - "@typescript-eslint/types": 5.45.1 + "@typescript-eslint/types": 5.47.1 eslint-visitor-keys: ^3.3.0 - checksum: 725a434fb05010b6ead7e880fa1fcdb4dbc7421b80667e96ad27fcfb3c2b2b0edde64be488740577dd147547fc4a9eac52e2602eb6a8a261ee14a917d4a50c4f + checksum: b4d1f4daa67e962d22c41325d9dcb6b2efde1caf354a2edb5bf682b92ab8c6205435d0b12f39ce9771955250e26f2a6f03adabb37e62e5aac8225691a59ef153 languageName: node linkType: hard @@ -15700,6 +16021,22 @@ __metadata: languageName: node linkType: hard +"@whatwg-node/fetch@npm:0.5.3, @whatwg-node/fetch@npm:^0.5.0": + version: 0.5.3 + resolution: "@whatwg-node/fetch@npm:0.5.3" + dependencies: + "@peculiar/webcrypto": ^1.4.0 + abort-controller: ^3.0.0 + busboy: ^1.6.0 + form-data-encoder: ^1.7.1 + formdata-node: ^4.3.1 + node-fetch: ^2.6.7 + undici: ^5.12.0 + web-streams-polyfill: ^3.2.0 + checksum: 73087779b3b0e70d0abf8b2a5d82919c29c26f8062e16db0cad413fe45c7b58c3c12cc2bcd5942aebdfdc4feee97b01cf1ff6c5d92d9507a140afdcafa410b12 + languageName: node + linkType: hard + "@whatwg-node/fetch@npm:^0.2.4": version: 0.2.6 resolution: "@whatwg-node/fetch@npm:0.2.6" @@ -15717,22 +16054,6 @@ __metadata: languageName: node linkType: hard -"@whatwg-node/fetch@npm:^0.5.0": - version: 0.5.3 - resolution: "@whatwg-node/fetch@npm:0.5.3" - dependencies: - "@peculiar/webcrypto": ^1.4.0 - abort-controller: ^3.0.0 - busboy: ^1.6.0 - form-data-encoder: ^1.7.1 - formdata-node: ^4.3.1 - node-fetch: ^2.6.7 - undici: ^5.12.0 - web-streams-polyfill: ^3.2.0 - checksum: 73087779b3b0e70d0abf8b2a5d82919c29c26f8062e16db0cad413fe45c7b58c3c12cc2bcd5942aebdfdc4feee97b01cf1ff6c5d92d9507a140afdcafa410b12 - languageName: node - linkType: hard - "@xmldom/xmldom@npm:^0.7.0, @xmldom/xmldom@npm:^0.7.5, @xmldom/xmldom@npm:^0.7.6": version: 0.7.9 resolution: "@xmldom/xmldom@npm:0.7.9" @@ -17867,14 +18188,14 @@ __metadata: linkType: hard "canvas@npm:^2.10.2": - version: 2.10.2 - resolution: "canvas@npm:2.10.2" + version: 2.11.0 + resolution: "canvas@npm:2.11.0" dependencies: "@mapbox/node-pre-gyp": ^1.0.0 nan: ^2.17.0 node-gyp: latest simple-get: ^3.0.3 - checksum: b2e3eb4c3635fa2f67857619621c3d314f935a9e51904536dadf4908ab580dff4f5bcbaafe6eb0255247fa027ca494d5cd97c33376a49a0f994997263fa9944b + checksum: a69a6e0c90014a1b02e52c4c38a627d1a01ffe9539047bec84105cb3554907a947cf39b4a333be43fc1583dd142b641bb5480a4e23f59c6098618c33bf78f67f languageName: node linkType: hard @@ -19016,9 +19337,9 @@ __metadata: linkType: hard "core-js@npm:^3.4.1, core-js@npm:^3.6.5": - version: 3.26.1 - resolution: "core-js@npm:3.26.1" - checksum: 0a01149f51ff1e9f41d1ea49cc4c9222047949ea597189ede7c4cf8cde3b097766b9c7615acc77c86fe65b4002f20b638a133dfba7b41dba830d707aeeed45ad + version: 3.27.0 + resolution: "core-js@npm:3.27.0" + checksum: 14bf6772e1c73a1cb3848ff63cae8d8f28354195e95ff550f2c4a7ae04650987691e37d6c9fe73789ffd97055b024fc7df825c203965f9a9b9aa6fb9f26f8571 languageName: node linkType: hard @@ -19048,15 +19369,15 @@ __metadata: languageName: node linkType: hard -"cosmiconfig-typescript-loader@npm:4.1.1, cosmiconfig-typescript-loader@npm:^4.0.0": - version: 4.1.1 - resolution: "cosmiconfig-typescript-loader@npm:4.1.1" +"cosmiconfig-typescript-loader@npm:4.3.0, cosmiconfig-typescript-loader@npm:^4.0.0": + version: 4.3.0 + resolution: "cosmiconfig-typescript-loader@npm:4.3.0" peerDependencies: "@types/node": "*" cosmiconfig: ">=7" ts-node: ">=10" typescript: ">=3" - checksum: a774961868f0406d0fd75e448c2e1a0ddb95de27d477fa325a37369a2cbd892cf4d639a109082cd886840dea7707ea9bed5c38a468b52de18400c4f1d495d35a + checksum: ea61dfd8e112cf2bb18df0ef89280bd3ae3dd5b997b4a9fc22bbabdc02513aadfbc6d4e15e922b6a9a5d987e9dad42286fa38caf77a9b8dcdbe7d4ce1c9db4fb languageName: node linkType: hard @@ -19724,10 +20045,10 @@ __metadata: languageName: node linkType: hard -"d3-path@npm:1 - 3": - version: 3.0.1 - resolution: "d3-path@npm:3.0.1" - checksum: 6347c7055e0af330acadbe7f02144963eecabff560a791ecfeaffb45662e4d38eedabc6109dc481478f136b41d03707d3a43321ca9a115962888c99732ceb41a +"d3-path@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-path@npm:3.1.0" + checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 languageName: node linkType: hard @@ -19768,11 +20089,11 @@ __metadata: linkType: hard "d3-shape@npm:^3.0.0": - version: 3.1.0 - resolution: "d3-shape@npm:3.1.0" + version: 3.2.0 + resolution: "d3-shape@npm:3.2.0" dependencies: - d3-path: 1 - 3 - checksum: 3dffe31b56feaf0817954748c9823c0e1fb6ab888b83775e9d568176ffa369546064ae49403963aac70108272988f632452634851f1c8a92805134d0c40e6dba + d3-path: ^3.1.0 + checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa languageName: node linkType: hard @@ -20320,9 +20641,9 @@ __metadata: linkType: hard "diff@npm:^5.0.0": - version: 5.0.0 - resolution: "diff@npm:5.0.0" - checksum: f19fe29284b633afdb2725c2a8bb7d25761ea54d321d8e67987ac851c5294be4afeab532bd84531e02583a3fe7f4014aa314a3eda84f5590e7a9e6b371ef3b46 + version: 5.1.0 + resolution: "diff@npm:5.1.0" + checksum: c7bf0df7c9bfbe1cf8a678fd1b2137c4fb11be117a67bc18a0e03ae75105e8533dbfb1cda6b46beb3586ef5aed22143ef9d70713977d5fb1f9114e21455fba90 languageName: node linkType: hard @@ -20595,7 +20916,7 @@ __metadata: languageName: node linkType: hard -"dset@npm:^3.1.2": +"dset@npm:3.1.2": version: 3.1.2 resolution: "dset@npm:3.1.2" checksum: 4f8066f517aa0a70af688c66e9a0a5590f0aada76f6edc7ba9ddb309e27d3a6d65c0a2e31ab2a84005d4c791e5327773cdde59b8ab169050330a0dc283663e87 @@ -21248,31 +21569,31 @@ __metadata: linkType: hard "esbuild@npm:^0.16.0": - version: 0.16.10 - resolution: "esbuild@npm:0.16.10" + version: 0.16.12 + resolution: "esbuild@npm:0.16.12" dependencies: - "@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 + "@esbuild/android-arm": 0.16.12 + "@esbuild/android-arm64": 0.16.12 + "@esbuild/android-x64": 0.16.12 + "@esbuild/darwin-arm64": 0.16.12 + "@esbuild/darwin-x64": 0.16.12 + "@esbuild/freebsd-arm64": 0.16.12 + "@esbuild/freebsd-x64": 0.16.12 + "@esbuild/linux-arm": 0.16.12 + "@esbuild/linux-arm64": 0.16.12 + "@esbuild/linux-ia32": 0.16.12 + "@esbuild/linux-loong64": 0.16.12 + "@esbuild/linux-mips64el": 0.16.12 + "@esbuild/linux-ppc64": 0.16.12 + "@esbuild/linux-riscv64": 0.16.12 + "@esbuild/linux-s390x": 0.16.12 + "@esbuild/linux-x64": 0.16.12 + "@esbuild/netbsd-x64": 0.16.12 + "@esbuild/openbsd-x64": 0.16.12 + "@esbuild/sunos-x64": 0.16.12 + "@esbuild/win32-arm64": 0.16.12 + "@esbuild/win32-ia32": 0.16.12 + "@esbuild/win32-x64": 0.16.12 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -21320,7 +21641,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 0c5671fa4611fe70f3daa3e80e92804ca5908d1fcb0ed7a418d69db72504c4f457ceebeaa2668d55f79aaa63334a9ffd3f30e8f9dee821f6ad1f367f08ff157b + checksum: 608faf85bcc6d970e4a3261c2a15dfe7e72b850a9115e90b22f2ab89b4adb2a9e281ef3dec8450ae4c4a5c4fab192b0e6cda468f08390e59bc230b7a5e5f5b5c languageName: node linkType: hard @@ -21671,11 +21992,11 @@ __metadata: linkType: hard "eslint@npm:^8.6.0": - version: 8.29.0 - resolution: "eslint@npm:8.29.0" + version: 8.30.0 + resolution: "eslint@npm:8.30.0" dependencies: - "@eslint/eslintrc": ^1.3.3 - "@humanwhocodes/config-array": ^0.11.6 + "@eslint/eslintrc": ^1.4.0 + "@humanwhocodes/config-array": ^0.11.8 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 ajv: ^6.10.0 @@ -21694,7 +22015,7 @@ __metadata: file-entry-cache: ^6.0.1 find-up: ^5.0.0 glob-parent: ^6.0.2 - globals: ^13.15.0 + globals: ^13.19.0 grapheme-splitter: ^1.0.4 ignore: ^5.2.0 import-fresh: ^3.0.0 @@ -21715,7 +22036,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: e05204b05907b82d910983995cb946e0ba62ca514eb2b6791c43f623333b143564a2eee0139909d31c10935c21877d815b1f76dd674a59cb91c471064325c4ab + checksum: b7525bb465b342665c3b8bab7e114d514ef1bc4e79f211c919863f9c71767e7412ec82383a22614a92d159783f91101018817000f7c61ce69a5e7015280cafaf languageName: node linkType: hard @@ -23517,12 +23838,12 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.15.0": - version: 13.15.0 - resolution: "globals@npm:13.15.0" +"globals@npm:^13.19.0": + version: 13.19.0 + resolution: "globals@npm:13.19.0" dependencies: type-fest: ^0.20.2 - checksum: 383ade0873b2ab29ce6d143466c203ed960491575bc97406395e5c8434026fb02472ab2dfff5bc16689b8460269b18fda1047975295cd0183904385c51258bae + checksum: a000dbd00bcf28f0941d8a29c3522b1c3b8e4bfe4e60e262c477a550c3cbbe8dbe2925a6905f037acd40f9a93c039242e1f7079c76b0fd184bc41dcc3b5c8e2e languageName: node linkType: hard @@ -23733,16 +24054,17 @@ __metadata: languageName: node linkType: hard -"graphql-request@npm:^4.0.0": - version: 4.2.0 - resolution: "graphql-request@npm:4.2.0" +"graphql-request@npm:^5.0.0": + version: 5.1.0 + resolution: "graphql-request@npm:5.1.0" dependencies: + "@graphql-typed-document-node/core": ^3.1.1 cross-fetch: ^3.1.5 extract-files: ^9.0.0 form-data: ^3.0.0 peerDependencies: graphql: 14 - 16 - checksum: c508705ebdbb94ce4599c9236c06993dd19481d1765b8f316c8ad6eee81c18afaaf9362fa4f6f00227f26e793b4ec38a6aea44708da0ca4a1b4324f41691bbdc + checksum: 8b65d5c1b0cad8996a843b52305b2712ffbf842c700487d4cee1ed719f22baacaacfddafb65572bcddd67d57fd1d2d389dee2430ffba4b34c3ab542d079446c7 languageName: node linkType: hard @@ -23766,7 +24088,7 @@ __metadata: languageName: node linkType: hard -"graphql-ws@npm:^5.4.1, graphql-ws@npm:^5.9.0": +"graphql-ws@npm:5.11.2, graphql-ws@npm:^5.4.1, graphql-ws@npm:^5.9.0": version: 5.11.2 resolution: "graphql-ws@npm:5.11.2" peerDependencies: @@ -25595,6 +25917,15 @@ __metadata: languageName: node linkType: hard +"isomorphic-ws@npm:5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 + languageName: node + linkType: hard + "isomorphic-ws@npm:^4.0.1": version: 4.0.1 resolution: "isomorphic-ws@npm:4.0.1" @@ -25604,15 +25935,6 @@ __metadata: languageName: node linkType: hard -"isomorphic-ws@npm:^5.0.0": - version: 5.0.0 - resolution: "isomorphic-ws@npm:5.0.0" - peerDependencies: - ws: "*" - checksum: e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 - languageName: node - linkType: hard - "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -26904,6 +27226,18 @@ __metadata: languageName: node linkType: hard +"jsonwebtoken@npm:^9.0.0": + version: 9.0.0 + resolution: "jsonwebtoken@npm:9.0.0" + dependencies: + jws: ^3.2.2 + lodash: ^4.17.21 + ms: ^2.1.1 + semver: ^7.3.8 + checksum: b9181cecf9df99f1dc0253f91ba000a1aa4d91f5816d1608c0dba61a5623726a0bfe200b51df25de18c1a6000825d231ad7ce2788aa54fd48dcb760ad9eb9514 + languageName: node + linkType: hard + "jsprim@npm:^1.2.2": version: 1.4.2 resolution: "jsprim@npm:1.4.2" @@ -27015,15 +27349,15 @@ __metadata: languageName: node linkType: hard -"jss@npm:^10.5.1, jss@npm:~10.8.2": - version: 10.8.2 - resolution: "jss@npm:10.8.2" +"jss@npm:^10.5.1, jss@npm:~10.9.0": + version: 10.9.2 + resolution: "jss@npm:10.9.2" dependencies: "@babel/runtime": ^7.3.1 csstype: ^3.0.2 is-in-browser: ^1.1.3 tiny-warning: ^1.0.2 - checksum: b2647e44435e665c53eda80af2305addfea7e49c3b0c0271dc183abd8b1bb7c88bc5d77baf7bb8b2460640190eed900358fda514742d0bf4ebbc203984c879ba + checksum: 7ae5cd2f8602bf197ec90251d774b9f10d55eb2db0854ac78dc7fb6983828c202e8eb0d5c8c59c73b2f64718ebd33d6063afa799d625a995986a22dc1cc27230 languageName: node linkType: hard @@ -28163,11 +28497,11 @@ __metadata: linkType: hard "marked@npm:^4.0.10, marked@npm:^4.0.14": - version: 4.2.4 - resolution: "marked@npm:4.2.4" + version: 4.2.5 + resolution: "marked@npm:4.2.5" bin: marked: bin/marked.js - checksum: 5eb5bfa6ee4cf85712a3ccbe2a549c397e8886f5d18312a02696c7e3817625a6b91a8ad27a6ed43b06ddbdfb812f471b1270517c4b8fb068a6a9e5b4d555a5aa + checksum: dd7da20a3983c66b516463fad5dc8d15dc70e137d20b6dc491e134f671e84bd2ed5f859e2c35f21e56830a122e4356b9e574bcde49b72b7ad6bc121a215a1a98 languageName: node linkType: hard @@ -28494,15 +28828,15 @@ __metadata: languageName: node linkType: hard -"meros@npm:^1.1.4": - version: 1.1.4 - resolution: "meros@npm:1.1.4" +"meros@npm:1.2.1, meros@npm:^1.1.4": + version: 1.2.1 + resolution: "meros@npm:1.2.1" peerDependencies: - "@types/node": ">=12" + "@types/node": ">=13" peerDependenciesMeta: "@types/node": optional: true - checksum: f85f33ea05a0e20598f034696b477924254b742b6d81f77c8bbd7dee1f875656a3d98a1a2a988c481fef7de5c313715ee409b3cb3058ae6c4fe16a7f2fc598a3 + checksum: 2201c3f7c58ad2a5b5f7d6b1c644d79bde513e25cb64b51a8c41381ec74bc02cd3423425e34f60c96bf3991f1ec51d65dc8b8e3354cbb060cc9f8226b4666a5a languageName: node linkType: hard @@ -38350,7 +38684,22 @@ __metadata: languageName: node linkType: hard -"ws@npm:8.8.1, ws@npm:^8.3.0, ws@npm:^8.4.2, ws@npm:^8.8.0": +"ws@npm:8.11.0, ws@npm:^8.4.2, ws@npm:^8.8.0": + version: 8.11.0 + resolution: "ws@npm:8.11.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 316b33aba32f317cd217df66dbfc5b281a2f09ff36815de222bc859e3424d83766d9eb2bd4d667de658b6ab7be151f258318fb1da812416b30be13103e5b5c67 + languageName: node + linkType: hard + +"ws@npm:8.8.1": version: 8.8.1 resolution: "ws@npm:8.8.1" peerDependencies: