diff --git a/.changeset/breezy-pots-worry.md b/.changeset/breezy-pots-worry.md new file mode 100644 index 0000000000..48d5ae6c80 --- /dev/null +++ b/.changeset/breezy-pots-worry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-org': patch +--- + +consistently show parent and child relations in group profile card diff --git a/.changeset/bright-rules-shout.md b/.changeset/bright-rules-shout.md new file mode 100644 index 0000000000..f7cdae3b4f --- /dev/null +++ b/.changeset/bright-rules-shout.md @@ -0,0 +1,5 @@ +--- +'@backstage/catalog-model': patch +--- + +Defer `ajv` compilation of schema validators to improve module-import performance diff --git a/.changeset/clean-camels-sneeze.md b/.changeset/clean-camels-sneeze.md new file mode 100644 index 0000000000..0fccb52e0b --- /dev/null +++ b/.changeset/clean-camels-sneeze.md @@ -0,0 +1,12 @@ +--- +'@backstage/create-app': patch +--- + +Newly created Backstage repositories now use the stable version 6 of +`react-router`, just like the main repo does. Please let us know if you find any +issues with this. + +Migrating to the stable version of `react-router` is optional for the time +being. But if you want to do the same for your existing repository, please +follow [this +guide](https://backstage.io/docs/tutorials/react-router-stable-migration). diff --git a/.changeset/curvy-kiwis-fold.md b/.changeset/curvy-kiwis-fold.md new file mode 100644 index 0000000000..8d94f38343 --- /dev/null +++ b/.changeset/curvy-kiwis-fold.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Update versions of packages used in the create-app template, to match those in the main repo diff --git a/.changeset/kind-penguins-report.md b/.changeset/kind-penguins-report.md new file mode 100644 index 0000000000..4023ea5976 --- /dev/null +++ b/.changeset/kind-penguins-report.md @@ -0,0 +1,10 @@ +--- +'@backstage/plugin-auth-backend': minor +--- + +CookieConfigurer can optionally return the `SameSite` cookie attribute. +CookieConfigurer now requires an additional argument `appOrigin` - the origin URL of the app - which is used to calculate the `SameSite` attribute. +defaultCookieConfigurer returns the `SameSite` attribute which defaults to `Lax`. In cases where an auth-backend is running on a different domain than the App, `SameSite=None` is used - but only for secure contexts. This is so that cookies can be included in third-party requests. + +OAuthAdapterOptions has been modified to require additional arguments, `baseUrl`, and `cookieConfigurer`. +OAuthAdapter now resolves cookie configuration using its supplied CookieConfigurer for each request to make sure that the proper attributes always are set. diff --git a/.changeset/lazy-beds-pull.md b/.changeset/lazy-beds-pull.md new file mode 100644 index 0000000000..0d8be46576 --- /dev/null +++ b/.changeset/lazy-beds-pull.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Updated fallback versions of dependencies in all templates. diff --git a/.changeset/lazy-fireants-check.md b/.changeset/lazy-fireants-check.md new file mode 100644 index 0000000000..234501b07a --- /dev/null +++ b/.changeset/lazy-fireants-check.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes': patch +--- + +Add useCustomResources react hook for fetching Kubernetes Custom Resources diff --git a/.changeset/little-roses-rule.md b/.changeset/little-roses-rule.md new file mode 100644 index 0000000000..4acec131e6 --- /dev/null +++ b/.changeset/little-roses-rule.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Added a new `repo test` command. diff --git a/.changeset/old-cobras-suffer.md b/.changeset/old-cobras-suffer.md new file mode 100644 index 0000000000..2891c29133 --- /dev/null +++ b/.changeset/old-cobras-suffer.md @@ -0,0 +1,6 @@ +--- +'@backstage/test-utils': patch +'@backstage/plugin-cicd-statistics': patch +--- + +Align on the version of `@material-ui/icons` used, to `^4.9.1` like other packages in the main repo diff --git a/.changeset/perfect-moose-drum.md b/.changeset/perfect-moose-drum.md new file mode 100644 index 0000000000..833e5eeb35 --- /dev/null +++ b/.changeset/perfect-moose-drum.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Updated lockfile parsing to have better support for Yarn 3. diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 0000000000..46123733ca --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,179 @@ +{ + "mode": "pre", + "tag": "next", + "initialVersions": { + "example-app": "0.2.75", + "@backstage/app-defaults": "1.0.6", + "example-backend": "0.2.75", + "@backstage/backend-app-api": "0.2.1", + "@backstage/backend-common": "0.15.1", + "@backstage/backend-defaults": "0.1.1", + "example-backend-next": "0.0.3", + "@backstage/backend-plugin-api": "0.1.2", + "@backstage/backend-tasks": "0.3.5", + "@backstage/backend-test-utils": "0.1.28", + "@backstage/catalog-client": "1.1.0", + "@backstage/catalog-model": "1.1.1", + "@backstage/cli": "0.19.0", + "@backstage/cli-common": "0.1.10", + "@backstage/codemods": "0.1.39", + "@backstage/config": "1.0.2", + "@backstage/config-loader": "1.1.4", + "@backstage/core-app-api": "1.1.0", + "@backstage/core-components": "0.11.1", + "@backstage/core-plugin-api": "1.0.6", + "@backstage/create-app": "0.4.31", + "@backstage/dev-utils": "1.0.6", + "e2e-test": "0.2.0", + "@backstage/errors": "1.1.1", + "@backstage/integration": "1.3.1", + "@backstage/integration-react": "1.1.4", + "@backstage/release-manifests": "0.0.6", + "@techdocs/cli": "1.2.1", + "techdocs-cli-embedded-app": "0.2.74", + "@backstage/test-utils": "1.2.0", + "@backstage/theme": "0.2.16", + "@backstage/types": "1.0.0", + "@backstage/version-bridge": "1.0.1", + "@backstage/plugin-adr": "0.2.1", + "@backstage/plugin-adr-backend": "0.2.1", + "@backstage/plugin-adr-common": "0.2.1", + "@backstage/plugin-airbrake": "0.3.9", + "@backstage/plugin-airbrake-backend": "0.2.9", + "@backstage/plugin-allure": "0.1.25", + "@backstage/plugin-analytics-module-ga": "0.1.20", + "@backstage/plugin-apache-airflow": "0.2.2", + "@backstage/plugin-api-docs": "0.8.9", + "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.0", + "@backstage/plugin-apollo-explorer": "0.1.2", + "@backstage/plugin-app-backend": "0.3.36", + "@backstage/plugin-auth-backend": "0.16.0", + "@backstage/plugin-auth-node": "0.2.5", + "@backstage/plugin-azure-devops": "0.2.0", + "@backstage/plugin-azure-devops-backend": "0.3.15", + "@backstage/plugin-azure-devops-common": "0.3.0", + "@backstage/plugin-badges": "0.2.33", + "@backstage/plugin-badges-backend": "0.1.30", + "@backstage/plugin-bazaar": "0.1.24", + "@backstage/plugin-bazaar-backend": "0.1.20", + "@backstage/plugin-bitbucket-cloud-common": "0.1.3", + "@backstage/plugin-bitrise": "0.1.36", + "@backstage/plugin-catalog": "1.5.1", + "@backstage/plugin-catalog-backend": "1.4.0", + "@backstage/plugin-catalog-backend-module-aws": "0.1.9", + "@backstage/plugin-catalog-backend-module-azure": "0.1.7", + "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.3", + "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.3", + "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.1", + "@backstage/plugin-catalog-backend-module-gerrit": "0.1.4", + "@backstage/plugin-catalog-backend-module-github": "0.1.7", + "@backstage/plugin-catalog-backend-module-gitlab": "0.1.7", + "@backstage/plugin-catalog-backend-module-ldap": "0.5.3", + "@backstage/plugin-catalog-backend-module-msgraph": "0.4.2", + "@backstage/plugin-catalog-backend-module-openapi": "0.1.2", + "@backstage/plugin-catalog-common": "1.0.6", + "@internal/plugin-catalog-customized": "0.0.2", + "@backstage/plugin-catalog-graph": "0.2.21", + "@backstage/plugin-catalog-graphql": "0.3.13", + "@backstage/plugin-catalog-import": "0.8.12", + "@backstage/plugin-catalog-node": "1.1.0", + "@backstage/plugin-catalog-react": "1.1.4", + "@backstage/plugin-cicd-statistics": "0.1.11", + "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.5", + "@backstage/plugin-circleci": "0.3.9", + "@backstage/plugin-cloudbuild": "0.3.9", + "@backstage/plugin-code-climate": "0.1.9", + "@backstage/plugin-code-coverage": "0.2.2", + "@backstage/plugin-code-coverage-backend": "0.2.2", + "@backstage/plugin-codescene": "0.1.4", + "@backstage/plugin-config-schema": "0.1.32", + "@backstage/plugin-cost-insights": "0.11.31", + "@backstage/plugin-cost-insights-common": "0.1.1", + "@backstage/plugin-dynatrace": "0.2.0", + "@internal/plugin-todo-list": "1.0.5", + "@internal/plugin-todo-list-backend": "1.0.5", + "@internal/plugin-todo-list-common": "1.0.4", + "@backstage/plugin-explore": "0.3.40", + "@backstage/plugin-explore-react": "0.0.21", + "@backstage/plugin-firehydrant": "0.1.26", + "@backstage/plugin-fossa": "0.2.41", + "@backstage/plugin-gcalendar": "0.3.5", + "@backstage/plugin-gcp-projects": "0.3.28", + "@backstage/plugin-git-release-manager": "0.3.22", + "@backstage/plugin-github-actions": "0.5.9", + "@backstage/plugin-github-deployments": "0.1.40", + "@backstage/plugin-github-issues": "0.1.1", + "@backstage/plugin-github-pull-requests-board": "0.1.3", + "@backstage/plugin-gitops-profiles": "0.3.27", + "@backstage/plugin-gocd": "0.1.15", + "@backstage/plugin-graphiql": "0.2.41", + "@backstage/plugin-graphql-backend": "0.1.26", + "@backstage/plugin-home": "0.4.25", + "@backstage/plugin-ilert": "0.1.35", + "@backstage/plugin-jenkins": "0.7.8", + "@backstage/plugin-jenkins-backend": "0.1.26", + "@backstage/plugin-jenkins-common": "0.1.8", + "@backstage/plugin-kafka": "0.3.9", + "@backstage/plugin-kafka-backend": "0.2.29", + "@backstage/plugin-kubernetes": "0.7.2", + "@backstage/plugin-kubernetes-backend": "0.7.2", + "@backstage/plugin-kubernetes-common": "0.4.2", + "@backstage/plugin-lighthouse": "0.3.9", + "@backstage/plugin-newrelic": "0.3.27", + "@backstage/plugin-newrelic-dashboard": "0.2.2", + "@backstage/plugin-org": "0.5.9", + "@backstage/plugin-pagerduty": "0.5.2", + "@backstage/plugin-periskop": "0.1.7", + "@backstage/plugin-periskop-backend": "0.1.7", + "@backstage/plugin-permission-backend": "0.5.11", + "@backstage/plugin-permission-common": "0.6.4", + "@backstage/plugin-permission-node": "0.6.5", + "@backstage/plugin-permission-react": "0.4.5", + "@backstage/plugin-playlist": "0.1.0", + "@backstage/plugin-playlist-backend": "0.1.0", + "@backstage/plugin-playlist-common": "0.1.0", + "@backstage/plugin-proxy-backend": "0.2.30", + "@backstage/plugin-rollbar": "0.4.9", + "@backstage/plugin-rollbar-backend": "0.1.33", + "@backstage/plugin-scaffolder": "1.6.0", + "@backstage/plugin-scaffolder-backend": "1.6.0", + "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.11", + "@backstage/plugin-scaffolder-backend-module-rails": "0.4.4", + "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.9", + "@backstage/plugin-scaffolder-common": "1.2.0", + "@backstage/plugin-search": "1.0.2", + "@backstage/plugin-search-backend": "1.0.2", + "@backstage/plugin-search-backend-module-elasticsearch": "1.0.2", + "@backstage/plugin-search-backend-module-pg": "0.4.0", + "@backstage/plugin-search-backend-node": "1.0.2", + "@backstage/plugin-search-common": "1.0.1", + "@backstage/plugin-search-react": "1.1.0", + "@backstage/plugin-sentry": "0.4.2", + "@backstage/plugin-shortcuts": "0.3.1", + "@backstage/plugin-sonarqube": "0.4.1", + "@backstage/plugin-sonarqube-backend": "0.1.1", + "@backstage/plugin-splunk-on-call": "0.3.33", + "@backstage/plugin-stack-overflow": "0.1.5", + "@backstage/plugin-stack-overflow-backend": "0.1.5", + "@backstage/plugin-tech-insights": "0.3.0", + "@backstage/plugin-tech-insights-backend": "0.5.2", + "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.20", + "@backstage/plugin-tech-insights-common": "0.2.6", + "@backstage/plugin-tech-insights-node": "0.3.4", + "@backstage/plugin-tech-radar": "0.5.16", + "@backstage/plugin-techdocs": "1.3.2", + "@backstage/plugin-techdocs-addons-test-utils": "1.0.4", + "@backstage/plugin-techdocs-backend": "1.3.0", + "@backstage/plugin-techdocs-module-addons-contrib": "1.0.4", + "@backstage/plugin-techdocs-node": "1.4.0", + "@backstage/plugin-techdocs-react": "1.0.4", + "@backstage/plugin-todo": "0.2.11", + "@backstage/plugin-todo-backend": "0.1.33", + "@backstage/plugin-user-settings": "0.4.8", + "@backstage/plugin-user-settings-backend": "0.1.0", + "@backstage/plugin-vault": "0.1.3", + "@backstage/plugin-vault-backend": "0.2.2", + "@backstage/plugin-xcmetrics": "0.2.29" + }, + "changesets": [] +} diff --git a/.changeset/quiet-hats-kick.md b/.changeset/quiet-hats-kick.md new file mode 100644 index 0000000000..a0bbab4cb1 --- /dev/null +++ b/.changeset/quiet-hats-kick.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-jenkins-backend': patch +--- + +Fixed a bug where `extraRequestHeaders` configuration was ignored. diff --git a/.changeset/renovate-a02d90b.md b/.changeset/renovate-a02d90b.md new file mode 100644 index 0000000000..7bb69d9988 --- /dev/null +++ b/.changeset/renovate-a02d90b.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-api-docs': patch +--- + +Updated dependency `@asyncapi/react-component` to `1.0.0-next.42`. diff --git a/.changeset/rich-carrots-reflect.md b/.changeset/rich-carrots-reflect.md new file mode 100644 index 0000000000..13a67bcd56 --- /dev/null +++ b/.changeset/rich-carrots-reflect.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Switched the Jest transform for YAML files to use a custom one available at `@backstage/cli/config/jestYamlTransform.js`. diff --git a/.changeset/rude-bulldogs-sleep.md b/.changeset/rude-bulldogs-sleep.md new file mode 100644 index 0000000000..8a2a0590b3 --- /dev/null +++ b/.changeset/rude-bulldogs-sleep.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Allow Placeholder value to be any value, not only string. diff --git a/.changeset/selfish-turkeys-exist.md b/.changeset/selfish-turkeys-exist.md new file mode 100644 index 0000000000..3530b3a864 --- /dev/null +++ b/.changeset/selfish-turkeys-exist.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder': minor +--- + +EntityPickers now support flags to control when to include default namespace +in result diff --git a/.changeset/shaggy-books-smell.md b/.changeset/shaggy-books-smell.md new file mode 100644 index 0000000000..3f8aaa389c --- /dev/null +++ b/.changeset/shaggy-books-smell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-insights-node': patch +--- + +Updated package role to be `node-library`. diff --git a/.changeset/soft-falcons-love.md b/.changeset/soft-falcons-love.md new file mode 100644 index 0000000000..56ed193501 --- /dev/null +++ b/.changeset/soft-falcons-love.md @@ -0,0 +1,11 @@ +--- +'@backstage/plugin-user-settings': minor +--- + +**BREAKING**: The `apiRef` passed to `ProviderSettingsItem` now needs to +implement `ProfileInfoApi & SessionApi`, rather than just the latter. This is +unlikely to have an effect on most users though, since the builtin auth +providers generally implement both. + +Fixed settings page showing providers as logged out when the user is using more +than one provider, and displayed some additional login information. diff --git a/.changeset/stupid-dragons-complain.md b/.changeset/stupid-dragons-complain.md new file mode 100644 index 0000000000..44be8342bf --- /dev/null +++ b/.changeset/stupid-dragons-complain.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-test-utils': patch +--- + +Increased test database max connection pool size to reduce the risk of resource exhaustion. diff --git a/.changeset/sweet-insects-camp.md b/.changeset/sweet-insects-camp.md new file mode 100644 index 0000000000..4f91a196e8 --- /dev/null +++ b/.changeset/sweet-insects-camp.md @@ -0,0 +1,11 @@ +--- +'@backstage/cli': minor +--- + +**BREAKING**: Bumped `jest`, `jest-runtime`, and `jest-environment-jsdom` to v29. This is up from v27, so check out both the [v28](https://jestjs.io/docs/28.x/upgrading-to-jest28) and [v29](https://jestjs.io/docs/upgrading-to-jest29) (later [here](https://jestjs.io/docs/29.x/upgrading-to-jest29)) migration guides. + +Particular changes that where encountered in the main Backstage repo are: + +- The updated snapshot format. +- `jest.useFakeTimers('legacy')` is now `jest.useFakeTimers({ legacyFakeTimers: true })`. +- Error objects collected by `withLogCollector` from `@backstage/test-utils` are now objects with a `detail` property rather than a string. diff --git a/.changeset/swift-phones-cheat.md b/.changeset/swift-phones-cheat.md new file mode 100644 index 0000000000..6d1653caa3 --- /dev/null +++ b/.changeset/swift-phones-cheat.md @@ -0,0 +1,12 @@ +--- +'@backstage/cli': patch +--- + +Removed `tsx` and `jsx` as supported extensions in backend packages. For most +repos, this will not have any effect. But if you inadvertently had added some +`tsx`/`jsx` files to your backend package, you may now start to see `code: 'MODULE_NOT_FOUND'` errors when launching the backend locally. The reason for +this is that the offending files get ignored during transpilation. Hence, the +importing file can no longer find anything to import. + +The fix is to rename any `.tsx` files in your backend packages to `.ts` instead, +or `.jsx` to `.js`. diff --git a/.changeset/tender-drinks-drive.md b/.changeset/tender-drinks-drive.md new file mode 100644 index 0000000000..0ea69832af --- /dev/null +++ b/.changeset/tender-drinks-drive.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Add functionality to shutdown scaffolder tasks if they are stale diff --git a/.changeset/thick-kings-destroy.md b/.changeset/thick-kings-destroy.md new file mode 100644 index 0000000000..77c6be0d3c --- /dev/null +++ b/.changeset/thick-kings-destroy.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Make sure to stitch entities correctly after deletion, to ensure that their relations are updated. diff --git a/.changeset/tiny-mails-bathe.md b/.changeset/tiny-mails-bathe.md new file mode 100644 index 0000000000..868c2a8d36 --- /dev/null +++ b/.changeset/tiny-mails-bathe.md @@ -0,0 +1,14 @@ +--- +'@backstage/create-app': patch +--- + +Updated the root `test` scripts to use `backstage-cli repo test`. + +To apply this change to an existing app, make the following change to the root `package.json`: + +```diff +- "test": "backstage-cli test", +- "test:all": "lerna run test -- --coverage", ++ "test": "backstage-cli repo test", ++ "test:all": "backstage-cli repo test --coverage", +``` diff --git a/.changeset/wise-ligers-scream.md b/.changeset/wise-ligers-scream.md new file mode 100644 index 0000000000..d71c69fd42 --- /dev/null +++ b/.changeset/wise-ligers-scream.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-cost-insights': patch +--- + +Fixed bug in `CostOverviewBreakdownChart` component where some datasets caused the cost overview breakdown chart to tear. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d63a8b6d77..3c6ac696e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -197,7 +197,7 @@ jobs: - name: test changed packages if: ${{ steps.yarn-lock.outcome == 'success' }} - run: yarn lerna run test --since origin/master -- --coverage --runInBand + run: yarn backstage-cli repo test --maxWorkers=2 --workerIdleMemoryLimit=1300M --since origin/master env: BACKSTAGE_NEXT_TESTS: 1 BACKSTAGE_TEST_DISABLE_DOCKER: 1 @@ -208,7 +208,7 @@ jobs: - name: test all packages (and upload coverage) if: ${{ steps.yarn-lock.outcome == 'failure' }} run: | - yarn lerna run test -- --coverage --runInBand + yarn backstage-cli repo test --maxWorkers=2 --workerIdleMemoryLimit=1300M --coverage bash <(curl -s https://codecov.io/bash) -N $(git rev-parse FETCH_HEAD) env: BACKSTAGE_NEXT_TESTS: 1 diff --git a/.github/workflows/deploy_nightly.yml b/.github/workflows/deploy_nightly.yml index e776c47537..b82e1a30d4 100644 --- a/.github/workflows/deploy_nightly.yml +++ b/.github/workflows/deploy_nightly.yml @@ -55,7 +55,9 @@ jobs: # not flagged as the latest release, which means that people will not get this # version of the package unless requested explicitly - name: publish nightly release - run: yarn changeset publish --tag nightly + run: | + yarn config set -H 'npmAuthToken' "${{secrets.NPM_TOKEN}}" + yarn workspaces foreach -v --no-private npm publish --access public --tag nightly env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 6fa34e408f..06ed3bc45e 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -97,7 +97,7 @@ jobs: - name: test (and upload coverage) run: | - yarn lerna run test -- --coverage --runInBand + yarn backstage-cli repo test --maxWorkers=2 --workerIdleMemoryLimit=1300M --coverage bash <(curl -s https://codecov.io/bash) # Upload code coverage for some specific flags. Also see .codecov.yml bash <(curl -s https://codecov.io/bash) -f packages/core-app-api/coverage/* -F core-app-api @@ -162,10 +162,11 @@ jobs: # Publishes current version of packages that are not already present in the registry - name: publish run: | + yarn config set -H 'npmAuthToken' "${{secrets.NPM_TOKEN}}" if [ -f ".changeset/pre.json" ]; then - yarn lerna publish from-package --yes --dist-tag next + yarn workspaces foreach -v --no-private npm publish --access public --tag next else - yarn lerna publish from-package --yes + yarn workspaces foreach -v --no-private npm publish --access public fi env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/verify_windows.yml b/.github/workflows/verify_windows.yml index 0b12caf2fc..8bbaa645bf 100644 --- a/.github/workflows/verify_windows.yml +++ b/.github/workflows/verify_windows.yml @@ -46,7 +46,7 @@ jobs: run: yarn lint:type-deps - name: test - run: yarn lerna run test + run: yarn backstage-cli repo test --maxWorkers=2 --workerIdleMemoryLimit=1300M env: BACKSTAGE_NEXT_TESTS: 1 BACKSTAGE_TEST_DISABLE_DOCKER: 1 diff --git a/contrib/docs/tutorials/enable-ssl-self-signed.md b/contrib/docs/tutorials/enable-ssl-self-signed.md new file mode 100644 index 0000000000..80f5d36a98 --- /dev/null +++ b/contrib/docs/tutorials/enable-ssl-self-signed.md @@ -0,0 +1,47 @@ +# Enabling SSL for Local Testing + +If you need to use an `https:` URL for local testing (i.e. if an OAuth provider requires a "secure" callback URL), you can use a self-signed certificate by following these steps. + +## Backend + +1. Generate a self-signed certificate and key for localhost and configure your system to trust it. The application [`mkcert`](https://github.com/FiloSottile/mkcert) is a helpful tool to accomplish this. +1. Update `backend.baseUrl` in app-config.local.yaml to use an `https:` address. +1. Add the certificate and key to `backend.https.certificate.cert` and `backend.https.certificate.cert`, respectively. + ```yaml + backend: + baseUrl: https://localhost:7007 + https: + certificate: + # You may copy the contents of the file... + cert: | + -----BEGIN CERTIFICATE----- + MIIDCTCCAfGgAwIBAgIUZ9VhZckcy690L + ... + -----END CERTIFICATE----- + # ... or use a path + key: + $file: ./certs/localhost-key.pem + ``` +1. Start the backend with `NODE_EXTRA_CA_CERTS=/absolute/path/to/cert.pem yarn start-backend` + +## Frontend + +1. As with the backend instructions above, a trusted certificate and key are needed. +1. Update `app.baseUrl` and `backend.cors.origin` in app-config.local.yaml to use an `https:` address. +1. Add the certificate and key to `app.https.certificate.cert` and `app.https.certificate.cert`, respectively. + ```yaml + app: + baseUrl: https://localhost:3000 + https: + certificate: + cert: + $file: ./certs/localhost.pem + key: + $file: ./certs/localhost-key.pem + backend: + cors: + origin: https://localhost:3000 + ``` +1. and start the app with `yarn start`. + +Depending on what plugins are in use, you may need to override additional URLs to use `https` for those endpoints to work. diff --git a/cypress/yarn.lock b/cypress/yarn.lock index 2dae48bd39..dd9856750c 100644 --- a/cypress/yarn.lock +++ b/cypress/yarn.lock @@ -1,1131 +1,1526 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@cypress/request@^2.88.10": - version "2.88.10" - resolved "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" - integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - http-signature "~1.3.6" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^8.3.2" - -"@cypress/xvfb@^1.2.4": - version "1.2.4" - resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" - integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== - dependencies: - debug "^3.1.0" - lodash.once "^4.1.1" - -"@types/node@*": - version "18.7.14" - resolved "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz#0fe081752a3333392d00586d815485a17c2cf3c9" - integrity sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA== - -"@types/node@^14.14.31": - version "14.18.26" - resolved "https://registry.npmjs.org/@types/node/-/node-14.18.26.tgz#239e19f8b4ea1a9eb710528061c1d733dc561996" - integrity sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA== - -"@types/sinonjs__fake-timers@8.1.1": - version "8.1.1" - resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" - integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== - -"@types/sizzle@^2.3.2": - version "2.3.3" - resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" - integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== - -"@types/yauzl@^2.9.1": - version "2.10.0" - resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" - integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== - dependencies: - "@types/node" "*" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -arch@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async@^3.2.0: - version "3.2.4" - resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -blob-util@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" - integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== - -bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-more-types@^2.24.0: - version "2.24.0" - resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" - integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== - -ci-info@^3.2.0: - version "3.3.2" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" - integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-table3@~0.6.1: - version "0.6.2" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" - integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.16: - version "2.0.19" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -common-tags@^1.8.0: - version "1.8.2" - resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cypress@^10.0.0: - version "10.7.0" - resolved "https://registry.npmjs.org/cypress/-/cypress-10.7.0.tgz#2d37f8b9751c6de33ee48639cb7e67a2ce593231" - integrity sha512-gTFvjrUoBnqPPOu9Vl5SBHuFlzx/Wxg/ZXIz2H4lzoOLFelKeF7mbwYUOzgzgF0oieU2WhJAestQdkgwJMMTvQ== - dependencies: - "@cypress/request" "^2.88.10" - "@cypress/xvfb" "^1.2.4" - "@types/node" "^14.14.31" - "@types/sinonjs__fake-timers" "8.1.1" - "@types/sizzle" "^2.3.2" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "^3.7.2" - buffer "^5.6.0" - cachedir "^2.3.0" - chalk "^4.1.0" - check-more-types "^2.24.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.1" - commander "^5.1.0" - common-tags "^1.8.0" - dayjs "^1.10.4" - debug "^4.3.2" - enquirer "^2.3.6" - eventemitter2 "^6.4.3" - execa "4.1.0" - executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" - fs-extra "^9.1.0" - getos "^3.2.1" - is-ci "^3.0.0" - is-installed-globally "~0.4.0" - lazy-ass "^1.6.0" - listr2 "^3.8.3" - lodash "^4.17.21" - log-symbols "^4.0.0" - minimist "^1.2.6" - ospath "^1.2.2" - pretty-bytes "^5.6.0" - proxy-from-env "1.0.0" - request-progress "^3.0.0" - semver "^7.3.2" - supports-color "^8.1.1" - tmp "~0.2.1" - untildify "^4.0.0" - yauzl "^2.10.0" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -dayjs@^1.10.4: - version "1.11.5" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz#00e8cc627f231f9499c19b38af49f56dc0ac5e93" - integrity sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA== - -debug@^3.1.0: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.1, debug@^4.3.2: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -eventemitter2@^6.4.3: - version "6.4.7" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" - integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== - -execa@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -executable@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -getos@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" - integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== - dependencies: - async "^3.2.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== - dependencies: - ini "2.0.0" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -http-signature@~1.3.6: - version "1.3.6" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" - integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== - dependencies: - assert-plus "^1.0.0" - jsprim "^2.0.2" - sshpk "^1.14.1" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -is-ci@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-installed-globally@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - -is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" - integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -lazy-ass@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== - -listr2@^3.8.3: - version "3.14.0" - resolved "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" - integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.1" - through "^2.3.8" - wrap-ansi "^7.0.0" - -lodash.once@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -ospath@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -pify@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pretty-bytes@^5.6.0: - version "5.6.0" - resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" - integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== - -proxy-from-env@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -request-progress@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg== - dependencies: - throttleit "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rxjs@^7.5.1: - version "7.5.6" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" - integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== - dependencies: - tslib "^2.1.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.2: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver@^7.3.2: - version "7.3.7" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -sshpk@^1.14.1: - version "1.17.0" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g== - -through@^2.3.8: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tmp@~0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tslib@^2.1.0: - version "2.4.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -typescript@^4.1.3: - version "4.8.2" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" - integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@backstage/cypress-tests@workspace:.": + version: 0.0.0-use.local + resolution: "@backstage/cypress-tests@workspace:." + dependencies: + cypress: ^10.0.0 + typescript: ^4.1.3 + languageName: unknown + linkType: soft + +"@colors/colors@npm:1.5.0": + version: 1.5.0 + resolution: "@colors/colors@npm:1.5.0" + checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425 + languageName: node + linkType: hard + +"@cypress/request@npm:^2.88.10": + version: 2.88.10 + resolution: "@cypress/request@npm:2.88.10" + dependencies: + aws-sign2: ~0.7.0 + aws4: ^1.8.0 + caseless: ~0.12.0 + combined-stream: ~1.0.6 + extend: ~3.0.2 + forever-agent: ~0.6.1 + form-data: ~2.3.2 + http-signature: ~1.3.6 + is-typedarray: ~1.0.0 + isstream: ~0.1.2 + json-stringify-safe: ~5.0.1 + mime-types: ~2.1.19 + performance-now: ^2.1.0 + qs: ~6.5.2 + safe-buffer: ^5.1.2 + tough-cookie: ~2.5.0 + tunnel-agent: ^0.6.0 + uuid: ^8.3.2 + checksum: 69c3e3b332e9be4866a900f6bcca5d274d8cea6c99707fbcce061de8dbab11c9b1e39f4c017f6e83e6e682717781d4f6106fd6b7cf9546580fcfac353b6676cf + languageName: node + linkType: hard + +"@cypress/xvfb@npm:^1.2.4": + version: 1.2.4 + resolution: "@cypress/xvfb@npm:1.2.4" + dependencies: + debug: ^3.1.0 + lodash.once: ^4.1.1 + checksum: 7bdcdaeb1bb692ec9d9bf8ec52538aa0bead6764753f4a067a171a511807a43fab016f7285a56bef6a606c2467ff3f1365e1ad2d2d583b81beed849ee1573fd1 + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 18.7.14 + resolution: "@types/node@npm:18.7.14" + checksum: 99cf28ff854100158de875cca23c7acc3cc01dfee526a52b90b7f36767c821bcbaf2be0a98a70f06f3b78f3c60639168ff949d725b61e2e124f9f71f1fb8043d + languageName: node + linkType: hard + +"@types/node@npm:^14.14.31": + version: 14.18.26 + resolution: "@types/node@npm:14.18.26" + checksum: c6ac3f9d4f6f77c0fa5ac17757779ad4d9835abfe3af5708b7552597cb5c7c1103e83499ccaf767a1cfa70040990bcf3f58761c547051dc8d5077f3c419091b1 + languageName: node + linkType: hard + +"@types/sinonjs__fake-timers@npm:8.1.1": + version: 8.1.1 + resolution: "@types/sinonjs__fake-timers@npm:8.1.1" + checksum: ca09d54d47091d87020824a73f026300fa06b17cd9f2f9b9387f28b549364b141ef194ee28db762f6588de71d8febcd17f753163cb7ea116b8387c18e80ebd5c + languageName: node + linkType: hard + +"@types/sizzle@npm:^2.3.2": + version: 2.3.3 + resolution: "@types/sizzle@npm:2.3.3" + checksum: 586a9fb1f6ff3e325e0f2cc1596a460615f0bc8a28f6e276ac9b509401039dd242fa8b34496d3a30c52f5b495873922d09a9e76c50c2ab2bcc70ba3fb9c4e160 + languageName: node + linkType: hard + +"@types/yauzl@npm:^2.9.1": + version: 2.10.0 + resolution: "@types/yauzl@npm:2.10.0" + dependencies: + "@types/node": "*" + checksum: 55d27ae5d346ea260e40121675c24e112ef0247649073848e5d4e03182713ae4ec8142b98f61a1c6cbe7d3b72fa99bbadb65d8b01873e5e605cdc30f1ff70ef2 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ansi-colors@npm:^4.1.1": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.3.0": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: ^0.21.3 + checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"arch@npm:^2.2.0": + version: 2.2.0 + resolution: "arch@npm:2.2.0" + checksum: e21b7635029fe8e9cdd5a026f9a6c659103e63fff423834323cdf836a1bb240a72d0c39ca8c470f84643385cf581bd8eda2cad8bf493e27e54bd9783abe9101f + languageName: node + linkType: hard + +"asn1@npm:~0.2.3": + version: 0.2.6 + resolution: "asn1@npm:0.2.6" + dependencies: + safer-buffer: ~2.1.0 + checksum: 39f2ae343b03c15ad4f238ba561e626602a3de8d94ae536c46a4a93e69578826305366dc09fbb9b56aec39b4982a463682f259c38e59f6fa380cd72cd61e493d + languageName: node + linkType: hard + +"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": + version: 1.0.0 + resolution: "assert-plus@npm:1.0.0" + checksum: 19b4340cb8f0e6a981c07225eacac0e9d52c2644c080198765d63398f0075f83bbc0c8e95474d54224e297555ad0d631c1dcd058adb1ddc2437b41a6b424ac64 + languageName: node + linkType: hard + +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 + languageName: node + linkType: hard + +"async@npm:^3.2.0": + version: 3.2.4 + resolution: "async@npm:3.2.4" + checksum: 43d07459a4e1d09b84a20772414aa684ff4de085cbcaec6eea3c7a8f8150e8c62aa6cd4e699fe8ee93c3a5b324e777d34642531875a0817a35697522c1b02e89 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e + languageName: node + linkType: hard + +"aws-sign2@npm:~0.7.0": + version: 0.7.0 + resolution: "aws-sign2@npm:0.7.0" + checksum: b148b0bb0778098ad8cf7e5fc619768bcb51236707ca1d3e5b49e41b171166d8be9fdc2ea2ae43d7decf02989d0aaa3a9c4caa6f320af95d684de9b548a71525 + languageName: node + linkType: hard + +"aws4@npm:^1.8.0": + version: 1.11.0 + resolution: "aws4@npm:1.11.0" + checksum: 5a00d045fd0385926d20ebebcfba5ec79d4482fe706f63c27b324d489a04c68edb0db99ed991e19eda09cb8c97dc2452059a34d97545cebf591d7a2b5a10999f + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"bcrypt-pbkdf@npm:^1.0.0": + version: 1.0.2 + resolution: "bcrypt-pbkdf@npm:1.0.2" + dependencies: + tweetnacl: ^0.14.3 + checksum: 4edfc9fe7d07019609ccf797a2af28351736e9d012c8402a07120c4453a3b789a15f2ee1530dc49eee8f7eb9379331a8dd4b3766042b9e502f74a68e7f662291 + languageName: node + linkType: hard + +"blob-util@npm:^2.0.2": + version: 2.0.2 + resolution: "blob-util@npm:2.0.2" + checksum: d543e6b92e4ca715ca33c78e89a07a2290d43e5b2bc897d7ec588c5c7bbf59df93e45225ac0c9258aa6ce4320358990f99c9288f1c48280f8ec5d7a2e088d19b + languageName: node + linkType: hard + +"bluebird@npm:^3.7.2": + version: 3.7.2 + resolution: "bluebird@npm:3.7.2" + checksum: 869417503c722e7dc54ca46715f70e15f4d9c602a423a02c825570862d12935be59ed9c7ba34a9b31f186c017c23cac6b54e35446f8353059c101da73eac22ef + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c + languageName: node + linkType: hard + +"buffer@npm:^5.6.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.1.13 + checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 + languageName: node + linkType: hard + +"cachedir@npm:^2.3.0": + version: 2.3.0 + resolution: "cachedir@npm:2.3.0" + checksum: ec90cb0f2e6336e266aa748dbadf3da9e0b20e843e43f1591acab7a3f1451337dc2f26cb9dd833ae8cfefeffeeb43ef5b5ff62782a685f4e3c2305dd98482fcb + languageName: node + linkType: hard + +"caseless@npm:~0.12.0": + version: 0.12.0 + resolution: "caseless@npm:0.12.0" + checksum: b43bd4c440aa1e8ee6baefee8063b4850fd0d7b378f6aabc796c9ec8cb26d27fb30b46885350777d9bd079c5256c0e1329ad0dc7c2817e0bb466810ebb353751 + languageName: node + linkType: hard + +"chalk@npm:^4.1.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + languageName: node + linkType: hard + +"check-more-types@npm:^2.24.0": + version: 2.24.0 + resolution: "check-more-types@npm:2.24.0" + checksum: b09080ec3404d20a4b0ead828994b2e5913236ef44ed3033a27062af0004cf7d2091fbde4b396bf13b7ce02fb018bc9960b48305e6ab2304cd82d73ed7a51ef4 + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0": + version: 3.3.2 + resolution: "ci-info@npm:3.3.2" + checksum: fd81f1edd2d3b0f6cb077b2e84365136d87b9db8c055928c1ad69da8a76c2c2f19cba8ea51b90238302157ca927f91f92b653e933f2398dde4867500f08d6e62 + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: ^3.1.0 + checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + languageName: node + linkType: hard + +"cli-table3@npm:~0.6.1": + version: 0.6.2 + resolution: "cli-table3@npm:0.6.2" + dependencies: + "@colors/colors": 1.5.0 + string-width: ^4.2.0 + dependenciesMeta: + "@colors/colors": + optional: true + checksum: 2f82391698b8a2a2a5e45d2adcfea5d93e557207f90455a8d4c1aac688e9b18a204d9eb4ba1d322fa123b17d64ea3dc5e11de8b005529f3c3e7dbeb27cb4d9be + languageName: node + linkType: hard + +"cli-truncate@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-truncate@npm:2.1.0" + dependencies: + slice-ansi: ^3.0.0 + string-width: ^4.2.0 + checksum: bf1e4e6195392dc718bf9cd71f317b6300dc4a9191d052f31046b8773230ece4fa09458813bf0e3455a5e68c0690d2ea2c197d14a8b85a7b5e01c97f4b5feb5d + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"colorette@npm:^2.0.16": + version: 2.0.19 + resolution: "colorette@npm:2.0.19" + checksum: 888cf5493f781e5fcf54ce4d49e9d7d698f96ea2b2ef67906834bb319a392c667f9ec69f4a10e268d2946d13a9503d2d19b3abaaaf174e3451bfe91fb9d82427 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.6, combined-stream@npm:~1.0.6": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: ~1.0.0 + checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c + languageName: node + linkType: hard + +"commander@npm:^5.1.0": + version: 5.1.0 + resolution: "commander@npm:5.1.0" + checksum: 0b7fec1712fbcc6230fcb161d8d73b4730fa91a21dc089515489402ad78810547683f058e2a9835929c212fead1d6a6ade70db28bbb03edbc2829a9ab7d69447 + languageName: node + linkType: hard + +"common-tags@npm:^1.8.0": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"core-util-is@npm:1.0.2": + version: 1.0.2 + resolution: "core-util-is@npm:1.0.2" + checksum: 7a4c925b497a2c91421e25bf76d6d8190f0b2359a9200dbeed136e63b2931d6294d3b1893eda378883ed363cd950f44a12a401384c609839ea616befb7927dab + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"cypress@npm:^10.0.0": + version: 10.8.0 + resolution: "cypress@npm:10.8.0" + dependencies: + "@cypress/request": ^2.88.10 + "@cypress/xvfb": ^1.2.4 + "@types/node": ^14.14.31 + "@types/sinonjs__fake-timers": 8.1.1 + "@types/sizzle": ^2.3.2 + arch: ^2.2.0 + blob-util: ^2.0.2 + bluebird: ^3.7.2 + buffer: ^5.6.0 + cachedir: ^2.3.0 + chalk: ^4.1.0 + check-more-types: ^2.24.0 + cli-cursor: ^3.1.0 + cli-table3: ~0.6.1 + commander: ^5.1.0 + common-tags: ^1.8.0 + dayjs: ^1.10.4 + debug: ^4.3.2 + enquirer: ^2.3.6 + eventemitter2: 6.4.7 + execa: 4.1.0 + executable: ^4.1.1 + extract-zip: 2.0.1 + figures: ^3.2.0 + fs-extra: ^9.1.0 + getos: ^3.2.1 + is-ci: ^3.0.0 + is-installed-globally: ~0.4.0 + lazy-ass: ^1.6.0 + listr2: ^3.8.3 + lodash: ^4.17.21 + log-symbols: ^4.0.0 + minimist: ^1.2.6 + ospath: ^1.2.2 + pretty-bytes: ^5.6.0 + proxy-from-env: 1.0.0 + request-progress: ^3.0.0 + semver: ^7.3.2 + supports-color: ^8.1.1 + tmp: ~0.2.1 + untildify: ^4.0.0 + yauzl: ^2.10.0 + bin: + cypress: bin/cypress + checksum: c052690049980e7721e6fca563b724fde839d87d83c1478dfe26ce7d230992717c2c4028e7157bfb39ec274473e51929f49e5aab6a23c2b25cde2a439b1c3cf9 + languageName: node + linkType: hard + +"dashdash@npm:^1.12.0": + version: 1.14.1 + resolution: "dashdash@npm:1.14.1" + dependencies: + assert-plus: ^1.0.0 + checksum: 3634c249570f7f34e3d34f866c93f866c5b417f0dd616275decae08147dcdf8fccfaa5947380ccfb0473998ea3a8057c0b4cd90c875740ee685d0624b2983598 + languageName: node + linkType: hard + +"dayjs@npm:^1.10.4": + version: 1.11.5 + resolution: "dayjs@npm:1.11.5" + checksum: e3bbaa7b4883b31be4bf75a181f1447fbb19800c29b332852125aab96baeff3ac232dcba8b88c4ea17d3b636c99dac5fb9d1af4bb6ae26615698bbc4a852dffb + languageName: node + linkType: hard + +"debug@npm:^3.1.0": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: ^2.1.1 + checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c + languageName: node + linkType: hard + +"debug@npm:^4.1.1, debug@npm:^4.3.2": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"ecc-jsbn@npm:~0.1.1": + version: 0.1.2 + resolution: "ecc-jsbn@npm:0.1.2" + dependencies: + jsbn: ~0.1.0 + safer-buffer: ^2.1.0 + checksum: 22fef4b6203e5f31d425f5b711eb389e4c6c2723402e389af394f8411b76a488fa414d309d866e2b577ce3e8462d344205545c88a8143cc21752a5172818888a + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"end-of-stream@npm:^1.1.0": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: ^1.4.0 + checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + languageName: node + linkType: hard + +"enquirer@npm:^2.3.6": + version: 2.3.6 + resolution: "enquirer@npm:2.3.6" + dependencies: + ansi-colors: ^4.1.1 + checksum: 1c0911e14a6f8d26721c91e01db06092a5f7675159f0261d69c403396a385afd13dd76825e7678f66daffa930cfaa8d45f506fb35f818a2788463d022af1b884 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"eventemitter2@npm:6.4.7": + version: 6.4.7 + resolution: "eventemitter2@npm:6.4.7" + checksum: 1b36a77e139d6965ebf3a36c01fa00c089ae6b80faa1911e52888f40b3a7057b36a2cc45dcd1ad87cda3798fe7b97a0aabcbb8175a8b96092a23bb7d0f039e66 + languageName: node + linkType: hard + +"execa@npm:4.1.0": + version: 4.1.0 + resolution: "execa@npm:4.1.0" + dependencies: + cross-spawn: ^7.0.0 + get-stream: ^5.0.0 + human-signals: ^1.1.1 + is-stream: ^2.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^4.0.0 + onetime: ^5.1.0 + signal-exit: ^3.0.2 + strip-final-newline: ^2.0.0 + checksum: e30d298934d9c52f90f3847704fd8224e849a081ab2b517bbc02f5f7732c24e56a21f14cb96a08256deffeb2d12b2b7cb7e2b014a12fb36f8d3357e06417ed55 + languageName: node + linkType: hard + +"executable@npm:^4.1.1": + version: 4.1.1 + resolution: "executable@npm:4.1.1" + dependencies: + pify: ^2.2.0 + checksum: f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f + languageName: node + linkType: hard + +"extend@npm:~3.0.2": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 + languageName: node + linkType: hard + +"extract-zip@npm:2.0.1": + version: 2.0.1 + resolution: "extract-zip@npm:2.0.1" + dependencies: + "@types/yauzl": ^2.9.1 + debug: ^4.1.1 + get-stream: ^5.1.0 + yauzl: ^2.10.0 + dependenciesMeta: + "@types/yauzl": + optional: true + bin: + extract-zip: cli.js + checksum: 8cbda9debdd6d6980819cc69734d874ddd71051c9fe5bde1ef307ebcedfe949ba57b004894b585f758b7c9eeeea0e3d87f2dda89b7d25320459c2c9643ebb635 + languageName: node + linkType: hard + +"extsprintf@npm:1.3.0": + version: 1.3.0 + resolution: "extsprintf@npm:1.3.0" + checksum: cee7a4a1e34cffeeec18559109de92c27517e5641991ec6bab849aa64e3081022903dd53084f2080d0d2530803aa5ee84f1e9de642c365452f9e67be8f958ce2 + languageName: node + linkType: hard + +"extsprintf@npm:^1.2.0": + version: 1.4.1 + resolution: "extsprintf@npm:1.4.1" + checksum: a2f29b241914a8d2bad64363de684821b6b1609d06ae68d5b539e4de6b28659715b5bea94a7265201603713b7027d35399d10b0548f09071c5513e65e8323d33 + languageName: node + linkType: hard + +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: ~1.2.0 + checksum: c8585fd5713f4476eb8261150900d2cb7f6ff2d87f8feb306ccc8a1122efd152f1783bdb2b8dc891395744583436bfd8081d8e63ece0ec8687eeefea394d4ff2 + languageName: node + linkType: hard + +"figures@npm:^3.2.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: ^1.0.5 + checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b + languageName: node + linkType: hard + +"forever-agent@npm:~0.6.1": + version: 0.6.1 + resolution: "forever-agent@npm:0.6.1" + checksum: 766ae6e220f5fe23676bb4c6a99387cec5b7b62ceb99e10923376e27bfea72f3c3aeec2ba5f45f3f7ba65d6616965aa7c20b15002b6860833bb6e394dea546a8 + languageName: node + linkType: hard + +"form-data@npm:~2.3.2": + version: 2.3.3 + resolution: "form-data@npm:2.3.3" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.6 + mime-types: ^2.1.12 + checksum: 10c1780fa13dbe1ff3100114c2ce1f9307f8be10b14bf16e103815356ff567b6be39d70fc4a40f8990b9660012dc24b0f5e1dde1b6426166eb23a445ba068ca3 + languageName: node + linkType: hard + +"fs-extra@npm:^9.1.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: ^1.0.0 + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: ^3.0.0 + checksum: 8bc1a23174a06b2b4ce600df38d6c98d2ef6d84e020c1ddad632ad75bac4e092eeb40e4c09e0761c35fc2dbc5e7fff5dab5e763a383582c4a167dd69a905bd12 + languageName: node + linkType: hard + +"getos@npm:^3.2.1": + version: 3.2.1 + resolution: "getos@npm:3.2.1" + dependencies: + async: ^3.2.0 + checksum: 42fd78a66d47cebd3e09de5566cc0044e034b08f4a000a310dbd89a77b02c65d8f4002554bfa495ea5bdc4fa9d515f5ac785a7cc474ba45383cc697f865eeaf1 + languageName: node + linkType: hard + +"getpass@npm:^0.1.1": + version: 0.1.7 + resolution: "getpass@npm:0.1.7" + dependencies: + assert-plus: ^1.0.0 + checksum: ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046 + languageName: node + linkType: hard + +"glob@npm:^7.1.3": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + +"global-dirs@npm:^3.0.0": + version: 3.0.0 + resolution: "global-dirs@npm:3.0.0" + dependencies: + ini: 2.0.0 + checksum: 953c17cf14bf6ee0e2100ae82a0d779934eed8a3ec5c94a7a4f37c5b3b592c31ea015fb9a15cf32484de13c79f4a814f3015152f3e1d65976cfbe47c1bfe4a88 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0": + version: 4.2.10 + resolution: "graceful-fs@npm:4.2.10" + checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"http-signature@npm:~1.3.6": + version: 1.3.6 + resolution: "http-signature@npm:1.3.6" + dependencies: + assert-plus: ^1.0.0 + jsprim: ^2.0.2 + sshpk: ^1.14.1 + checksum: 10be2af4764e71fee0281392937050201ee576ac755c543f570d6d87134ce5e858663fe999a7adb3e4e368e1e356d0d7fec6b9542295b875726ff615188e7a0c + languageName: node + linkType: hard + +"human-signals@npm:^1.1.1": + version: 1.1.1 + resolution: "human-signals@npm:1.1.1" + checksum: d587647c9e8ec24e02821b6be7de5a0fc37f591f6c4e319b3054b43fd4c35a70a94c46fc74d8c1a43c47fde157d23acd7421f375e1c1365b09a16835b8300205 + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"ini@npm:2.0.0": + version: 2.0.0 + resolution: "ini@npm:2.0.0" + checksum: e7aadc5fb2e4aefc666d74ee2160c073995a4061556b1b5b4241ecb19ad609243b9cceafe91bae49c219519394bbd31512516cb22a3b1ca6e66d869e0447e84e + languageName: node + linkType: hard + +"is-ci@npm:^3.0.0": + version: 3.0.1 + resolution: "is-ci@npm:3.0.1" + dependencies: + ci-info: ^3.2.0 + bin: + is-ci: bin.js + checksum: 192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-installed-globally@npm:~0.4.0": + version: 0.4.0 + resolution: "is-installed-globally@npm:0.4.0" + dependencies: + global-dirs: ^3.0.0 + is-path-inside: ^3.0.2 + checksum: 3359840d5982d22e9b350034237b2cda2a12bac1b48a721912e1ab8e0631dd07d45a2797a120b7b87552759a65ba03e819f1bd63f2d7ab8657ec0b44ee0bf399 + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.2": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + +"is-typedarray@npm:~1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"isstream@npm:~0.1.2": + version: 0.1.2 + resolution: "isstream@npm:0.1.2" + checksum: 1eb2fe63a729f7bdd8a559ab552c69055f4f48eb5c2f03724430587c6f450783c8f1cd936c1c952d0a927925180fcc892ebd5b174236cf1065d4bd5bdb37e963 + languageName: node + linkType: hard + +"jsbn@npm:~0.1.0": + version: 0.1.1 + resolution: "jsbn@npm:0.1.1" + checksum: e5ff29c1b8d965017ef3f9c219dacd6e40ad355c664e277d31246c90545a02e6047018c16c60a00f36d561b3647215c41894f5d869ada6908a2e0ce4200c88f2 + languageName: node + linkType: hard + +"json-schema@npm:0.4.0": + version: 0.4.0 + resolution: "json-schema@npm:0.4.0" + checksum: 66389434c3469e698da0df2e7ac5a3281bcff75e797a5c127db7c5b56270e01ae13d9afa3c03344f76e32e81678337a8c912bdbb75101c62e487dc3778461d72 + languageName: node + linkType: hard + +"json-stringify-safe@npm:~5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + languageName: node + linkType: hard + +"jsprim@npm:^2.0.2": + version: 2.0.2 + resolution: "jsprim@npm:2.0.2" + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + checksum: d175f6b1991e160cb0aa39bc857da780e035611986b5492f32395411879fdaf4e513d98677f08f7352dac93a16b66b8361c674b86a3fa406e2e7af6b26321838 + languageName: node + linkType: hard + +"lazy-ass@npm:^1.6.0": + version: 1.6.0 + resolution: "lazy-ass@npm:1.6.0" + checksum: 5a3ebb17915b03452320804466345382a6c25ac782ec4874fecdb2385793896cd459be2f187dc7def8899180c32ee0ab9a1aa7fe52193ac3ff3fe29bb0591729 + languageName: node + linkType: hard + +"listr2@npm:^3.8.3": + version: 3.14.0 + resolution: "listr2@npm:3.14.0" + dependencies: + cli-truncate: ^2.1.0 + colorette: ^2.0.16 + log-update: ^4.0.0 + p-map: ^4.0.0 + rfdc: ^1.3.0 + rxjs: ^7.5.1 + through: ^2.3.8 + wrap-ansi: ^7.0.0 + peerDependencies: + enquirer: ">= 2.3.0 < 3" + peerDependenciesMeta: + enquirer: + optional: true + checksum: fdb8b2d6bdf5df9371ebd5082bee46c6d0ca3d1e5f2b11fbb5a127839855d5f3da9d4968fce94f0a5ec67cac2459766abbb1faeef621065ebb1829b11ef9476d + languageName: node + linkType: hard + +"lodash.once@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245 + languageName: node + linkType: hard + +"lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + languageName: node + linkType: hard + +"log-symbols@npm:^4.0.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: ^4.1.0 + is-unicode-supported: ^0.1.0 + checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + languageName: node + linkType: hard + +"log-update@npm:^4.0.0": + version: 4.0.0 + resolution: "log-update@npm:4.0.0" + dependencies: + ansi-escapes: ^4.3.0 + cli-cursor: ^3.1.0 + slice-ansi: ^4.0.0 + wrap-ansi: ^6.2.0 + checksum: ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2 + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: 1.52.0 + checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimist@npm:^1.2.6": + version: 1.2.6 + resolution: "minimist@npm:1.2.6" + checksum: d15428cd1e11eb14e1233bcfb88ae07ed7a147de251441d61158619dfb32c4d7e9061d09cab4825fdee18ecd6fce323228c8c47b5ba7cd20af378ca4048fb3fb + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:^2.1.1": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.0": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: ^3.0.0 + checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: ^2.1.0 + checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + languageName: node + linkType: hard + +"ospath@npm:^1.2.2": + version: 1.2.2 + resolution: "ospath@npm:1.2.2" + checksum: 505f48a4f4f1c557d6c656ec985707726e3714721680139be037613e903aa8c8fa4ddd8d1342006f9b2dc0065e6e20f8b7bea2ee05354f31257044790367b347 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d + languageName: node + linkType: hard + +"performance-now@npm:^2.1.0": + version: 2.1.0 + resolution: "performance-now@npm:2.1.0" + checksum: 534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550 + languageName: node + linkType: hard + +"pify@npm:^2.2.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba + languageName: node + linkType: hard + +"pretty-bytes@npm:^5.6.0": + version: 5.6.0 + resolution: "pretty-bytes@npm:5.6.0" + checksum: 9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd + languageName: node + linkType: hard + +"proxy-from-env@npm:1.0.0": + version: 1.0.0 + resolution: "proxy-from-env@npm:1.0.0" + checksum: 292e28d1de0c315958d71d8315eb546dd3cd8c8cbc2dab7c54eeb9f5c17f421771964ad0b5e1f77011bab2305bdae42e1757ce33bdb1ccc3e87732322a8efcf1 + languageName: node + linkType: hard + +"psl@npm:^1.1.28": + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.0 + resolution: "pump@npm:3.0.0" + dependencies: + end-of-stream: ^1.1.0 + once: ^1.3.1 + checksum: e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9 + languageName: node + linkType: hard + +"punycode@npm:^2.1.1": + version: 2.1.1 + resolution: "punycode@npm:2.1.1" + checksum: 823bf443c6dd14f669984dea25757b37993f67e8d94698996064035edd43bed8a5a17a9f12e439c2b35df1078c6bec05a6c86e336209eb1061e8025c481168e8 + languageName: node + linkType: hard + +"qs@npm:~6.5.2": + version: 6.5.3 + resolution: "qs@npm:6.5.3" + checksum: 6f20bf08cabd90c458e50855559539a28d00b2f2e7dddcb66082b16a43188418cb3cb77cbd09268bcef6022935650f0534357b8af9eeb29bf0f27ccb17655692 + languageName: node + linkType: hard + +"request-progress@npm:^3.0.0": + version: 3.0.0 + resolution: "request-progress@npm:3.0.0" + dependencies: + throttleit: ^1.0.0 + checksum: 6ea1761dcc8a8b7b5894afd478c0286aa31bd69438d7050294bd4fd0d0b3e09b5cde417d38deef9c49809039c337d8744e4bb49d8632b0c3e4ffa5e8a687e0fd + languageName: node + linkType: hard + +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: ^5.1.0 + signal-exit: ^3.0.2 + checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + languageName: node + linkType: hard + +"rfdc@npm:^1.3.0": + version: 1.3.0 + resolution: "rfdc@npm:1.3.0" + checksum: fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32 + languageName: node + linkType: hard + +"rimraf@npm:^3.0.0": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"rxjs@npm:^7.5.1": + version: 7.5.6 + resolution: "rxjs@npm:7.5.6" + dependencies: + tslib: ^2.1.0 + checksum: fc05f01364a74dac57490fb3e07ea63b422af04017fae1db641a009073f902ef69f285c5daac31359620dc8d9aee7d81e42b370ca2a8573d1feae0b04329383b + languageName: node + linkType: hard + +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + +"safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"semver@npm:^7.3.2": + version: 7.3.7 + resolution: "semver@npm:7.3.7" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.2": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"slice-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "slice-ansi@npm:3.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 + languageName: node + linkType: hard + +"sshpk@npm:^1.14.1": + version: 1.17.0 + resolution: "sshpk@npm:1.17.0" + dependencies: + asn1: ~0.2.3 + assert-plus: ^1.0.0 + bcrypt-pbkdf: ^1.0.0 + dashdash: ^1.12.0 + ecc-jsbn: ~0.1.1 + getpass: ^0.1.1 + jsbn: ~0.1.0 + safer-buffer: ^2.0.2 + tweetnacl: ~0.14.0 + bin: + sshpk-conv: bin/sshpk-conv + sshpk-sign: bin/sshpk-sign + sshpk-verify: bin/sshpk-verify + checksum: ba109f65c8e6c35133b8e6ed5576abeff8aa8d614824b7275ec3ca308f081fef483607c28d97780c1e235818b0f93ed8c8b56d0a5968d5a23fd6af57718c7597 + languageName: node + linkType: hard + +"string-width@npm:^4.1.0, string-width@npm:^4.2.0": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: ^4.0.0 + checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + languageName: node + linkType: hard + +"supports-color@npm:^8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: ^4.0.0 + checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 + languageName: node + linkType: hard + +"throttleit@npm:^1.0.0": + version: 1.0.0 + resolution: "throttleit@npm:1.0.0" + checksum: 1b2db4d2454202d589e8236c07a69d2fab838876d370030ebea237c34c0a7d1d9cf11c29f994531ebb00efd31e9728291042b7754f2798a8352ec4463455b659 + languageName: node + linkType: hard + +"through@npm:^2.3.8": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd + languageName: node + linkType: hard + +"tmp@npm:~0.2.1": + version: 0.2.1 + resolution: "tmp@npm:0.2.1" + dependencies: + rimraf: ^3.0.0 + checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e + languageName: node + linkType: hard + +"tough-cookie@npm:~2.5.0": + version: 2.5.0 + resolution: "tough-cookie@npm:2.5.0" + dependencies: + psl: ^1.1.28 + punycode: ^2.1.1 + checksum: 16a8cd090224dd176eee23837cbe7573ca0fa297d7e468ab5e1c02d49a4e9a97bb05fef11320605eac516f91d54c57838a25864e8680e27b069a5231d8264977 + languageName: node + linkType: hard + +"tslib@npm:^2.1.0": + version: 2.4.0 + resolution: "tslib@npm:2.4.0" + checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113 + languageName: node + linkType: hard + +"tunnel-agent@npm:^0.6.0": + version: 0.6.0 + resolution: "tunnel-agent@npm:0.6.0" + dependencies: + safe-buffer: ^5.0.1 + checksum: 05f6510358f8afc62a057b8b692f05d70c1782b70db86d6a1e0d5e28a32389e52fa6e7707b6c5ecccacc031462e4bc35af85ecfe4bbc341767917b7cf6965711 + languageName: node + linkType: hard + +"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": + version: 0.14.5 + resolution: "tweetnacl@npm:0.14.5" + checksum: 6061daba1724f59473d99a7bb82e13f211cdf6e31315510ae9656fefd4779851cb927adad90f3b488c8ed77c106adc0421ea8055f6f976ff21b27c5c4e918487 + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 + languageName: node + linkType: hard + +"typescript@npm:^4.1.3": + version: 4.8.2 + resolution: "typescript@npm:4.8.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 7f5b81d0d558c9067f952c7af52ab7f19c2e70a916817929e4a5b256c93990bf3178eccb1ac8a850bc75df35f6781b6f4cb3370ce20d8b1ded92ed462348f628 + languageName: node + linkType: hard + +"typescript@patch:typescript@^4.1.3#~builtin": + version: 4.8.2 + resolution: "typescript@patch:typescript@npm%3A4.8.2#~builtin::version=4.8.2&hash=a1c5e5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 5cb0f02f414f5405f4b0e7ee1fd7fa9177b6a8783c9017b6cad85f56ce4c4f93e0e6f2ce37e863cb597d44227cd009474c9fbd85bf7a50004e5557426cb58079 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.0 + resolution: "universalify@npm:2.0.0" + checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + languageName: node + linkType: hard + +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + languageName: node + linkType: hard + +"verror@npm:1.10.0": + version: 1.10.0 + resolution: "verror@npm:1.10.0" + dependencies: + assert-plus: ^1.0.0 + core-util-is: 1.0.2 + extsprintf: ^1.2.0 + checksum: c431df0bedf2088b227a4e051e0ff4ca54df2c114096b0c01e1cbaadb021c30a04d7dd5b41ab277bcd51246ca135bf931d4c4c796ecae7a4fef6d744ecef36ea + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + 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" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: ~0.2.3 + fd-slicer: ~1.1.0 + checksum: 7f21fe0bbad6e2cb130044a5d1d0d5a0e5bf3d8d4f8c4e6ee12163ce798fee3de7388d22a7a0907f563ac5f9d40f8699a223d3d5c1718da90b0156da6904022b + languageName: node + linkType: hard diff --git a/docs/auth/auth-backend.md b/docs/auth/auth-backend.md deleted file mode 100644 index 6d8b95ac9f..0000000000 --- a/docs/auth/auth-backend.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -id: auth-backend -title: Auth backend -description: Documentation on Auth backend ---- - -## TODO diff --git a/docs/features/kubernetes/authentication.md b/docs/features/kubernetes/authentication.md index 7669d967ed..d44d3a4a64 100644 --- a/docs/features/kubernetes/authentication.md +++ b/docs/features/kubernetes/authentication.md @@ -18,7 +18,7 @@ The providers currently available are divided into server side and client side. ## Server Side Providers These providers authenticate your _application_ with the cluster, meaning anyone that is -logged in into your backstage app will be granted the same access to Kubernetes objects. +logged in into your backstage app will be granted the same access to Kubernetes objects, including guest users. The providers available as server side are: @@ -28,6 +28,33 @@ The providers available as server side are: - `localKubectlProxy` - `serviceAccount` +### Azure + +The Azure server side authentication provider works by authenticating on the server with +the Azure CLI, please note that [Azure AD Authentication][1] is a requirement and has to +be enabled in your AKS cluster, then follow these steps: + +- [Install the Azure CLI][2] in the environment where the backstage application will run. +- Login with your Azure/Microsoft account with `az login` in the server's terminal. +- Go to your AKS cluster's resource page in Azure Console and follow the steps in the + `Connect` tab to set the subscription and get your credentials for `kubectl` integration. +- Configure your cluster to use the `azure` auth provider like this: + +```yaml +kubernetes: + clusterLocatorMethods: + - type: 'config' + clusters: + - name: My AKS cluster + url: ${AZURE_CLUSTER_API_SERVER_ADDRESS} + authProvider: azure + skipTLSVerify: true +``` + +To get the API server address for your Azure cluster, go to the Azure console page for the +cluster resource, go to `Overview` > `Properties` tab > `Networking` section and copy paste +the API server address directly in that `url` field. + ## Client Side Providers These providers authenticate your _user_ with the cluster. Each Backstage user will be @@ -41,3 +68,6 @@ The providers available as client side are: - `google` - `oidc` + +[1]: https://docs.microsoft.com/en-us/azure/aks/managed-aad +[2]: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest diff --git a/docs/features/kubernetes/configuration.md b/docs/features/kubernetes/configuration.md index 0adbec6a82..ec505672b5 100644 --- a/docs/features/kubernetes/configuration.md +++ b/docs/features/kubernetes/configuration.md @@ -413,6 +413,7 @@ rules: - ingresses - statefulsets - limitranges + - daemonsets verbs: - get - list diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index b35ceb907d..17a9029b2d 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -156,16 +156,17 @@ export default async function createPlugin( Here is a list of Open Source custom actions that you can add to your Backstage scaffolder backend: -| Name | Package | Owner | -| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | -| Yeoman | [plugin-scaffolder-backend-module-yeoman](https://www.npmjs.com/package/@backstage/plugin-scaffolder-backend-module-yeoman) | [Backstage](https://backstage.io) | -| Cookiecutter | [plugin-scaffolder-backend-module-cookiecutter](https://www.npmjs.com/package/@backstage/plugin-scaffolder-backend-module-cookiecutter) | [Backstage](https://backstage.io) | -| Rails | [plugin-scaffolder-backend-module-rails](https://www.npmjs.com/package/@backstage/plugin-scaffolder-backend-module-rails) | [Backstage](https://backstage.io) | -| HTTP requests | [scaffolder-backend-module-http-request](https://www.npmjs.com/package/@roadiehq/scaffolder-backend-module-http-request) | [Roadie](https://roadie.io) | -| Utility actions | [scaffolder-backend-module-utils](https://www.npmjs.com/package/@roadiehq/scaffolder-backend-module-utils) | [Roadie](https://roadie.io) | -| AWS cli actions | [scaffolder-backend-module-aws](https://www.npmjs.com/package/@roadiehq/scaffolder-backend-module-aws) | [Roadie](https://roadie.io) | -| Scaffolder .NET Actions | [plugin-scaffolder-dotnet-backend](https://www.npmjs.com/package/@plusultra/plugin-scaffolder-dotnet-backend) | [Alef Carlos](https://github.com/alefcarlos) | -| Scaffolder Git Actions | [plugin-scaffolder-git-actions](https://www.npmjs.com/package/@mdude2314/backstage-plugin-scaffolder-git-actions) | [Drew Hill](https://github.com/arhill05) | -| Azure Pipeline Actions | [scaffolder-backend-module-azure-pipelines](https://www.npmjs.com/package/@parfuemerie-douglas/scaffolder-backend-module-azure-pipelines) | [Parfümerie Douglas](https://github.com/Parfuemerie-Douglas) | +| Name | Package | Owner | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | +| Yeoman | [plugin-scaffolder-backend-module-yeoman](https://www.npmjs.com/package/@backstage/plugin-scaffolder-backend-module-yeoman) | [Backstage](https://backstage.io) | +| Cookiecutter | [plugin-scaffolder-backend-module-cookiecutter](https://www.npmjs.com/package/@backstage/plugin-scaffolder-backend-module-cookiecutter) | [Backstage](https://backstage.io) | +| Rails | [plugin-scaffolder-backend-module-rails](https://www.npmjs.com/package/@backstage/plugin-scaffolder-backend-module-rails) | [Backstage](https://backstage.io) | +| HTTP requests | [scaffolder-backend-module-http-request](https://www.npmjs.com/package/@roadiehq/scaffolder-backend-module-http-request) | [Roadie](https://roadie.io) | +| Utility actions | [scaffolder-backend-module-utils](https://www.npmjs.com/package/@roadiehq/scaffolder-backend-module-utils) | [Roadie](https://roadie.io) | +| AWS cli actions | [scaffolder-backend-module-aws](https://www.npmjs.com/package/@roadiehq/scaffolder-backend-module-aws) | [Roadie](https://roadie.io) | +| Scaffolder .NET Actions | [plugin-scaffolder-dotnet-backend](https://www.npmjs.com/package/@plusultra/plugin-scaffolder-dotnet-backend) | [Alef Carlos](https://github.com/alefcarlos) | +| Scaffolder Git Actions | [plugin-scaffolder-git-actions](https://www.npmjs.com/package/@mdude2314/backstage-plugin-scaffolder-git-actions) | [Drew Hill](https://github.com/arhill05) | +| Azure Pipeline Actions | [scaffolder-backend-module-azure-pipelines](https://www.npmjs.com/package/@parfuemerie-douglas/scaffolder-backend-module-azure-pipelines) | [Parfümerie Douglas](https://github.com/Parfuemerie-Douglas) | +| Azure Repository Actions | [scaffolder-backend-module-azure-repositories](https://www.npmjs.com/package/@parfuemerie-douglas/scaffolder-backend-module-azure-repositories) | [Parfümerie Douglas](https://github.com/Parfuemerie-Douglas) | Have fun! 🚀 diff --git a/docs/features/software-templates/writing-custom-step-layouts.md b/docs/features/software-templates/writing-custom-step-layouts.md new file mode 100644 index 0000000000..69d61b93dc --- /dev/null +++ b/docs/features/software-templates/writing-custom-step-layouts.md @@ -0,0 +1,89 @@ +--- +id: writing-custom-step-layouts +title: Writing custom step layouts +description: How to override the default step form layout +--- + +Every form in each step rendered in the frontend uses the default form layout from [react-json-schema-form](https://react-jsonschema-form.readthedocs.io/). It is possible to override this behaviour by supplying a `ui:ObjectFieldTemplate` property for a particular step: + +```yaml +parameters: + - title: Fill in some steps + ui:ObjectFieldTemplate: TwoColumn +``` + +This is the same [field](https://react-jsonschema-form.readthedocs.io/en/latest/advanced-customization/custom-templates/#objectfieldtemplate) used by [react-json-schema-form](https://react-jsonschema-form.readthedocs.io/) but we need to add a couple of steps to ensure that the string value of `TwoColumn` above is resolved to a react component. + +## Registering a React component as a custom step layout + +The [createScaffolderLayout](https://backstage.io/docs/reference/plugin-scaffolder.createscaffolderlayout) function is used to mark a component as a custom step layout: + +```ts +import React from 'react'; +import { + createScaffolderLayout, + LayoutTemplate, + scaffolderPlugin, +} from '@backstage/plugin-scaffolder'; +import { Grid } from '@material-ui/core'; + +const TwoColumn: LayoutTemplate = ({ properties, description, title }) => { + const mid = Math.ceil(properties.length / 2); + + return ( + <> +

{title}

+

In two column layout!!

+ + {properties.slice(0, mid).map(prop => ( + + {prop.content} + + ))} + {properties.slice(mid).map(prop => ( + + {prop.content} + + ))} + + {description} + + ); +}; + +export const TwoColumnLayout = scaffolderPlugin.provide( + createScaffolderLayout({ + name: 'TwoColumn', + component: TwoColumn, + }), +); +``` + +After you have registered your component as a custom layout then you need to provide the `layouts` to the `ScaffolderPage`: + +```tsx +import { MyCustomFieldExtension } from './scaffolder/MyCustomExtension'; +import { TwoColumnLayout } from './components/scaffolder/customScaffolderLayouts'; + +const routes = ( + + ... + }> + + + + + ... + +); +``` + +## Using the custom step layout + +Any component that has been passed to the `ScaffolderPage` as children of the `ScaffolderLayouts` component can be used as a `ui:ObjectFieldTemplate` in your template file: + +```yaml +parameters: + - title: Fill in some steps + ui:ObjectFieldTemplate: TwoColumn +``` diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md index a1cd50f271..826121bd02 100644 --- a/docs/features/software-templates/writing-templates.md +++ b/docs/features/software-templates/writing-templates.md @@ -258,6 +258,10 @@ use `ui:widget: password` or set some properties of `ui:backstage`: show: false # won't print any info about 'hidden' property on Review Step ``` +### Custom step layouts + +If you find that the default layout of the form used in a particular step does not meet your needs then you can supply your own [custom step layout](./writing-custom-step-layouts.md). + ### Remove sections or fields based on feature flags Based on feature flags you can hide sections or even only fields of your diff --git a/docs/getting-started/configuration.md b/docs/getting-started/configuration.md index 3413f32875..9ce65294ad 100644 --- a/docs/getting-started/configuration.md +++ b/docs/getting-started/configuration.md @@ -165,7 +165,7 @@ Open `packages/app/src/App.tsx` and below the last `import` line, add: ```typescript import { githubAuthApiRef } from '@backstage/core-plugin-api'; -import { SignInProviderConfig, SignInPage } from '@backstage/core-components'; +import { SignInPage } from '@backstage/core-components'; ``` Search for `const app = createApp({` in this file, and below `apis,` add: diff --git a/docs/permissions/frontend-integration.md b/docs/permissions/frontend-integration.md new file mode 100644 index 0000000000..d7302f9083 --- /dev/null +++ b/docs/permissions/frontend-integration.md @@ -0,0 +1,38 @@ +--- +id: frontend-integration +title: Frontend Integration +description: How to place your Backstage frontend components behind authorization +--- + +Now that we understand how to [author a permission policy](./writing-a-policy.md), let's consider cases where we'll need to supplement our policy with authorization checks on the frontend. + +In most cases, actual functionality that live within various plugins will already have been placed behind authorization by the plugin authors. The permission backend will use your permission policy to return an authorization result, and the plugin frontend will correspondingly show/hide/disable the relevant UI component. + +However, there are some cases where the integrator needs to supplement the policy on the frontend. One example is app level routing. + +If your Backstage permission policy may return a `DENY` for users requesting the `catalogEntityCreatePermission`, it may make sense, for example, to remove access to the `/catalog-import` page entirely: + +```diff +// packages/app/src/App.tsx + +... + ++ import { RequirePermission } from '@backstage/plugin-permission-react'; ++ import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common'; + +... + +- } /> ++ ++ ++ ++ } ++ /> +... + +``` + +With this change, users who are denied the `catalogEntityCreatePermission` should now be unable to access the `/catalog-import` page. diff --git a/docs/permissions/plugin-authors/02-adding-a-basic-permission-check.md b/docs/permissions/plugin-authors/02-adding-a-basic-permission-check.md index c73fe800b4..124605cb66 100644 --- a/docs/permissions/plugin-authors/02-adding-a-basic-permission-check.md +++ b/docs/permissions/plugin-authors/02-adding-a-basic-permission-check.md @@ -20,15 +20,18 @@ Let's navigate to the file `plugins/todo-list-common/src/permissions.ts` and add - export const tempExamplePermission = createPermission({ - name: 'temp.example.noop', - attributes: {}, -+ export const todoListCreate = createPermission({ ++ export const todoListCreatePermission = createPermission({ + name: 'todo.list.create', + attributes: { action: 'create' }, }); + +- export const todoListPermissions = [tempExamplePermission]; ++ export const todoListPermissions = [todoListCreatePermission]; ``` For this tutorial, we've automatically exported all permissions from this file (see `plugins/todo-list-common/src/index.ts`). -> Note: All permissions authorized by your plugin should be exported from a ["common-library" package](https://backstage.io/docs/local-dev/cli-build-system#package-roles). This allows Backstage integrators to reference them in frontend components and permission policies. +> Note: We use a separate `todo-list-common` package since all permissions authorized by your plugin should be exported from a ["common-library" package](https://backstage.io/docs/local-dev/cli-build-system#package-roles). This allows Backstage integrators to reference them in frontend components and permission policies. ## Authorizing using the new permission @@ -47,7 +50,7 @@ Edit `plugins/todo-list-backend/src/service/router.ts`: - import { InputError } from '@backstage/errors'; + import { InputError, NotAllowedError } from '@backstage/errors'; + import { PermissionEvaluator, AuthorizeResult } from '@backstage/plugin-permission-common'; -+ import { todoListCreate } from '@internal/plugin-todo-list-common'; ++ import { todoListCreatePermission } from '@internal/plugin-todo-list-common'; ... @@ -72,7 +75,7 @@ Edit `plugins/todo-list-backend/src/service/router.ts`: const user = token ? await identity.authenticate(token) : undefined; author = user?.identity.userEntityRef; + const decision = ( -+ await permissions.authorize([{ permission: todoListCreate }], { ++ await permissions.authorize([{ permission: todoListCreatePermission }], { + token, + }) + )[0]; @@ -135,7 +138,7 @@ In order to test the logic above, the integrators of your backstage instance nee + PolicyQuery, } from '@backstage/plugin-permission-node'; + import { isPermission } from '@backstage/plugin-permission-common'; -+ import { todoListCreate } from '@internal/plugin-todo-list-common'; ++ import { todoListCreatePermission } from '@internal/plugin-todo-list-common'; class TestPermissionPolicy implements PermissionPolicy { - async handle(): Promise { @@ -143,7 +146,7 @@ In order to test the logic above, the integrators of your backstage instance nee + request: PolicyQuery, + user?: BackstageIdentityResponse, + ): Promise { -+ if (isPermission(request.permission, todoListCreate)) { ++ if (isPermission(request.permission, todoListCreatePermission)) { + return { + result: AuthorizeResult.DENY, + }; @@ -160,7 +163,7 @@ Now the frontend should show an error whenever you try to create a new Todo item Let's flip the result back to `ALLOW` before moving on. ```diff - if (isPermission(request.permission, todoListCreate)) { + if (isPermission(request.permission, todoListCreatePermission)) { return { - result: AuthorizeResult.DENY, + result: AuthorizeResult.ALLOW, diff --git a/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md b/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md index a76518b202..5bace9ad7b 100644 --- a/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md +++ b/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md @@ -15,27 +15,30 @@ Let's add a new permission to the file `plugins/todo-list-common/src/permissions + export const TODO_LIST_RESOURCE_TYPE = 'todo-item'; + - export const todoListCreate = createPermission({ + export const todoListCreatePermission = createPermission({ name: 'todo.list.create', attributes: { action: 'create' }, }); + -+ export const todoListUpdate = createPermission({ ++ export const todoListUpdatePermission = createPermission({ + name: 'todo.list.update', + attributes: { action: 'update' }, + resourceType: TODO_LIST_RESOURCE_TYPE, + }); + +- export const todoListPermissions = [todoListCreatePermission]; ++ export const todoListPermissions = [todoListCreatePermission, todoListUpdatePermission]; ``` -Notice that unlike `todoListCreate`, the `todoListUpdate` permission contains a `resourceType` field. This field indicates to the permission framework that this permission is intended to be authorized in the context of a resource with type `'todo-item'`. You can use whatever string you like as the resource type, as long as you use the same value consistently for each type of resource. +Notice that unlike `todoListCreatePermission`, the `todoListUpdatePermission` permission contains a `resourceType` field. This field indicates to the permission framework that this permission is intended to be authorized in the context of a resource with type `'todo-item'`. You can use whatever string you like as the resource type, as long as you use the same value consistently for each type of resource. ## Setting up authorization for the update permission To start, let's edit `plugins/todo-list-backend/src/service/router.ts` in the same manner as we did in the previous section: ```diff -- import { todoListCreate } from '@internal/plugin-todo-list-common'; -+ import { todoListCreate, todoListUpdate } from '@internal/plugin-todo-list-common'; +- import { todoListCreatePermission } from '@internal/plugin-todo-list-common'; ++ import { todoListCreatePermission, todoListUpdatePermission } from '@internal/plugin-todo-list-common'; ... @@ -49,7 +52,7 @@ To start, let's edit `plugins/todo-list-backend/src/service/router.ts` in the sa } + const decision = ( + await permissions.authorize( -+ [{ permission: todoListUpdate, resourceRef: req.body.id }], ++ [{ permission: todoListUpdatePermission, resourceRef: req.body.id }], + { + token, + }, @@ -119,6 +122,7 @@ Now, let's create the new endpoint by editing `plugins/todo-list-backend/src/ser - `getResources`: a function that accepts an array of `resourceRefs` in the same format you expect to be passed to `authorize`, and returns an array of the corresponding resources. - `resourceType`: the same value used in the permission rule above. +- `permissions`: the list of permissions that your plugin accepts. - `rules`: an array of all the permission rules you want to support in conditional decisions. ```diff @@ -127,7 +131,7 @@ Now, let's create the new endpoint by editing `plugins/todo-list-backend/src/ser - import { add, getAll, update } from './todos'; + import { add, getAll, getTodo, update } from './todos'; + import { createPermissionIntegrationRouter } from '@backstage/plugin-permission-node'; -+ import { TODO_LIST_RESOURCE_TYPE } from '@internal/plugin-todo-list-common'; ++ import { TODO_LIST_RESOURCE_TYPE, todoListPermissions } from '@internal/plugin-todo-list-common'; + import { rules } from './rules'; export async function createRouter( @@ -140,6 +144,7 @@ Now, let's create the new endpoint by editing `plugins/todo-list-backend/src/ser + return resourceRefs.map(getTodo); + }, + resourceType: TODO_LIST_RESOURCE_TYPE, ++ permissions: todoListPermissions, + rules: Object.values(rules), + }); @@ -196,10 +201,10 @@ Let's go back to the permission policy's handle function and try to authorize ou PolicyQuery, } from '@backstage/plugin-permission-node'; import { isPermission } from '@backstage/plugin-permission-common'; -- import { todoListCreate } from '@internal/plugin-todo-list-common'; +- import { todoListCreatePermission } from '@internal/plugin-todo-list-common'; + import { -+ todoListCreate, -+ todoListUpdate, ++ todoListCreatePermission, ++ todoListUpdatePermission, + TODO_LIST_RESOURCE_TYPE, + } from '@internal/plugin-todo-list-common'; + import { @@ -209,13 +214,13 @@ Let's go back to the permission policy's handle function and try to authorize ou ... - if (isPermission(request.permission, todoListCreate)) { + if (isPermission(request.permission, todoListCreatePermission)) { return { result: AuthorizeResult.ALLOW, }; } -+ if (isPermission(request.permission, todoListUpdate)) { ++ if (isPermission(request.permission, todoListUpdatePermission)) { + return createTodoListConditionalDecision( + request.permission, + todoListConditions.isOwner(user?.identity.userEntityRef), diff --git a/docs/permissions/plugin-authors/04-authorizing-access-to-paginated-data.md b/docs/permissions/plugin-authors/04-authorizing-access-to-paginated-data.md index 582553832b..c813ba594c 100644 --- a/docs/permissions/plugin-authors/04-authorizing-access-to-paginated-data.md +++ b/docs/permissions/plugin-authors/04-authorizing-access-to-paginated-data.md @@ -42,12 +42,12 @@ Let's add another permission to the plugin. export const TODO_LIST_RESOURCE_TYPE = 'todo-item'; - export const todoListCreate = createPermission({ + export const todoListCreatePermission = createPermission({ name: 'todo.list.create', attributes: { action: 'create' }, }); - export const todoListUpdate = createPermission({ + export const todoListUpdatePermission = createPermission({ name: 'todo.list.update', attributes: { action: 'update' }, resourceType: TODO_LIST_RESOURCE_TYPE, @@ -58,6 +58,9 @@ Let's add another permission to the plugin. + attributes: { action: 'read' }, + resourceType: TODO_LIST_RESOURCE_TYPE, + }); + +- export const todoListPermissions = [todoListCreatePermission, todoListUpdatePermission]; ++ export const todoListPermissions = [todoListCreatePermission, todoListUpdatePermission, todoListReadPermission]; ``` ## Using conditional policy decisions @@ -126,18 +129,18 @@ Let's update our permission policy to return a conditional result whenever a `to ... import { - todoListCreate, - todoListUpdate, -+ todoListRead, + todoListCreatePermission, + todoListUpdatePermission, ++ todoListReadPermission, TODO_LIST_RESOURCE_TYPE, } from '@internal/plugin-todo-list-common'; ... -- if (isPermission(request.permission, todoListUpdate)) { +- if (isPermission(request.permission, todoListUpdatePermission)) { + if ( -+ isPermission(request.permission, todoListUpdate) || -+ isPermission(request.permission, todoListRead) ++ isPermission(request.permission, todoListUpdatePermission) || ++ isPermission(request.permission, todoListReadPermission) + ) { return createTodoListConditionalDecision( request.permission, diff --git a/docs/permissions/plugin-authors/05-frontend-authorization.md b/docs/permissions/plugin-authors/05-frontend-authorization.md new file mode 100644 index 0000000000..dc4df7839c --- /dev/null +++ b/docs/permissions/plugin-authors/05-frontend-authorization.md @@ -0,0 +1,167 @@ +--- +id: 05-frontend-authorization +title: 5. Frontend Components with Authorization +description: Placing frontend components behind authorization +--- + +In the previous sections, we learned how to protect our plugin's backend API routes with the permission framework. Most routes that return some data to be displayed (such as our `GET /todos` route) need no additional changes on the frontend, as the backend will simply return an empty list or a `404`. However, for UI elements that trigger a mutative action, it's common practice to hide or disable them when a user doesn't have permission. + +Take, for example, the "Add" button in our todo list application. When a user clicks this button, the frontend makes a `POST` request to the `/todos` route of our backend. If a user tries to add a todo but is not authorized, they will have no way of knowing this until they perform the action and are faced with an error. This is a poor user experience. We can do better by disabling the add button. + +> Note: Placing frontend components behind authorization cannot take the place of placing your backend routes behind authorization. Authorization checks on the frontend should be used in _addition_ to the corresponding backend authorization, as an improvement to the user experience. If you do not place your backend route behind authorization, a malicious actor can still send a request to the route even if you disabled the corresponding frontend component. + +## Using `usePermission` + +Let's start by adding the packages we will need: + +``` +$ yarn workspace @internal/plugin-todo-list \ + add @backstage/plugin-permission-react @internal/plugin-todo-list-common +``` + +Let's make the following changes in `plugins/todo-list/src/components/TodoListPage/TodoListPage.tsx`: + +```diff +... + + import { + alertApiRef, + discoveryApiRef, + fetchApiRef, + useApi, + } from '@backstage/core-plugin-api'; ++ import { usePermission } from '@backstage/plugin-permission-react'; ++ import { todoListCreatePermission } from '@internal/plugin-todo-list-common'; + +... + + function AddTodo({ onAdd }: { onAdd: (title: string) => any }) { + const title = useRef(''); ++ const { loading: loadingPermission, allowed: canAddTodo } = usePermission({ permission: todoListCreatePermission }); + + return ( + <> + Add todo + + (title.current = e.target.value)} + /> +- ++ {!loadingPermission && ( ++ ++ )} + + + ); + } + +... +``` + +Here we are using the [`usePermission` hook](https://backstage.io/docs/reference/plugin-permission-react.usepermission) to communicate with the permission policy and receive a decision on whether this user is authorized to create a todo list item. + +It's really that simple! Let's change our policy to test the disabled button: + +```diff +// packages/backend/src/plugins/permission.ts + +... + + if (isPermission(request.permission, todoListCreatePermission)) { + return { +- result: AuthorizeResult.ALLOW, ++ result: AuthorizeResult.DENY, + }; + } + +... +``` + +And now you should see that you are not able to create a todo item from the frontend! + +## Using `RequirePermission` + +Providing a disabled state can be a helpful signal to users, but there may be cases where hiding the element is preferred. For such cases, you can use the provided [`RequirePermission` component](https://backstage.io/docs/reference/plugin-permission-react.requirepermission): + +```diff +// plugins/todo-list/src/components/TodoListPage/TodoListPage.tsx + +... + + import { + alertApiRef, + discoveryApiRef, + fetchApiRef, + useApi, + } from '@backstage/core-plugin-api'; +- import { usePermission } from '@backstage/plugin-permission-react'; ++ import { RequirePermission } from '@backstage/plugin-permission-react'; + import { todoListCreatePermission } from '@internal/plugin-todo-list-common'; + +... + + export const TodoListPage = () => { + +... + + +- +- +- ++ ++ ++ ++ ++ + + + + + +... + + + function AddTodo({ onAdd }: { onAdd: (title: string) => any }) { + const title = useRef(''); +- const { loading: loadingPermission, allowed: canAddTodo } = usePermission({ permission: todoListCreatePermission }); + + return ( + <> + Add todo + + (title.current = e.target.value)} + /> +- {!loadingPermission && ( +- +- )} ++ + + + ); + } + +... +``` + +Now you should find that the component for adding a todo list item does not render at all. Success! diff --git a/docs/plugins/backend-plugin.md b/docs/plugins/backend-plugin.md index c6f4a50e60..3eddb9e1c2 100644 --- a/docs/plugins/backend-plugin.md +++ b/docs/plugins/backend-plugin.md @@ -13,10 +13,10 @@ A new, bare-bones backend plugin package can be created by issuing the following command in your Backstage repository root: ```sh -yarn create-plugin --backend +yarn new --select backend-plugin ``` -Please also see the `--help` flag for the `create-plugin` command for some +Please also see the `--help` flag for the `new` command for some further options that are available, notably the `--scope` and `--no-private` flags that control naming and publishing of the newly created package. Your repo root `package.json` will probably also have some default values already set up diff --git a/docs/releases/v1.6.0.md b/docs/releases/v1.6.0.md new file mode 100644 index 0000000000..a1ece6bf94 --- /dev/null +++ b/docs/releases/v1.6.0.md @@ -0,0 +1,60 @@ +--- +id: v1.6.0 +title: v1.6.0 +description: Backstage Release v1.6.0 +--- + +These are the release notes for the v1.6.0 release of [Backstage](https://backstage.io/). + +A huge thanks to the whole team of maintainers and contributors as well as the amazing Backstage Community for the hard work in getting this release developed and done. + +## Highlights + +### Moved to `swc` for transpilation + +We’ve replaced `sucrase` with [`swc`](https://swc.rs/) for transpilation in the Backstage CLI. While `swc` has slightly slower transpilation times, it’s a library backed by a larger community, and allows us to take advantage of [React Refresh](https://www.npmjs.com/package/react-refresh) out of the box. There’s a few things that could possibly break installations of Backstage and compilation, you can read more about it in the [changelog](https://github.com/backstage/backstage/blob/515aadf8840591860e4bbdcc7d99cef8f9d7ac3c/docs/releases/v1.6.0-changelog.md#patch-changes-1) + +### React Router Stable Compatibility + +Backstage has for a long time been using React Router version `6.0.0-beta.0`. We adopted this unstable version because v6 had some new features that fit really well with Backstage, particularly relative routing. Because we jumped on this early and unstable version, we knew that we would at some point need a breaking migration to the stable version of React Router v6, which is the point we're at now! + +The migration is controlled by each app, meaning this release will not force you to migrate straight away, you can do so at your own pace. Check out the [migration guide](https://backstage.io/docs/tutorials/react-router-stable-migration) for all you need to know! + +### Yarn 3 Support + +It is now possible to migrate Backstage projects to use Yarn 3. See the [migration guide](https://backstage.io/docs/tutorials/yarn-migration) for more information. Migrating to Yarn 3 is optional, and Backstage projects created with `@backstage/create-app` will still use classic Yarn by default. + +### New plugin: `@backstage/plugin-user-settings-backend` + +The `user-settings` plugin now has an associated backend. This allows for the persistence of settings in your database, essentially in the form of a basic per-user key-value JSON store. + +As this backend was added, `user-settings` also gained a `UserSettingsStore` class that implements the `storageApiRef` Utility API. If you install the backend as well as this frontend API, your starred entities and other storage-API-based features will no longer just be persisted in your browser’s local storage, but centrally so that all your devices can leverage them. + +Contributed by [@dschwank](https://github.com/dschwank) in [#13570](https://github.com/backstage/backstage/pull/13570) + +### New plugin: `@backstage/plugin-playlist` + +This plugin can be used to create custom collections of Entities that can be shared throughout Backstage or for private usage. + +Contributed by [@kuangp](https://github.com/kuangp) in [#12870](https://github.com/backstage/backstage/pull/12870) + +## Security Fixes + +Be sure to upgrade to the latest version of `@backstage/plugin-scaffolder-backend`, as it contains an explicit bump of a transitive dependency where a vulnerability was discovered. If you subscribe to CVE notifications you will already have received this update. + +## Upgrade path + +We recommend that you keep your Backstage project up to date with this latest release. For more guidance on how to upgrade, check out the documentation for [keeping Backstage updated](https://backstage.io/docs/getting-started/keeping-backstage-updated). + +## Links and References + +Below you can find a list of links and references to help you learn about and start using this new release. + +- [Backstage official website](https://backstage.io/), [documentation](https://backstage.io/docs/), and [getting started guide](https://backstage.io/docs/getting-started/) +- [GitHub repository](https://github.com/backstage/backstage) +- Backstage's [versioning and support policy](https://backstage.io/docs/overview/versioning-policy) +- [Community Discord](https://discord.gg/bFESRKVt) for discussions and support +- [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.6.0-changelog.md) +- Backstage [Demos](https://backstage.io/demos), [Blog](https://backstage.io/blog), [Roadmap](https://backstage.io/docs/overview/roadmap) and [Plugins](https://backstage.io/plugins) + +Sign up for our [newsletter](https://mailchi.mp/spotify/backstage-community) if you want to be informed about what is happening in the world of Backstage. diff --git a/microsite/pages/en/live.js b/microsite/pages/en/live.js index 2483b2f8bf..43b5a0eb67 100644 --- a/microsite/pages/en/live.js +++ b/microsite/pages/en/live.js @@ -34,7 +34,7 @@ const Background = props => { diff --git a/microsite/sidebars.json b/microsite/sidebars.json index ba35f8b76b..f00b7b2ee1 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -1,6 +1,7 @@ { "releases": { "Release Notes": [ + "releases/v1.6.0", "releases/v1.5.0", "releases/v1.4.0", "releases/v1.3.0", @@ -96,6 +97,7 @@ "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" ] }, @@ -275,7 +277,6 @@ ] }, "auth/identity-resolver", - "auth/auth-backend", "auth/oauth", "auth/add-auth-provider", "auth/troubleshooting", @@ -286,6 +287,7 @@ "permissions/concepts", "permissions/getting-started", "permissions/writing-a-policy", + "permissions/frontend-integration", "permissions/custom-rules", { "type": "subcategory", @@ -294,7 +296,8 @@ "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/04-authorizing-access-to-paginated-data", + "permissions/plugin-authors/05-frontend-authorization" ] } ], diff --git a/mkdocs.yml b/mkdocs.yml index 0d386e63fa..8c86ae095d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -64,6 +64,7 @@ nav: - Writing Templates: 'features/software-templates/writing-templates.md' - Builtin Actions: 'features/software-templates/builtin-actions.md' - Writing Custom Actions: 'features/software-templates/writing-custom-actions.md' + - Writing Custom Step Layouts: 'features/software-templates/writing-custom-step-layouts.md' - Writing Templates (Legacy): 'features/software-templates/legacy.md' - Migrating from v1alpha1 to v1beta2 templates: 'features/software-templates/migrating-from-v1alpha1-to-v1beta2.md' - Backstage Search: @@ -161,7 +162,6 @@ nav: - OAuth2Proxy: 'auth/oauth2-proxy/provider.md' - Bitbucket: 'auth/bitbucket/provider.md' - Sign in resolvers: 'auth/identity-resolver.md' - - Auth backend: 'auth/auth-backend.md' - OAuth and OpenID Connect: 'auth/oauth.md' - Contributing New Providers: 'auth/add-auth-provider.md' - Troubleshooting Auth: 'auth/troubleshooting.md' diff --git a/package.json b/package.json index 6603958253..31b0c194d2 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "tsc": "tsc", "tsc:full": "backstage-cli repo clean && tsc --skipLibCheck false --incremental false", "clean": "backstage-cli repo clean", - "test": "backstage-cli test", - "test:all": "lerna run test -- --coverage", + "test": "backstage-cli repo test", + "test:all": "backstage-cli repo test --coverage", "lint": "backstage-cli repo lint --since origin/master", "lint:docs": "node ./scripts/check-docs-quality", "lint:all": "backstage-cli repo lint", @@ -26,7 +26,6 @@ "create-plugin": "echo \"use 'yarn new' instead\"", "release": "node scripts/prepare-release.js && changeset version && yarn prettier --write '{packages,plugins}/*/{package.json,CHANGELOG.md}' '.changeset/*.json' && yarn install --no-immutable", "prettier:check": "prettier --check .", - "lerna": "lerna", "storybook": "yarn ./storybook run start", "snyk:test": "npx snyk test --yarn-workspaces --strict-out-of-sync=false", "snyk:test:package": "yarn snyk:test --include", @@ -71,7 +70,6 @@ "eslint-plugin-notice": "^0.9.10", "fs-extra": "10.1.0", "husky": "^8.0.0", - "lerna": "~5.0.0", "lint-staged": "^13.0.0", "minimist": "^1.2.5", "prettier": "^2.2.1", diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 35db38a130..0742d2cb13 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -32,11 +32,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-app-api": "^1.1.0", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-permission-react": "^0.4.5", - "@backstage/theme": "^0.2.16", + "@backstage/core-app-api": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-permission-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1" }, @@ -47,8 +47,8 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@types/node": "^16.11.26", diff --git a/packages/app/package.json b/packages/app/package.json index ae8873a507..5ec6ca4a46 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -7,63 +7,63 @@ }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.6", - "@backstage/catalog-model": "^1.1.1", - "@backstage/cli": "^0.19.0", - "@backstage/config": "^1.0.2", - "@backstage/core-app-api": "^1.1.0", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-airbrake": "^0.3.9", - "@backstage/plugin-apache-airflow": "^0.2.2", - "@backstage/plugin-api-docs": "^0.8.9", - "@backstage/plugin-azure-devops": "^0.2.0", - "@backstage/plugin-azure-functions": "^0.0.0", - "@backstage/plugin-badges": "^0.2.33", - "@backstage/plugin-catalog-common": "^1.0.6", - "@backstage/plugin-catalog-graph": "^0.2.21", - "@backstage/plugin-catalog-import": "^0.8.12", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-circleci": "^0.3.9", - "@backstage/plugin-cloudbuild": "^0.3.9", - "@backstage/plugin-code-coverage": "^0.2.2", - "@backstage/plugin-cost-insights": "^0.11.31", - "@backstage/plugin-dynatrace": "^0.2.0", - "@backstage/plugin-explore": "^0.3.40", - "@backstage/plugin-gcalendar": "^0.3.5", - "@backstage/plugin-gcp-projects": "^0.3.28", - "@backstage/plugin-github-actions": "^0.5.9", - "@backstage/plugin-gocd": "^0.1.15", - "@backstage/plugin-graphiql": "^0.2.41", - "@backstage/plugin-home": "^0.4.25", - "@backstage/plugin-jenkins": "^0.7.8", - "@backstage/plugin-kafka": "^0.3.9", - "@backstage/plugin-kubernetes": "^0.7.2", - "@backstage/plugin-lighthouse": "^0.3.9", - "@backstage/plugin-newrelic": "^0.3.27", - "@backstage/plugin-newrelic-dashboard": "^0.2.2", - "@backstage/plugin-org": "^0.5.9", - "@backstage/plugin-pagerduty": "0.5.2", - "@backstage/plugin-permission-react": "^0.4.5", - "@backstage/plugin-playlist": "^0.1.0", - "@backstage/plugin-rollbar": "^0.4.9", - "@backstage/plugin-scaffolder": "^1.6.0", - "@backstage/plugin-search": "^1.0.2", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/plugin-search-react": "^1.1.0", - "@backstage/plugin-sentry": "^0.4.2", - "@backstage/plugin-shortcuts": "^0.3.1", - "@backstage/plugin-stack-overflow": "^0.1.5", - "@backstage/plugin-tech-insights": "^0.3.0", - "@backstage/plugin-tech-radar": "^0.5.16", - "@backstage/plugin-techdocs": "^1.3.2", - "@backstage/plugin-techdocs-module-addons-contrib": "^1.0.4", - "@backstage/plugin-techdocs-react": "^1.0.4", - "@backstage/plugin-todo": "^0.2.11", - "@backstage/plugin-user-settings": "^0.4.8", - "@backstage/theme": "^0.2.16", - "@internal/plugin-catalog-customized": "0.0.2", + "@backstage/app-defaults": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-airbrake": "workspace:^", + "@backstage/plugin-apache-airflow": "workspace:^", + "@backstage/plugin-api-docs": "workspace:^", + "@backstage/plugin-azure-devops": "workspace:^", + "@backstage/plugin-azure-functions": "workspace:^", + "@backstage/plugin-badges": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", + "@backstage/plugin-catalog-graph": "workspace:^", + "@backstage/plugin-catalog-import": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-circleci": "workspace:^", + "@backstage/plugin-cloudbuild": "workspace:^", + "@backstage/plugin-code-coverage": "workspace:^", + "@backstage/plugin-cost-insights": "workspace:^", + "@backstage/plugin-dynatrace": "workspace:^", + "@backstage/plugin-explore": "workspace:^", + "@backstage/plugin-gcalendar": "workspace:^", + "@backstage/plugin-gcp-projects": "workspace:^", + "@backstage/plugin-github-actions": "workspace:^", + "@backstage/plugin-gocd": "workspace:^", + "@backstage/plugin-graphiql": "workspace:^", + "@backstage/plugin-home": "workspace:^", + "@backstage/plugin-jenkins": "workspace:^", + "@backstage/plugin-kafka": "workspace:^", + "@backstage/plugin-kubernetes": "workspace:^", + "@backstage/plugin-lighthouse": "workspace:^", + "@backstage/plugin-newrelic": "workspace:^", + "@backstage/plugin-newrelic-dashboard": "workspace:^", + "@backstage/plugin-org": "workspace:^", + "@backstage/plugin-pagerduty": "workspace:^", + "@backstage/plugin-permission-react": "workspace:^", + "@backstage/plugin-playlist": "workspace:^", + "@backstage/plugin-rollbar": "workspace:^", + "@backstage/plugin-scaffolder": "workspace:^", + "@backstage/plugin-search": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/plugin-search-react": "workspace:^", + "@backstage/plugin-sentry": "workspace:^", + "@backstage/plugin-shortcuts": "workspace:^", + "@backstage/plugin-stack-overflow": "workspace:^", + "@backstage/plugin-tech-insights": "workspace:^", + "@backstage/plugin-tech-radar": "workspace:^", + "@backstage/plugin-techdocs": "workspace:^", + "@backstage/plugin-techdocs-module-addons-contrib": "workspace:^", + "@backstage/plugin-techdocs-react": "workspace:^", + "@backstage/plugin-todo": "workspace:^", + "@backstage/plugin-user-settings": "workspace:^", + "@backstage/theme": "workspace:^", + "@internal/plugin-catalog-customized": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -82,7 +82,7 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/test-utils": "^1.2.0", + "@backstage/test-utils": "workspace:^", "@rjsf/core": "^3.2.1", "@testing-library/cypress": "^8.0.2", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 65a43b715b..a6c613ded7 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -148,7 +148,7 @@ const AppRouter = app.getRouter(); const routes = ( - + } /> {/* TODO(rubenl): Move this to / once its more mature and components exist */} }> {homePage} diff --git a/packages/app/src/components/scaffolder/customScaffolderLayouts.tsx b/packages/app/src/components/scaffolder/customScaffolderLayouts.tsx index 8dc6e5340a..b23d6e4073 100644 --- a/packages/app/src/components/scaffolder/customScaffolderLayouts.tsx +++ b/packages/app/src/components/scaffolder/customScaffolderLayouts.tsx @@ -28,7 +28,6 @@ const TwoColumn: LayoutTemplate = ({ properties, description, title }) => { return ( <>

{title}

-

In two column layout!!

{left.map(prop => ( diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 07fc3e2725..2878de5aa3 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -33,17 +33,17 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-plugin-api": "^0.1.2", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-permission-node": "^0.6.5", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-permission-node": "workspace:^", "express": "^4.17.1", "express-promise-router": "^4.1.0", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist", diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 166a4eed7a..35e1ccdf10 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -34,12 +34,12 @@ "test:kubernetes": "backstage-cli package test -t KubernetesContainerRunner --no-watch" }, "dependencies": { - "@backstage/cli-common": "^0.1.10", - "@backstage/config": "^1.0.2", - "@backstage/config-loader": "^1.1.4", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/types": "^1.0.0", + "@backstage/cli-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/config-loader": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/types": "workspace:^", "@google-cloud/storage": "^6.0.0", "@keyv/redis": "^2.2.3", "@kubernetes/client-node": "^0.17.0", @@ -94,8 +94,8 @@ } }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/archiver": "^5.1.0", "@types/base64-stream": "^1.0.2", "@types/compression": "^1.7.0", diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 27855c4c30..23652120e2 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -32,11 +32,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-app-api": "^0.2.1", - "@backstage/backend-plugin-api": "^0.1.2" + "@backstage/backend-app-api": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 9c0e6cd53a..4e989c81cf 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -25,12 +25,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-defaults": "^0.1.1", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/plugin-scaffolder-backend": "^1.6.0" + "@backstage/backend-defaults": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/plugin-scaffolder-backend": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 9dbe09ccb5..18c6c842fc 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -33,17 +33,17 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/config": "^1.0.2", - "@backstage/plugin-permission-common": "^0.6.4", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "winston": "^3.2.1", "winston-transport": "^4.5.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist", diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 75d8817465..88b8cf0345 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -32,10 +32,10 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/types": "workspace:^", "@types/luxon": "^3.0.0", "cron": "^2.0.0", "knex": "^2.0.0", @@ -47,8 +47,8 @@ "zod": "^3.9.5" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/cron": "^2.0.0", "wait-for-expect": "^3.0.2" }, diff --git a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts index 16550b2d7d..d61948a929 100644 --- a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts +++ b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts @@ -25,8 +25,6 @@ import { PluginTaskSchedulerImpl, } from './PluginTaskSchedulerImpl'; -jest.useFakeTimers(); - function defer() { let resolve = () => {}; const promise = new Promise(_resolve => { @@ -40,6 +38,15 @@ describe('PluginTaskManagerImpl', () => { ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], }); + beforeAll(async () => { + // Make sure all databases are running before mocking timers, in case of testcontainers + await Promise.all( + databases.eachSupportedId().map(([id]) => databases.init(id)), + ); + + jest.useFakeTimers(); + }, 60_000); + async function init(databaseId: TestDatabaseId) { const knex = await databases.init(databaseId); await migrateBackendTasks(knex); diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 5ebe72096e..b1006b8464 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -34,11 +34,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-app-api": "^0.2.1", - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-plugin-api": "^0.1.2", - "@backstage/cli": "^0.19.0", - "@backstage/config": "^1.0.2", + "@backstage/backend-app-api": "workspace:^", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/config": "workspace:^", "better-sqlite3": "^7.5.0", "knex": "^2.0.0", "msw": "^0.47.0", @@ -48,7 +48,7 @@ "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist", diff --git a/packages/backend-test-utils/src/database/TestDatabases.ts b/packages/backend-test-utils/src/database/TestDatabases.ts index 76d12ce8f1..6ff1a2e6f7 100644 --- a/packages/backend-test-utils/src/database/TestDatabases.ts +++ b/packages/backend-test-utils/src/database/TestDatabases.ts @@ -28,6 +28,13 @@ import { TestDatabaseProperties, } from './types'; +const LARGER_POOL_CONFIG = { + pool: { + min: 0, + max: 50, + }, +}; + /** * Encapsulates the creation of ephemeral test database instances for use * inside unit or integration tests. @@ -164,6 +171,9 @@ export class TestDatabases { new ConfigReader({ backend: { database: { + knexConfig: properties.driver.includes('sqlite') + ? {} + : LARGER_POOL_CONFIG, client: properties.driver, connection: connectionString, }, @@ -203,6 +213,7 @@ export class TestDatabases { new ConfigReader({ backend: { database: { + knexConfig: LARGER_POOL_CONFIG, client: 'pg', connection: { host, port, user, password }, }, @@ -228,6 +239,7 @@ export class TestDatabases { new ConfigReader({ backend: { database: { + knexConfig: LARGER_POOL_CONFIG, client: 'mysql2', connection: { host, port, user, password }, }, diff --git a/packages/backend/package.json b/packages/backend/package.json index 4dfe6747a4..152170492d 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -26,42 +26,42 @@ "build-image": "docker build ../.. -f Dockerfile --tag example-backend" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-app-backend": "^0.3.36", - "@backstage/plugin-auth-backend": "^0.16.0", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/plugin-azure-devops-backend": "^0.3.15", - "@backstage/plugin-azure-functions-backend": "^0.0.0", - "@backstage/plugin-badges-backend": "^0.1.30", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/plugin-code-coverage-backend": "^0.2.2", - "@backstage/plugin-graphql-backend": "^0.1.26", - "@backstage/plugin-jenkins-backend": "^0.1.26", - "@backstage/plugin-kafka-backend": "^0.2.29", - "@backstage/plugin-kubernetes-backend": "^0.7.2", - "@backstage/plugin-permission-backend": "^0.5.11", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-permission-node": "^0.6.5", - "@backstage/plugin-playlist-backend": "^0.1.0", - "@backstage/plugin-proxy-backend": "^0.2.30", - "@backstage/plugin-rollbar-backend": "^0.1.33", - "@backstage/plugin-scaffolder-backend": "^1.6.0", - "@backstage/plugin-scaffolder-backend-module-rails": "^0.4.4", - "@backstage/plugin-search-backend": "^1.0.2", - "@backstage/plugin-search-backend-module-elasticsearch": "^1.0.2", - "@backstage/plugin-search-backend-module-pg": "^0.4.0", - "@backstage/plugin-search-backend-node": "^1.0.2", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/plugin-tech-insights-backend": "^0.5.2", - "@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.20", - "@backstage/plugin-tech-insights-node": "^0.3.4", - "@backstage/plugin-techdocs-backend": "^1.3.0", - "@backstage/plugin-todo-backend": "^0.1.33", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-app-backend": "workspace:^", + "@backstage/plugin-auth-backend": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-azure-devops-backend": "workspace:^", + "@backstage/plugin-azure-functions-backend": "workspace:^", + "@backstage/plugin-badges-backend": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/plugin-code-coverage-backend": "workspace:^", + "@backstage/plugin-graphql-backend": "workspace:^", + "@backstage/plugin-jenkins-backend": "workspace:^", + "@backstage/plugin-kafka-backend": "workspace:^", + "@backstage/plugin-kubernetes-backend": "workspace:^", + "@backstage/plugin-permission-backend": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-permission-node": "workspace:^", + "@backstage/plugin-playlist-backend": "workspace:^", + "@backstage/plugin-proxy-backend": "workspace:^", + "@backstage/plugin-rollbar-backend": "workspace:^", + "@backstage/plugin-scaffolder-backend": "workspace:^", + "@backstage/plugin-scaffolder-backend-module-rails": "workspace:^", + "@backstage/plugin-search-backend": "workspace:^", + "@backstage/plugin-search-backend-module-elasticsearch": "workspace:^", + "@backstage/plugin-search-backend-module-pg": "workspace:^", + "@backstage/plugin-search-backend-node": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/plugin-tech-insights-backend": "workspace:^", + "@backstage/plugin-tech-insights-backend-module-jsonfc": "workspace:^", + "@backstage/plugin-tech-insights-node": "workspace:^", + "@backstage/plugin-techdocs-backend": "workspace:^", + "@backstage/plugin-todo-backend": "workspace:^", "@gitbeaker/node": "^35.1.0", "@octokit/rest": "^19.0.3", "azure-devops-node-api": "^11.0.1", @@ -78,7 +78,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/dockerode": "^3.3.0", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts index 19da3b3ae0..d079b64c28 100644 --- a/packages/backend/src/plugins/scaffolder.ts +++ b/packages/backend/src/plugins/scaffolder.ts @@ -33,5 +33,6 @@ export default async function createPlugin( catalogClient: catalogClient, reader: env.reader, identity: env.identity, + scheduler: env.scheduler, }); } diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index 230c4695bd..fb1de71062 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -32,12 +32,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/errors": "^1.1.1", + "@backstage/catalog-model": "workspace:^", + "@backstage/errors": "workspace:^", "cross-fetch": "^3.1.5" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "msw": "^0.47.0" }, "files": [ diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index a4323cc913..ce2abee20a 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -33,16 +33,16 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/types": "^1.0.0", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/types": "workspace:^", "ajv": "^8.10.0", "json-schema": "^0.4.0", "lodash": "^4.17.21", "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/json-schema": "^7.0.5", "@types/lodash": "^4.14.151", "yaml": "^2.0.0" diff --git a/packages/catalog-model/src/kinds/util.ts b/packages/catalog-model/src/kinds/util.ts index c77b77cb97..40c88b7066 100644 --- a/packages/catalog-model/src/kinds/util.ts +++ b/packages/catalog-model/src/kinds/util.ts @@ -22,9 +22,12 @@ import { KindValidator } from './types'; // exported kind validators have the `KindValidator` signature which is // different. So let's postpone that change until a later time. export function ajvCompiledJsonSchemaValidator(schema: unknown): KindValidator { - const validator = entityKindSchemaValidator(schema); + let validator: undefined | ((data: unknown) => any); return { async check(data) { + if (!validator) { + validator = entityKindSchemaValidator(schema); + } return validator(data) === data; }, }; diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json index c582c2f9c4..3b229071cf 100644 --- a/packages/cli-common/package.json +++ b/packages/cli-common/package.json @@ -32,7 +32,7 @@ "start": "backstage-cli package start" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/node": "^16.0.0" }, "files": [ diff --git a/packages/cli/cli-report.md b/packages/cli/cli-report.md index 9a67e8245d..9afd12fb48 100644 --- a/packages/cli/cli-report.md +++ b/packages/cli/cli-report.md @@ -276,7 +276,7 @@ Usage: backstage-cli [--config=] [TestPathPattern] Options: -h, --help - -v, --version + --version --all --automock -b, --bail @@ -289,7 +289,6 @@ Options: --clearMocks --collectCoverage --collectCoverageFrom - --collectCoverageOnlyFrom --color --colors -c, --config @@ -312,6 +311,7 @@ Options: --globalTeardown --globals --haste + --ignoreProjects --init --injectGlobals --json @@ -348,6 +348,7 @@ Options: --selectProjects --setupFiles --setupFilesAfterEnv + --shard --showConfig --silent --skipFilter @@ -365,8 +366,6 @@ Options: --testRunner --testSequencer --testTimeout - --testURL - --timers --transform --transformIgnorePatterns --unmockedModulePathPatterns @@ -391,6 +390,7 @@ Commands: build [options] lint [options] clean + test [options] help [command] ``` @@ -426,6 +426,17 @@ Options: -h, --help ``` +### `backstage-cli repo test` + +``` +Usage: backstage-cli repo test [options] + +Options: + --since + --jest-help + -h, --help +``` + ### `backstage-cli test` ``` @@ -433,7 +444,7 @@ Usage: backstage-cli [--config=] [TestPathPattern] Options: -h, --help - -v, --version + --version --all --automock -b, --bail @@ -446,7 +457,6 @@ Options: --clearMocks --collectCoverage --collectCoverageFrom - --collectCoverageOnlyFrom --color --colors -c, --config @@ -469,6 +479,7 @@ Options: --globalTeardown --globals --haste + --ignoreProjects --init --injectGlobals --json @@ -505,6 +516,7 @@ Options: --selectProjects --setupFiles --setupFilesAfterEnv + --shard --showConfig --silent --skipFilter @@ -522,8 +534,6 @@ Options: --testRunner --testSequencer --testTimeout - --testURL - --timers --transform --transformIgnorePatterns --unmockedModulePathPatterns diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index 9d113989ff..8b6c37bda4 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -27,7 +27,6 @@ const envOptions = { const transformIgnorePattern = [ '@material-ui', - '@rjsf', 'ajv', 'core-js', 'jest-.*', @@ -189,13 +188,13 @@ async function getProjectConfig(targetPath, displayName) { ], '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg|eot|woff|woff2|ttf)$': require.resolve('./jestFileTransform.js'), - '\\.(yaml)$': require.resolve('jest-transform-yaml'), + '\\.(yaml)$': require.resolve('./jestYamlTransform'), }, // A bit more opinionated testMatch: ['**/*.test.{js,jsx,ts,tsx,mjs,cjs}'], - moduleLoader: envOptions.nextTests + runtime: envOptions.nextTests ? require.resolve('./jestCachingModuleLoader') : undefined, @@ -210,16 +209,16 @@ async function getProjectConfig(targetPath, displayName) { const config = Object.assign(options, ...pkgJsonConfigs); - // The config name is a cache key that lets us share the jest cache across projects. - // If no explicit name was configured, generated one based on the configuration. - if (!config.name) { + // The config id is a cache key that lets us share the jest cache across projects. + // If no explicit id was configured, generated one based on the configuration. + if (!config.id) { const configHash = crypto .createHash('md5') .update(version) .update(Buffer.alloc(1)) .update(JSON.stringify(config.transform)) .digest('hex'); - config.name = `backstage_cli_${configHash}`; + config.id = `backstage_cli_${configHash}`; } return config; diff --git a/packages/cli/config/jestFileTransform.js b/packages/cli/config/jestFileTransform.js index bdd29fc296..d003c5b567 100644 --- a/packages/cli/config/jestFileTransform.js +++ b/packages/cli/config/jestFileTransform.js @@ -21,7 +21,8 @@ module.exports = { const assetFilename = JSON.stringify(path.basename(filename)); if (filename.match(/\.icon\.svg$/)) { - return `const React = require('react'); + return { + code: `const React = require('react'); const SvgIcon = require('@material-ui/core/SvgIcon').default; module.exports = { __esModule: true, @@ -34,9 +35,10 @@ module.exports = { children: ${assetFilename} }) }) - };`; + };`, + }; } - return `module.exports = ${assetFilename};`; + return { code: `module.exports = ${assetFilename};` }; }, }; diff --git a/packages/cli/config/jestSucraseTransform.js b/packages/cli/config/jestSucraseTransform.js index d0400f4f3b..99ebc04877 100644 --- a/packages/cli/config/jestSucraseTransform.js +++ b/packages/cli/config/jestSucraseTransform.js @@ -64,10 +64,10 @@ function createTransformer(config) { } // We only return the `map` result if source maps are enabled, as they // have a negative impact on the coverage accuracy. - return code; + return { code }; } - return source; + return { code: source }; }; // TODO: contribute something like this to @sucrase/jest-plugin diff --git a/packages/cli/config/jestSwcTransform.js b/packages/cli/config/jestSwcTransform.js index c87948978d..c44d0fe4b0 100644 --- a/packages/cli/config/jestSwcTransform.js +++ b/packages/cli/config/jestSwcTransform.js @@ -21,7 +21,7 @@ function createTransformer(config) { const swcTransformer = createSwcTransformer(config); const process = (source, filePath, jestOptions) => { if (filePath.endsWith('.js') && !ESM_REGEX.test(source)) { - return source; + return { code: source }; } return swcTransformer.process(source, filePath, jestOptions); diff --git a/packages/cli/config/jestYamlTransform.js b/packages/cli/config/jestYamlTransform.js new file mode 100644 index 0000000000..1235f8a4b7 --- /dev/null +++ b/packages/cli/config/jestYamlTransform.js @@ -0,0 +1,40 @@ +/* + * 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 yaml = require('yaml'); +const crypto = require('crypto'); + +function createTransformer(config) { + const process = source => { + const json = JSON.stringify(yaml.parse(source), null, 2); + return { code: `module.exports = ${json}`, map: null }; + }; + + const getCacheKey = sourceText => { + return crypto + .createHash('md5') + .update(sourceText) + .update(Buffer.alloc(1)) + .update(JSON.stringify(config)) + .update(Buffer.alloc(1)) + .update('1') // increment whenever the transform logic in this file changes + .digest('hex'); + }; + + return { process, getCacheKey }; +} + +module.exports = { createTransformer }; diff --git a/packages/cli/package.json b/packages/cli/package.json index af456cb658..b07f2a0263 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -30,12 +30,12 @@ "backstage-cli": "bin/backstage-cli" }, "dependencies": { - "@backstage/cli-common": "^0.1.10", - "@backstage/config": "^1.0.2", - "@backstage/config-loader": "^1.1.4", - "@backstage/errors": "^1.1.1", - "@backstage/release-manifests": "^0.0.6", - "@backstage/types": "^1.0.0", + "@backstage/cli-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/config-loader": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/release-manifests": "workspace:^", + "@backstage/types": "workspace:^", "@manypkg/get-packages": "^1.1.3", "@octokit/request": "^6.0.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7", @@ -55,7 +55,7 @@ "@swc/core": "^1.2.239", "@swc/helpers": "^0.4.7", "@swc/jest": "^0.2.22", - "@types/jest": "^27", + "@types/jest": "^29.0.0", "@types/webpack-env": "^1.15.2", "@typescript-eslint/eslint-plugin": "^5.9.0", "@typescript-eslint/parser": "^5.9.0", @@ -89,10 +89,10 @@ "handlebars": "^4.7.3", "html-webpack-plugin": "^5.3.1", "inquirer": "^8.2.0", - "jest": "^27.5.1", + "jest": "^29.0.2", "jest-css-modules": "^2.1.0", - "jest-runtime": "^27.5.1", - "jest-transform-yaml": "^1.0.0", + "jest-environment-jsdom": "^29.0.2", + "jest-runtime": "^29.0.2", "json-schema": "^0.4.0", "lodash": "^4.17.21", "mini-css-extract-plugin": "^2.4.2", @@ -129,14 +129,14 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/core-app-api": "^1.1.0", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", - "@backstage/theme": "^0.2.16", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", + "@backstage/theme": "workspace:^", "@types/diff": "^5.0.0", "@types/express": "^4.17.6", "@types/fs-extra": "^9.0.1", diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 8f3317c437..266b4fd9f1 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -72,6 +72,20 @@ export function registerRepoCommand(program: Command) { .action( lazy(() => import('./repo/list-deprecations').then(m => m.command)), ); + + command + .command('test') + .allowUnknownOption(true) // Allows the command to run, but we still need to parse raw args + .option( + '--since ', + 'Only test packages that changed since the specified ref', + ) + .option( + '--jest-help', + 'Show help for Jest CLI options, which are passed through', + ) + .description('Run tests, forwarding args to Jest, defaulting to watch mode') + .action(lazy(() => import('./repo/test').then(m => m.command))); } export function registerScriptCommand(program: Command) { diff --git a/packages/cli/src/commands/repo/test.ts b/packages/cli/src/commands/repo/test.ts new file mode 100644 index 0000000000..578cb15e83 --- /dev/null +++ b/packages/cli/src/commands/repo/test.ts @@ -0,0 +1,134 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Command, OptionValues } from 'commander'; +import { PackageGraph } from '../../lib/monorepo'; +import { paths } from '../../lib/paths'; +import { runCheck } from '../../lib/run'; + +function includesAnyOf(hayStack: string[], ...needles: string[]) { + for (const needle of needles) { + if (hayStack.includes(needle)) { + return true; + } + } + return false; +} + +function removeOptionArg(args: string[], option: string) { + let changed = false; + do { + changed = false; + + const index = args.indexOf(option); + if (index >= 0) { + changed = true; + args.splice(index, 2); + } + const indexEq = args.findIndex(arg => arg.startsWith(`${option}=`)); + if (indexEq >= 0) { + changed = true; + args.splice(indexEq, 1); + } + } while (changed); +} + +export async function command(opts: OptionValues, cmd: Command): Promise { + // all args are forwarded to jest + let parent = cmd; + while (parent.parent) { + parent = parent.parent; + } + const allArgs = parent.args as string[]; + const args = allArgs.slice(allArgs.indexOf('test') + 1); + + // Only include our config if caller isn't passing their own config + if (!includesAnyOf(args, '-c', '--config')) { + args.push('--config', paths.resolveOwn('config/jest.js')); + } + + if (!includesAnyOf(args, '--no-passWithNoTests', '--passWithNoTests=false')) { + args.push('--passWithNoTests'); + } + + // Run in watch mode unless in CI, coverage mode, or running all tests + if ( + !process.env.CI && + !args.includes('--coverage') && + // explicitly no watching + !includesAnyOf(args, '--no-watch', '--watch=false', '--watchAll=false') && + // already watching + !includesAnyOf(args, '--watch', '--watchAll') + ) { + const isGitRepo = () => + runCheck('git', 'rev-parse', '--is-inside-work-tree'); + const isMercurialRepo = () => runCheck('hg', '--cwd', '.', 'root'); + + if ((await isGitRepo()) || (await isMercurialRepo())) { + args.push('--watch'); + } else { + args.push('--watchAll'); + } + } + + if (opts.since) { + removeOptionArg(args, '--since'); + } + + if (opts.since && !args.some(arg => arg.startsWith('--selectProjects'))) { + const packages = await PackageGraph.listTargetPackages(); + const graph = PackageGraph.fromPackages(packages); + const changedPackages = await graph.listChangedPackages({ + ref: opts.since, + }); + + const packageNames = Array.from( + graph.collectPackageNames( + changedPackages.map(pkg => pkg.name), + pkg => pkg.allLocalDependents.keys(), + ), + ); + + if (packageNames.length === 0) { + console.log(`No packages changed since ${opts.since}`); + return; + } + + args.push('--selectProjects', ...packageNames); + } + + // This is the only thing that is not implemented by jest.run(), so we do it here instead + // https://github.com/facebook/jest/blob/cd8828f7bbec6e55b4df5e41e853a5133c4a3ee1/packages/jest-cli/bin/jest.js#L12 + if (!process.env.NODE_ENV) { + (process.env as any).NODE_ENV = 'test'; + } + + // This is to have a consistent timezone for when running tests that involve checking + // the formatting of date/times. + // https://stackoverflow.com/questions/56261381/how-do-i-set-a-timezone-in-my-jest-config + if (!process.env.TZ) { + process.env.TZ = 'UTC'; + } + + // This ensures that the process doesn't exit too early before stdout is flushed + if (args.includes('--jest-help')) { + removeOptionArg(args, '--jest-help'); + args.push('--help'); + (process.stdout as any)._handle.setBlocking(true); + } + + await require('jest').run(args); +} diff --git a/packages/cli/src/commands/test.ts b/packages/cli/src/commands/test.ts index ec1bf8a7a0..b55919b2ce 100644 --- a/packages/cli/src/commands/test.ts +++ b/packages/cli/src/commands/test.ts @@ -78,6 +78,7 @@ export default async (_opts: OptionValues, cmd: Command) => { process.env.TZ = 'UTC'; } + // This ensures that the process doesn't exit too early before stdout is flushed if (args.includes('--help')) { (process.stdout as any)._handle.setBlocking(true); } diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 0d4649fa3f..1974153f02 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -267,7 +267,7 @@ export async function createBackendConfig( paths.targetRunFile ? paths.targetRunFile : paths.targetEntry, ], resolve: { - extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.json'], + extensions: ['.ts', '.mjs', '.js', '.json'], mainFields: ['main'], modules: [paths.rootNodeModules, ...moduleDirs], plugins: [ diff --git a/packages/cli/src/lib/version.ts b/packages/cli/src/lib/version.ts index 1cddf773f4..5a199236f5 100644 --- a/packages/cli/src/lib/version.ts +++ b/packages/cli/src/lib/version.ts @@ -81,6 +81,14 @@ export function createPackageVersionProvider(lockfile?: Lockfile) { ) { return '*'; } + + for (const specifier of ['^', '~', '*']) { + const range = `workspace:${specifier}`; + if (lockfileEntries?.some(entry => entry.range === range)) { + return range; + } + } + const validRanges = lockfileEntries?.filter(entry => semver.satisfies(targetVersion, entry.range), ); diff --git a/packages/cli/src/lib/versioning/Lockfile.test.ts b/packages/cli/src/lib/versioning/Lockfile.test.ts index bad7ab6719..4621b43372 100644 --- a/packages/cli/src/lib/versioning/Lockfile.test.ts +++ b/packages/cli/src/lib/versioning/Lockfile.test.ts @@ -170,7 +170,7 @@ a@^1: integrity: sha512-xyz resolved: "https://my-registry/a-1.0.01.tgz#abc123" -b@2.0.x: +"b@2.0.x, b@^2.0.1": version: 2.0.1 b@^2: @@ -185,7 +185,7 @@ a@^1: integrity: sha512-xyz resolved: "https://my-registry/a-1.0.01.tgz#abc123" -b@2.0.x: +"b@2.0.x, b@^2.0.1": version: 2.0.1 b@^2: @@ -206,6 +206,7 @@ describe('New Lockfile', () => { expect(lockfile.get('a')).toEqual([{ range: '^1', version: '1.0.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' }, ]); expect(lockfile.toString()).toBe(mockANew); diff --git a/packages/cli/src/lib/versioning/Lockfile.ts b/packages/cli/src/lib/versioning/Lockfile.ts index 278778b6a6..016593ea8d 100644 --- a/packages/cli/src/lib/versioning/Lockfile.ts +++ b/packages/cli/src/lib/versioning/Lockfile.ts @@ -122,7 +122,7 @@ export class Lockfile { for (const [key, value] of Object.entries(data)) { if (SPECIAL_OBJECT_KEYS.includes(key)) continue; - const [, name, range] = ENTRY_PATTERN.exec(key) ?? []; + const [, name, ranges] = ENTRY_PATTERN.exec(key) ?? []; if (!name) { throw new Error(`Failed to parse yarn.lock entry '${key}'`); } @@ -132,7 +132,15 @@ export class Lockfile { queries = []; packages.set(name, queries); } - queries.push({ range, version: value.version }); + for (let range of ranges.split(/\s*,\s*/)) { + if (range.startsWith(`${name}@`)) { + range = range.slice(`${name}@`.length); + } + if (range.startsWith('npm:')) { + range = range.slice('npm:'.length); + } + queries.push({ range, version: value.version }); + } } return new Lockfile(path, packages, data, legacy); diff --git a/packages/cli/src/tests/yaml-fixture.yaml b/packages/cli/src/tests/yaml-fixture.yaml new file mode 100644 index 0000000000..e93744d8dc --- /dev/null +++ b/packages/cli/src/tests/yaml-fixture.yaml @@ -0,0 +1,2 @@ +x: + y: 'z' diff --git a/packages/cli/src/tests/yaml.test.ts b/packages/cli/src/tests/yaml.test.ts new file mode 100644 index 0000000000..cb96fdf954 --- /dev/null +++ b/packages/cli/src/tests/yaml.test.ts @@ -0,0 +1,23 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import yaml from './yaml-fixture.yaml'; + +describe('tests', () => { + it('should load yaml', () => { + expect(yaml).toEqual({ x: { y: 'z' } }); + }); +}); diff --git a/packages/cli/templates/default-backend-plugin/package.json.hbs b/packages/cli/templates/default-backend-plugin/package.json.hbs index fcc903b148..0a72a5d415 100644 --- a/packages/cli/templates/default-backend-plugin/package.json.hbs +++ b/packages/cli/templates/default-backend-plugin/package.json.hbs @@ -30,18 +30,18 @@ "dependencies": { "@backstage/backend-common": "{{versionQuery '@backstage/backend-common'}}", "@backstage/config": "{{versionQuery '@backstage/config'}}", - "@types/express": "{{versionQuery '@types/express' '4.17.6'}}", - "express": "{{versionQuery 'express' '4.17.1'}}", + "@types/express": "{{versionQuery '@types/express' '4.17.13'}}", + "express": "{{versionQuery 'express' '4.18.1'}}", "express-promise-router": "{{versionQuery 'express-promise-router' '4.1.0'}}", - "winston": "{{versionQuery 'winston' '3.2.1'}}", + "winston": "{{versionQuery 'winston' '3.8.1'}}", "node-fetch": "{{versionQuery 'node-fetch' '2.6.7'}}", "yn": "{{versionQuery 'yn' '4.0.0'}}" }, "devDependencies": { "@backstage/cli": "{{versionQuery '@backstage/cli'}}", - "@types/supertest": "{{versionQuery '@types/supertest' '2.0.8'}}", - "supertest": "{{versionQuery 'supertest' '4.0.2'}}", - "msw": "{{versionQuery 'msw' '0.46.0'}}" + "@types/supertest": "{{versionQuery '@types/supertest' '2.0.12'}}", + "supertest": "{{versionQuery 'supertest' '6.2.4'}}", + "msw": "{{versionQuery 'msw' '0.47.0'}}" }, "files": [ "dist" diff --git a/packages/cli/templates/default-plugin/package.json.hbs b/packages/cli/templates/default-plugin/package.json.hbs index a1c1245b38..c60ba63f2b 100644 --- a/packages/cli/templates/default-plugin/package.json.hbs +++ b/packages/cli/templates/default-plugin/package.json.hbs @@ -48,7 +48,7 @@ "@testing-library/react": "{{versionQuery '@testing-library/react' '12.1.3'}}", "@testing-library/user-event": "{{versionQuery '@testing-library/user-event' '14.0.0'}}", "@types/node": "{{versionQuery '@types/node' '16.11.26'}}", - "msw": "{{versionQuery 'msw' '0.46.0'}}", + "msw": "{{versionQuery 'msw' '0.47.0'}}", "cross-fetch": "{{versionQuery 'cross-fetch' '3.1.5'}}" }, "files": [ diff --git a/packages/codemods/package.json b/packages/codemods/package.json index 3860c778d6..4be7e5a31c 100644 --- a/packages/codemods/package.json +++ b/packages/codemods/package.json @@ -33,13 +33,13 @@ "backstage-codemods": "bin/backstage-codemods" }, "dependencies": { - "@backstage/cli-common": "^0.1.10", + "@backstage/cli-common": "workspace:^", "chalk": "^4.0.0", "jscodeshift": "^0.13.0", "jscodeshift-add-imports": "^1.0.10" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/jscodeshift": "^0.11.0", "@types/node": "^16.11.26", "commander": "^9.1.0", diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 0dbba441cd..15d622cf5d 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -33,10 +33,10 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/cli-common": "^0.1.10", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/types": "^1.0.0", + "@backstage/cli-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/types": "workspace:^", "@types/json-schema": "^7.0.6", "ajv": "^8.10.0", "chokidar": "^3.5.2", @@ -50,7 +50,7 @@ "yup": "^0.32.9" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/json-schema-merge-allof": "^0.6.0", "@types/mock-fs": "^4.10.0", "@types/node": "^16.11.26", diff --git a/packages/config/package.json b/packages/config/package.json index 81c7760c92..fec1fa88ad 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -32,12 +32,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/types": "^1.0.0", + "@backstage/types": "workspace:^", "lodash": "^4.17.21" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/test-utils": "workspace:^", "@types/node": "^16.0.0" }, "files": [ diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index f7b8d1633e..d3f8f04fc2 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -32,10 +32,10 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/types": "^1.0.0", - "@backstage/version-bridge": "^1.0.1", + "@backstage/config": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/types": "workspace:^", + "@backstage/version-bridge": "workspace:^", "@types/prop-types": "^15.7.3", "prop-types": "^15.7.2", "react-use": "^17.2.4", @@ -48,8 +48,8 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/packages/core-app-api/src/apis/system/ApiProvider.test.tsx b/packages/core-app-api/src/apis/system/ApiProvider.test.tsx index c08674adfe..a6118f0f68 100644 --- a/packages/core-app-api/src/apis/system/ApiProvider.test.tsx +++ b/packages/core-app-api/src/apis/system/ApiProvider.test.tsx @@ -118,9 +118,10 @@ describe('ApiProvider', () => { }).toThrow(/^API context is not available/); }).error, ).toEqual([ - expect.stringMatching( - /^Error: Uncaught \[Error: API context is not available/, - ), + expect.objectContaining({ + detail: new Error('API context is not available'), + type: 'unhandled exception', + }), expect.stringMatching( /^The above error occurred in the component/, ), @@ -133,9 +134,10 @@ describe('ApiProvider', () => { }).toThrow(/^API context is not available/); }).error, ).toEqual([ - expect.stringMatching( - /^Error: Uncaught \[Error: API context is not available/, - ), + expect.objectContaining({ + detail: new Error('API context is not available'), + type: 'unhandled exception', + }), expect.stringMatching( /^The above error occurred in the component/, ), @@ -154,9 +156,10 @@ describe('ApiProvider', () => { }).toThrow('No implementation available for apiRef{x}'); }).error, ).toEqual([ - expect.stringMatching( - /^Error: Uncaught \[Error: No implementation available for apiRef{x}\]/, - ), + expect.objectContaining({ + detail: new Error('No implementation available for apiRef{x}'), + type: 'unhandled exception', + }), expect.stringMatching( /^The above error occurred in the component/, ), @@ -173,9 +176,10 @@ describe('ApiProvider', () => { }).toThrow('No implementation available for apiRef{x}'); }).error, ).toEqual([ - expect.stringMatching( - /^Error: Uncaught \[Error: No implementation available for apiRef{x}\]/, - ), + expect.objectContaining({ + detail: new Error('No implementation available for apiRef{x}'), + type: 'unhandled exception', + }), expect.stringMatching( /^The above error occurred in the component/, ), diff --git a/packages/core-components/package.json b/packages/core-components/package.json index bd0d9af102..2c861c145a 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -32,11 +32,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/theme": "^0.2.16", - "@backstage/version-bridge": "^1.0.1", + "@backstage/config": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/version-bridge": "workspace:^", "@material-table/core": "^3.1.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -78,9 +78,9 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/packages/core-components/src/components/TabbedLayout/TabbedLayout.test.tsx b/packages/core-components/src/components/TabbedLayout/TabbedLayout.test.tsx index b700739a8b..e103fc2f46 100644 --- a/packages/core-components/src/components/TabbedLayout/TabbedLayout.test.tsx +++ b/packages/core-components/src/components/TabbedLayout/TabbedLayout.test.tsx @@ -47,9 +47,11 @@ describe('TabbedLayout', () => { }); expect(error).toEqual([ - expect.stringMatching( - /Child of TabbedLayout must be an TabbedLayout.Route/, - ), + expect.objectContaining({ + detail: new Error( + 'Child of TabbedLayout must be an TabbedLayout.Route', + ), + }), expect.stringMatching( /The above error occurred in the component/, ), diff --git a/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.test.tsx b/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.test.tsx index 361ad123bf..6a16224a02 100644 --- a/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.test.tsx +++ b/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.test.tsx @@ -67,7 +67,9 @@ describe('', () => { }); expect(error).toEqual([ - expect.stringMatching(/^Error: Uncaught \[Error: Bomb\]/), + expect.objectContaining({ + detail: new Error('Bomb'), + }), expect.stringMatching( /^The above error occurred in the component:/, ), diff --git a/packages/core-components/src/layout/ProxiedSignInPage/ProxiedSignInIdentity.test.ts b/packages/core-components/src/layout/ProxiedSignInPage/ProxiedSignInIdentity.test.ts index 3c9b9c3f58..a3f6c185f8 100644 --- a/packages/core-components/src/layout/ProxiedSignInPage/ProxiedSignInIdentity.test.ts +++ b/packages/core-components/src/layout/ProxiedSignInPage/ProxiedSignInIdentity.test.ts @@ -29,7 +29,7 @@ const validBackstageToken = describe('ProxiedSignInIdentity', () => { describe('tokenToExpiry', () => { - beforeEach(() => jest.useFakeTimers('modern')); + beforeEach(() => jest.useFakeTimers()); afterEach(() => jest.useRealTimers()); it('handles undefined', async () => { @@ -56,7 +56,7 @@ describe('ProxiedSignInIdentity', () => { }); describe('ProxiedSignInIdentity', () => { - beforeEach(() => jest.useFakeTimers('modern')); + beforeEach(() => jest.useFakeTimers()); afterEach(() => jest.useRealTimers()); const worker = setupServer(); diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index 8089b94bbf..71372e26f1 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -33,9 +33,9 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/types": "^1.0.0", - "@backstage/version-bridge": "^1.0.1", + "@backstage/config": "workspace:^", + "@backstage/types": "workspace:^", + "@backstage/version-bridge": "workspace:^", "history": "^5.0.0", "prop-types": "^15.7.2", "zen-observable": "^0.8.15" @@ -46,9 +46,9 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/packages/core-plugin-api/src/extensions/extensions.test.tsx b/packages/core-plugin-api/src/extensions/extensions.test.tsx index 0601c01a17..3eca133608 100644 --- a/packages/core-plugin-api/src/extensions/extensions.test.tsx +++ b/packages/core-plugin-api/src/extensions/extensions.test.tsx @@ -117,7 +117,7 @@ describe('extensions', () => { render(); }); screen.getByText('Error in my-plugin'); - expect(errors[0]).toMatch('Test error'); + expect(errors[0]).toMatchObject({ detail: new Error('Test error') }); }); it('should wrap extended component with analytics context', async () => { diff --git a/packages/create-app/package.json b/packages/create-app/package.json index b9251becdd..bb65d3b4ca 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -29,10 +29,10 @@ "clean": "backstage-cli package clean", "prepack": "node scripts/prepack.js", "postpack": "node scripts/postpack.js", - "start": "nodemon --" + "start": "yarn nodemon --" }, "dependencies": { - "@backstage/cli-common": "^0.1.10", + "@backstage/cli-common": "workspace:^", "chalk": "^4.0.0", "commander": "^9.1.0", "fs-extra": "10.1.0", @@ -42,12 +42,13 @@ "recursive-readdir": "^2.2.2" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/fs-extra": "^9.0.1", "@types/inquirer": "^8.1.3", "@types/node": "^16.11.26", "@types/recursive-readdir": "^2.2.0", "mock-fs": "^5.1.1", + "nodemon": "^2.0.2", "ts-node": "^10.0.0" }, "nodemonConfig": { diff --git a/packages/create-app/src/createApp.test.ts b/packages/create-app/src/createApp.test.ts index d339460243..8e7b3bae7d 100644 --- a/packages/create-app/src/createApp.test.ts +++ b/packages/create-app/src/createApp.test.ts @@ -28,17 +28,6 @@ jest.mock('./lib/versions', () => ({ packageVersions: { root: '1.0.0' }, })); -beforeAll(() => { - mockFs({ - [`${__dirname}/package.json`]: '', // required by `findPaths(__dirname)` - 'templates/': mockFs.load(path.resolve(__dirname, '../templates/')), - }); -}); - -afterAll(() => { - mockFs.restore(); -}); - const promptMock = jest.spyOn(inquirer, 'prompt'); const checkPathExistsMock = jest.spyOn(tasks, 'checkPathExistsTask'); const templatingMock = jest.spyOn(tasks, 'templatingTask'); @@ -51,6 +40,17 @@ const moveAppMock = jest.spyOn(tasks, 'moveAppTask'); const buildAppMock = jest.spyOn(tasks, 'buildAppTask'); describe('command entrypoint', () => { + beforeAll(() => { + mockFs({ + [`${__dirname}/package.json`]: '', // required by `findPaths(__dirname)` + 'templates/': mockFs.load(path.resolve(__dirname, '../templates/')), + }); + }); + + afterAll(() => { + mockFs.restore(); + }); + beforeEach(() => { promptMock.mockResolvedValueOnce({ name: 'MyApp', diff --git a/packages/create-app/src/lib/tasks.test.ts b/packages/create-app/src/lib/tasks.test.ts index d2efe81b90..decc89fbd4 100644 --- a/packages/create-app/src/lib/tasks.test.ts +++ b/packages/create-app/src/lib/tasks.test.ts @@ -86,185 +86,191 @@ jest.mock('./versions', () => ({ }, })); -beforeEach(() => { - mockFs({ - 'projects/my-module.ts': '', - 'projects/dir/my-file.txt': '', - 'tmp/mockApp/.gitignore': '', - 'tmp/mockApp/package.json': '', - 'tmp/mockApp/packages/app/package.json': '', - // load templates into mock filesystem - 'templates/': mockFs.load(path.resolve(__dirname, '../../templates/')), - }); -}); - -afterEach(() => { - mockFs.restore(); -}); - -describe('checkAppExistsTask', () => { - it('should do nothing if the directory does not exist', async () => { - const dir = 'projects/'; - const name = 'MyNewApp'; - await expect(checkAppExistsTask(dir, name)).resolves.not.toThrow(); +describe('tasks', () => { + beforeEach(() => { + mockFs({ + 'projects/my-module.ts': '', + 'projects/dir/my-file.txt': '', + 'tmp/mockApp/.gitignore': '', + 'tmp/mockApp/package.json': '', + 'tmp/mockApp/packages/app/package.json': '', + // load templates into mock filesystem + 'templates/': mockFs.load(path.resolve(__dirname, '../../templates/')), + }); }); - it('should throw an error when a file of the same name exists', async () => { - const dir = 'projects/'; - const name = 'my-module.ts'; - await expect(checkAppExistsTask(dir, name)).rejects.toThrow( - 'already exists', - ); + afterEach(() => { + mockFs.restore(); }); - it('should throw an error when a directory of the same name exists', async () => { - const dir = 'projects/'; - const name = 'dir'; - await expect(checkAppExistsTask(dir, name)).rejects.toThrow( - 'already exists', - ); - }); -}); - -describe('checkPathExistsTask', () => { - it('should create a directory at the given path', async () => { - const appDir = 'projects/newProject'; - await expect(checkPathExistsTask(appDir)).resolves.not.toThrow(); - expect(fs.existsSync(appDir)).toBe(true); - }); - - it('should do nothing if a directory of the same name exists', async () => { - const appDir = 'projects/dir'; - await expect(checkPathExistsTask(appDir)).resolves.not.toThrow(); - expect(fs.existsSync(appDir)).toBe(true); - }); - - it('should fail if a file of the same name exists', async () => { - await expect(checkPathExistsTask('projects/my-module.ts')).rejects.toThrow( - 'already exists', - ); - }); -}); - -describe('createTemporaryAppFolderTask', () => { - it('should create a directory at a given path', async () => { - const tempDir = 'projects/tmpFolder'; - await expect(createTemporaryAppFolderTask(tempDir)).resolves.not.toThrow(); - expect(fs.existsSync(tempDir)).toBe(true); - }); - - it('should fail if a directory of the same name exists', async () => { - const tempDir = 'projects/dir'; - await expect(createTemporaryAppFolderTask(tempDir)).rejects.toThrow( - 'file already exists', - ); - }); - - it('should fail if a file of the same name exists', async () => { - const tempDir = 'projects/dir/my-file.txt'; - await expect(createTemporaryAppFolderTask(tempDir)).rejects.toThrow( - 'file already exists', - ); - }); -}); - -describe('buildAppTask', () => { - it('should change to `appDir` and run `yarn install` and `yarn tsc`', async () => { - const mockChdir = jest.spyOn(process, 'chdir'); - const mockExec = child_process.exec as unknown as jest.MockedFunction< - ( - command: string, - callback: (error: null, stdout: string, stderr: string) => void, - ) => void - >; - - // requires callback implementation to support `promisify` wrapper - // https://stackoverflow.com/a/60579617/10044859 - mockExec.mockImplementation((_command, callback) => { - callback(null, 'standard out', 'standard error'); + describe('checkAppExistsTask', () => { + it('should do nothing if the directory does not exist', async () => { + const dir = 'projects/'; + const name = 'MyNewApp'; + await expect(checkAppExistsTask(dir, name)).resolves.not.toThrow(); }); - const appDir = 'projects/dir'; - await expect(buildAppTask(appDir)).resolves.not.toThrow(); - expect(mockChdir).toHaveBeenCalledTimes(2); - expect(mockChdir).toHaveBeenNthCalledWith(1, appDir); - expect(mockChdir).toHaveBeenNthCalledWith(2, appDir); - expect(mockExec).toHaveBeenCalledTimes(2); - expect(mockExec).toHaveBeenNthCalledWith( - 1, - 'yarn install', - expect.any(Function), - ); - expect(mockExec).toHaveBeenNthCalledWith( - 2, - 'yarn tsc', - expect.any(Function), - ); - }); - - it('should fail if project directory does not exist', async () => { - const appDir = 'projects/missingProject'; - await expect(buildAppTask(appDir)).rejects.toThrow( - 'no such file or directory', - ); - }); -}); - -describe('moveAppTask', () => { - const tempDir = 'tmp/mockApp/'; - const id = 'myApp'; - - it('should move all files in the temp dir to the target dir', async () => { - const destination = 'projects/mockApp'; - await moveAppTask(tempDir, destination, id); - expect(fs.existsSync('projects/mockApp/.gitignore')).toBe(true); - expect(fs.existsSync('projects/mockApp/package.json')).toBe(true); - expect(fs.existsSync('projects/mockApp/packages/app/package.json')).toBe( - true, - ); - }); - - it('should fail to move files if destination already exists', async () => { - const destination = 'projects'; - await expect(moveAppTask(tempDir, destination, id)).rejects.toThrow( - 'dest already exists', - ); - }); - - it('should remove temporary files if move succeeded', async () => { - const destination = 'projects/mockApp'; - await moveAppTask(tempDir, destination, id); - expect(fs.existsSync('tmp/mockApp')).toBe(false); - }); - - it('should remove temporary files if move failed', async () => { - const destination = 'projects'; - await expect(moveAppTask(tempDir, destination, id)).rejects.toThrow(); - expect(fs.existsSync('tmp/mockApp')).toBe(false); - }); -}); - -describe('templatingTask', () => { - it('should generate a project populating context parameters', async () => { - const templateDir = 'templates/default-app'; - const destinationDir = 'templatedApp'; - const context = { - name: 'SuperCoolBackstageInstance', - dbTypeSqlite: true, - }; - await templatingTask(templateDir, destinationDir, context); - expect(fs.existsSync('templatedApp/package.json')).toBe(true); - expect(fs.existsSync('templatedApp/.dockerignore')).toBe(true); - await expect(fs.readJson('templatedApp/backstage.json')).resolves.toEqual({ - version: '1.2.3', + it('should throw an error when a file of the same name exists', async () => { + const dir = 'projects/'; + const name = 'my-module.ts'; + await expect(checkAppExistsTask(dir, name)).rejects.toThrow( + 'already exists', + ); + }); + + it('should throw an error when a directory of the same name exists', async () => { + const dir = 'projects/'; + const name = 'dir'; + await expect(checkAppExistsTask(dir, name)).rejects.toThrow( + 'already exists', + ); + }); + }); + + describe('checkPathExistsTask', () => { + it('should create a directory at the given path', async () => { + const appDir = 'projects/newProject'; + await expect(checkPathExistsTask(appDir)).resolves.not.toThrow(); + expect(fs.existsSync(appDir)).toBe(true); + }); + + it('should do nothing if a directory of the same name exists', async () => { + const appDir = 'projects/dir'; + await expect(checkPathExistsTask(appDir)).resolves.not.toThrow(); + expect(fs.existsSync(appDir)).toBe(true); + }); + + it('should fail if a file of the same name exists', async () => { + await expect( + checkPathExistsTask('projects/my-module.ts'), + ).rejects.toThrow('already exists'); + }); + }); + + describe('createTemporaryAppFolderTask', () => { + it('should create a directory at a given path', async () => { + const tempDir = 'projects/tmpFolder'; + await expect( + createTemporaryAppFolderTask(tempDir), + ).resolves.not.toThrow(); + expect(fs.existsSync(tempDir)).toBe(true); + }); + + it('should fail if a directory of the same name exists', async () => { + const tempDir = 'projects/dir'; + await expect(createTemporaryAppFolderTask(tempDir)).rejects.toThrow( + 'file already exists', + ); + }); + + it('should fail if a file of the same name exists', async () => { + const tempDir = 'projects/dir/my-file.txt'; + await expect(createTemporaryAppFolderTask(tempDir)).rejects.toThrow( + 'file already exists', + ); + }); + }); + + describe('buildAppTask', () => { + it('should change to `appDir` and run `yarn install` and `yarn tsc`', async () => { + const mockChdir = jest.spyOn(process, 'chdir'); + const mockExec = child_process.exec as unknown as jest.MockedFunction< + ( + command: string, + callback: (error: null, stdout: string, stderr: string) => void, + ) => void + >; + + // requires callback implementation to support `promisify` wrapper + // https://stackoverflow.com/a/60579617/10044859 + mockExec.mockImplementation((_command, callback) => { + callback(null, 'standard out', 'standard error'); + }); + + const appDir = 'projects/dir'; + await expect(buildAppTask(appDir)).resolves.not.toThrow(); + expect(mockChdir).toHaveBeenCalledTimes(2); + expect(mockChdir).toHaveBeenNthCalledWith(1, appDir); + expect(mockChdir).toHaveBeenNthCalledWith(2, appDir); + expect(mockExec).toHaveBeenCalledTimes(2); + expect(mockExec).toHaveBeenNthCalledWith( + 1, + 'yarn install', + expect.any(Function), + ); + expect(mockExec).toHaveBeenNthCalledWith( + 2, + 'yarn tsc', + expect.any(Function), + ); + }); + + it('should fail if project directory does not exist', async () => { + const appDir = 'projects/missingProject'; + await expect(buildAppTask(appDir)).rejects.toThrow( + 'no such file or directory', + ); + }); + }); + + describe('moveAppTask', () => { + const tempDir = 'tmp/mockApp/'; + const id = 'myApp'; + + it('should move all files in the temp dir to the target dir', async () => { + const destination = 'projects/mockApp'; + await moveAppTask(tempDir, destination, id); + expect(fs.existsSync('projects/mockApp/.gitignore')).toBe(true); + expect(fs.existsSync('projects/mockApp/package.json')).toBe(true); + expect(fs.existsSync('projects/mockApp/packages/app/package.json')).toBe( + true, + ); + }); + + it('should fail to move files if destination already exists', async () => { + const destination = 'projects'; + await expect(moveAppTask(tempDir, destination, id)).rejects.toThrow( + 'dest already exists', + ); + }); + + it('should remove temporary files if move succeeded', async () => { + const destination = 'projects/mockApp'; + await moveAppTask(tempDir, destination, id); + expect(fs.existsSync('tmp/mockApp')).toBe(false); + }); + + it('should remove temporary files if move failed', async () => { + const destination = 'projects'; + await expect(moveAppTask(tempDir, destination, id)).rejects.toThrow(); + expect(fs.existsSync('tmp/mockApp')).toBe(false); + }); + }); + + describe('templatingTask', () => { + it('should generate a project populating context parameters', async () => { + const templateDir = 'templates/default-app'; + const destinationDir = 'templatedApp'; + const context = { + name: 'SuperCoolBackstageInstance', + dbTypeSqlite: true, + }; + await templatingTask(templateDir, destinationDir, context); + expect(fs.existsSync('templatedApp/package.json')).toBe(true); + expect(fs.existsSync('templatedApp/.dockerignore')).toBe(true); + await expect(fs.readJson('templatedApp/backstage.json')).resolves.toEqual( + { + version: '1.2.3', + }, + ); + // catalog was populated with `context.name` + expect( + fs.readFileSync('templatedApp/catalog-info.yaml', 'utf-8'), + ).toContain('name: SuperCoolBackstageInstance'); + // backend dependencies include `sqlite3` from `context.SQLite` + expect( + fs.readFileSync('templatedApp/packages/backend/package.json', 'utf-8'), + ).toContain('sqlite3"'); }); - // catalog was populated with `context.name` - expect( - fs.readFileSync('templatedApp/catalog-info.yaml', 'utf-8'), - ).toContain('name: SuperCoolBackstageInstance'); - // backend dependencies include `sqlite3` from `context.SQLite` - expect( - fs.readFileSync('templatedApp/packages/backend/package.json', 'utf-8'), - ).toContain('sqlite3"'); }); }); diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index a4f8815822..dd4d937db0 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -14,8 +14,8 @@ "tsc": "tsc", "tsc:full": "tsc --skipLibCheck false --incremental false", "clean": "backstage-cli repo clean", - "test": "backstage-cli test", - "test:all": "lerna run test -- --coverage", + "test": "backstage-cli repo test", + "test:all": "backstage-cli repo test --coverage", "lint": "backstage-cli repo lint --since origin/master", "lint:all": "backstage-cli repo lint", "prettier:check": "prettier --check .", diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index d6a5086215..c060cb330c 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -6,6 +6,17 @@ "backstage": { "role": "frontend" }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "clean": "backstage-cli package clean", + "test": "backstage-cli package test", + "lint": "backstage-cli package lint", + "test:e2e": "cross-env PORT=3001 start-server-and-test start http://localhost:3001 cy:dev", + "test:e2e:ci": "cross-env PORT=3001 start-server-and-test start http://localhost:3001 cy:run", + "cy:dev": "cypress open", + "cy:run": "cypress run --browser chrome" + }, "dependencies": { "@backstage/app-defaults": "^{{version '@backstage/app-defaults'}}", "@backstage/catalog-model": "^{{version '@backstage/catalog-model'}}", @@ -37,33 +48,22 @@ "history": "^5.0.0", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-router": "6.0.0-beta.0", - "react-router-dom": "6.0.0-beta.0", - "react-use": "^15.3.3" + "react-router": "^6.3.0", + "react-router-dom": "^6.3.0", + "react-use": "^17.2.4" }, "devDependencies": { "@backstage/test-utils": "^{{version '@backstage/test-utils'}}", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", - "@testing-library/user-event": "^12.0.7", - "@types/node": "^14.14.32", + "@testing-library/user-event": "^14.0.0", + "@types/node": "^16.11.26", "@types/react-dom": "*", "cross-env": "^7.0.0", "cypress": "^9.7.0", "eslint-plugin-cypress": "^2.10.3", "start-server-and-test": "^1.10.11" }, - "scripts": { - "start": "backstage-cli package start", - "build": "backstage-cli package build", - "clean": "backstage-cli package clean", - "test": "backstage-cli package test", - "lint": "backstage-cli package lint", - "test:e2e": "cross-env PORT=3001 start-server-and-test start http://localhost:3001 cy:dev", - "test:e2e:ci": "cross-env PORT=3001 start-server-and-test start http://localhost:3001 cy:run", - "cy:dev": "cypress open", - "cy:run": "cypress run --browser chrome" - }, "browserslist": { "production": [ ">0.2%", diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index c4877263f0..4d5ace5aa4 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -31,7 +31,7 @@ import { AlertDisplay, OAuthRequestDialog } from '@backstage/core-components'; import { createApp } from '@backstage/app-defaults'; import { FlatRoutes } from '@backstage/core-app-api'; import { CatalogGraphPage } from '@backstage/plugin-catalog-graph'; -import { PermissionedRoute } from '@backstage/plugin-permission-react'; +import { RequirePermission } from '@backstage/plugin-permission-react'; import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha'; const app = createApp({ @@ -58,7 +58,7 @@ const AppRouter = app.getRouter(); const routes = ( - + } /> } /> } /> - } + element={ + + + + } /> }> {searchPage} diff --git a/packages/create-app/templates/default-app/packages/app/src/components/Root/LogoFull.tsx b/packages/create-app/templates/default-app/packages/app/src/components/Root/LogoFull.tsx index c7b1c846c4..47e3b73155 100644 --- a/packages/create-app/templates/default-app/packages/app/src/components/Root/LogoFull.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/components/Root/LogoFull.tsx @@ -1,19 +1,3 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import React from 'react'; import { makeStyles } from '@material-ui/core'; diff --git a/packages/create-app/templates/default-app/packages/app/src/components/Root/LogoIcon.tsx b/packages/create-app/templates/default-app/packages/app/src/components/Root/LogoIcon.tsx index 073cf6edad..7eae8c7a0b 100644 --- a/packages/create-app/templates/default-app/packages/app/src/components/Root/LogoIcon.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/components/Root/LogoIcon.tsx @@ -1,19 +1,3 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import React from 'react'; import { makeStyles } from '@material-ui/core'; diff --git a/packages/create-app/templates/default-app/packages/app/src/components/Root/Root.tsx b/packages/create-app/templates/default-app/packages/app/src/components/Root/Root.tsx index b1164a32f0..5400421e25 100644 --- a/packages/create-app/templates/default-app/packages/app/src/components/Root/Root.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/components/Root/Root.tsx @@ -1,19 +1,3 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import React, { PropsWithChildren } from 'react'; import { Link, makeStyles } from '@material-ui/core'; import HomeIcon from '@material-ui/icons/Home'; diff --git a/packages/create-app/templates/default-app/packages/app/src/components/Root/index.ts b/packages/create-app/templates/default-app/packages/app/src/components/Root/index.ts index dff706f08f..35288815f2 100644 --- a/packages/create-app/templates/default-app/packages/app/src/components/Root/index.ts +++ b/packages/create-app/templates/default-app/packages/app/src/components/Root/index.ts @@ -1,17 +1 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - export { Root } from './Root'; diff --git a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx index d98153f660..54a05eea03 100644 --- a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx @@ -1,18 +1,3 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ import React from 'react'; import { Button, Grid } from '@material-ui/core'; import { diff --git a/packages/create-app/templates/default-app/yarn.lock b/packages/create-app/templates/default-app/yarn.lock new file mode 100644 index 0000000000..5ad7fe233d --- /dev/null +++ b/packages/create-app/templates/default-app/yarn.lock @@ -0,0 +1 @@ +# intentionally left empty diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 3bc6dd0f0e..4a43a0b8b3 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -32,15 +32,15 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/app-defaults": "^1.0.6", - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-app-api": "^1.1.0", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/test-utils": "^1.2.0", - "@backstage/theme": "^0.2.16", + "@backstage/app-defaults": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-catalog-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", @@ -57,7 +57,7 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/node": "^16.0.0" }, "files": [ diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 12f430cad2..374eaa6d18 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -18,7 +18,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "scripts": { - "start": "nodemon --", + "start": "yarn nodemon --", "lint": "backstage-cli package lint", "test": "backstage-cli package test", "test:e2e": "yarn start", @@ -27,9 +27,9 @@ }, "bin": "bin/e2e-test", "devDependencies": { - "@backstage/cli": "^0.19.0-next.3", - "@backstage/cli-common": "^0.1.10-next.0", - "@backstage/errors": "^1.1.1-next.0", + "@backstage/cli": "workspace:^", + "@backstage/cli-common": "workspace:^", + "@backstage/errors": "workspace:^", "@types/fs-extra": "^9.0.1", "@types/node": "^16.11.26", "@types/puppeteer": "^5.4.4", @@ -38,6 +38,7 @@ "cross-fetch": "^3.1.5", "fs-extra": "10.1.0", "handlebars": "^4.7.3", + "nodemon": "^2.0.2", "pgtools": "^0.3.0", "puppeteer": "^17.0.0", "tree-kill": "^1.2.2", diff --git a/packages/errors/package.json b/packages/errors/package.json index 0237984c35..eb3627f1ba 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -32,12 +32,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/types": "^1.0.0", + "@backstage/types": "workspace:^", "cross-fetch": "^3.1.5", "serialize-error": "^8.0.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index aaa42faad6..3f23625aac 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -23,11 +23,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration": "^1.3.1", - "@backstage/theme": "^0.2.16", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -37,9 +37,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/packages/integration/package.json b/packages/integration/package.json index 559fd5ce75..6c2e070467 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -32,8 +32,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", "@octokit/auth-app": "^4.0.0", "@octokit/rest": "^19.0.3", "cross-fetch": "^3.1.5", @@ -42,9 +42,9 @@ "luxon": "^3.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/config-loader": "^1.1.4", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/config-loader": "workspace:^", + "@backstage/test-utils": "workspace:^", "@types/luxon": "^3.0.0", "msw": "^0.47.0" }, diff --git a/packages/integration/src/helpers.test.ts b/packages/integration/src/helpers.test.ts index 06feb4104e..7468c83bc6 100644 --- a/packages/integration/src/helpers.test.ts +++ b/packages/integration/src/helpers.test.ts @@ -62,7 +62,7 @@ describe('isValidHost', () => { ['[::]', true], ['[::1]', true], ['[1:2:3:4:5:6:7:8]', true], - ['1.2.3.4.5.6.7.8', true], + ['1.2.3.4.5.6.7.8', false], ['https://example.com', false], ['foo:100000', false], ['FOO', false], diff --git a/packages/release-manifests/package.json b/packages/release-manifests/package.json index 799b9ac912..949cd2bcd5 100644 --- a/packages/release-manifests/package.json +++ b/packages/release-manifests/package.json @@ -35,8 +35,8 @@ "cross-fetch": "^3.1.5" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/test-utils": "workspace:^", "@types/node": "^16.0.0", "msw": "^0.47.0" }, diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 289cb9951c..060735636b 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -7,19 +7,19 @@ }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.6", - "@backstage/catalog-model": "^1.1.1", - "@backstage/cli": "^0.19.0", - "@backstage/config": "^1.0.2", - "@backstage/core-app-api": "^1.1.0", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-catalog": "^1.5.1", - "@backstage/plugin-techdocs": "^1.3.2", - "@backstage/plugin-techdocs-react": "^1.0.4", - "@backstage/test-utils": "^1.2.0", - "@backstage/theme": "^0.2.16", + "@backstage/app-defaults": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-catalog": "workspace:^", + "@backstage/plugin-techdocs": "workspace:^", + "@backstage/plugin-techdocs-react": "workspace:^", + "@backstage/test-utils": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "history": "^5.0.0", @@ -30,7 +30,7 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 2af9f7e135..2e74c28c62 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -36,7 +36,7 @@ "techdocs-cli": "bin/techdocs-cli" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/commander": "^2.12.2", "@types/fs-extra": "^9.0.6", "@types/http-proxy": "^1.17.4", @@ -60,11 +60,11 @@ "ext": "ts" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-model": "^1.1.1", - "@backstage/cli-common": "^0.1.10", - "@backstage/config": "^1.0.2", - "@backstage/plugin-techdocs-node": "^1.4.0", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/cli-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/plugin-techdocs-node": "workspace:^", "@types/dockerode": "^3.3.0", "commander": "^9.1.0", "dockerode": "^3.3.1", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 5d67094575..90f966ad97 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -32,15 +32,15 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/core-app-api": "^1.1.0", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-permission-react": "^0.4.5", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", + "@backstage/config": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-permission-react": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", "@material-ui/core": "^4.12.2", - "@material-ui/icons": "^4.11.2", + "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", @@ -55,7 +55,7 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/node": "^16.11.26", "msw": "^0.47.0" }, diff --git a/packages/test-utils/src/testUtils/appWrappers.test.tsx b/packages/test-utils/src/testUtils/appWrappers.test.tsx index 1b0601d030..a116c8c781 100644 --- a/packages/test-utils/src/testUtils/appWrappers.test.tsx +++ b/packages/test-utils/src/testUtils/appWrappers.test.tsx @@ -92,9 +92,11 @@ describe('wrapInTestApp', () => { }); expect(error).toEqual([ - expect.stringMatching( - /^Error: Uncaught \[Error: MockErrorApi received unexpected error, Error: NOPE\]/, - ), + expect.objectContaining({ + detail: new Error( + 'MockErrorApi received unexpected error, Error: NOPE', + ), + }), expect.stringMatching(/^The above error occurred in the component:/), ]); }); diff --git a/packages/theme/package.json b/packages/theme/package.json index 4569c67eae..f311aa7c1f 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -35,7 +35,7 @@ "@material-ui/core": "^4.12.2" }, "devDependencies": { - "@backstage/cli": "^0.19.0-next.1" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/packages/types/package.json b/packages/types/package.json index 133b388ea9..b8ebeffce8 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -32,7 +32,7 @@ "clean": "backstage-cli package clean" }, "devDependencies": { - "@backstage/cli": "^0.19.0-next.1", + "@backstage/cli": "workspace:^", "@types/zen-observable": "^0.8.0", "zen-observable": "^0.8.15" }, diff --git a/packages/version-bridge/package.json b/packages/version-bridge/package.json index 52595c0cc9..3abfcd40f6 100644 --- a/packages/version-bridge/package.json +++ b/packages/version-bridge/package.json @@ -36,7 +36,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0-next.1", + "@backstage/cli": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0" diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 6d9e85ca01..d8295c0e46 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -28,14 +28,14 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-adr-common": "^0.2.1", - "@backstage/plugin-search-common": "^1.0.1", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-adr-common": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", "luxon": "^3.0.0", "marked": "^4.0.14", "node-fetch": "^2.6.5", @@ -43,7 +43,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/marked": "^4.0.0", "@types/supertest": "^2.0.8", "msw": "^0.47.0", diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index 2451eee48b..02ae1d642d 100644 --- a/plugins/adr-common/package.json +++ b/plugins/adr-common/package.json @@ -29,12 +29,12 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-search-common": "^1.0.1" + "@backstage/catalog-model": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-search-common": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 428e2366f6..f64d901820 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -22,15 +22,15 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-adr-common": "^0.2.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/plugin-search-react": "^1.1.0", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-adr-common": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/plugin-search-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -45,10 +45,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index b4e91ad6c7..b79cdd80b1 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -22,8 +22,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", "@types/express": "*", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -32,7 +32,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/http-proxy-middleware": "^0.19.3", "@types/supertest": "^2.0.8", "msw": "^0.47.0", diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index 708c264b22..5dc54ea863 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -22,13 +22,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/dev-utils": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/test-utils": "^1.2.0", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/test-utils": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -40,10 +40,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/app-defaults": "^1.0.6", - "@backstage/cli": "^0.19.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/app-defaults": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 110c428e87..3bfe92c6ee 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -23,11 +23,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -38,10 +38,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index cc18b552ef..7e4ce38c20 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -22,10 +22,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -36,10 +36,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 686504830f..5555fd35fc 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -22,8 +22,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -35,10 +35,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/api-docs-module-protoc-gen-doc/package.json b/plugins/api-docs-module-protoc-gen-doc/package.json index 04088e7566..072304d2cf 100644 --- a/plugins/api-docs-module-protoc-gen-doc/package.json +++ b/plugins/api-docs-module-protoc-gen-doc/package.json @@ -37,7 +37,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0-next.1", + "@backstage/cli": "workspace:^", "@testing-library/jest-dom": "^5.16.4", "@types/react": "^16.13.1 || ^17.0.0" }, diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 373e6391a4..42cd8d5d74 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -32,13 +32,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@asyncapi/react-component": "1.0.0-next.40", - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog": "^1.5.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@asyncapi/react-component": "1.0.0-next.42", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -56,10 +56,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/api-docs/src/setupTests.ts b/plugins/api-docs/src/setupTests.ts index 963c0f188b..a41fe2eeb4 100644 --- a/plugins/api-docs/src/setupTests.ts +++ b/plugins/api-docs/src/setupTests.ts @@ -15,3 +15,7 @@ */ import '@testing-library/jest-dom'; + +Object.defineProperty(global, 'TextDecoder', { + value: require('util').TextDecoder, +}); diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index 79288a96a1..770af99853 100644 --- a/plugins/apollo-explorer/package.json +++ b/plugins/apollo-explorer/package.json @@ -23,9 +23,9 @@ }, "dependencies": { "@apollo/explorer": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.57", @@ -36,10 +36,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 22c7168733..ffd40b89c0 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -32,10 +32,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/config-loader": "^1.1.4", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/config-loader": "workspace:^", + "@backstage/types": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -49,9 +49,9 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/types": "workspace:^", "@types/supertest": "^2.0.8", "mock-fs": "^5.1.0", "msw": "^0.47.0", diff --git a/plugins/auth-backend/api-report.md b/plugins/auth-backend/api-report.md index 6e9de12cdb..ea5b923baa 100644 --- a/plugins/auth-backend/api-report.md +++ b/plugins/auth-backend/api-report.md @@ -183,10 +183,12 @@ export type CookieConfigurer = (ctx: { providerId: string; baseUrl: string; callbackUrl: string; + appOrigin: string; }) => { domain: string; path: string; secure: boolean; + sameSite?: 'none' | 'lax' | 'strict'; }; // @public @@ -280,11 +282,10 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { // @public (undocumented) export type OAuthAdapterOptions = { providerId: string; - secure: boolean; persistScopes?: boolean; - cookieDomain: string; - cookiePath: string; appOrigin: string; + baseUrl: string; + cookieConfigurer: CookieConfigurer; isOriginAllowed: (origin: string) => boolean; callbackUrl: string; }; diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 8583d72bb8..d3c4fc2724 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -32,13 +32,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/types": "workspace:^", "@davidzemon/passport-okta-oauth": "^0.0.5", "@google-cloud/firestore": "^6.0.0", "@types/express": "^4.17.6", @@ -76,8 +76,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/express-session": "^1.17.2", diff --git a/plugins/auth-backend/src/identity/FirestoreKeyStore.test.ts b/plugins/auth-backend/src/identity/FirestoreKeyStore.test.ts index d28cbfa11a..b04cf8a6b3 100644 --- a/plugins/auth-backend/src/identity/FirestoreKeyStore.test.ts +++ b/plugins/auth-backend/src/identity/FirestoreKeyStore.test.ts @@ -44,7 +44,7 @@ jest.mock('@google-cloud/firestore', () => ({ Firestore: jest.fn().mockImplementation(() => firestoreMock), })); -jest.useFakeTimers('legacy'); +jest.useFakeTimers({ legacyFakeTimers: true }); describe('FirestoreKeyStore', () => { const key = { diff --git a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.test.ts b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.test.ts index 9dcd76e92e..526b05d0ab 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.test.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.test.ts @@ -18,6 +18,7 @@ import express from 'express'; import { THOUSAND_DAYS_MS, TEN_MINUTES_MS, OAuthAdapter } from './OAuthAdapter'; import { encodeState } from './helpers'; import { OAuthHandlers, OAuthState } from './types'; +import { CookieConfigurer } from '../../providers/types'; const mockResponseData = { providerInfo: { @@ -36,6 +37,10 @@ const mockResponseData = { }; describe('OAuthAdapter', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + class MyAuthProvider implements OAuthHandlers { async start() { return { @@ -57,18 +62,24 @@ describe('OAuthAdapter', () => { } } const providerInstance = new MyAuthProvider(); + const mockCookieConfig: ReturnType = { + domain: 'domain.org', + path: '/auth/test-provider', + secure: false, + }; + const mockCookieConfigurer = jest.fn().mockReturnValue(mockCookieConfig); + const oAuthProviderOptions = { providerId: 'test-provider', - secure: false, appOrigin: 'http://localhost:3000', - cookieDomain: 'example.com', - cookiePath: '/auth/test-provider', + baseUrl: 'http://domain.org/auth', + cookieConfigurer: mockCookieConfigurer, tokenIssuer: { issueToken: async () => 'my-id-token', listPublicKeys: async () => ({ keys: [] }), }, isOriginAllowed: () => false, - callbackUrl: 'http://example.com:7007/auth/test-provider/frame/handler', + callbackUrl: 'http://domain.org/auth/test-provider/handler/frame', }; it('sets the correct headers in start', async () => { @@ -96,7 +107,14 @@ describe('OAuthAdapter', () => { expect(mockResponse.cookie).toHaveBeenCalledWith( `${oAuthProviderOptions.providerId}-nonce`, expect.any(String), - expect.objectContaining({ maxAge: TEN_MINUTES_MS }), + expect.objectContaining({ + httpOnly: true, + path: '/auth/test-provider/handler', + maxAge: TEN_MINUTES_MS, + domain: 'domain.org', + sameSite: 'lax', + secure: false, + }), ); // redirect checks expect(mockResponse.setHeader).toHaveBeenCalledTimes(2); @@ -129,13 +147,18 @@ describe('OAuthAdapter', () => { } as unknown as express.Response; await oauthProvider.frameHandler(mockRequest, mockResponse); + expect(mockCookieConfigurer).toHaveBeenCalledTimes(1); expect(mockResponse.cookie).toHaveBeenCalledTimes(1); expect(mockResponse.cookie).toHaveBeenCalledWith( expect.stringContaining('test-provider-refresh-token'), expect.stringContaining('token'), expect.objectContaining({ + httpOnly: true, path: '/auth/test-provider', maxAge: THOUSAND_DAYS_MS, + domain: 'domain.org', + secure: false, + sameSite: 'lax', }), ); }); @@ -207,8 +230,12 @@ describe('OAuthAdapter', () => { 'test-provider-granted-scope', 'user', expect.objectContaining({ + httpOnly: true, path: '/auth/test-provider', maxAge: THOUSAND_DAYS_MS, + domain: 'domain.org', + secure: false, + sameSite: 'lax', }), ); @@ -243,6 +270,7 @@ describe('OAuthAdapter', () => { const mockRequest = { header: () => 'XMLHttpRequest', + get: jest.fn(), } as unknown as express.Request; const mockResponse = { @@ -252,6 +280,7 @@ describe('OAuthAdapter', () => { } as unknown as express.Response; await oauthProvider.logout(mockRequest, mockResponse); + expect(mockRequest.get).toHaveBeenCalledTimes(1); expect(mockResponse.cookie).toHaveBeenCalledTimes(1); expect(mockResponse.cookie).toHaveBeenCalledWith( expect.stringContaining('test-provider-refresh-token'), @@ -295,7 +324,46 @@ describe('OAuthAdapter', () => { }); }); - it('sets the correct cookie configuration using a callbackUrl', async () => { + it('sets new access-token when old cookie exists', async () => { + const oauthProvider = new OAuthAdapter(providerInstance, { + ...oAuthProviderOptions, + isOriginAllowed: () => false, + }); + + const mockRequest = { + header: () => 'XMLHttpRequest', + cookies: { + 'test-provider-refresh-token': 'old-token', + }, + query: {}, + get: jest.fn(), + } as unknown as express.Request; + + const mockResponse = { + json: jest.fn().mockReturnThis(), + status: jest.fn().mockReturnThis(), + cookie: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + await oauthProvider.refresh(mockRequest, mockResponse); + expect(mockRequest.get).toHaveBeenCalledTimes(1); + expect(mockCookieConfigurer).toHaveBeenCalledTimes(1); + expect(mockResponse.cookie).toHaveBeenCalledTimes(1); + expect(mockResponse.cookie).toHaveBeenCalledWith( + 'test-provider-refresh-token', + 'token', + expect.objectContaining({ + httpOnly: true, + path: '/auth/test-provider', + maxAge: THOUSAND_DAYS_MS, + domain: 'domain.org', + secure: false, + sameSite: 'lax', + }), + ); + }); + + it('sets the correct nonce cookie configuration', async () => { const config = { baseUrl: 'http://domain.org/auth', appUrl: 'http://domain.org', @@ -304,13 +372,13 @@ describe('OAuthAdapter', () => { const oauthProvider = OAuthAdapter.fromConfig(config, providerInstance, { ...oAuthProviderOptions, - callbackUrl: 'https://authdomain.org/auth/test-provider/handler/frame', }); const mockRequest = { query: { scope: 'user', env: 'development', + origin: 'http://domain.org', }, } as unknown as express.Request; @@ -322,15 +390,252 @@ describe('OAuthAdapter', () => { } as unknown as express.Response; await oauthProvider.start(mockRequest, mockResponse); - + expect(mockCookieConfigurer).not.toHaveBeenCalled(); expect(mockResponse.cookie).toHaveBeenCalledTimes(1); expect(mockResponse.cookie).toHaveBeenCalledWith( `${oAuthProviderOptions.providerId}-nonce`, expect.any(String), expect.objectContaining({ - domain: 'authdomain.org', + httpOnly: true, + domain: 'domain.org', + maxAge: TEN_MINUTES_MS, + path: '/auth/test-provider/handler', + secure: false, + sameSite: 'lax', + }), + ); + }); + + it('sets the correct nonce cookie configuration using origin from request', async () => { + const config = { + baseUrl: 'http://domain.org/auth', + appUrl: 'http://domain.org', + isOriginAllowed: () => false, + }; + + const oauthProvider = OAuthAdapter.fromConfig(config, providerInstance, { + ...oAuthProviderOptions, + callbackUrl: 'https://domain.org/auth/test-provider/handler/frame', + }); + + const mockRequest = { + query: { + scope: 'user', + env: 'development', + origin: 'http://other.domain', + }, + } as unknown as express.Request; + + const mockResponse = { + cookie: jest.fn().mockReturnThis(), + end: jest.fn().mockReturnThis(), + setHeader: jest.fn().mockReturnThis(), + statusCode: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + await oauthProvider.start(mockRequest, mockResponse); + expect(mockCookieConfigurer).not.toHaveBeenCalled(); + expect(mockResponse.cookie).toHaveBeenCalledTimes(1); + expect(mockResponse.cookie).toHaveBeenCalledWith( + `${oAuthProviderOptions.providerId}-nonce`, + expect.any(String), + expect.objectContaining({ + httpOnly: true, + domain: 'domain.org', + maxAge: TEN_MINUTES_MS, path: '/auth/test-provider/handler', secure: true, + sameSite: 'none', + }), + ); + }); + + it('sets the correct cookie configuration using an secure callbackUrl', async () => { + const config = { + baseUrl: 'https://domain.org/auth', + appUrl: 'http://domain.org', + isOriginAllowed: () => false, + }; + + const oauthProvider = OAuthAdapter.fromConfig(config, providerInstance, { + ...oAuthProviderOptions, + callbackUrl: 'https://domain.org/auth/test-provider/handler/frame', + }); + + const state = { + nonce: 'nonce', + env: 'development', + }; + + const mockRequest = { + cookies: { + 'test-provider-nonce': 'nonce', + }, + query: { + state: encodeState(state), + }, + } as unknown as express.Request; + + const mockResponse = { + cookie: jest.fn().mockReturnThis(), + setHeader: jest.fn().mockReturnThis(), + end: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + await oauthProvider.frameHandler(mockRequest, mockResponse); + expect(mockCookieConfigurer).not.toHaveBeenCalled(); + expect(mockResponse.cookie).toHaveBeenCalledTimes(1); + expect(mockResponse.cookie).toHaveBeenCalledWith( + expect.stringContaining('test-provider-refresh-token'), + expect.stringContaining('token'), + expect.objectContaining({ + httpOnly: true, + domain: 'domain.org', + path: '/auth/test-provider', + secure: true, + sameSite: 'lax', + }), + ); + }); + + it('sets the correct cookie configuration when on different domains and secure', async () => { + const config = { + baseUrl: 'https://domain.org/auth', + appUrl: 'http://domain.org', + isOriginAllowed: () => false, + }; + + const oauthProvider = OAuthAdapter.fromConfig(config, providerInstance, { + ...oAuthProviderOptions, + callbackUrl: 'https://authdomain.org/auth/test-provider/handler/frame', + }); + + const state = { + nonce: 'nonce', + env: 'development', + }; + + const mockRequest = { + cookies: { + 'test-provider-nonce': 'nonce', + }, + query: { + state: encodeState(state), + }, + } as unknown as express.Request; + + const mockResponse = { + cookie: jest.fn().mockReturnThis(), + setHeader: jest.fn().mockReturnThis(), + end: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + await oauthProvider.frameHandler(mockRequest, mockResponse); + expect(mockCookieConfigurer).not.toHaveBeenCalled(); + expect(mockResponse.cookie).toHaveBeenCalledTimes(1); + expect(mockResponse.cookie).toHaveBeenCalledWith( + expect.stringContaining('test-provider-refresh-token'), + expect.stringContaining('token'), + expect.objectContaining({ + httpOnly: true, + domain: 'authdomain.org', + path: '/auth/test-provider', + secure: true, + sameSite: 'none', + }), + ); + }); + + it('sets the correct cookie configuration using origin from state', async () => { + const config = { + baseUrl: 'https://domain.org/auth', + appUrl: 'http://domain.org', + isOriginAllowed: () => true, + }; + + const oauthProvider = OAuthAdapter.fromConfig(config, providerInstance, { + ...oAuthProviderOptions, + callbackUrl: 'https://domain.org/auth/test-provider/handler/frame', + }); + + const state = { + nonce: 'nonce', + env: 'development', + origin: 'http://other.domain', + }; + + const mockRequest = { + cookies: { + 'test-provider-nonce': 'nonce', + }, + query: { + state: encodeState(state), + }, + } as unknown as express.Request; + + const mockResponse = { + cookie: jest.fn().mockReturnThis(), + setHeader: jest.fn().mockReturnThis(), + end: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + await oauthProvider.frameHandler(mockRequest, mockResponse); + expect(mockCookieConfigurer).not.toHaveBeenCalled(); + expect(mockResponse.cookie).toHaveBeenCalledTimes(1); + expect(mockResponse.cookie).toHaveBeenCalledWith( + expect.stringContaining('test-provider-refresh-token'), + expect.stringContaining('token'), + expect.objectContaining({ + httpOnly: true, + domain: 'domain.org', + path: '/auth/test-provider', + secure: true, + sameSite: 'none', + }), + ); + }); + + it('sets the correct cookie configuration using origin from header', async () => { + const config = { + baseUrl: 'https://domain.org/auth', + appUrl: 'http://domain.org', + isOriginAllowed: () => false, + }; + + const oauthProvider = OAuthAdapter.fromConfig(config, providerInstance, { + ...oAuthProviderOptions, + callbackUrl: 'https://domain.org/auth/test-provider/handler/frame', + }); + + const mockRequest = { + header: () => 'XMLHttpRequest', + cookies: { + 'test-provider-refresh-token': 'old-token', + }, + query: {}, + get: jest.fn().mockReturnValue('http://other.domain'), + } as unknown as express.Request; + + const mockResponse = { + json: jest.fn().mockReturnThis(), + status: jest.fn().mockReturnThis(), + cookie: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + await oauthProvider.refresh(mockRequest, mockResponse); + expect(mockRequest.get).toHaveBeenCalledTimes(1); + expect(mockCookieConfigurer).not.toHaveBeenCalled(); + expect(mockResponse.cookie).toHaveBeenCalledTimes(1); + expect(mockResponse.cookie).toHaveBeenCalledWith( + 'test-provider-refresh-token', + 'token', + expect.objectContaining({ + httpOnly: true, + path: '/auth/test-provider', + maxAge: THOUSAND_DAYS_MS, + domain: 'domain.org', + secure: true, + sameSite: 'none', }), ); }); diff --git a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts index 6caa9fed12..8f08cfbbd0 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts @@ -24,6 +24,7 @@ import { import { AuthProviderRouteHandlers, AuthProviderConfig, + CookieConfigurer, } from '../../providers/types'; import { AuthenticationError, @@ -47,11 +48,10 @@ export const TEN_MINUTES_MS = 600 * 1000; /** @public */ export type OAuthAdapterOptions = { providerId: string; - secure: boolean; persistScopes?: boolean; - cookieDomain: string; - cookiePath: string; appOrigin: string; + baseUrl: string; + cookieConfigurer: CookieConfigurer; isOriginAllowed: (origin: string) => boolean; callbackUrl: string; }; @@ -66,22 +66,17 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { 'providerId' | 'persistScopes' | 'callbackUrl' >, ): OAuthAdapter { - const { origin: appOrigin } = new URL(config.appUrl); + const { appUrl, baseUrl, isOriginAllowed } = config; + const { origin: appOrigin } = new URL(appUrl); const cookieConfigurer = config.cookieConfigurer ?? defaultCookieConfigurer; - const cookieConfig = cookieConfigurer({ - providerId: options.providerId, - baseUrl: config.baseUrl, - callbackUrl: options.callbackUrl, - }); return new OAuthAdapter(handlers, { ...options, appOrigin, - cookieDomain: cookieConfig.domain, - cookiePath: cookieConfig.path, - secure: cookieConfig.secure, - isOriginAllowed: config.isOriginAllowed, + baseUrl, + cookieConfigurer, + isOriginAllowed, }); } @@ -94,9 +89,6 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { this.baseCookieOptions = { httpOnly: true, sameSite: 'lax', - secure: this.options.secure, - path: this.options.cookiePath, - domain: this.options.cookieDomain, }; } @@ -110,9 +102,11 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { throw new InputError('No env provided in request query parameters'); } + const cookieConfig = this.getCookieConfig(origin); + const nonce = crypto.randomBytes(16).toString('base64'); // set a nonce cookie before redirecting to oauth provider - this.setNonceCookie(res, nonce); + this.setNonceCookie(res, nonce, cookieConfig); const state: OAuthState = { nonce, env, origin }; @@ -158,16 +152,18 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { const { response, refreshToken } = await this.handlers.handler(req); + const cookieConfig = this.getCookieConfig(appOrigin); + // Store the scope that we have been granted for this session. This is useful if // the provider does not return granted scopes on refresh or if they are normalized. if (this.options.persistScopes && state.scope) { - this.setGrantedScopeCookie(res, state.scope); + this.setGrantedScopeCookie(res, state.scope, cookieConfig); response.providerInfo.scope = state.scope; } if (refreshToken) { // set new refresh token - this.setRefreshTokenCookie(res, refreshToken); + this.setRefreshTokenCookie(res, refreshToken, cookieConfig); } const identity = await this.populateIdentity(response.backstageIdentity); @@ -195,7 +191,9 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { } // remove refresh token cookie if it is set - this.removeRefreshTokenCookie(res); + const origin = req.get('origin'); + const cookieConfig = this.getCookieConfig(origin); + this.removeRefreshTokenCookie(res, cookieConfig); res.status(200).end(); } @@ -235,7 +233,9 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { ); if (newRefreshToken && newRefreshToken !== refreshToken) { - this.setRefreshTokenCookie(res, newRefreshToken); + const origin = req.get('origin'); + const cookieConfig = this.getCookieConfig(origin); + this.setRefreshTokenCookie(res, newRefreshToken, cookieConfig); } res.status(200).json({ ...response, backstageIdentity }); @@ -261,18 +261,28 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { return prepareBackstageIdentityResponse(identity); } - private setNonceCookie = (res: express.Response, nonce: string) => { + private setNonceCookie = ( + res: express.Response, + nonce: string, + cookieConfig: ReturnType, + ) => { res.cookie(`${this.options.providerId}-nonce`, nonce, { maxAge: TEN_MINUTES_MS, ...this.baseCookieOptions, - path: `${this.options.cookiePath}/handler`, + ...cookieConfig, + path: `${cookieConfig.path}/handler`, }); }; - private setGrantedScopeCookie = (res: express.Response, scope: string) => { + private setGrantedScopeCookie = ( + res: express.Response, + scope: string, + cookieConfig: ReturnType, + ) => { res.cookie(`${this.options.providerId}-granted-scope`, scope, { maxAge: THOUSAND_DAYS_MS, ...this.baseCookieOptions, + ...cookieConfig, }); }; @@ -283,17 +293,32 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { private setRefreshTokenCookie = ( res: express.Response, refreshToken: string, + cookieConfig: ReturnType, ) => { res.cookie(`${this.options.providerId}-refresh-token`, refreshToken, { maxAge: THOUSAND_DAYS_MS, ...this.baseCookieOptions, + ...cookieConfig, }); }; - private removeRefreshTokenCookie = (res: express.Response) => { + private removeRefreshTokenCookie = ( + res: express.Response, + cookieConfig: ReturnType, + ) => { res.cookie(`${this.options.providerId}-refresh-token`, '', { maxAge: 0, ...this.baseCookieOptions, + ...cookieConfig, + }); + }; + + private getCookieConfig = (origin?: string) => { + return this.options.cookieConfigurer({ + providerId: this.options.providerId, + baseUrl: this.options.baseUrl, + callbackUrl: this.options.callbackUrl, + appOrigin: origin ?? this.options.appOrigin, }); }; } diff --git a/plugins/auth-backend/src/lib/oauth/helpers.test.ts b/plugins/auth-backend/src/lib/oauth/helpers.test.ts index b3052c93e1..58a3dcab05 100644 --- a/plugins/auth-backend/src/lib/oauth/helpers.test.ts +++ b/plugins/auth-backend/src/lib/oauth/helpers.test.ts @@ -117,6 +117,7 @@ describe('OAuthProvider Utils', () => { baseUrl: '', providerId: 'test-provider', callbackUrl: 'http://domain.org/auth', + appOrigin: 'http://domain.org', }), ).toMatchObject({ domain: 'domain.org', @@ -131,6 +132,7 @@ describe('OAuthProvider Utils', () => { baseUrl: '', providerId: 'test-provider', callbackUrl: 'http://domain.org/auth/test-provider/handler/frame', + appOrigin: 'http://domain.org', }), ).toMatchObject({ domain: 'domain.org', @@ -145,10 +147,67 @@ describe('OAuthProvider Utils', () => { baseUrl: '', providerId: 'test-provider', callbackUrl: 'https://domain.org/auth', + appOrigin: 'http://domain.org', }), ).toMatchObject({ secure: true, }); }); + + it('should set sameSite to lax for https on the same domain', () => { + expect( + defaultCookieConfigurer({ + baseUrl: '', + providerId: 'test-provider', + callbackUrl: 'https://domain.org/auth', + appOrigin: 'http://domain.org', + }), + ).toMatchObject({ + sameSite: 'lax', + secure: true, + }); + }); + + it('should set sameSite to lax for http on the same domain', () => { + expect( + defaultCookieConfigurer({ + baseUrl: '', + providerId: 'test-provider', + callbackUrl: 'http://domain.org/auth', + appOrigin: 'http://domain.org', + }), + ).toMatchObject({ + sameSite: 'lax', + secure: false, + }); + }); + + it('should set sameSite to lax if not secure and on different domains', () => { + expect( + defaultCookieConfigurer({ + baseUrl: '', + providerId: 'test-provider', + callbackUrl: 'http://authdomain.org/auth', + appOrigin: 'http://domain.org', + }), + ).toMatchObject({ + sameSite: 'lax', + secure: false, + }); + }); + + it('should set sameSite to none if secure and on different domains', () => { + expect( + defaultCookieConfigurer({ + baseUrl: '', + providerId: 'test-provider', + callbackUrl: 'https://authdomain.org/auth', + appOrigin: 'http://domain.org', + }), + ).toMatchObject({ + sameSite: 'none', + secure: true, + }); + }); }); }); diff --git a/plugins/auth-backend/src/lib/oauth/helpers.ts b/plugins/auth-backend/src/lib/oauth/helpers.ts index 63d5d62ef9..2b4e50b477 100644 --- a/plugins/auth-backend/src/lib/oauth/helpers.ts +++ b/plugins/auth-backend/src/lib/oauth/helpers.ts @@ -65,10 +65,20 @@ export const verifyNonce = (req: express.Request, providerId: string) => { export const defaultCookieConfigurer: CookieConfigurer = ({ callbackUrl, providerId, + appOrigin, }) => { const { hostname: domain, pathname, protocol } = new URL(callbackUrl); const secure = protocol === 'https:'; + // For situations where the auth-backend is running on a + // different domain than the app, we set the SameSite attribute + // to 'none' to allow third-party access to the cookie, but + // only if it's in a secure context (https). + let sameSite: ReturnType['sameSite'] = 'lax'; + if (new URL(appOrigin).hostname !== domain && secure) { + sameSite = 'none'; + } + // If the provider supports callbackUrls, the pathname will // contain the complete path to the frame handler so we need // to slice off the trailing part of the path. @@ -76,5 +86,5 @@ export const defaultCookieConfigurer: CookieConfigurer = ({ ? pathname.slice(0, -'/handler/frame'.length) : `${pathname}/${providerId}`; - return { domain, path, secure }; + return { domain, path, secure, sameSite }; }; diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index 574afade79..1459cff484 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -100,7 +100,14 @@ export type CookieConfigurer = (ctx: { baseUrl: string; /** The configured callback URL of the auth provider */ callbackUrl: string; -}) => { domain: string; path: string; secure: boolean }; + /** The origin URL of the app */ + appOrigin: string; +}) => { + domain: string; + path: string; + secure: boolean; + sameSite?: 'none' | 'lax' | 'strict'; +}; /** @public */ export type AuthProviderConfig = { diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index d35009a09c..eac9d4e4d1 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -22,9 +22,9 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", "@types/express": "*", "express": "^4.17.1", "jose": "^4.6.0", @@ -32,8 +32,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "lodash": "^4.17.21", "msw": "^0.47.0", "uuid": "^8.0.0" diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 36a21a5ed5..c77860abe5 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -22,9 +22,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/plugin-azure-devops-common": "^0.3.0", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/plugin-azure-devops-common": "workspace:^", "@types/express": "^4.17.6", "azure-devops-node-api": "^11.0.1", "express": "^4.17.1", @@ -35,7 +35,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "msw": "^0.47.0", "supertest": "^6.1.6" diff --git a/plugins/azure-devops-common/package.json b/plugins/azure-devops-common/package.json index 7925445695..cf0b33275f 100644 --- a/plugins/azure-devops-common/package.json +++ b/plugins/azure-devops-common/package.json @@ -31,7 +31,7 @@ "clean": "backstage-cli package clean" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index 7e993ddedd..9785fdf2b3 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -28,13 +28,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-azure-devops-common": "^0.3.0", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-azure-devops-common": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -47,10 +47,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/azure-devops/src/utils/getDurationFromDates.test.ts b/plugins/azure-devops/src/utils/getDurationFromDates.test.ts index fac0e917d0..2a8ee6e04f 100644 --- a/plugins/azure-devops/src/utils/getDurationFromDates.test.ts +++ b/plugins/azure-devops/src/utils/getDurationFromDates.test.ts @@ -18,7 +18,7 @@ import { getDurationFromDates } from './getDurationFromDates'; describe('getDurationFromDates', () => { beforeAll(() => { - jest.useFakeTimers('modern'); + jest.useFakeTimers(); jest.setSystemTime(new Date('2021-10-15T09:45:25.0000000Z')); }); diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index 35fb89b336..0eaf8a9d0a 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -33,11 +33,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", "@types/express": "^4.17.6", "badge-maker": "^3.3.0", "cors": "^2.8.5", @@ -47,7 +47,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/badges/package.json b/plugins/badges/package.json index 33e2b14642..2e8081f3f6 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -29,12 +29,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -45,10 +45,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index e42e7afdca..5f11c694f8 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -22,9 +22,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/config": "^1.0.2", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/config": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -33,7 +33,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist", diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 28b41f3d52..919f8a7df7 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -22,13 +22,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/cli": "^0.19.0", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog": "^1.5.1", - "@backstage/plugin-catalog-react": "^1.1.4", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -44,8 +44,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/dev-utils": "^1.0.6", + "@backstage/cli": "workspace:^", + "@backstage/dev-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "cross-fetch": "^3.1.5" }, diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index 832e1d343e..1e8db8185f 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -27,11 +27,11 @@ "update-models": "yarn refresh-schema && yarn generate-models && yarn reduce-models" }, "dependencies": { - "@backstage/integration": "^1.3.1", + "@backstage/integration": "workspace:^", "cross-fetch": "^3.1.5" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@openapitools/openapi-generator-cli": "^2.4.26", "msw": "^0.47.0", "ts-morph": "^15.0.0" diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 864195c7e4..1a7e586e5c 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -23,11 +23,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -42,10 +42,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 84d85da036..c921aad767 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -32,14 +32,14 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/types": "workspace:^", "aws-sdk": "^2.840.0", "lodash": "^4.17.21", "p-limit": "^3.0.2", @@ -47,7 +47,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/lodash": "^4.14.151", "aws-sdk-mock": "^5.2.1", "yaml": "^2.0.0" diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index b34c5187b1..afcfdf9f0f 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -32,14 +32,14 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/types": "workspace:^", "lodash": "^4.17.21", "msw": "^0.47.0", "node-fetch": "^2.6.7", @@ -47,8 +47,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index 57adc02ef5..4fdebd65bd 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/package.json +++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json @@ -32,18 +32,18 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-tasks": "^0.3.5", - "@backstage/config": "^1.0.2", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-bitbucket-cloud-common": "^0.1.3", - "@backstage/plugin-catalog-backend": "^1.4.0", + "@backstage/backend-tasks": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-bitbucket-cloud-common": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", "uuid": "^8.0.0", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "msw": "^0.47.0" }, "files": [ diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index d73fba5ff0..d4e27a8ec6 100644 --- a/plugins/catalog-backend-module-bitbucket-server/package.json +++ b/plugins/catalog-backend-module-bitbucket-server/package.json @@ -31,21 +31,21 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-backend": "^1.4.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", "@types/node-fetch": "^2.5.12", "node-fetch": "^2.6.7", "uuid": "^8.0.0", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "msw": "^0.47.0" }, "files": [ diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index a37222a575..171493dfc2 100644 --- a/plugins/catalog-backend-module-bitbucket/package.json +++ b/plugins/catalog-backend-module-bitbucket/package.json @@ -32,22 +32,22 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-bitbucket-cloud-common": "^0.1.3", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-bitbucket-cloud-common": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/types": "workspace:^", "lodash": "^4.17.21", "msw": "^0.47.0", "node-fetch": "^2.6.7", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index b4eb038874..6a115ea481 100644 --- a/plugins/catalog-backend-module-gerrit/package.json +++ b/plugins/catalog-backend-module-gerrit/package.json @@ -28,13 +28,13 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-backend": "^1.4.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", "fs-extra": "10.1.0", "msw": "^0.47.0", "node-fetch": "^2.6.7", @@ -42,8 +42,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/fs-extra": "^9.0.1" }, "files": [ diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index fb1eda3a2b..278f108a7b 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -33,16 +33,16 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-plugin-api": "^0.1.2", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/plugin-catalog-node": "^1.1.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/plugin-catalog-node": "workspace:^", + "@backstage/types": "workspace:^", "@octokit/graphql": "^5.0.0", "lodash": "^4.17.21", "msw": "^0.47.0", @@ -51,8 +51,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 16a8187835..457be11480 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -32,14 +32,14 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/types": "workspace:^", "lodash": "^4.17.21", "msw": "^0.47.0", "node-fetch": "^2.6.7", @@ -47,8 +47,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/lodash": "^4.14.151", "@types/uuid": "^8.0.0" }, diff --git a/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.test.ts b/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.test.ts index d0f2eb383d..385ce59bfb 100644 --- a/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.test.ts @@ -153,7 +153,7 @@ describe('GitlabDiscoveryProcessor', () => { setupRequestMockHandlers(server); beforeAll(() => { - jest.useFakeTimers('modern'); + jest.useFakeTimers(); jest.setSystemTime(new Date(SERVER_TIME)); }); diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index b5cd694fd6..ea00832f98 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -32,12 +32,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/types": "workspace:^", "@types/ldapjs": "^2.2.0", "ldapjs": "^2.2.0", "lodash": "^4.17.21", @@ -45,7 +45,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 6d8ffe8683..5a5b90832e 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -33,10 +33,10 @@ }, "dependencies": { "@azure/identity": "^2.1.0", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/plugin-catalog-backend": "^1.4.0", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", "@microsoft/microsoft-graph-types": "^2.6.0", "@types/node-fetch": "^2.5.12", "lodash": "^4.17.21", @@ -47,9 +47,9 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/lodash": "^4.14.151", "msw": "^0.47.0" }, diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 7caf7a00aa..f3081f575b 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -33,19 +33,19 @@ }, "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/plugin-catalog-node": "^1.1.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/plugin-catalog-node": "workspace:^", + "@backstage/types": "workspace:^", "winston": "^3.2.1", "yaml": "^2.1.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "openapi-types": "^12.0.0" }, "files": [ diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 471fdaaf26..f834b0e2e8 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -33,20 +33,20 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-plugin-api": "^0.1.2", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-common": "^1.0.6", - "@backstage/plugin-catalog-node": "^1.1.0", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-permission-node": "^0.6.5", - "@backstage/plugin-scaffolder-common": "^1.2.0", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", + "@backstage/plugin-catalog-node": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-permission-node": "workspace:^", + "@backstage/plugin-scaffolder-common": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/types": "workspace:^", "@types/express": "^4.17.6", "codeowners-utils": "^1.0.2", "core-js": "^3.6.5", @@ -69,10 +69,10 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-search-backend-node": "1.0.2", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-search-backend-node": "workspace:^", "@types/core-js": "^2.5.4", "@types/git-url-parse": "^9.0.0", "@types/lodash": "^4.14.151", diff --git a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts index 8fd8114760..105ab03d90 100644 --- a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts +++ b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts @@ -387,6 +387,39 @@ describe('PlaceholderProcessor', () => { key: 'url:http://example.com/path-to-file.json', }); }); + + it('accepts arbitrary object as value', async () => { + const processor = new PlaceholderProcessor({ + resolvers: { + merge: async ({ value }) => { + if (value instanceof Object) { + return { merged: 'value', ...value }; + } + return value; + }, + }, + reader, + integrations, + }); + + const result = await processor.preProcessEntity( + { + apiVersion: 'a', + kind: 'k', + metadata: { name: 'n' }, + spec: { a: { $merge: { passed: 'value' } } }, + }, + { type: 'fake', target: 'http://example.com' }, + () => {}, + ); + + expect(result).toMatchObject({ + apiVersion: 'a', + kind: 'k', + metadata: { name: 'n' }, + spec: { a: { passed: 'value', merged: 'value' } }, + }); + }); }); describe('yamlPlaceholderResolver', () => { diff --git a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.ts b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.ts index 39c9dc59ec..5e49c67915 100644 --- a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.ts +++ b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.ts @@ -111,12 +111,11 @@ export class PlaceholderProcessor implements CatalogProcessor { const resolverValue = data[keys[0]]; const resolver = this.options.resolvers[resolverKey]; - if (!resolver || typeof resolverValue !== 'string') { - // If there was no such placeholder resolver or if the value was not a - // string, we err on the side of safety and assume that this is - // something that's best left alone. For example, if the input contains - // JSONSchema, there may be "$ref": "#/definitions/node" nodes in the - // document. + if (!resolver) { + // If there was no such placeholder resolver, we err on the side of safety + // and assume that this is something that's best left alone. For example, if + // the input contains JSONSchema, there may be "$ref": "#/definitions/node" + // nodes in the document. return [data, false]; } diff --git a/plugins/catalog-backend/src/service/CatalogBuilder.ts b/plugins/catalog-backend/src/service/CatalogBuilder.ts index 25f9fde313..d47ace1454 100644 --- a/plugins/catalog-backend/src/service/CatalogBuilder.ts +++ b/plugins/catalog-backend/src/service/CatalogBuilder.ts @@ -409,7 +409,11 @@ export class CatalogBuilder { parser, policy, }); - const unauthorizedEntitiesCatalog = new DefaultEntitiesCatalog(dbClient); + const stitcher = new Stitcher(dbClient, logger); + const unauthorizedEntitiesCatalog = new DefaultEntitiesCatalog( + dbClient, + stitcher, + ); let permissionEvaluator: PermissionEvaluator; if ('authorizeConditional' in permissions) { @@ -453,7 +457,6 @@ export class CatalogBuilder { permissions: catalogPermissions, rules: this.permissionRules, }); - const stitcher = new Stitcher(dbClient, logger); const locationStore = new DefaultLocationStore(dbClient); const configLocationProvider = new ConfigLocationEntityProvider(config); diff --git a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts index 43e208197f..49d4fe9e19 100644 --- a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts +++ b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts @@ -25,12 +25,15 @@ import { DbRefreshStateRow, DbSearchRow, } from '../database/tables'; +import { Stitcher } from '../stitching/Stitcher'; import { DefaultEntitiesCatalog } from './DefaultEntitiesCatalog'; describe('DefaultEntitiesCatalog', () => { const databases = TestDatabases.create({ ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], }); + const stitch = jest.fn(); + const stitcher: Stitcher = { stitch } as any; async function createDatabase(databaseId: TestDatabaseId) { const knex = await databases.init(databaseId); @@ -122,6 +125,10 @@ describe('DefaultEntitiesCatalog', () => { ); } + afterEach(() => { + jest.resetAllMocks(); + }); + describe('entityAncestry', () => { it.each(databases.eachSupportedId())( 'should return the ancestry with one parent, %p', @@ -151,7 +158,7 @@ describe('DefaultEntitiesCatalog', () => { await addEntity(knex, parent, [{ entity: grandparent }]); await addEntity(knex, root, [{ entity: parent }]); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); const result = await catalog.entityAncestry('k:default/root'); expect(result.rootEntityRef).toEqual('k:default/root'); @@ -181,7 +188,7 @@ describe('DefaultEntitiesCatalog', () => { 'should throw error if the entity does not exist, %p', async databaseId => { const { knex } = await createDatabase(databaseId); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); await expect(() => catalog.entityAncestry('k:default/root'), ).rejects.toThrow('No such entity k:default/root'); @@ -224,7 +231,7 @@ describe('DefaultEntitiesCatalog', () => { await addEntity(knex, parent2, [{ entity: grandparent }]); await addEntity(knex, root, [{ entity: parent1 }, { entity: parent2 }]); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); const result = await catalog.entityAncestry('k:default/root'); expect(result.rootEntityRef).toEqual('k:default/root'); @@ -280,7 +287,7 @@ describe('DefaultEntitiesCatalog', () => { }; await addEntityToSearch(knex, entity1); await addEntityToSearch(knex, entity2); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); const testFilter = { key: 'spec.test', @@ -313,7 +320,7 @@ describe('DefaultEntitiesCatalog', () => { }; await addEntityToSearch(knex, entity1); await addEntityToSearch(knex, entity2); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); const testFilter = { not: { @@ -360,7 +367,7 @@ describe('DefaultEntitiesCatalog', () => { await addEntityToSearch(knex, entity2); await addEntityToSearch(knex, entity3); await addEntityToSearch(knex, entity4); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); const testFilter1 = { key: 'metadata.org', @@ -415,7 +422,7 @@ describe('DefaultEntitiesCatalog', () => { }; await addEntityToSearch(knex, entity1); await addEntityToSearch(knex, entity2); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); const testFilter1 = { key: 'metadata.org', @@ -457,7 +464,7 @@ describe('DefaultEntitiesCatalog', () => { }; await addEntityToSearch(knex, entity1); await addEntityToSearch(knex, entity2); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); const testFilter = { key: 'kind', @@ -501,7 +508,7 @@ describe('DefaultEntitiesCatalog', () => { }, [], ); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); const { entities } = await catalog.entities(); @@ -557,10 +564,16 @@ describe('DefaultEntitiesCatalog', () => { metadata: { name: 'root' }, spec: {}, }; - const unrelated: Entity = { + const unrelated1: Entity = { apiVersion: 'a', kind: 'k', - metadata: { name: 'unrelated' }, + metadata: { name: 'unrelated1' }, + spec: {}, + }; + const unrelated2: Entity = { + apiVersion: 'a', + kind: 'k', + metadata: { name: 'unrelated2' }, spec: {}, }; @@ -571,10 +584,23 @@ describe('DefaultEntitiesCatalog', () => { { entity: parent1 }, { entity: parent2 }, ]); - await addEntity(knex, unrelated, []); + await addEntity(knex, unrelated1, []); + await addEntity(knex, unrelated2, []); await knex('refresh_state').update({ result_hash: 'not-changed' }); + await knex('relations').insert({ + originating_entity_id: uid, + type: 't', + source_entity_ref: 'k:default/root', + target_entity_ref: 'k:default/unrelated1', + }); + await knex('relations').insert({ + originating_entity_id: uid, + type: 't', + source_entity_ref: 'k:default/unrelated2', + target_entity_ref: 'k:default/root', + }); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); await catalog.removeEntityByUid(uid); await expect( @@ -586,8 +612,12 @@ describe('DefaultEntitiesCatalog', () => { { entity_ref: 'k:default/grandparent', result_hash: 'not-changed' }, { entity_ref: 'k:default/parent1', result_hash: 'child-was-deleted' }, { entity_ref: 'k:default/parent2', result_hash: 'child-was-deleted' }, - { entity_ref: 'k:default/unrelated', result_hash: 'not-changed' }, + { entity_ref: 'k:default/unrelated1', result_hash: 'not-changed' }, + { entity_ref: 'k:default/unrelated2', result_hash: 'not-changed' }, ]); + expect(stitch).toHaveBeenCalledWith( + new Set(['k:default/unrelated1', 'k:default/unrelated2']), + ); }, ); }); @@ -616,7 +646,7 @@ describe('DefaultEntitiesCatalog', () => { metadata: { name: 'two' }, spec: {}, }); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); await expect(catalog.facets({ facets: ['kind'] })).resolves.toEqual({ facets: { @@ -654,7 +684,7 @@ describe('DefaultEntitiesCatalog', () => { }, spec: {}, }); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); await expect( catalog.facets({ @@ -698,7 +728,7 @@ describe('DefaultEntitiesCatalog', () => { }, spec: {}, }); - const catalog = new DefaultEntitiesCatalog(knex); + const catalog = new DefaultEntitiesCatalog(knex, stitcher); await expect( catalog.facets({ diff --git a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts index fa11903447..dc84b12484 100644 --- a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts +++ b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.ts @@ -38,8 +38,10 @@ import { DbPageInfo, DbRefreshStateReferencesRow, DbRefreshStateRow, + DbRelationsRow, DbSearchRow, } from '../database/tables'; +import { Stitcher } from '../stitching/Stitcher'; function parsePagination(input?: EntityPagination): { limit?: number; @@ -158,7 +160,10 @@ function parseFilter( } export class DefaultEntitiesCatalog implements EntitiesCatalog { - constructor(private readonly database: Knex) {} + constructor( + private readonly database: Knex, + private readonly stitcher: Stitcher, + ) {} async entities(request?: EntitiesRequest): Promise { const db = this.database; @@ -244,6 +249,7 @@ export class DefaultEntitiesCatalog implements EntitiesCatalog { await this.database('refresh_state') .update({ result_hash: 'child-was-deleted', + next_update_at: this.database.fn.now(), }) .whereIn('entity_ref', function parents(builder) { return builder @@ -256,9 +262,35 @@ export class DefaultEntitiesCatalog implements EntitiesCatalog { .select('refresh_state_references.source_entity_ref'); }); + // Stitch the entities that the deleted one had relations to. If we do not + // do this, the entities in the other end of the relations will still look + // like they have a relation to the entity that was deleted, despite not + // having any corresponding rows in the relations table. + const relationPeers = await this.database + .from('relations') + .innerJoin('refresh_state', { + 'refresh_state.entity_ref': 'relations.target_entity_ref', + }) + .where('relations.originating_entity_id', '=', uid) + .andWhere('refresh_state.entity_id', '!=', uid) + .select({ ref: 'relations.target_entity_ref' }) + .union(other => + other + .from('relations') + .innerJoin('refresh_state', { + 'refresh_state.entity_ref': 'relations.source_entity_ref', + }) + .where('relations.originating_entity_id', '=', uid) + .andWhere('refresh_state.entity_id', '!=', uid) + .select({ ref: 'relations.source_entity_ref' }), + ); + + // Perform the actual deletion await this.database('refresh_state') .where('entity_id', uid) .delete(); + + await this.stitcher.stitch(new Set(relationPeers.map(p => p.ref))); } async entityAncestry(rootRef: string): Promise { diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index c4a9232fb9..357636341a 100644 --- a/plugins/catalog-common/package.json +++ b/plugins/catalog-common/package.json @@ -33,11 +33,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-search-common": "^1.0.1" + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-search-common": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist", diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index 2c63efa860..a8ffbd7494 100644 --- a/plugins/catalog-customized/package.json +++ b/plugins/catalog-customized/package.json @@ -33,8 +33,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-catalog": "^1.5.1", - "@backstage/plugin-catalog-react": "^1.1.4" + "@backstage/plugin-catalog": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^" }, "devDependencies": { "@types/react": "^16.13.1 || ^17.0.0" diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index a9167a2220..88a45c4bde 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -22,12 +22,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -43,12 +43,12 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/plugin-catalog": "^1.5.1", - "@backstage/test-utils": "^1.2.0", - "@backstage/types": "^1.0.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/plugin-catalog": "workspace:^", + "@backstage/test-utils": "workspace:^", + "@backstage/types": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index 2872a8938d..7ad5fb68be 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -34,9 +34,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/types": "^1.0.0", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/types": "workspace:^", "apollo-server": "^3.0.0", "graphql": "^16.0.0", "graphql-modules": "^2.0.0", @@ -46,8 +46,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/test-utils": "workspace:^", "@graphql-codegen/cli": "^2.3.1", "@graphql-codegen/graphql-modules-preset": "^2.3.2", "@graphql-codegen/typescript": "^2.4.2", diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index ca2b9b2a10..7ec45fc6ed 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -32,15 +32,15 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-catalog-react": "^1.1.4", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -58,10 +58,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/catalog-import/src/components/StepPrepareCreatePullRequest/PreparePullRequestForm.test.tsx b/plugins/catalog-import/src/components/StepPrepareCreatePullRequest/PreparePullRequestForm.test.tsx index b439366728..3acb7390a9 100644 --- a/plugins/catalog-import/src/components/StepPrepareCreatePullRequest/PreparePullRequestForm.test.tsx +++ b/plugins/catalog-import/src/components/StepPrepareCreatePullRequest/PreparePullRequestForm.test.tsx @@ -87,7 +87,6 @@ describe('', () => { {formState.errors.main && ( diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index bd80bde03c..4bd1f5259b 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -24,16 +24,16 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-plugin-api": "^0.1.2", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/errors": "1.1.1", - "@backstage/types": "^1.0.0" + "@backstage/backend-plugin-api": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/types": "workspace:^" }, "devDependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0" + "@backstage/backend-common": "workspace:^", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^" }, "files": [ "dist", diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 3b3ac3833c..759aa6e4a9 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -33,18 +33,18 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-common": "^1.0.6", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-permission-react": "^0.4.5", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", - "@backstage/version-bridge": "^1.0.1", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-permission-react": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", + "@backstage/version-bridge": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -62,11 +62,11 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/plugin-catalog-common": "^1.0.6", - "@backstage/plugin-scaffolder-common": "^1.2.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", + "@backstage/plugin-scaffolder-common": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 8adc77fd3f..99361b6a3d 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -32,18 +32,18 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-catalog-common": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/plugin-search-react": "^1.1.0", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/plugin-search-react": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -59,11 +59,11 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/plugin-permission-react": "^0.4.5", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/plugin-permission-react": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index 93d63976a6..a8c4ef7dec 100644 --- a/plugins/cicd-statistics-module-gitlab/package.json +++ b/plugins/cicd-statistics-module-gitlab/package.json @@ -28,16 +28,16 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-cicd-statistics": "^0.1.11", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-cicd-statistics": "workspace:^", "@gitbeaker/browser": "^35.6.0", "@gitbeaker/core": "^35.6.0", "luxon": "^3.0.0", "p-limit": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index d666331767..1e1a7f95ad 100644 --- a/plugins/cicd-statistics/package.json +++ b/plugins/cicd-statistics/package.json @@ -32,17 +32,17 @@ "start": "backstage-cli package start" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/luxon": "^3.0.0", "@types/react": "^16.13.1 || ^17.0.0" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", "@date-io/luxon": "^1.3.13", "@material-ui/core": "^4.9.13", - "@material-ui/icons": "^4.11.2", + "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", "@material-ui/pickers": "^3.3.10", "already": "^3.2.0", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 1a64b6e29a..7363bd98f0 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -33,11 +33,11 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -53,10 +53,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index cc4286f4d0..3b20b28c3d 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -33,11 +33,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -51,10 +51,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 89432bdfa9..1863e3e080 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -22,11 +22,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -39,9 +39,9 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 74a2fd6bda..3cf9b2f087 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -23,12 +23,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -39,7 +39,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/express-xml-bodyparser": "^0.3.2", "@types/supertest": "^2.0.8", "msw": "^0.47.0", diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 4d3e932e3f..ab4e071ccc 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -23,13 +23,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -45,10 +45,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index 7fd45d9896..884b751347 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -22,11 +22,11 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/theme": "^0.2.16", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.9.10", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.57", @@ -38,10 +38,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 1658c507cd..cf2cb6cf90 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -23,12 +23,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -40,10 +40,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/cost-insights-common/package.json b/plugins/cost-insights-common/package.json index ff458b0a5c..d675e0a548 100644 --- a/plugins/cost-insights-common/package.json +++ b/plugins/cost-insights-common/package.json @@ -32,7 +32,7 @@ "clean": "backstage-cli package clean" }, "devDependencies": { - "@backstage/cli": "^0.19.0-next.1" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 3bf59e98b9..fc128f405f 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -32,12 +32,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-cost-insights-common": "^0.1.1", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-cost-insights-common": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -59,10 +59,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewBreakdownChart.tsx b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewBreakdownChart.tsx index d0731326f2..5b912c09a6 100644 --- a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewBreakdownChart.tsx +++ b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewBreakdownChart.tsx @@ -113,8 +113,8 @@ export const CostOverviewBreakdownChart = ({ {} as Record>, ); - const chartData: Record[] = Object.keys(breakdownsByDate).map( - date => { + const chartData: Record[] = Object.keys(breakdownsByDate) + .map(date => { const costsForDate = Object.keys(breakdownsByDate[date]).reduce( (dateCosts, breakdown) => { // Group costs for items that belong to 'Other' in the chart. @@ -131,8 +131,8 @@ export const CostOverviewBreakdownChart = ({ ...costsForDate, date: Date.parse(date), }; - }, - ); + }) + .sort((a, b) => a.date - b.date); const sortedBreakdowns = costBreakdown.sort( (a, b) => aggregationSum(a.aggregation) - aggregationSum(b.aggregation), diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index 45e5fc85a4..d8b3cb06a8 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -22,24 +22,24 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", "react-use": "^17.2.4" }, "peerDependencies": { - "@backstage/plugin-catalog-react": "^1.1.4-next.0", + "@backstage/plugin-catalog-react": "workspace:^", "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index 5a5c2720da..295aad4021 100644 --- a/plugins/example-todo-list-backend/package.json +++ b/plugins/example-todo-list-backend/package.json @@ -23,10 +23,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-auth-node": "^0.2.5", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -35,7 +35,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", "msw": "^0.47.0", diff --git a/plugins/example-todo-list-common/api-report.md b/plugins/example-todo-list-common/api-report.md index 15ffb7b139..1e51e560c8 100644 --- a/plugins/example-todo-list-common/api-report.md +++ b/plugins/example-todo-list-common/api-report.md @@ -8,5 +8,8 @@ import { BasicPermission } from '@backstage/plugin-permission-common'; // @public export const tempExamplePermission: BasicPermission; +// @public +export const todoListPermissions: BasicPermission[]; + // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/example-todo-list-common/package.json b/plugins/example-todo-list-common/package.json index 69d7433897..32dfe96ef4 100644 --- a/plugins/example-todo-list-common/package.json +++ b/plugins/example-todo-list-common/package.json @@ -23,13 +23,13 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/plugin-permission-common": "^0.6.4" + "@backstage/plugin-permission-common": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", "msw": "^0.47.0" diff --git a/plugins/example-todo-list-common/src/permissions.ts b/plugins/example-todo-list-common/src/permissions.ts index 439bf5e8b9..ea0b097376 100644 --- a/plugins/example-todo-list-common/src/permissions.ts +++ b/plugins/example-todo-list-common/src/permissions.ts @@ -25,3 +25,10 @@ export const tempExamplePermission = createPermission({ name: 'temp.example.noop', attributes: {}, }); + +/** + * List of all todo list permissions. + * + * @public + */ +export const todoListPermissions = [tempExamplePermission]; diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 84fadc46bd..9b66c0c0a9 100644 --- a/plugins/example-todo-list/package.json +++ b/plugins/example-todo-list/package.json @@ -23,9 +23,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -35,10 +35,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/example-todo-list/src/components/TodoListPage/TodoListPage.tsx b/plugins/example-todo-list/src/components/TodoListPage/TodoListPage.tsx index 7ebb517532..6071502fdb 100644 --- a/plugins/example-todo-list/src/components/TodoListPage/TodoListPage.tsx +++ b/plugins/example-todo-list/src/components/TodoListPage/TodoListPage.tsx @@ -45,17 +45,16 @@ export const TodoListPage = () => { const discoveryApi = useApi(discoveryApiRef); const { fetch } = useApi(fetchApiRef); const alertApi = useApi(alertApiRef); - const title = useRef(''); const [key, refetchTodos] = useReducer(i => i + 1, 0); const [editElement, setEdit] = useState(); - const handleAdd = async () => { + const handleAdd = async (title: string) => { try { const response = await fetch( `${await discoveryApi.getBaseUrl('todolist')}/todos`, { method: 'POST', - body: JSON.stringify({ title: title.current }), + body: JSON.stringify({ title }), headers: { 'Content-Type': 'application/json', }, @@ -117,21 +116,7 @@ export const TodoListPage = () => { - Add todo - - (title.current = e.target.value)} - /> - - + @@ -149,6 +134,30 @@ export const TodoListPage = () => { ); }; +function AddTodo({ onAdd }: { onAdd: (title: string) => any }) { + const title = useRef(''); + + return ( + <> + Add todo + + (title.current = e.target.value)} + /> + + + + ); +} + function EditModal({ todo, onCancel, diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json index 765a71e352..66ac17f785 100644 --- a/plugins/explore-react/package.json +++ b/plugins/explore-react/package.json @@ -32,12 +32,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-plugin-api": "^1.0.6" + "@backstage/core-plugin-api": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index d09e759d01..b9b9257a3a 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -32,12 +32,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-explore-react": "^0.0.21", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-explore-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -51,10 +51,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index bcce19759f..37aa7b259b 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -23,10 +23,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -37,10 +37,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 29a6b913dc..bf249c1b9d 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -33,12 +33,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -51,10 +51,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index e47498bc82..9ef566e95c 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -22,10 +22,10 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 4669877e15..d2926de41b 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -33,9 +33,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -46,10 +46,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 061229e9fd..89061cc510 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -23,10 +23,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration": "^1.3.1", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -42,10 +42,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/git-release-manager/src/api/GitReleaseClient.test.ts b/plugins/git-release-manager/src/api/GitReleaseClient.test.ts index 418da485a2..2b1877d487 100644 --- a/plugins/git-release-manager/src/api/GitReleaseClient.test.ts +++ b/plugins/git-release-manager/src/api/GitReleaseClient.test.ts @@ -52,7 +52,7 @@ describe('GitReleaseClient', () => { "getRepository": [Function], "getTag": [Function], "getUser": [Function], - "githubAuthApi": Object { + "githubAuthApi": { "getAccessToken": [MockFunction], }, "host": "github.com", diff --git a/plugins/git-release-manager/src/api/serviceApiRef.test.ts b/plugins/git-release-manager/src/api/serviceApiRef.test.ts index b27738671d..0ac1c89265 100644 --- a/plugins/git-release-manager/src/api/serviceApiRef.test.ts +++ b/plugins/git-release-manager/src/api/serviceApiRef.test.ts @@ -22,7 +22,7 @@ describe('gitReleaseManagerApiRef', () => { expect(result).toMatchInlineSnapshot(` ApiRefImpl { - "config": Object { + "config": { "id": "plugin.git-release-manager.service", }, } diff --git a/plugins/git-release-manager/src/constants/constants.test.ts b/plugins/git-release-manager/src/constants/constants.test.ts index fb475bd577..49b5f90c7f 100644 --- a/plugins/git-release-manager/src/constants/constants.test.ts +++ b/plugins/git-release-manager/src/constants/constants.test.ts @@ -19,19 +19,19 @@ import * as constants from './constants'; describe('constants', () => { it('should match snapshot', () => { expect(constants).toMatchInlineSnapshot(` - Object { - "DISABLE_CACHE": Object { - "headers": Object { + { + "DISABLE_CACHE": { + "headers": { "If-None-Match": "", }, }, - "SEMVER_PARTS": Object { + "SEMVER_PARTS": { "major": "major", "minor": "minor", "patch": "patch", }, "TAG_OBJECT_MESSAGE": "Tag generated by your friendly neighborhood Backstage Release Manager", - "VERSIONING_STRATEGIES": Object { + "VERSIONING_STRATEGIES": { "calver": "calver", "semver": "semver", }, diff --git a/plugins/git-release-manager/src/features/CreateReleaseCandidate/hooks/useCreateReleaseCandidate.test.tsx b/plugins/git-release-manager/src/features/CreateReleaseCandidate/hooks/useCreateReleaseCandidate.test.tsx index 3128fde9c8..25a987df2a 100644 --- a/plugins/git-release-manager/src/features/CreateReleaseCandidate/hooks/useCreateReleaseCandidate.test.tsx +++ b/plugins/git-release-manager/src/features/CreateReleaseCandidate/hooks/useCreateReleaseCandidate.test.tsx @@ -72,37 +72,37 @@ describe('useCreateReleaseCandidate', () => { expect(result.current.responseSteps).toHaveLength(7); expect(result.current).toMatchInlineSnapshot(` - Object { + { "progress": 100, - "responseSteps": Array [ - Object { + "responseSteps": [ + { "link": "https://latestCommit.html_url", - "message": "Fetched latest commit from \\"mock_defaultBranch\\"", - "secondaryMessage": "with message \\"latestCommit.commit.message\\"", + "message": "Fetched latest commit from "mock_defaultBranch"", + "secondaryMessage": "with message "latestCommit.commit.message"", }, - Object { + { "message": "Created Release Branch", - "secondaryMessage": "with ref \\"mock_createRef_ref\\"", + "secondaryMessage": "with ref "mock_createRef_ref"", }, - Object { + { "message": "Created Tag Object", - "secondaryMessage": "with sha \\"mock_tag_object_sha\\"", + "secondaryMessage": "with sha "mock_tag_object_sha"", }, - Object { + { "message": "Cut Tag Reference", - "secondaryMessage": "with ref \\"mock_createRef_ref\\"", + "secondaryMessage": "with ref "mock_createRef_ref"", }, - Object { + { "link": "https://mock_compareCommits_html_url", "message": "Fetched commit comparison", "secondaryMessage": "rc/2020.01.01_1...rc/2020.01.01_1", }, - Object { + { "link": "https://mock_createRelease_html_url", - "message": "Created Release Candidate \\"mock_createRelease_name\\"", - "secondaryMessage": "with tag \\"rc-2020.01.01_1\\"", + "message": "Created Release Candidate "mock_createRelease_name"", + "secondaryMessage": "with tag "rc-2020.01.01_1"", }, - Object { + { "icon": "success", "message": "Success callback successfully called 🚀", }, diff --git a/plugins/git-release-manager/src/features/Patch/hooks/usePatch.test.ts b/plugins/git-release-manager/src/features/Patch/hooks/usePatch.test.ts index f3b94c2476..0bd7f27cdb 100644 --- a/plugins/git-release-manager/src/features/Patch/hooks/usePatch.test.ts +++ b/plugins/git-release-manager/src/features/Patch/hooks/usePatch.test.ts @@ -75,91 +75,91 @@ describe('patch', () => { expect(result.error).toEqual(undefined); expect(result.current.responseSteps).toHaveLength(19); expect(result.current).toMatchInlineSnapshot(` - Object { + { "progress": 100, - "responseSteps": Array [ - Object { + "responseSteps": [ + { "message": , }, - Object { + { "message": , }, - Object { + { "message": , }, - Object { + { "message": , }, - Object { + { "message": , }, - Object { + { "message": , }, - Object { + { "message": , }, - Object { + { "message": , }, - Object { + { "message": , }, - Object { + { "link": "https://mock_branch_links_html", - "message": "Fetched release branch \\"rc/1.2.3\\"", + "message": "Fetched release branch "rc/1.2.3"", }, - Object { + { "message": "Created temporary commit", - "secondaryMessage": "with message \\"mock_commit_message\\"", + "secondaryMessage": "with message "mock_commit_message"", }, - Object { - "message": "Forced branch \\"rc/2020.01.01_1\\" to temporary commit \\"mock_commit_sha\\"", + { + "message": "Forced branch "rc/2020.01.01_1" to temporary commit "mock_commit_sha"", }, - Object { + { "link": "https://mock_merge_html_url", - "message": "Merged temporary commit into \\"rc/2020.01.01_1\\"", - "secondaryMessage": "with message \\"mock_merge_commit_message\\"", + "message": "Merged temporary commit into "rc/2020.01.01_1"", + "secondaryMessage": "with message "mock_merge_commit_message"", }, - Object { - "message": "Cherry-picked patch commit to \\"mock_branch_commit_sha\\"", - "secondaryMessage": "with message \\"mock_commit_message\\"", + { + "message": "Cherry-picked patch commit to "mock_branch_commit_sha"", + "secondaryMessage": "with message "mock_commit_message"", }, - Object { - "message": "Updated reference \\"mock_update_ref_ref\\"", + { + "message": "Updated reference "mock_update_ref_ref"", }, - Object { + { "message": "Created new tag object", - "secondaryMessage": "with name \\"mock_tag_object_tag\\"", + "secondaryMessage": "with name "mock_tag_object_tag"", }, - Object { - "message": "Created new reference \\"mock_createRef_ref\\"", - "secondaryMessage": "for tag object \\"mock_tag_object_tag\\"", + { + "message": "Created new reference "mock_createRef_ref"", + "secondaryMessage": "for tag object "mock_tag_object_tag"", }, - Object { + { "link": "https://mock_update_release_html_url", - "message": "Updated release \\"mock_update_release_name\\"", + "message": "Updated release "mock_update_release_name"", "secondaryMessage": "with tag mock_update_release_tag_name", }, - Object { + { "icon": "success", "message": "Success callback successfully called 🚀", }, diff --git a/plugins/git-release-manager/src/features/PromoteRc/hooks/usePromoteRc.test.ts b/plugins/git-release-manager/src/features/PromoteRc/hooks/usePromoteRc.test.ts index ff1c58b5be..f4e0fcb081 100644 --- a/plugins/git-release-manager/src/features/PromoteRc/hooks/usePromoteRc.test.ts +++ b/plugins/git-release-manager/src/features/PromoteRc/hooks/usePromoteRc.test.ts @@ -72,27 +72,27 @@ describe('usePromoteRc', () => { expect(result.current.responseSteps).toHaveLength(5); expect(result.current).toMatchInlineSnapshot(` - Object { + { "progress": 100, - "responseSteps": Array [ - Object { + "responseSteps": [ + { "message": "Fetched most recent commit from release branch", - "secondaryMessage": "with sha \\"latestCommit.sha\\"", + "secondaryMessage": "with sha "latestCommit.sha"", }, - Object { + { "message": "Created Tag Object", - "secondaryMessage": "with sha \\"mock_tag_object_sha\\"", + "secondaryMessage": "with sha "mock_tag_object_sha"", }, - Object { + { "message": "Create Tag Reference", - "secondaryMessage": "with ref \\"mock_createRef_ref\\"", + "secondaryMessage": "with ref "mock_createRef_ref"", }, - Object { + { "link": "https://mock_update_release_html_url", - "message": "Promoted \\"mock_update_release_name\\"", - "secondaryMessage": "from \\"rc-2020.01.01_1\\" to \\"mock_update_release_tag_name\\"", + "message": "Promoted "mock_update_release_name"", + "secondaryMessage": "from "rc-2020.01.01_1" to "mock_update_release_tag_name"", }, - Object { + { "icon": "success", "message": "Success callback successfully called 🚀", }, diff --git a/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.test.tsx b/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.test.tsx index e8798f3ce0..d73f6bf2aa 100644 --- a/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.test.tsx +++ b/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.test.tsx @@ -71,7 +71,7 @@ describe('Owner', () => { await waitFor(() => screen.getAllByTestId(TEST_IDS.form.owner.empty)); expect(getAllByTestId(TEST_IDS.form.owner.empty)).toMatchInlineSnapshot(` - Array [ + [

{ await waitFor(() => screen.getAllByTestId(TEST_IDS.form.repo.empty)); expect(getAllByTestId(TEST_IDS.form.repo.empty)).toMatchInlineSnapshot(` - Array [ + [

{ fireEvent.click(radio2); expect(mockNavigate.mock.calls).toMatchInlineSnapshot(` - Array [ - Array [ + [ + [ "?versioningStrategy=calver&owner=mock_owner&repo=mock_repo", - Object { + { "replace": true, }, ], diff --git a/plugins/git-release-manager/src/features/Stats/Info/helpers/getReleaseCommitPairs.test.tsx b/plugins/git-release-manager/src/features/Stats/Info/helpers/getReleaseCommitPairs.test.tsx index 5b800a4df5..4e946d965c 100644 --- a/plugins/git-release-manager/src/features/Stats/Info/helpers/getReleaseCommitPairs.test.tsx +++ b/plugins/git-release-manager/src/features/Stats/Info/helpers/getReleaseCommitPairs.test.tsx @@ -96,29 +96,29 @@ describe('getReleaseCommitPairs', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "releaseCommitPairs": Array [ - Object { + { + "releaseCommitPairs": [ + { "baseVersion": "2.0", - "endCommit": Object { + "endCommit": { "tagName": "version-2.0.0", "tagSha": "sha-2.0.0", "tagType": "tag", }, - "startCommit": Object { + "startCommit": { "tagName": "rc-2.0.0", "tagSha": "sha-2.0.0", "tagType": "tag", }, }, - Object { + { "baseVersion": "3.0", - "endCommit": Object { + "endCommit": { "tagName": "version-3.0.1", "tagSha": "sha-3.0.1", "tagType": "tag", }, - "startCommit": Object { + "startCommit": { "tagName": "rc-3.0.0", "tagSha": "sha-3.0.0", "tagType": "tag", diff --git a/plugins/git-release-manager/src/features/Stats/helpers/getMappedReleases.test.tsx b/plugins/git-release-manager/src/features/Stats/helpers/getMappedReleases.test.tsx index b0467b1260..1989cd9c09 100644 --- a/plugins/git-release-manager/src/features/Stats/helpers/getMappedReleases.test.tsx +++ b/plugins/git-release-manager/src/features/Stats/helpers/getMappedReleases.test.tsx @@ -33,27 +33,27 @@ describe('getMappedReleases', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "mappedReleases": Object { - "releases": Object { - "1.0": Object { + { + "mappedReleases": { + "releases": { + "1.0": { "baseVersion": "1.0", - "candidates": Array [], + "candidates": [], "createdAt": "2021-01-01T10:11:12Z", "htmlUrl": "html_url", - "versions": Array [], + "versions": [], }, - "1.1": Object { + "1.1": { "baseVersion": "1.1", - "candidates": Array [], + "candidates": [], "createdAt": "2021-01-01T10:11:12Z", "htmlUrl": "html_url", - "versions": Array [], + "versions": [], }, }, - "unmappableTags": Array [], - "unmatchedReleases": Array [], - "unmatchedTags": Array [], + "unmappableTags": [], + "unmatchedReleases": [], + "unmatchedTags": [], }, } `); diff --git a/plugins/git-release-manager/src/features/Stats/helpers/getReleaseStats.test.tsx b/plugins/git-release-manager/src/features/Stats/helpers/getReleaseStats.test.tsx index f46d0978b8..f446bca1c3 100644 --- a/plugins/git-release-manager/src/features/Stats/helpers/getReleaseStats.test.tsx +++ b/plugins/git-release-manager/src/features/Stats/helpers/getReleaseStats.test.tsx @@ -60,23 +60,23 @@ describe('getReleaseStats', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "releaseStats": Object { - "releases": Object { - "1.0": Object { + { + "releaseStats": { + "releases": { + "1.0": { "baseVersion": "1.0", - "candidates": Array [ - Object { + "candidates": [ + { "tagName": "rc-1.0.0", "tagSha": "sha", "tagType": "tag", }, - Object { + { "tagName": "rc-1.0.1", "tagSha": "sha", "tagType": "tag", }, - Object { + { "tagName": "rc-1.0.2", "tagSha": "sha", "tagType": "tag", @@ -84,18 +84,18 @@ describe('getReleaseStats', () => { ], "createdAt": "2021-01-01T10:11:12Z", "htmlUrl": "html_url", - "versions": Array [ - Object { + "versions": [ + { "tagName": "version-1.0.2", "tagSha": "sha", "tagType": "tag", }, ], }, - "1.1": Object { + "1.1": { "baseVersion": "1.1", - "candidates": Array [ - Object { + "candidates": [ + { "tagName": "rc-1.1.1", "tagSha": "sha", "tagType": "tag", @@ -103,14 +103,14 @@ describe('getReleaseStats', () => { ], "createdAt": "2021-01-01T10:11:12Z", "htmlUrl": "html_url", - "versions": Array [], + "versions": [], }, }, - "unmappableTags": Array [ + "unmappableTags": [ "rc-123.123.123", ], - "unmatchedReleases": Array [], - "unmatchedTags": Array [ + "unmatchedReleases": [], + "unmatchedTags": [ "rc-1/2/3", ], }, diff --git a/plugins/git-release-manager/src/features/Stats/helpers/getSummary.test.tsx b/plugins/git-release-manager/src/features/Stats/helpers/getSummary.test.tsx index d36eb85128..ee873800af 100644 --- a/plugins/git-release-manager/src/features/Stats/helpers/getSummary.test.tsx +++ b/plugins/git-release-manager/src/features/Stats/helpers/getSummary.test.tsx @@ -22,8 +22,8 @@ describe('getSummary', () => { const result = getSummary({ releaseStats: mockReleaseStats }); expect(result).toMatchInlineSnapshot(` - Object { - "summary": Object { + { + "summary": { "totalCandidatePatches": 3, "totalReleases": 2, "totalVersionPatches": 1, diff --git a/plugins/git-release-manager/src/features/Stats/helpers/getTagDates.test.ts b/plugins/git-release-manager/src/features/Stats/helpers/getTagDates.test.ts index ba17bc0be6..7900942c82 100644 --- a/plugins/git-release-manager/src/features/Stats/helpers/getTagDates.test.ts +++ b/plugins/git-release-manager/src/features/Stats/helpers/getTagDates.test.ts @@ -43,7 +43,7 @@ describe('getTagDates', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "endDate": undefined, "startDate": "TAG-START", } @@ -65,7 +65,7 @@ describe('getTagDates', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "endDate": undefined, "startDate": "COMMIT_START", } @@ -91,7 +91,7 @@ describe('getTagDates', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "endDate": "TAG-END", "startDate": "TAG-START", } @@ -117,7 +117,7 @@ describe('getTagDates', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "endDate": "COMMIT_END", "startDate": "COMMIT_START", } @@ -160,7 +160,7 @@ describe('getTagDates', () => { [{ owner, ref: 'OBJECT_SHA_START', repo }], ]); expect(result).toMatchInlineSnapshot(` - Object { + { "endDate": "COMMIT_START", "startDate": "COMMIT_END", } @@ -203,7 +203,7 @@ describe('getTagDates', () => { [{ owner, ref: 'OBJECT_SHA_END', repo }], ]); expect(result).toMatchInlineSnapshot(` - Object { + { "endDate": "COMMIT_END", "startDate": "COMMIT_START", } diff --git a/plugins/git-release-manager/src/helpers/createResponseStepError.test.ts b/plugins/git-release-manager/src/helpers/createResponseStepError.test.ts index b010a0e21f..fd21b7ea52 100644 --- a/plugins/git-release-manager/src/helpers/createResponseStepError.test.ts +++ b/plugins/git-release-manager/src/helpers/createResponseStepError.test.ts @@ -21,7 +21,7 @@ describe('createResponseStepError', () => { const result = createResponseStepError(new Error('banana')); expect(result).toMatchInlineSnapshot(` - Object { + { "icon": "failure", "message": "Something went wrong ❌", "secondaryMessage": "Error message: banana", diff --git a/plugins/git-release-manager/src/helpers/getBumpedTag.test.ts b/plugins/git-release-manager/src/helpers/getBumpedTag.test.ts index 32a296bbd2..84c2b5de04 100644 --- a/plugins/git-release-manager/src/helpers/getBumpedTag.test.ts +++ b/plugins/git-release-manager/src/helpers/getBumpedTag.test.ts @@ -30,10 +30,10 @@ describe('getBumpedTag', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "bumpedTag": "rc-2020.01.01_2", "error": undefined, - "tagParts": Object { + "tagParts": { "calver": "2020.01.01", "patch": 2, "prefix": "rc", @@ -50,10 +50,10 @@ describe('getBumpedTag', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "bumpedTag": "rc-2020.01.01_2", "error": undefined, - "tagParts": Object { + "tagParts": { "calver": "2020.01.01", "patch": 2, "prefix": "rc", @@ -72,10 +72,10 @@ describe('getBumpedTag', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "bumpedTag": "rc-1.2.4", "error": undefined, - "tagParts": Object { + "tagParts": { "major": 1, "minor": 2, "patch": 4, @@ -93,10 +93,10 @@ describe('getBumpedTag', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "bumpedTag": "rc-1.3.0", "error": undefined, - "tagParts": Object { + "tagParts": { "major": 1, "minor": 3, "patch": 0, @@ -114,10 +114,10 @@ describe('getBumpedTag', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "bumpedTag": "rc-2.0.0", "error": undefined, - "tagParts": Object { + "tagParts": { "major": 2, "minor": 0, "patch": 0, @@ -137,9 +137,9 @@ describe('getBumpedTag', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "error": Object { - "subtitle": "Expected calver matching \\"/(rc|version)-([0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2})_([0-9]+)/\\", found \\"😬\\"", + { + "error": { + "subtitle": "Expected calver matching "/(rc|version)-([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})_([0-9]+)/", found "😬"", "title": "Invalid tag", }, } diff --git a/plugins/git-release-manager/src/helpers/getReleaseCandidateGitInfo.test.ts b/plugins/git-release-manager/src/helpers/getReleaseCandidateGitInfo.test.ts index 20130c450c..693e9971db 100644 --- a/plugins/git-release-manager/src/helpers/getReleaseCandidateGitInfo.test.ts +++ b/plugins/git-release-manager/src/helpers/getReleaseCandidateGitInfo.test.ts @@ -43,7 +43,7 @@ describe('getReleaseCandidateGitInfo', () => { injectedDate: '2021.01.28', }), ).toMatchInlineSnapshot(` - Object { + { "rcBranch": "rc/2021.01.28", "rcReleaseTag": "rc-2021.01.28_0", "releaseName": "Version 2021.01.28", @@ -61,7 +61,7 @@ describe('getReleaseCandidateGitInfo', () => { semverBumpLevel: 'minor', }), ).toMatchInlineSnapshot(` - Object { + { "rcBranch": "rc/1.3.0", "rcReleaseTag": "rc-1.3.0", "releaseName": "Version 1.3.0", @@ -77,7 +77,7 @@ describe('getReleaseCandidateGitInfo', () => { semverBumpLevel: 'minor', }), ).toMatchInlineSnapshot(` - Object { + { "rcBranch": "rc/0.0.1", "rcReleaseTag": "rc-0.0.1", "releaseName": "Version 0.0.1", diff --git a/plugins/git-release-manager/src/helpers/tagParts/getCalverTagParts.test.ts b/plugins/git-release-manager/src/helpers/tagParts/getCalverTagParts.test.ts index 1d46c0abdd..7a12fab45b 100644 --- a/plugins/git-release-manager/src/helpers/tagParts/getCalverTagParts.test.ts +++ b/plugins/git-release-manager/src/helpers/tagParts/getCalverTagParts.test.ts @@ -26,28 +26,28 @@ describe('getCalverTagParts', () => { const result = getCalverTagParts(mockReleaseCandidateCalver.tagName); expect(result).toMatchInlineSnapshot(` - Object { - "tagParts": Object { - "calver": "2020.01.01", - "patch": 1, - "prefix": "rc", - }, - } - `); + { + "tagParts": { + "calver": "2020.01.01", + "patch": 1, + "prefix": "rc", + }, + } + `); }); it('should return tagParts for Version tag', () => { const result = getCalverTagParts(mockReleaseVersionCalver.tagName); expect(result).toMatchInlineSnapshot(` - Object { - "tagParts": Object { - "calver": "2020.01.01", - "patch": 1, - "prefix": "version", - }, - } - `); + { + "tagParts": { + "calver": "2020.01.01", + "patch": 1, + "prefix": "version", + }, + } + `); }); }); @@ -56,9 +56,9 @@ describe('getCalverTagParts', () => { const result = getCalverTagParts('invalid-2020.01.01_1'); expect(result).toMatchInlineSnapshot(` - Object { - "error": Object { - "subtitle": "Expected calver matching \\"/(rc|version)-([0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2})_([0-9]+)/\\", found \\"invalid-2020.01.01_1\\"", + { + "error": { + "subtitle": "Expected calver matching "/(rc|version)-([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})_([0-9]+)/", found "invalid-2020.01.01_1"", "title": "Invalid tag", }, } @@ -69,9 +69,9 @@ describe('getCalverTagParts', () => { const result = getCalverTagParts('rc-2020.1.01_1'); expect(result).toMatchInlineSnapshot(` - Object { - "error": Object { - "subtitle": "Expected calver matching \\"/(rc|version)-([0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2})_([0-9]+)/\\", found \\"rc-2020.1.01_1\\"", + { + "error": { + "subtitle": "Expected calver matching "/(rc|version)-([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})_([0-9]+)/", found "rc-2020.1.01_1"", "title": "Invalid tag", }, } @@ -82,9 +82,9 @@ describe('getCalverTagParts', () => { const result = getCalverTagParts('rc-2020.01_1'); expect(result).toMatchInlineSnapshot(` - Object { - "error": Object { - "subtitle": "Expected calver matching \\"/(rc|version)-([0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2})_([0-9]+)/\\", found \\"rc-2020.01_1\\"", + { + "error": { + "subtitle": "Expected calver matching "/(rc|version)-([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})_([0-9]+)/", found "rc-2020.01_1"", "title": "Invalid tag", }, } @@ -95,9 +95,9 @@ describe('getCalverTagParts', () => { const result = getCalverTagParts('rc-2020.01.01_a'); expect(result).toMatchInlineSnapshot(` - Object { - "error": Object { - "subtitle": "Expected calver matching \\"/(rc|version)-([0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2})_([0-9]+)/\\", found \\"rc-2020.01.01_a\\"", + { + "error": { + "subtitle": "Expected calver matching "/(rc|version)-([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})_([0-9]+)/", found "rc-2020.01.01_a"", "title": "Invalid tag", }, } diff --git a/plugins/git-release-manager/src/helpers/tagParts/getSemverTagParts.test.ts b/plugins/git-release-manager/src/helpers/tagParts/getSemverTagParts.test.ts index c637325843..7edb013dfd 100644 --- a/plugins/git-release-manager/src/helpers/tagParts/getSemverTagParts.test.ts +++ b/plugins/git-release-manager/src/helpers/tagParts/getSemverTagParts.test.ts @@ -28,15 +28,15 @@ describe('getSemverTagParts', () => { ); expect(semverTagParts).toMatchInlineSnapshot(` - Object { - "tagParts": Object { - "major": 1, - "minor": 2, - "patch": 3, - "prefix": "rc", - }, - } - `); + { + "tagParts": { + "major": 1, + "minor": 2, + "patch": 3, + "prefix": "rc", + }, + } + `); }); it('should return tagParts for Version tag', () => { @@ -45,15 +45,15 @@ describe('getSemverTagParts', () => { ); expect(semverTagParts).toMatchInlineSnapshot(` - Object { - "tagParts": Object { - "major": 1, - "minor": 2, - "patch": 3, - "prefix": "version", - }, - } - `); + { + "tagParts": { + "major": 1, + "minor": 2, + "patch": 3, + "prefix": "version", + }, + } + `); }); }); @@ -62,9 +62,9 @@ describe('getSemverTagParts', () => { const semverTagParts = getSemverTagParts('invalid-1.2.3'); expect(semverTagParts).toMatchInlineSnapshot(` - Object { - "error": Object { - "subtitle": "Expected semver matching \\"/(rc|version)-([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)/\\", found \\"invalid-1.2.3\\"", + { + "error": { + "subtitle": "Expected semver matching "/(rc|version)-([0-9]+)\\.([0-9]+)\\.([0-9]+)/", found "invalid-1.2.3"", "title": "Invalid tag", }, } @@ -75,9 +75,9 @@ describe('getSemverTagParts', () => { const semverTagParts = getSemverTagParts('rc-1.2'); expect(semverTagParts).toMatchInlineSnapshot(` - Object { - "error": Object { - "subtitle": "Expected semver matching \\"/(rc|version)-([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)/\\", found \\"rc-1.2\\"", + { + "error": { + "subtitle": "Expected semver matching "/(rc|version)-([0-9]+)\\.([0-9]+)\\.([0-9]+)/", found "rc-1.2"", "title": "Invalid tag", }, } @@ -88,9 +88,9 @@ describe('getSemverTagParts', () => { const semverTagParts = getSemverTagParts('rc-1337.01.01_1'); expect(semverTagParts).toMatchInlineSnapshot(` - Object { - "error": Object { - "subtitle": "Expected semver matching \\"/(rc|version)-([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)/\\", found calver \\"rc-1337.01.01_1\\"", + { + "error": { + "subtitle": "Expected semver matching "/(rc|version)-([0-9]+)\\.([0-9]+)\\.([0-9]+)/", found calver "rc-1337.01.01_1"", "title": "Invalid tag", }, } diff --git a/plugins/git-release-manager/src/helpers/tagParts/validateTagParts.test.ts b/plugins/git-release-manager/src/helpers/tagParts/validateTagParts.test.ts index 50cbd6cf9e..64f60ec4d6 100644 --- a/plugins/git-release-manager/src/helpers/tagParts/validateTagParts.test.ts +++ b/plugins/git-release-manager/src/helpers/tagParts/validateTagParts.test.ts @@ -31,7 +31,7 @@ describe('validateTagName', () => { }); expect(result).toMatchInlineSnapshot(` - Object { + { "tagNameError": undefined, } `); @@ -43,10 +43,10 @@ describe('validateTagName', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "tagNameError": null, - } - `); + { + "tagNameError": null, + } + `); }); }); @@ -58,9 +58,9 @@ describe('validateTagName', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "tagNameError": Object { - "subtitle": "Expected semver matching \\"/(rc|version)-([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)/\\", found calver \\"rc-2020.01.01_1\\"", + { + "tagNameError": { + "subtitle": "Expected semver matching "/(rc|version)-([0-9]+)\\.([0-9]+)\\.([0-9]+)/", found calver "rc-2020.01.01_1"", "title": "Invalid tag", }, } @@ -74,9 +74,9 @@ describe('validateTagName', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "tagNameError": Object { - "subtitle": "Expected calver matching \\"/(rc|version)-([0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2})_([0-9]+)/\\", found \\"rc-1.2.3\\"", + { + "tagNameError": { + "subtitle": "Expected calver matching "/(rc|version)-([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})_([0-9]+)/", found "rc-1.2.3"", "title": "Invalid tag", }, } @@ -92,9 +92,9 @@ describe('validateTagName', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "tagNameError": Object { - "subtitle": "Expected semver matching \\"/(rc|version)-([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)/\\", found \\"this-is-so-invalid\\"", + { + "tagNameError": { + "subtitle": "Expected semver matching "/(rc|version)-([0-9]+)\\.([0-9]+)\\.([0-9]+)/", found "this-is-so-invalid"", "title": "Invalid tag", }, } @@ -108,9 +108,9 @@ describe('validateTagName', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "tagNameError": Object { - "subtitle": "Expected calver matching \\"/(rc|version)-([0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2})_([0-9]+)/\\", found \\"this-is-so-invalid\\"", + { + "tagNameError": { + "subtitle": "Expected calver matching "/(rc|version)-([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})_([0-9]+)/", found "this-is-so-invalid"", "title": "Invalid tag", }, } diff --git a/plugins/git-release-manager/src/hooks/useGetGitBatchInfo.test.ts b/plugins/git-release-manager/src/hooks/useGetGitBatchInfo.test.ts index fb1a8b6919..8e89add810 100644 --- a/plugins/git-release-manager/src/hooks/useGetGitBatchInfo.test.ts +++ b/plugins/git-release-manager/src/hooks/useGetGitBatchInfo.test.ts @@ -35,31 +35,31 @@ describe('useGetHubBatchInfo', () => { }); expect(result.current.gitBatchInfo).toMatchInlineSnapshot(` - Object { + { "loading": false, - "value": Object { - "latestRelease": Object { + "value": { + "latestRelease": { "htmlUrl": "https://mock_release_html_url", "id": 1, "prerelease": false, "tagName": "rc-2020.01.01_1", "targetCommitish": "rc/2020.01.01_1", }, - "releaseBranch": Object { - "commit": Object { - "commit": Object { - "tree": Object { + "releaseBranch": { + "commit": { + "commit": { + "tree": { "sha": "mock_branch_commit_commit_tree_sha", }, }, "sha": "mock_branch_commit_sha", }, - "links": Object { + "links": { "html": "https://mock_branch_links_html", }, "name": "rc/1.2.3", }, - "repository": Object { + "repository": { "defaultBranch": "mock_defaultBranch", "name": "mock_repo", "pushPermissions": true, @@ -86,12 +86,12 @@ describe('useGetHubBatchInfo', () => { }); expect(result.current.gitBatchInfo).toMatchInlineSnapshot(` - Object { + { "loading": false, - "value": Object { + "value": { "latestRelease": null, "releaseBranch": null, - "repository": Object { + "repository": { "defaultBranch": "mock_defaultBranch", "name": "mock_repo", "pushPermissions": true, diff --git a/plugins/git-release-manager/src/hooks/useQueryHandler.test.tsx b/plugins/git-release-manager/src/hooks/useQueryHandler.test.tsx index 7d06c5d829..020b068188 100644 --- a/plugins/git-release-manager/src/hooks/useQueryHandler.test.tsx +++ b/plugins/git-release-manager/src/hooks/useQueryHandler.test.tsx @@ -50,14 +50,14 @@ describe('useQueryHandler', () => { const result = getByTestId(TEST_ID).innerHTML; expect(result).toMatchInlineSnapshot(` - "{ - \\"parsedQuery\\": { - \\"versioningStrategy\\": \\"semver\\", - \\"owner\\": \\"mock_owner\\", - \\"repo\\": \\"mock_repo\\" - }, - \\"queryParams\\": \\"versioningStrategy=semver&owner=mock_owner&repo=updated_mock_repo\\" - }" - `); + "{ + "parsedQuery": { + "versioningStrategy": "semver", + "owner": "mock_owner", + "repo": "mock_repo" + }, + "queryParams": "versioningStrategy=semver&owner=mock_owner&repo=updated_mock_repo" + }" + `); }); }); diff --git a/plugins/git-release-manager/src/hooks/useResponseSteps.test.ts b/plugins/git-release-manager/src/hooks/useResponseSteps.test.ts index 5daa8b47ad..450fc87b97 100644 --- a/plugins/git-release-manager/src/hooks/useResponseSteps.test.ts +++ b/plugins/git-release-manager/src/hooks/useResponseSteps.test.ts @@ -23,11 +23,11 @@ describe('useResponseSteps', () => { const { result } = renderHook(() => useResponseSteps()); expect(result.current).toMatchInlineSnapshot(` - Object { + { "abortIfError": [Function], "addStepToResponseSteps": [Function], "asyncCatcher": [Function], - "responseSteps": Array [], + "responseSteps": [], } `); }); @@ -36,7 +36,7 @@ describe('useResponseSteps', () => { it('should add responseSteps to state', async () => { const { result } = renderHook(() => useResponseSteps()); - expect(result.current.responseSteps).toMatchInlineSnapshot(`Array []`); + expect(result.current.responseSteps).toMatchInlineSnapshot(`[]`); act(() => { result.current.addStepToResponseSteps({ @@ -45,12 +45,12 @@ describe('useResponseSteps', () => { }); expect(result.current.responseSteps).toMatchInlineSnapshot(` - Array [ - Object { - "message": "totally added a messaage ✌🏼", - }, - ] - `); + [ + { + "message": "totally added a messaage ✌🏼", + }, + ] + `); }); }); @@ -58,7 +58,7 @@ describe('useResponseSteps', () => { it('should catch Errors and add as failure step, then throw', async () => { const { result } = renderHook(() => useResponseSteps()); - expect(result.current.responseSteps).toMatchInlineSnapshot(`Array []`); + expect(result.current.responseSteps).toMatchInlineSnapshot(`[]`); await act(async () => { await new Promise((_, reject) => reject(new Error(':('))) @@ -69,8 +69,8 @@ describe('useResponseSteps', () => { }); expect(result.current.responseSteps).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "icon": "failure", "message": Something went wrong @@ -91,7 +91,7 @@ describe('useResponseSteps', () => { it('should catch unknown Errors and add as failure step, then throw', async () => { const { result } = renderHook(() => useResponseSteps()); - expect(result.current.responseSteps).toMatchInlineSnapshot(`Array []`); + expect(result.current.responseSteps).toMatchInlineSnapshot(`[]`); await act(async () => { await new Promise((_, reject) => reject()) @@ -102,8 +102,8 @@ describe('useResponseSteps', () => { }); expect(result.current.responseSteps).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "icon": "failure", "message": Something went wrong @@ -126,13 +126,13 @@ describe('useResponseSteps', () => { it('should do nothing if not Error', async () => { const { result } = renderHook(() => useResponseSteps()); - expect(result.current.responseSteps).toMatchInlineSnapshot(`Array []`); + expect(result.current.responseSteps).toMatchInlineSnapshot(`[]`); act(() => { result.current.abortIfError(undefined); }); - expect(result.current.responseSteps).toMatchInlineSnapshot(`Array []`); + expect(result.current.responseSteps).toMatchInlineSnapshot(`[]`); }); }); }); diff --git a/plugins/git-release-manager/src/plugin.test.ts b/plugins/git-release-manager/src/plugin.test.ts index db60617c24..b293ea05eb 100644 --- a/plugins/git-release-manager/src/plugin.test.ts +++ b/plugins/git-release-manager/src/plugin.test.ts @@ -19,7 +19,7 @@ import * as plugin from './plugin'; describe('git-release-manager', () => { it('should export plugin & friends', () => { expect(Object.keys(plugin)).toMatchInlineSnapshot(` - Array [ + [ "gitReleaseManagerApiRef", "constants", "helpers", diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 88d2ecb6d9..596e844c11 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -34,12 +34,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -53,10 +53,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 3ca6ae88f0..a0f94015dd 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -23,14 +23,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -42,10 +42,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index aac0fb964a..c393e4db8a 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -22,13 +22,13 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.15", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", @@ -40,10 +40,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index fd4696d2bc..62826918a9 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -34,12 +34,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -48,9 +48,9 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index e397694088..9c2114a91f 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -33,9 +33,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -46,10 +46,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index e7469549c3..6ed5489b61 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -29,12 +29,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -47,10 +47,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 650172a170..2ad33b0f9a 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -32,9 +32,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -48,10 +48,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index a7c175c36b..8575323fe6 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -33,9 +33,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/plugin-catalog-graphql": "^0.3.13", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/plugin-catalog-graphql": "workspace:^", "@graphql-tools/schema": "^9.0.0", "@types/express": "^4.17.6", "apollo-server": "^3.0.0", @@ -50,7 +50,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "msw": "^0.47.0", "supertest": "^6.1.3" diff --git a/plugins/home/package.json b/plugins/home/package.json index 4ad0e623f3..bfa3d388c3 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -33,13 +33,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-stack-overflow": "^0.1.5", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-stack-overflow": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -52,10 +52,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 19e79a108d..391a9e495d 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -23,12 +23,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "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", @@ -42,10 +42,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 0814533429..7c2203a866 100644 --- a/plugins/jenkins-backend/package.json +++ b/plugins/jenkins-backend/package.json @@ -24,14 +24,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/plugin-jenkins-common": "^0.1.8", - "@backstage/plugin-permission-common": "^0.6.4", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-jenkins-common": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -41,7 +41,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/jenkins": "^0.23.1", "@types/supertest": "^2.0.8", "msw": "^0.47.0", diff --git a/plugins/jenkins-backend/src/service/jenkinsInfoProvider.test.ts b/plugins/jenkins-backend/src/service/jenkinsInfoProvider.test.ts index 8e14997fd7..626e5b0a5a 100644 --- a/plugins/jenkins-backend/src/service/jenkinsInfoProvider.test.ts +++ b/plugins/jenkins-backend/src/service/jenkinsInfoProvider.test.ts @@ -55,7 +55,7 @@ describe('JenkinsConfig', () => { baseUrl: 'https://jenkins.example.com', username: 'backstage - bot', apiKey: '123456789abcdef0123456789abcedf012', - headers: { + extraRequestHeaders: { myHeader: 'my-value', }, }, @@ -70,7 +70,7 @@ describe('JenkinsConfig', () => { baseUrl: 'https://jenkins.example.com', username: 'backstage - bot', apiKey: '123456789abcdef0123456789abcedf012', - headers: { + extraRequestHeaders: { myHeader: 'my-value', }, }, diff --git a/plugins/jenkins-backend/src/service/jenkinsInfoProvider.ts b/plugins/jenkins-backend/src/service/jenkinsInfoProvider.ts index 2ad5b60f6d..c4b4ef58dd 100644 --- a/plugins/jenkins-backend/src/service/jenkinsInfoProvider.ts +++ b/plugins/jenkins-backend/src/service/jenkinsInfoProvider.ts @@ -84,7 +84,7 @@ export class JenkinsConfig { baseUrl: c.getString('baseUrl'), username: c.getString('username'), apiKey: c.getString('apiKey'), - headers: c.getOptional('headers'), + extraRequestHeaders: c.getOptional('extraRequestHeaders'), crumbIssuer: c.getOptionalBoolean('crumbIssuer'), })) || []; diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index 625183828b..fd752b9d84 100644 --- a/plugins/jenkins-common/package.json +++ b/plugins/jenkins-common/package.json @@ -22,11 +22,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-catalog-common": "^1.0.6", - "@backstage/plugin-permission-common": "^0.6.4" + "@backstage/plugin-catalog-common": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index ea78c0133e..18b4507b48 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -33,13 +33,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-jenkins-common": "^0.1.8", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-jenkins-common": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -52,10 +52,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 860c1ed16f..5c56582454 100644 --- a/plugins/kafka-backend/package.json +++ b/plugins/kafka-backend/package.json @@ -34,10 +34,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -46,7 +46,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/jest-when": "^3.5.0", "@types/lodash": "^4.14.151", "jest-when": "^3.1.0", diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 82d3549b19..228b2d6bc9 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -24,12 +24,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -40,10 +40,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 1f322efca4..9adb3d4c22 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -35,13 +35,13 @@ }, "dependencies": { "@azure/identity": "^2.0.4", - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/plugin-kubernetes-common": "^0.4.2", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-kubernetes-common": "workspace:^", "@google-cloud/container": "^4.0.0", "@kubernetes/client-node": "^0.17.0", "@types/express": "^4.17.6", @@ -62,7 +62,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/aws4": "^1.5.1", "aws-sdk-mock": "^5.2.1", "supertest": "^6.1.3" diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AzureIdentityKubernetesAuthTranslator.test.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AzureIdentityKubernetesAuthTranslator.test.ts index a28f825434..704551eb9f 100644 --- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AzureIdentityKubernetesAuthTranslator.test.ts +++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AzureIdentityKubernetesAuthTranslator.test.ts @@ -46,6 +46,10 @@ describe('AzureIdentityKubernetesAuthTranslator tests', () => { url: 'mycluster.privatelink.westeurope.azmk8s.io', }; + afterEach(() => { + jest.useRealTimers(); + }); + it('should decorate cluster with Azure token', async () => { const authTranslator = new AzureIdentityKubernetesAuthTranslator( logger, @@ -70,6 +74,8 @@ describe('AzureIdentityKubernetesAuthTranslator tests', () => { }); it('should issue new token 15 minutes befory expiry', async () => { + jest.useFakeTimers(); + const authTranslator = new AzureIdentityKubernetesAuthTranslator( logger, new StaticTokenCredential(16 * 60 * 1000), // token expires in 16min @@ -78,13 +84,15 @@ describe('AzureIdentityKubernetesAuthTranslator tests', () => { const response = await authTranslator.decorateClusterDetailsWithAuth(cd); expect(response.serviceAccountToken).toEqual('MY_TOKEN_1'); - jest.useFakeTimers().setSystemTime(Date.now() + 2 * 60 * 1000); // advance time by 2mins + jest.setSystemTime(Date.now() + 2 * 60 * 1000); // advance time by 2mins const response2 = await authTranslator.decorateClusterDetailsWithAuth(cd); expect(response2.serviceAccountToken).toEqual('MY_TOKEN_2'); }); it('should re-use existing token if there is afailure', async () => { + jest.useFakeTimers(); + const authTranslator = new AzureIdentityKubernetesAuthTranslator( logger, new StaticTokenCredential(16 * 60 * 1000), // new tokens expires in 16min @@ -93,12 +101,12 @@ describe('AzureIdentityKubernetesAuthTranslator tests', () => { const response = await authTranslator.decorateClusterDetailsWithAuth(cd); expect(response.serviceAccountToken).toEqual('MY_TOKEN_1'); - jest.useFakeTimers().setSystemTime(Date.now() + 2 * 60 * 1000); // advance time by 2min + jest.setSystemTime(Date.now() + 2 * 60 * 1000); // advance time by 2min const response2 = await authTranslator.decorateClusterDetailsWithAuth(cd); expect(response2.serviceAccountToken).toEqual('MY_TOKEN_2'); - jest.useFakeTimers().setSystemTime(Date.now() + 2 * 60 * 1000); // advance time by 2min + jest.setSystemTime(Date.now() + 2 * 60 * 1000); // advance time by 2min const response3 = await authTranslator.decorateClusterDetailsWithAuth(cd); expect(response3.serviceAccountToken).toEqual('MY_TOKEN_2'); @@ -108,6 +116,8 @@ describe('AzureIdentityKubernetesAuthTranslator tests', () => { }); it('should throw if existing token expired and failed to fetch a new one', async () => { + jest.useFakeTimers(); + const authTranslator = new AzureIdentityKubernetesAuthTranslator( logger, new StaticTokenCredential(16 * 60 * 1000), // new tokens expires in 16min @@ -116,12 +126,12 @@ describe('AzureIdentityKubernetesAuthTranslator tests', () => { const response = await authTranslator.decorateClusterDetailsWithAuth(cd); expect(response.serviceAccountToken).toEqual('MY_TOKEN_1'); - jest.useFakeTimers().setSystemTime(Date.now() + 2 * 60 * 1000); // advance time by 2min + jest.setSystemTime(Date.now() + 2 * 60 * 1000); // advance time by 2min const response2 = await authTranslator.decorateClusterDetailsWithAuth(cd); expect(response2.serviceAccountToken).toEqual('MY_TOKEN_2'); - jest.useFakeTimers().setSystemTime(Date.now() + 17 * 60 * 1000); // advance time by 17min + jest.setSystemTime(Date.now() + 17 * 60 * 1000); // advance time by 17min await expect( authTranslator.decorateClusterDetailsWithAuth(cd), diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index a79d23acc8..5baa12800d 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -38,11 +38,11 @@ "url": "https://github.com/backstage/backstage/issues" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", + "@backstage/catalog-model": "workspace:^", "@kubernetes/client-node": "^0.17.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "jest": { "roots": [ diff --git a/plugins/kubernetes/api-report.md b/plugins/kubernetes/api-report.md index b7ec80aee3..3e1b2f0198 100644 --- a/plugins/kubernetes/api-report.md +++ b/plugins/kubernetes/api-report.md @@ -11,6 +11,7 @@ import { ClientPodStatus } from '@backstage/plugin-kubernetes-common'; import { ClusterAttributes } from '@backstage/plugin-kubernetes-common'; import { ClusterObjects } from '@backstage/plugin-kubernetes-common'; import { CustomObjectsByEntityRequest } from '@backstage/plugin-kubernetes-common'; +import { CustomResourceMatcher } from '@backstage/plugin-kubernetes-common'; import { DiscoveryApi } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { IdentityApi } from '@backstage/core-plugin-api'; @@ -358,6 +359,8 @@ export interface KubernetesObjects { error?: string; // (undocumented) kubernetesObjects?: ObjectsByEntityResponse; + // (undocumented) + loading: boolean; } // Warning: (ae-missing-release-tag) "kubernetesPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -421,6 +424,13 @@ export class ServerSideKubernetesAuthProvider // @public (undocumented) export const ServicesAccordions: ({}: ServicesAccordionsProps) => JSX.Element; +// @public +export const useCustomResources: ( + entity: Entity, + customResourceMatchers: CustomResourceMatcher[], + intervalMs?: number, +) => KubernetesObjects; + // Warning: (ae-missing-release-tag) "useKubernetesObjects" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) diff --git a/plugins/kubernetes/dev/index.tsx b/plugins/kubernetes/dev/index.tsx index 05fcdefc8a..77708f1287 100644 --- a/plugins/kubernetes/dev/index.tsx +++ b/plugins/kubernetes/dev/index.tsx @@ -64,12 +64,30 @@ class MockKubernetesClient implements KubernetesApi { async getWorkloadsByEntity( _request: WorkloadsByEntityRequest, ): Promise { - throw new Error('Method not implemented.'); + return { + items: [ + { + cluster: { name: 'mock-cluster' }, + resources: this.resources, + podMetrics: [], + errors: [], + }, + ], + }; } async getCustomObjectsByEntity( _request: CustomObjectsByEntityRequest, ): Promise { - throw new Error('Method not implemented.'); + return { + items: [ + { + cluster: { name: 'mock-cluster' }, + resources: this.resources, + podMetrics: [], + errors: [], + }, + ], + }; } async getObjectsByEntity(): Promise { diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 9158781530..a6c3171529 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -33,13 +33,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-kubernetes-common": "^0.4.2", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-kubernetes-common": "workspace:^", + "@backstage/theme": "workspace:^", "@kubernetes/client-node": "^0.17.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -56,10 +56,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/kubernetes/src/hooks/auth.test.ts b/plugins/kubernetes/src/hooks/auth.test.ts new file mode 100644 index 0000000000..aa2b9afb0d --- /dev/null +++ b/plugins/kubernetes/src/hooks/auth.test.ts @@ -0,0 +1,126 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Entity } from '@backstage/catalog-model'; +import { generateAuth } from './auth'; + +jest.mock('@backstage/core-plugin-api'); + +const entity = { + metadata: { + name: 'some-entity', + }, +} as Entity; + +const entityWithAuthToken = { + auth: { + google: 'some-token', + }, + entity, +}; + +const getClustersResponse = [ + { + name: 'cluster-a', + authProvider: 'google', + }, + { + name: 'cluster-b', + authProvider: 'authprovider2', + }, +]; + +describe('generateAuth', () => { + const mockGetClusters = jest.fn(); + const mockDecorateRequestBodyForAuth = jest.fn(); + + const expectMocksCalledCorrectly = (numOfCalls: number = 1) => { + expect(mockGetClusters).toHaveBeenCalledTimes(numOfCalls); + expect(mockGetClusters).toHaveBeenLastCalledWith(); + expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledTimes( + numOfCalls * 2, + ); + expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledWith('google', { + entity, + }); + expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledWith( + 'authprovider2', + entityWithAuthToken, + ); + }; + + afterEach(() => { + jest.resetAllMocks(); + }); + it('should return auth', async () => { + const result = await generateAuth( + entity, + { + getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), + } as any, + { + decorateRequestBodyForAuth: + mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken), + } as any, + ); + + expect(result).toStrictEqual({ + google: 'some-token', + }); + expectMocksCalledCorrectly(); + }); + + it('should return error when getClusters throws', async () => { + await expect( + generateAuth( + entity, + { + getClusters: mockGetClusters.mockRejectedValue('some-cluster-error'), + } as any, + { + decorateRequestBodyForAuth: mockDecorateRequestBodyForAuth, + } as any, + ), + ).rejects.toBe('some-cluster-error'); + + expect(mockGetClusters).toHaveBeenCalledTimes(1); + expect(mockGetClusters).toHaveBeenLastCalledWith(); + expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledTimes(0); + }); + it('should return error when decorateRequestBodyForAuth throws', async () => { + await expect( + generateAuth( + entity, + { + getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), + } as any, + { + decorateRequestBodyForAuth: + mockDecorateRequestBodyForAuth.mockRejectedValue( + 'some-decorate-error', + ), + } as any, + ), + ).rejects.toBe('some-decorate-error'); + + expect(mockGetClusters).toHaveBeenCalledTimes(1); + expect(mockGetClusters).toHaveBeenLastCalledWith(); + expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledTimes(1); + expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledWith('google', { + entity, + }); + }); +}); diff --git a/plugins/kubernetes/src/hooks/auth.ts b/plugins/kubernetes/src/hooks/auth.ts new file mode 100644 index 0000000000..cce0bc27d6 --- /dev/null +++ b/plugins/kubernetes/src/hooks/auth.ts @@ -0,0 +1,50 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Entity } from '@backstage/catalog-model'; +import { KubernetesApi } from '../api/types'; +import { KubernetesAuthProvidersApi } from '../kubernetes-auth-provider/types'; +import { KubernetesRequestBody } from '@backstage/plugin-kubernetes-common'; + +export const generateAuth = async ( + entity: Entity, + kubernetesApi: KubernetesApi, + kubernetesAuthProvidersApi: KubernetesAuthProvidersApi, +) => { + const clusters = await kubernetesApi.getClusters(); + + const authProviders: string[] = [ + ...new Set( + clusters.map( + c => + `${c.authProvider}${ + c.oidcTokenProvider ? `.${c.oidcTokenProvider}` : '' + }`, + ), + ), + ]; + + let requestBody: KubernetesRequestBody = { + entity, + }; + for (const authProviderStr of authProviders) { + requestBody = await kubernetesAuthProvidersApi.decorateRequestBodyForAuth( + authProviderStr, + requestBody, + ); + } + return requestBody.auth ?? {}; +}; diff --git a/plugins/kubernetes/src/hooks/index.ts b/plugins/kubernetes/src/hooks/index.ts index 0a5835eee4..c3968a19b2 100644 --- a/plugins/kubernetes/src/hooks/index.ts +++ b/plugins/kubernetes/src/hooks/index.ts @@ -15,6 +15,7 @@ */ export * from './useKubernetesObjects'; +export * from './useCustomResources'; export * from './PodNamesWithErrors'; export * from './PodNamesWithMetrics'; export * from './GroupedResponses'; diff --git a/plugins/kubernetes/src/hooks/types.ts b/plugins/kubernetes/src/hooks/types.ts new file mode 100644 index 0000000000..0796089baf --- /dev/null +++ b/plugins/kubernetes/src/hooks/types.ts @@ -0,0 +1,23 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common'; + +export interface KubernetesObjects { + kubernetesObjects: ObjectsByEntityResponse; + loading: boolean; + error: string; +} diff --git a/plugins/kubernetes/src/hooks/useCustomResources.test.ts b/plugins/kubernetes/src/hooks/useCustomResources.test.ts new file mode 100644 index 0000000000..abd8fc392c --- /dev/null +++ b/plugins/kubernetes/src/hooks/useCustomResources.test.ts @@ -0,0 +1,256 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useCustomResources } from './useCustomResources'; +import { Entity } from '@backstage/catalog-model'; +import { renderHook } from '@testing-library/react-hooks'; +import { useApi } from '@backstage/core-plugin-api'; +import { CustomResourceMatcher } from '@backstage/plugin-kubernetes-common'; +import { generateAuth } from './auth'; + +jest.mock('@backstage/core-plugin-api'); + +const entity = { + metadata: { + name: 'some-entity', + }, +} as Entity; + +const customResourceMatchers: CustomResourceMatcher[] = [ + { + group: 'myGroup', + apiVersion: 'v1', + plural: 'thing', + }, +]; + +const entityWithAuthToken = { + auth: { + google: 'some-token', + }, + customResources: customResourceMatchers, + entity, +}; + +const mockResponse = { + items: [ + { + cluster: { name: 'some-cluster' }, + resources: [ + { + type: 'pods', + resources: [ + { + metadata: { + name: 'some-pod', + }, + }, + ], + }, + ], + errors: [], + }, + ], +}; + +jest.mock('./auth', () => { + return { + ...jest.requireActual('./auth'), + generateAuth: jest.fn(), + }; +}); + +describe('useCustomResources', () => { + const mockGetCustomObjectsByEntity = jest.fn(); + const mockGenerateAuth = generateAuth as jest.Mock; + + const expectMocksCalledCorrectly = (numOfCalls: number = 1) => { + expect(mockGenerateAuth).toHaveBeenCalledTimes(numOfCalls); + expect(mockGenerateAuth.mock.calls[numOfCalls - 1][0]).toStrictEqual( + entity, + ); + expect(mockGetCustomObjectsByEntity).toHaveBeenCalledTimes(numOfCalls); + expect(mockGetCustomObjectsByEntity).toHaveBeenLastCalledWith( + entityWithAuthToken, + ); + }; + + afterEach(() => { + jest.resetAllMocks(); + }); + it('should return objects', async () => { + mockGenerateAuth.mockResolvedValue(entityWithAuthToken.auth); + (useApi as any).mockReturnValue({ + getCustomObjectsByEntity: + mockGetCustomObjectsByEntity.mockResolvedValue(mockResponse), + }); + const { result, waitForNextUpdate } = renderHook(() => + useCustomResources(entity, customResourceMatchers), + ); + + expect(result.current.loading).toEqual(true); + + await waitForNextUpdate(); + + expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).toStrictEqual(mockResponse); + + expectMocksCalledCorrectly(); + }); + it('should update on an interval', async () => { + mockGenerateAuth.mockResolvedValue(entityWithAuthToken.auth); + (useApi as any).mockReturnValue({ + getCustomObjectsByEntity: + mockGetCustomObjectsByEntity.mockResolvedValue(mockResponse), + }); + const { result, waitForNextUpdate } = renderHook(() => + useCustomResources(entity, customResourceMatchers, 100), + ); + + await waitForNextUpdate(); + expect(result.current.error).toBeUndefined(); + + await waitForNextUpdate(); + + expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).toStrictEqual(mockResponse); + + expectMocksCalledCorrectly(2); + }); + it('should return error when getObjectsByEntity throws', async () => { + mockGenerateAuth.mockResolvedValue(entityWithAuthToken.auth); + (useApi as any).mockReturnValue({ + getCustomObjectsByEntity: mockGetCustomObjectsByEntity.mockRejectedValue({ + message: 'some error', + }), + }); + const { result, waitForNextUpdate } = renderHook(() => + useCustomResources(entity, customResourceMatchers), + ); + + await waitForNextUpdate(); + + expect(result.current.error).toBe('some error'); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).toBeUndefined(); + + expectMocksCalledCorrectly(); + }); + + describe('when retrying', () => { + it('should reset error after generateAuth has failed and then succeeded', async () => { + (useApi as any).mockReturnValue({ + generateAuth: mockGenerateAuth + .mockRejectedValueOnce({ message: 'generateAuth failed' }) + .mockResolvedValue(entityWithAuthToken.auth), + getCustomObjectsByEntity: + mockGetCustomObjectsByEntity.mockResolvedValue(mockResponse), + }); + + const { result, waitForNextUpdate } = renderHook(() => + useCustomResources(entity, customResourceMatchers, 100), + ); + + await waitForNextUpdate(); + + expect(result.current.error).toBe('generateAuth failed'); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).toBeUndefined(); + + await waitForNextUpdate(); + + expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).not.toBeUndefined(); + }); + + it('should reset error after getCustomObjectsByEntity has failed and then succeeded', async () => { + (useApi as any).mockReturnValue({ + getCustomObjectsByEntity: mockGetCustomObjectsByEntity + .mockRejectedValueOnce({ message: 'failed to fetch' }) + .mockResolvedValue(mockResponse), + }); + + const { result, waitForNextUpdate } = renderHook(() => + useCustomResources(entity, customResourceMatchers, 100), + ); + + await waitForNextUpdate(); + + expect(result.current.error).toBe('failed to fetch'); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).toBeUndefined(); + + await waitForNextUpdate(); + + expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).not.toBeUndefined(); + }); + + it('should reset data after generateAuth succeeded then failed', async () => { + (useApi as any).mockReturnValue({ + generateAuth: mockGenerateAuth + .mockResolvedValueOnce(entityWithAuthToken.auth) + .mockRejectedValue({ message: 'generateAuth failed' }), + getCustomObjectsByEntity: + mockGetCustomObjectsByEntity.mockResolvedValue(mockResponse), + }); + + const { result, waitForNextUpdate } = renderHook(() => + useCustomResources(entity, customResourceMatchers, 100), + ); + + await waitForNextUpdate(); + + expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).not.toBeUndefined(); + + await waitForNextUpdate(); + + expect(result.current.error).toBe('generateAuth failed'); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).toBeUndefined(); + }); + + it('should reset data after getCustomObjectsByEntity succeeded then failed', async () => { + (useApi as any).mockReturnValue({ + getCustomObjectsByEntity: mockGetCustomObjectsByEntity + .mockResolvedValueOnce(mockResponse) + .mockRejectedValue({ message: 'failed to fetch' }), + }); + + const { result, waitForNextUpdate } = renderHook(() => + useCustomResources(entity, customResourceMatchers, 100), + ); + + await waitForNextUpdate(); + + expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).not.toBeUndefined(); + + await waitForNextUpdate(); + + expect(result.current.error).toBe('failed to fetch'); + expect(result.current.loading).toEqual(false); + expect(result.current.kubernetesObjects).toBeUndefined(); + }); + }); +}); diff --git a/plugins/kubernetes/src/hooks/useCustomResources.ts b/plugins/kubernetes/src/hooks/useCustomResources.ts new file mode 100644 index 0000000000..c0ec7d91ea --- /dev/null +++ b/plugins/kubernetes/src/hooks/useCustomResources.ts @@ -0,0 +1,75 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Entity } from '@backstage/catalog-model'; +import { kubernetesApiRef } from '../api/types'; +import { kubernetesAuthProvidersApiRef } from '../kubernetes-auth-provider/types'; +import { useCallback } from 'react'; +import useInterval from 'react-use/lib/useInterval'; +import { + CustomResourceMatcher, + ObjectsByEntityResponse, +} from '@backstage/plugin-kubernetes-common'; +import { useApi } from '@backstage/core-plugin-api'; +import { KubernetesObjects } from './useKubernetesObjects'; +import { generateAuth } from './auth'; +import useAsyncRetry from 'react-use/lib/useAsyncRetry'; + +/** + * Retrieves the provided custom resources related to the provided entity, refreshes at an interval. + * + * @public + */ +export const useCustomResources = ( + entity: Entity, + customResourceMatchers: CustomResourceMatcher[], + intervalMs: number = 10000, +): KubernetesObjects => { + const kubernetesApi = useApi(kubernetesApiRef); + const kubernetesAuthProvidersApi = useApi(kubernetesAuthProvidersApiRef); + + const getCustomObjects = + useCallback(async (): Promise => { + const auth = await generateAuth( + entity, + kubernetesApi, + kubernetesAuthProvidersApi, + ); + return await kubernetesApi.getCustomObjectsByEntity({ + auth, + customResources: customResourceMatchers, + entity, + }); + }, [ + kubernetesApi, + entity, + kubernetesAuthProvidersApi, + customResourceMatchers, + ]); + + const { value, loading, error, retry } = useAsyncRetry( + () => getCustomObjects(), + [getCustomObjects], + ); + + useInterval(() => retry(), intervalMs); + + return { + kubernetesObjects: value, + loading, + error: error?.message, + }; +}; diff --git a/plugins/kubernetes/src/hooks/useKubernetesObjects.test.ts b/plugins/kubernetes/src/hooks/useKubernetesObjects.test.ts index 4b66467403..5c4db4db14 100644 --- a/plugins/kubernetes/src/hooks/useKubernetesObjects.test.ts +++ b/plugins/kubernetes/src/hooks/useKubernetesObjects.test.ts @@ -18,6 +18,7 @@ import { useKubernetesObjects } from './useKubernetesObjects'; import { Entity } from '@backstage/catalog-model'; import { renderHook } from '@testing-library/react-hooks'; import { useApi } from '@backstage/core-plugin-api'; +import { generateAuth } from './auth'; jest.mock('@backstage/core-plugin-api'); @@ -55,34 +56,21 @@ const mockResponse = { ], }; -const getClustersResponse = [ - { - name: 'cluster-a', - authProvider: 'google', - }, - { - name: 'cluster-b', - authProvider: 'authprovider2', - }, -]; +jest.mock('./auth', () => { + return { + ...jest.requireActual('./auth'), + generateAuth: jest.fn(), + }; +}); describe('useKubernetesObjects', () => { - const mockGetClusters = jest.fn(); const mockGetObjectsByEntity = jest.fn(); - const mockDecorateRequestBodyForAuth = jest.fn(); + const mockGenerateAuth = generateAuth as jest.Mock; const expectMocksCalledCorrectly = (numOfCalls: number = 1) => { - expect(mockGetClusters).toHaveBeenCalledTimes(numOfCalls); - expect(mockGetClusters).toHaveBeenLastCalledWith(); - expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledTimes( - numOfCalls * 2, - ); - expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledWith('google', { + expect(mockGenerateAuth).toHaveBeenCalledTimes(numOfCalls); + expect(mockGenerateAuth.mock.calls[numOfCalls - 1][0]).toStrictEqual( entity, - }); - expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledWith( - 'authprovider2', - entityWithAuthToken, ); expect(mockGetObjectsByEntity).toHaveBeenCalledTimes(numOfCalls); expect(mockGetObjectsByEntity).toHaveBeenLastCalledWith( @@ -94,31 +82,30 @@ describe('useKubernetesObjects', () => { jest.resetAllMocks(); }); it('should return objects', async () => { + mockGenerateAuth.mockResolvedValue(entityWithAuthToken.auth); (useApi as any).mockReturnValue({ - getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), getObjectsByEntity: mockGetObjectsByEntity.mockResolvedValue(mockResponse), - decorateRequestBodyForAuth: - mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken), }); const { result, waitForNextUpdate } = renderHook(() => useKubernetesObjects(entity), ); + expect(result.current.loading).toEqual(true); + await waitForNextUpdate(); expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).toStrictEqual(mockResponse); expectMocksCalledCorrectly(); }); it('should update on an interval', async () => { + mockGenerateAuth.mockResolvedValue(entityWithAuthToken.auth); (useApi as any).mockReturnValue({ - getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), getObjectsByEntity: mockGetObjectsByEntity.mockResolvedValue(mockResponse), - decorateRequestBodyForAuth: - mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken), }); const { result, waitForNextUpdate } = renderHook(() => useKubernetesObjects(entity, 100), @@ -130,18 +117,17 @@ describe('useKubernetesObjects', () => { await waitForNextUpdate(); expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).toStrictEqual(mockResponse); expectMocksCalledCorrectly(2); }); it('should return error when getObjectsByEntity throws', async () => { + mockGenerateAuth.mockResolvedValue(entityWithAuthToken.auth); (useApi as any).mockReturnValue({ - getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), getObjectsByEntity: mockGetObjectsByEntity.mockRejectedValue({ message: 'some error', }), - decorateRequestBodyForAuth: - mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken), }); const { result, waitForNextUpdate } = renderHook(() => useKubernetesObjects(entity), @@ -150,66 +136,18 @@ describe('useKubernetesObjects', () => { await waitForNextUpdate(); expect(result.current.error).toBe('some error'); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).toBeUndefined(); expectMocksCalledCorrectly(); }); - it('should return error when getClusters throws', async () => { - (useApi as any).mockReturnValue({ - getClusters: mockGetClusters.mockRejectedValue({ message: 'some-error' }), - getObjectsByEntity: mockGetObjectsByEntity, - decorateRequestBodyForAuth: mockDecorateRequestBodyForAuth, - }); - const { result, waitForNextUpdate } = renderHook(() => - useKubernetesObjects(entity), - ); - - await waitForNextUpdate(); - - expect(result.current.error).toBe('some-error'); - expect(result.current.kubernetesObjects).toBeUndefined(); - - expect(mockGetClusters).toHaveBeenCalledTimes(1); - expect(mockGetClusters).toHaveBeenLastCalledWith(); - expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledTimes(0); - expect(mockGetObjectsByEntity).toHaveBeenCalledTimes(0); - }); - it('should return error when decorateRequestBodyForAuth throws', async () => { - (useApi as any).mockReturnValue({ - getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), - decorateRequestBodyForAuth: - mockDecorateRequestBodyForAuth.mockRejectedValue({ - message: 'some-error', - }), - getObjectsByEntity: mockGetObjectsByEntity, - }); - const { result, waitForNextUpdate } = renderHook(() => - useKubernetesObjects(entity), - ); - - await waitForNextUpdate(); - - expect(result.current.error).toBe('some-error'); - expect(result.current.kubernetesObjects).toBeUndefined(); - - expect(mockGetClusters).toHaveBeenCalledTimes(1); - expect(mockGetClusters).toHaveBeenLastCalledWith(); - expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledTimes(1); - expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledWith('google', { - entity, - }); - expect(mockGetObjectsByEntity).toHaveBeenCalledTimes(0); - }); - describe('when retrying', () => { - it('should reset error after getClusters has failed and then succeeded', async () => { + it('should reset error after generateAuth has failed and then succeeded', async () => { (useApi as any).mockReturnValue({ - getClusters: mockGetClusters - .mockRejectedValueOnce({ message: 'some-error' }) - .mockResolvedValue(getClustersResponse), - decorateRequestBodyForAuth: - mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken), + generateAuth: mockGenerateAuth + .mockRejectedValueOnce({ message: 'generateAuth failed' }) + .mockResolvedValue(entityWithAuthToken.auth), getObjectsByEntity: mockGetObjectsByEntity.mockResolvedValue(mockResponse), }); @@ -220,45 +158,19 @@ describe('useKubernetesObjects', () => { await waitForNextUpdate(); - expect(result.current.error).toBe('some-error'); - expect(result.current.kubernetesObjects).toBeUndefined(); - - await waitForNextUpdate(); - - expect(result.current.error).toBeUndefined(); - expect(result.current.kubernetesObjects).not.toBeUndefined(); - }); - - it('should reset error after decorateRequestBodyForAuth has failed and then succeeded', async () => { - (useApi as any).mockReturnValue({ - getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), - decorateRequestBodyForAuth: mockDecorateRequestBodyForAuth - .mockRejectedValueOnce({ message: 'decoration failed' }) - .mockResolvedValue(entityWithAuthToken), - getObjectsByEntity: - mockGetObjectsByEntity.mockResolvedValue(mockResponse), - }); - - const { result, waitForNextUpdate } = renderHook(() => - useKubernetesObjects(entity, 100), - ); - - await waitForNextUpdate(); - - expect(result.current.error).toBe('decoration failed'); + expect(result.current.error).toBe('generateAuth failed'); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).toBeUndefined(); await waitForNextUpdate(); expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).not.toBeUndefined(); }); it('should reset error after getObjectsByEntity has failed and then succeeded', async () => { (useApi as any).mockReturnValue({ - getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), - decorateRequestBodyForAuth: - mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken), getObjectsByEntity: mockGetObjectsByEntity .mockRejectedValueOnce({ message: 'failed to fetch' }) .mockResolvedValue(mockResponse), @@ -271,47 +183,21 @@ describe('useKubernetesObjects', () => { await waitForNextUpdate(); expect(result.current.error).toBe('failed to fetch'); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).toBeUndefined(); await waitForNextUpdate(); expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).not.toBeUndefined(); }); - it('should reset data after getClusters succeeded then failed', async () => { + it('should reset data after generateAuth succeeded then failed', async () => { (useApi as any).mockReturnValue({ - getClusters: mockGetClusters - .mockResolvedValueOnce(getClustersResponse) - .mockRejectedValue({ message: 'fetch clusters failed' }), - decorateRequestBodyForAuth: - mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken), - getObjectsByEntity: - mockGetObjectsByEntity.mockResolvedValue(mockResponse), - }); - const { result, waitForNextUpdate } = renderHook(() => - useKubernetesObjects(entity, 100), - ); - - await waitForNextUpdate(); - - expect(result.current.error).toBeUndefined(); - expect(result.current.kubernetesObjects).not.toBeUndefined(); - - await waitForNextUpdate(); - - expect(result.current.error).toBe('fetch clusters failed'); - expect(result.current.kubernetesObjects).toBeUndefined(); - }); - - it('should reset data after decorateBodyForAuth succeeded then failed', async () => { - (useApi as any).mockReturnValue({ - getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), - decorateRequestBodyForAuth: mockDecorateRequestBodyForAuth - // this call happens twice per successful hook render - .mockResolvedValueOnce(entityWithAuthToken) - .mockResolvedValueOnce(entityWithAuthToken) - .mockRejectedValue({ message: 'decorate failed' }), + generateAuth: mockGenerateAuth + .mockResolvedValueOnce(entityWithAuthToken.auth) + .mockRejectedValue({ message: 'generateAuth failed' }), getObjectsByEntity: mockGetObjectsByEntity.mockResolvedValue(mockResponse), }); @@ -323,19 +209,18 @@ describe('useKubernetesObjects', () => { await waitForNextUpdate(); expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).not.toBeUndefined(); await waitForNextUpdate(); - expect(result.current.error).toBe('decorate failed'); + expect(result.current.error).toBe('generateAuth failed'); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).toBeUndefined(); }); it('should reset data after getObjectsByEntity succeeded then failed', async () => { (useApi as any).mockReturnValue({ - getClusters: mockGetClusters.mockResolvedValue(getClustersResponse), - decorateRequestBodyForAuth: - mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken), getObjectsByEntity: mockGetObjectsByEntity .mockResolvedValueOnce(mockResponse) .mockRejectedValue({ message: 'failed to fetch' }), @@ -348,11 +233,13 @@ describe('useKubernetesObjects', () => { await waitForNextUpdate(); expect(result.current.error).toBeUndefined(); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).not.toBeUndefined(); await waitForNextUpdate(); expect(result.current.error).toBe('failed to fetch'); + expect(result.current.loading).toEqual(false); expect(result.current.kubernetesObjects).toBeUndefined(); }); }); diff --git a/plugins/kubernetes/src/hooks/useKubernetesObjects.ts b/plugins/kubernetes/src/hooks/useKubernetesObjects.ts index 421ed787da..87d6a0fe8b 100644 --- a/plugins/kubernetes/src/hooks/useKubernetesObjects.ts +++ b/plugins/kubernetes/src/hooks/useKubernetesObjects.ts @@ -17,16 +17,16 @@ import { Entity } from '@backstage/catalog-model'; import { kubernetesApiRef } from '../api/types'; import { kubernetesAuthProvidersApiRef } from '../kubernetes-auth-provider/types'; -import { useEffect, useState } from 'react'; +import { useCallback } from 'react'; import useInterval from 'react-use/lib/useInterval'; -import { - KubernetesRequestBody, - ObjectsByEntityResponse, -} from '@backstage/plugin-kubernetes-common'; +import { ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common'; import { useApi } from '@backstage/core-plugin-api'; +import { generateAuth } from './auth'; +import useAsyncRetry from 'react-use/lib/useAsyncRetry'; export interface KubernetesObjects { kubernetesObjects?: ObjectsByEntityResponse; + loading: boolean; error?: string; } @@ -36,68 +36,29 @@ export const useKubernetesObjects = ( ): KubernetesObjects => { const kubernetesApi = useApi(kubernetesApiRef); const kubernetesAuthProvidersApi = useApi(kubernetesAuthProvidersApiRef); - const [result, setResult] = useState({ - kubernetesObjects: undefined, - error: undefined, - }); + const getCustomObjects = + useCallback(async (): Promise => { + const auth = await generateAuth( + entity, + kubernetesApi, + kubernetesAuthProvidersApi, + ); + return await kubernetesApi.getObjectsByEntity({ + auth, + entity, + }); + }, [kubernetesApi, entity, kubernetesAuthProvidersApi]); - const getObjects = async () => { - let clusters = []; + const { value, loading, error, retry } = useAsyncRetry( + () => getCustomObjects(), + [getCustomObjects], + ); - try { - clusters = await kubernetesApi.getClusters(); - } catch (e) { - setResult({ error: e.message }); - return; - } + useInterval(() => retry(), intervalMs); - const authProviders: string[] = [ - ...new Set( - clusters.map( - c => - `${c.authProvider}${ - c.oidcTokenProvider ? `.${c.oidcTokenProvider}` : '' - }`, - ), - ), - ]; - - // For each auth type, invoke decorateRequestBodyForAuth on corresponding KubernetesAuthProvider - let requestBody: KubernetesRequestBody = { - entity, - }; - for (const authProviderStr of authProviders) { - // Multiple asyncs done sequentially instead of all at once to prevent same requestBody from being modified simultaneously - try { - requestBody = - await kubernetesAuthProvidersApi.decorateRequestBodyForAuth( - authProviderStr, - requestBody, - ); - } catch (e) { - setResult({ error: e.message }); - return; - } - } - - try { - const objects = await kubernetesApi.getObjectsByEntity(requestBody); - setResult({ kubernetesObjects: objects }); - } catch (e) { - setResult({ error: e.message }); - return; - } + return { + kubernetesObjects: value, + loading, + error: error?.message, }; - - useEffect(() => { - getObjects(); - /* eslint-disable react-hooks/exhaustive-deps */ - }, [entity.metadata.name, kubernetesApi, kubernetesAuthProvidersApi]); - /* eslint-enable react-hooks/exhaustive-deps */ - - useInterval(() => { - getObjects(); - }, intervalMs); - - return result; }; diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 11b69adeef..78ae3237cb 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -33,12 +33,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -49,10 +49,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index d83bb5f57f..986ebd44ab 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -22,19 +22,19 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", "@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" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/dev-utils": "^1.0.6", + "@backstage/cli": "workspace:^", + "@backstage/dev-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5" diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index e7a6423bd5..c76f73c41a 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -33,9 +33,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -45,10 +45,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/org/package.json b/plugins/org/package.json index c9454c3d24..9fb4b45a32 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -28,11 +28,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -47,11 +47,11 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/catalog-client": "^1.1.0", - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/catalog-client": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/org/src/components/Cards/Group/GroupProfile/GroupProfileCard.tsx b/plugins/org/src/components/Cards/Group/GroupProfile/GroupProfileCard.tsx index 174067275d..dfdb566b20 100644 --- a/plugins/org/src/components/Cards/Group/GroupProfile/GroupProfileCard.tsx +++ b/plugins/org/src/components/Cards/Group/GroupProfile/GroupProfileCard.tsx @@ -144,43 +144,52 @@ export const GroupProfileCard = (props: { variant?: InfoCardVariants }) => { - - {profile.email} - + {profile.email}} + secondary="Email" + /> )} - - {parentRelations.length ? ( - - - - - - - - - - - ) : null} - - {childRelations.length ? ( - - - - - - - - - - - ) : null} + + + + + + + + ) : ( + 'N/A' + ) + } + secondary="Parent Group" + /> + + + + + + + + + ) : ( + 'N/A' + ) + } + secondary="Child Groups" + /> + diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index c9dc5862c2..4909465deb 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -33,12 +33,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -52,10 +52,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index 9b744f0da2..4704370394 100644 --- a/plugins/periskop-backend/package.json +++ b/plugins/periskop-backend/package.json @@ -23,8 +23,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", "@types/express": "*", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -33,7 +33,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "msw": "^0.47.0", "supertest": "^6.1.6" diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 29a656c773..94ec1fdc21 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -23,12 +23,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -40,10 +40,10 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index f513ed500c..234e633482 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -22,12 +22,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-permission-node": "^0.6.5", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-permission-node": "workspace:^", "@types/express": "*", "dataloader": "^2.0.0", "express": "^4.17.1", @@ -39,7 +39,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/lodash": "^4.14.151", "@types/supertest": "^2.0.8", "msw": "^0.47.0", diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json index 59a0e50fb6..e83131387a 100644 --- a/plugins/permission-common/package.json +++ b/plugins/permission-common/package.json @@ -41,14 +41,14 @@ "url": "https://github.com/backstage/backstage/issues" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", "cross-fetch": "^3.1.5", "uuid": "^8.0.0", "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "msw": "^0.47.0" } } diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index e1f37d4e61..354aced054 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -33,19 +33,19 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/plugin-permission-common": "^0.6.4", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "msw": "^0.47.0", "supertest": "^6.1.3" diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index 7626909eb4..faaca8829f 100644 --- a/plugins/permission-react/package.json +++ b/plugins/permission-react/package.json @@ -31,9 +31,9 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-permission-common": "^0.6.4", + "@backstage/config": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", "cross-fetch": "^3.1.5", "react-use": "^17.2.4", "swr": "^1.1.2" @@ -44,8 +44,8 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3" }, diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 125b538138..ae472da767 100644 --- a/plugins/playlist-backend/package.json +++ b/plugins/playlist-backend/package.json @@ -22,16 +22,16 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/catalog-client": "1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-permission-node": "^0.6.5", - "@backstage/plugin-playlist-common": "^0.1.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-permission-node": "workspace:^", + "@backstage/plugin-playlist-common": "workspace:^", "@types/express": "*", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -42,7 +42,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "msw": "^0.47.0", "supertest": "^6.1.3" diff --git a/plugins/playlist-common/package.json b/plugins/playlist-common/package.json index 9599a5aeae..87dbc7d9f5 100644 --- a/plugins/playlist-common/package.json +++ b/plugins/playlist-common/package.json @@ -23,10 +23,10 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/plugin-permission-common": "^0.6.4" + "@backstage/plugin-permission-common": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index 79e6d1f080..7da8d4ba08 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -22,17 +22,17 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-common": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-permission-react": "^0.4.5", - "@backstage/plugin-playlist-common": "^0.1.0", - "@backstage/plugin-search-react": "^1.1.0", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-permission-react": "workspace:^", + "@backstage/plugin-playlist-common": "workspace:^", + "@backstage/plugin-search-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.57", @@ -47,10 +47,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index ba7da75e40..553c43051d 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -32,8 +32,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -46,7 +46,7 @@ "yup": "^0.32.9" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/http-proxy-middleware": "^0.19.3", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index e5c64087fb..aca54df1b2 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -33,8 +33,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", "@types/express": "^4.17.6", "camelcase-keys": "^7.0.1", "compression": "^1.7.4", @@ -49,8 +49,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "msw": "^0.47.0", "supertest": "^6.1.3" diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index f111c50b9a..6c31befc6b 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -33,11 +33,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -51,10 +51,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index a881e93693..200b7bffa0 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -23,19 +23,19 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-scaffolder-backend": "^1.6.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-scaffolder-backend": "workspace:^", + "@backstage/types": "workspace:^", "command-exists": "^1.2.9", "fs-extra": "10.1.0", "winston": "^3.2.1", "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", "@types/mock-fs": "^4.13.0", diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index 43da566b7c..9418190ece 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -23,17 +23,17 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-scaffolder-backend": "^1.6.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-scaffolder-backend": "workspace:^", + "@backstage/types": "workspace:^", "command-exists": "^1.2.9", "fs-extra": "^10.0.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", "@types/mock-fs": "^4.13.0", diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index 291b5f0328..a7fa872f6d 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -22,15 +22,15 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/plugin-scaffolder-backend": "^1.6.0", - "@backstage/types": "^1.0.0", + "@backstage/config": "workspace:^", + "@backstage/plugin-scaffolder-backend": "workspace:^", + "@backstage/types": "workspace:^", "winston": "^3.2.1", "yeoman-environment": "^3.9.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/cli": "^0.19.0" + "@backstage/backend-common": "workspace:^", + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 0d5fbcb31f..35e3dab0b5 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -23,6 +23,7 @@ import { Logger } from 'winston'; import { Observable } from '@backstage/types'; import { Octokit } from 'octokit'; import { PluginDatabaseManager } from '@backstage/backend-common'; +import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { Schema } from 'jsonschema'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { ScmIntegrations } from '@backstage/integration'; @@ -499,6 +500,8 @@ export class DatabaseTaskStore implements TaskStore { taskId: string; }[]; }>; + // (undocumented) + shutdownTask({ taskId }: TaskStoreShutDownTaskOptions): Promise; } // @public @@ -547,6 +550,8 @@ export interface RouterOptions { // (undocumented) reader: UrlReader; // (undocumented) + scheduler?: PluginTaskScheduler; + // (undocumented) taskBroker?: TaskBroker; // (undocumented) taskWorkers?: number; @@ -741,6 +746,8 @@ export interface TaskStore { taskId: string; }[]; }>; + // (undocumented) + shutdownTask?({ taskId }: TaskStoreShutDownTaskOptions): Promise; } // @public @@ -767,6 +774,11 @@ export type TaskStoreListEventsOptions = { after?: number | undefined; }; +// @public +export type TaskStoreShutDownTaskOptions = { + taskId: string; +}; + // @public export class TaskWorker { // (undocumented) diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 2b8a731587..35f7fe01e2 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -34,18 +34,19 @@ "build:assets": "node scripts/build-nunjucks.js" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-plugin-api": "^0.1.2", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/plugin-catalog-backend": "^1.4.0", - "@backstage/plugin-catalog-node": "^1.1.0", - "@backstage/plugin-scaffolder-common": "^1.2.0", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/plugin-catalog-node": "workspace:^", + "@backstage/plugin-scaffolder-common": "workspace:^", + "@backstage/types": "workspace:^", "@gitbeaker/core": "^35.6.0", "@gitbeaker/node": "^35.1.0", "@octokit/webhooks": "^10.0.0", @@ -79,8 +80,8 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", "@types/git-url-parse": "^9.0.0", diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts index 206dc2ac1d..b61c3d2676 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts @@ -32,6 +32,7 @@ import { TaskStoreListEventsOptions, TaskStoreCreateTaskOptions, TaskStoreCreateTaskResult, + TaskStoreShutDownTaskOptions, } from './types'; import { DateTime } from 'luxon'; @@ -268,8 +269,7 @@ export class DatabaseTaskStore implements TaskStore { '<=', this.db.client.config.client.includes('sqlite3') ? this.db.raw(`datetime('now', ?)`, [`-${timeoutS} seconds`]) - : this.db.raw(`dateadd('second', ?, ?)`, [ - `-${timeoutS}`, + : this.db.raw(`? - interval '${timeoutS} seconds'`, [ this.db.fn.now(), ]), ); @@ -380,4 +380,42 @@ export class DatabaseTaskStore implements TaskStore { }); return { events }; } + + async shutdownTask({ taskId }: TaskStoreShutDownTaskOptions): Promise { + const message = `This task was marked as stale as it exceeded its timeout`; + + const statusStepEvents = (await this.listEvents({ taskId })).events.filter( + ({ body }) => body?.stepId, + ); + + const completedSteps = statusStepEvents + .filter( + ({ body: { status } }) => status === 'failed' || status === 'completed', + ) + .map(step => step.body.stepId); + + const hungProcessingSteps = statusStepEvents + .filter(({ body: { status } }) => status === 'processing') + .map(event => event.body.stepId) + .filter(step => !completedSteps.includes(step)); + + for (const step of hungProcessingSteps) { + await this.emitLogEvent({ + taskId, + body: { + message, + stepId: step, + status: 'failed', + }, + }); + } + + await this.completeTask({ + taskId, + status: 'failed', + eventBody: { + message, + }, + }); + } } diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/index.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/index.ts index 457c32d9b5..2af7d6a340 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/index.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/index.ts @@ -24,6 +24,7 @@ export type { TaskCompletionState, TaskStoreEmitOptions, TaskStoreListEventsOptions, + TaskStoreShutDownTaskOptions, SerializedTask, SerializedTaskEvent, TaskStatus, diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts index 4b63a0cdd3..5d3f8113ee 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts @@ -156,6 +156,15 @@ export type TaskStoreListEventsOptions = { after?: number | undefined; }; +/** + * TaskStoreShutDownTaskOptions + * + * @public + */ +export type TaskStoreShutDownTaskOptions = { + taskId: string; +}; + /** * The options passed to {@link TaskStore.createTask} * @public @@ -201,6 +210,7 @@ export interface TaskStore { taskId, after, }: TaskStoreListEventsOptions): Promise<{ events: SerializedTaskEvent[] }>; + shutdownTask?({ taskId }: TaskStoreShutDownTaskOptions): Promise; } export type WorkflowResponse = { output: { [key: string]: JsonValue } }; diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index f8e24d1acf..28dd1ca413 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -15,6 +15,7 @@ */ import { PluginDatabaseManager, UrlReader } from '@backstage/backend-common'; +import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { CatalogApi } from '@backstage/catalog-client'; import { Entity, @@ -63,6 +64,7 @@ export interface RouterOptions { reader: UrlReader; database: PluginDatabaseManager; catalogClient: CatalogApi; + scheduler?: PluginTaskScheduler; actions?: TemplateAction[]; taskWorkers?: number; @@ -156,6 +158,7 @@ export async function createRouter( catalogClient, actions, taskWorkers, + scheduler, additionalTemplateFilters, } = options; @@ -166,11 +169,29 @@ export async function createRouter( const workingDirectory = await getWorkingDirectory(config, logger); const integrations = ScmIntegrations.fromConfig(config); - let taskBroker: TaskBroker; + let taskBroker: TaskBroker; if (!options.taskBroker) { const databaseTaskStore = await DatabaseTaskStore.create({ database }); taskBroker = new StorageTaskBroker(databaseTaskStore, logger); + + if (scheduler && databaseTaskStore.listStaleTasks) { + await scheduler.scheduleTask({ + id: 'close_stale_tasks', + frequency: { cron: '*/5 * * * *' }, // every 5 minutes, also supports Duration + timeout: { minutes: 15 }, + fn: async () => { + const { tasks } = await databaseTaskStore.listStaleTasks({ + timeoutS: 86400, + }); + + for (const task of tasks) { + await databaseTaskStore.shutdownTask(task); + logger.info(`Successfully closed stale task ${task.taskId}`); + } + }, + }); + } } else { taskBroker = options.taskBroker; } diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index 11951c052f..ab7508d215 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -38,10 +38,10 @@ "url": "https://github.com/backstage/backstage/issues" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/types": "^1.0.0" + "@backstage/catalog-model": "workspace:^", + "@backstage/types": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" } } diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 539dd4f82c..e88d2861a7 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -72,6 +72,8 @@ export interface EntityPickerUiOptions { allowedKinds?: string[]; // (undocumented) defaultKind?: string; + // (undocumented) + defaultNamespace?: string | false; } // @public @@ -183,6 +185,8 @@ export interface OwnedEntityPickerUiOptions { allowedKinds?: string[]; // (undocumented) defaultKind?: string; + // (undocumented) + defaultNamespace?: string | false; } // @public @@ -197,6 +201,8 @@ export interface OwnerPickerUiOptions { allowArbitraryValues?: boolean; // (undocumented) allowedKinds?: string[]; + // (undocumented) + defaultNamespace?: string | false; } // @public diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index dbc19b48c4..0debc7dd23 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -33,20 +33,20 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-catalog-common": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-permission-react": "^0.4.5", - "@backstage/plugin-scaffolder-common": "^1.2.0", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-permission-react": "workspace:^", + "@backstage/plugin-scaffolder-common": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", "@codemirror/language": "^6.0.0", "@codemirror/legacy-modes": "^6.1.0", "@codemirror/view": "^6.0.0", @@ -79,11 +79,11 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/plugin-catalog": "^1.5.1", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/plugin-catalog": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx index 2aa72550c3..e7883a4721 100644 --- a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx @@ -35,6 +35,7 @@ export interface EntityPickerUiOptions { allowedKinds?: string[]; defaultKind?: string; allowArbitraryValues?: boolean; + defaultNamespace?: string | false; } /** @@ -57,6 +58,7 @@ export const EntityPicker = ( } = props; const allowedKinds = uiSchema['ui:options']?.allowedKinds; const defaultKind = uiSchema['ui:options']?.defaultKind; + const defaultNamespace = uiSchema['ui:options']?.defaultNamespace; const catalogApi = useApi(catalogApiRef); @@ -67,7 +69,7 @@ export const EntityPicker = ( ); const entityRefs = entities?.items.map(e => - humanizeEntityRef(e, { defaultKind }), + humanizeEntityRef(e, { defaultKind, defaultNamespace }), ); const onSelect = useCallback( diff --git a/plugins/scaffolder/src/components/fields/OwnedEntityPicker/OwnedEntityPicker.tsx b/plugins/scaffolder/src/components/fields/OwnedEntityPicker/OwnedEntityPicker.tsx index a280ebad6a..2446883a86 100644 --- a/plugins/scaffolder/src/components/fields/OwnedEntityPicker/OwnedEntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/OwnedEntityPicker/OwnedEntityPicker.tsx @@ -38,6 +38,7 @@ export interface OwnedEntityPickerUiOptions { allowedKinds?: string[]; defaultKind?: string; allowArbitraryValues?: boolean; + defaultNamespace?: string | false; } /** @@ -61,12 +62,13 @@ export const OwnedEntityPicker = ( const allowedKinds = uiSchema['ui:options']?.allowedKinds; const defaultKind = uiSchema['ui:options']?.defaultKind; + const defaultNamespace = uiSchema['ui:options']?.defaultNamespace; const allowArbitraryValues = uiSchema['ui:options']?.allowArbitraryValues ?? true; const { ownedEntities, loading } = useOwnedEntities(allowedKinds); const entityRefs = ownedEntities?.items - .map(e => humanizeEntityRef(e, { defaultKind })) + .map(e => humanizeEntityRef(e, { defaultKind, defaultNamespace })) .filter(n => n); const onSelect = (_: any, value: string | null) => { diff --git a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx index 10425c17ff..3de2b12bd0 100644 --- a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx +++ b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx @@ -26,6 +26,7 @@ import { FieldExtensionComponentProps } from '../../../extensions'; export interface OwnerPickerUiOptions { allowedKinds?: string[]; allowArbitraryValues?: boolean; + defaultNamespace?: string | false; } /** @@ -43,6 +44,8 @@ export const OwnerPicker = ( ...restProps } = props; + const defaultNamespace = uiSchema['ui:options']?.defaultNamespace; + const ownerUiSchema = { ...uiSchema, 'ui:options': { @@ -53,6 +56,7 @@ export const OwnerPicker = ( defaultKind: 'Group', allowArbitraryValues: uiSchema['ui:options']?.allowArbitraryValues ?? true, + ...(defaultNamespace !== undefined ? { defaultNamespace } : {}), }, }; diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 9962769ccc..b161905d75 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -23,9 +23,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/plugin-search-backend-node": "^1.0.2", - "@backstage/plugin-search-common": "^1.0.1", + "@backstage/config": "workspace:^", + "@backstage/plugin-search-backend-node": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", "@elastic/elasticsearch": "^7.13.0", "@opensearch-project/opensearch": "^2.0.0", "aws-os-connection": "^0.2.0", @@ -36,8 +36,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/cli": "^0.19.0", + "@backstage/backend-common": "workspace:^", + "@backstage/cli": "workspace:^", "@elastic/elasticsearch-mock": "^1.0.0", "@short.io/opensearch-mock": "^0.3.1" }, diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index 70d2a48b22..8af9d8a4c8 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -23,17 +23,17 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/plugin-search-backend-node": "^1.0.2", - "@backstage/plugin-search-common": "^1.0.1", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/plugin-search-backend-node": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", "knex": "^2.0.0", "lodash": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0" + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^" }, "files": [ "dist", diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 837b4fcd3c..43f8597fd5 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -23,12 +23,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-search-common": "^1.0.1", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", "@types/lunr": "^2.3.3", "lodash": "^4.17.21", "lunr": "^2.3.9", @@ -38,8 +38,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/cli": "^0.19.0", + "@backstage/backend-common": "workspace:^", + "@backstage/cli": "workspace:^", "@types/ndjson": "^2.0.1" }, "files": [ diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index acfc5347d5..d01a8b2ff0 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -23,15 +23,15 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-permission-node": "^0.6.5", - "@backstage/plugin-search-backend-node": "^1.0.2", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-permission-node": "workspace:^", + "@backstage/plugin-search-backend-node": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/types": "workspace:^", "@types/express": "^4.17.6", "dataloader": "^2.0.0", "express": "^4.17.1", @@ -43,7 +43,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/search-common/package.json b/plugins/search-common/package.json index 1493f8c47e..0907468fdd 100644 --- a/plugins/search-common/package.json +++ b/plugins/search-common/package.json @@ -38,11 +38,11 @@ "url": "https://github.com/backstage/backstage/issues" }, "dependencies": { - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/types": "^1.0.0" + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/types": "workspace:^" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "jest": { "roots": [ diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 0e927a0f8c..d3b8105076 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -31,12 +31,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", - "@backstage/version-bridge": "^1.0.1", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", + "@backstage/version-bridge": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -50,9 +50,9 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/search/package.json b/plugins/search/package.json index 7e95bafa02..f25c8a11f1 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -32,17 +32,17 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/plugin-search-react": "^1.1.0", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", - "@backstage/version-bridge": "^1.0.1", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/plugin-search-react": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", + "@backstage/version-bridge": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -56,10 +56,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 9cb074366e..65cac51b8f 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -33,11 +33,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-table/core": "^3.1.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -51,10 +51,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index 082989fc4a..e0eda5cd4c 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -23,10 +23,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -41,10 +41,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index 032b45445d..2552407db8 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -22,9 +22,9 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", "@types/express": "*", "express": "^4.18.1", "express-promise-router": "^4.1.0", @@ -33,8 +33,8 @@ "yn": "^5.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/test-utils": "workspace:^", "@types/supertest": "^2.0.12", "msw": "^0.47.0", "supertest": "^6.2.4" diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 91b6bd7f4d..a06019e867 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -34,11 +34,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -51,10 +51,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 4758fd122b..f52594b8dd 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -33,11 +33,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -50,10 +50,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index ced4110525..4407219bf2 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -32,9 +32,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/config": "^1.0.2", - "@backstage/plugin-search-common": "^1.0.1", + "@backstage/cli": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", "node-fetch": "^2.6.7", "qs": "^6.9.4", "winston": "^3.2.1" diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 9cafb21b20..2a1884280d 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -22,12 +22,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/plugin-home": "^0.4.25", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/theme": "^0.2.16", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/plugin-home": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", @@ -41,10 +41,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/node": "^16.11.26", diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index 2703693b52..8109697054 100644 --- a/plugins/tech-insights-backend-module-jsonfc/package.json +++ b/plugins/tech-insights-backend-module-jsonfc/package.json @@ -33,11 +33,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-tech-insights-common": "^0.2.6", - "@backstage/plugin-tech-insights-node": "^0.3.4", + "@backstage/backend-common": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-tech-insights-common": "workspace:^", + "@backstage/plugin-tech-insights-node": "workspace:^", "ajv": "^8.10.0", "json-rules-engine": "^6.1.2", "lodash": "^4.17.21", @@ -45,7 +45,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 50ba01d20d..d2d1838bc1 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -33,14 +33,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-tech-insights-common": "^0.2.6", - "@backstage/plugin-tech-insights-node": "^0.3.4", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-tech-insights-common": "workspace:^", + "@backstage/plugin-tech-insights-node": "workspace:^", "@types/express": "^4.17.6", "@types/luxon": "^3.0.0", "express": "^4.17.1", @@ -54,8 +54,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/semver": "^7.3.8", "@types/supertest": "^2.0.8", "supertest": "^6.1.3", diff --git a/plugins/tech-insights-common/package.json b/plugins/tech-insights-common/package.json index fbebd558b5..fda306c580 100644 --- a/plugins/tech-insights-common/package.json +++ b/plugins/tech-insights-common/package.json @@ -32,12 +32,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/types": "^1.0.0", + "@backstage/types": "workspace:^", "@types/luxon": "^3.0.0", "luxon": "^3.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0-next.1" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index baa504976c..81554199a9 100644 --- a/plugins/tech-insights-node/package.json +++ b/plugins/tech-insights-node/package.json @@ -10,7 +10,7 @@ "types": "dist/index.d.ts" }, "backstage": { - "role": "backend-plugin" + "role": "node-library" }, "homepage": "https://backstage.io", "repository": { @@ -32,17 +32,17 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/config": "^1.0.2", - "@backstage/plugin-tech-insights-common": "^0.2.6", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/plugin-tech-insights-common": "workspace:^", + "@backstage/types": "workspace:^", "@types/luxon": "^3.0.0", "luxon": "^3.0.0", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0" + "@backstage/cli": "workspace:^" }, "files": [ "dist" diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index dad3263f10..8a839daaf3 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -27,14 +27,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-tech-insights-common": "^0.2.6", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-tech-insights-common": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -46,10 +46,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index ded203d4d0..19bd64d67c 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -32,9 +32,9 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -47,10 +47,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/tech-radar/src/components/RadarComponent.test.tsx b/plugins/tech-radar/src/components/RadarComponent.test.tsx index 6b8bd944b8..3d3b1bfd17 100644 --- a/plugins/tech-radar/src/components/RadarComponent.test.tsx +++ b/plugins/tech-radar/src/components/RadarComponent.test.tsx @@ -124,8 +124,8 @@ describe('RadarComponent', () => { ); }).toThrow(); }).error[0], - ).toMatch( - /^Error: Uncaught \[Error: No implementation available for apiRef{core.error}\]/, - ); + ).toMatchObject({ + detail: new Error('No implementation available for apiRef{core.error}'), + }); }); }); diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index fecbb5d685..b891a28679 100644 --- a/plugins/techdocs-addons-test-utils/package.json +++ b/plugins/techdocs-addons-test-utils/package.json @@ -32,16 +32,16 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-app-api": "^1.1.0", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-catalog": "^1.5.1", - "@backstage/plugin-search-react": "^1.1.0", - "@backstage/plugin-techdocs": "^1.3.2", - "@backstage/plugin-techdocs-react": "^1.0.4", - "@backstage/test-utils": "^1.2.0", - "@backstage/theme": "^0.2.16", + "@backstage/core-app-api": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-catalog": "workspace:^", + "@backstage/plugin-search-react": "workspace:^", + "@backstage/plugin-techdocs": "workspace:^", + "@backstage/plugin-techdocs-react": "workspace:^", + "@backstage/test-utils": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -56,8 +56,8 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/dev-utils": "^1.0.6", + "@backstage/cli": "workspace:^", + "@backstage/dev-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 8ca2bd05e0..d31bc9fe84 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -33,16 +33,16 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-catalog-common": "^1.0.6", - "@backstage/plugin-permission-common": "^0.6.4", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/plugin-techdocs-node": "^1.4.0", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/plugin-techdocs-node": "workspace:^", "@types/express": "^4.17.6", "dockerode": "^3.3.1", "express": "^4.17.1", @@ -55,9 +55,9 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", - "@backstage/plugin-search-backend-node": "1.0.2", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", + "@backstage/plugin-search-backend-node": "workspace:^", "@types/dockerode": "^3.3.0", "msw": "^0.47.0", "supertest": "^6.1.3" diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 13bb293067..a5a054dd9f 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -33,12 +33,12 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/integration": "^1.3.1", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-techdocs-react": "^1.0.4", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-techdocs-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -50,11 +50,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/plugin-techdocs-addons-test-utils": "^1.0.4", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/plugin-techdocs-addons-test-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index dfc1179eac..c096f5199c 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -41,12 +41,12 @@ "dependencies": { "@azure/identity": "^2.0.1", "@azure/storage-blob": "^12.5.0", - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/plugin-search-common": "^1.0.1", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", "@google-cloud/storage": "^6.0.0", "@trendyol-js/openstack-swift-sdk": "^0.0.5", "@types/express": "^4.17.6", @@ -63,7 +63,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/fs-extra": "^9.0.5", "@types/js-yaml": "^4.0.0", "@types/mime-types": "^2.1.0", diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 76ab6aa765..a7f469a4a9 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -34,11 +34,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/version-bridge": "^1.0.1", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/version-bridge": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/lab": "4.0.0-alpha.57", "@material-ui/styles": "^4.11.0", @@ -53,9 +53,9 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/test-utils": "^1.2.0", - "@backstage/theme": "^0.2.16", + "@backstage/cli": "workspace:^", + "@backstage/test-utils": "workspace:^", + "@backstage/theme": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0" diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 5f6cb757c9..ec8c1bf515 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -33,18 +33,18 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", - "@backstage/integration-react": "^1.1.4", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/plugin-search-common": "^1.0.1", - "@backstage/plugin-search-react": "^1.1.0", - "@backstage/plugin-techdocs-react": "^1.0.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/integration-react": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-search-common": "workspace:^", + "@backstage/plugin-search-react": "workspace:^", + "@backstage/plugin-techdocs-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -65,10 +65,10 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 451349da26..5ac93bc1bd 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -29,12 +29,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-client": "^1.1.0", - "@backstage/catalog-model": "^1.1.1", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", - "@backstage/integration": "^1.3.1", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -43,7 +43,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "msw": "^0.47.0", "supertest": "^6.1.3" diff --git a/plugins/todo/package.json b/plugins/todo/package.json index 2b72606317..9c9956a1ef 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -29,12 +29,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -45,10 +45,10 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index 3ab91f5008..429d12d3d3 100644 --- a/plugins/user-settings-backend/package.json +++ b/plugins/user-settings-backend/package.json @@ -28,11 +28,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/catalog-model": "^1.1.1", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-auth-node": "^0.2.5", - "@backstage/types": "^1.0.0", + "@backstage/backend-common": "workspace:^", + "@backstage/catalog-model": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/types": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -41,8 +41,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/cli": "^0.19.0", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/user-settings/api-report.md b/plugins/user-settings/api-report.md index 76eaed940e..c51d4f992a 100644 --- a/plugins/user-settings/api-report.md +++ b/plugins/user-settings/api-report.md @@ -16,6 +16,7 @@ import { IdentityApi } from '@backstage/core-plugin-api'; import { JsonValue } from '@backstage/types'; import { Observable } from '@backstage/types'; import { ProfileInfo } from '@backstage/core-plugin-api'; +import { ProfileInfoApi } from '@backstage/core-plugin-api'; import { PropsWithChildren } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; import { SessionApi } from '@backstage/core-plugin-api'; @@ -32,7 +33,7 @@ export const ProviderSettingsItem: (props: { title: string; description: string; icon: IconComponent; - apiRef: ApiRef; + apiRef: ApiRef; }) => JSX.Element; // @public (undocumented) diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index c10438c25a..e00cf09bb8 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -32,12 +32,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-app-api": "^1.1.0", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/theme": "^0.2.16", - "@backstage/types": "^1.0.0", + "@backstage/core-app-api": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/theme": "workspace:^", + "@backstage/types": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -50,9 +50,9 @@ "react-router": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/user-settings/src/components/AuthProviders/ProviderSettingsAvatar.tsx b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsAvatar.tsx new file mode 100644 index 0000000000..e92b0efe15 --- /dev/null +++ b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsAvatar.tsx @@ -0,0 +1,38 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { BackstageTheme } from '@backstage/theme'; +import { makeStyles, Avatar } from '@material-ui/core'; +import { sidebarConfig } from '@backstage/core-components'; + +const useStyles = makeStyles(theme => ({ + avatar: { + width: ({ size }) => size, + height: ({ size }) => size, + fontSize: ({ size }) => size * 0.7, + border: `1px solid ${theme.palette.textSubtle}`, + }, +})); + +type Props = { size?: number; picture: string | undefined }; + +export const ProviderSettingsAvatar = ({ size, picture }: Props) => { + const { iconSize } = sidebarConfig; + const classes = useStyles(size ? { size } : { size: iconSize }); + + return ; +}; diff --git a/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx index e170aa2daa..ab6ad8dff9 100644 --- a/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx +++ b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx @@ -17,31 +17,38 @@ import React, { useEffect, useState } from 'react'; import { Button, + Grid, ListItem, ListItemIcon, ListItemSecondaryAction, ListItemText, Tooltip, + Typography, } from '@material-ui/core'; import { ApiRef, SessionApi, + SessionState, + ProfileInfoApi, + ProfileInfo, useApi, IconComponent, - SessionState, } from '@backstage/core-plugin-api'; +import { ProviderSettingsAvatar } from './ProviderSettingsAvatar'; /** @public */ export const ProviderSettingsItem = (props: { title: string; description: string; icon: IconComponent; - apiRef: ApiRef; + apiRef: ApiRef; }) => { const { title, description, icon: Icon, apiRef } = props; const api = useApi(apiRef); const [signedIn, setSignedIn] = useState(false); + const emptyProfile: ProfileInfo = {}; + const [profile, setProfile] = useState(emptyProfile); useEffect(() => { let didCancel = false; @@ -50,7 +57,18 @@ export const ProviderSettingsItem = (props: { .sessionState$() .subscribe((sessionState: SessionState) => { if (!didCancel) { - setSignedIn(sessionState === SessionState.SignedIn); + api + .getProfile({ optional: true }) + .then((profileResponse: ProfileInfo | undefined) => { + if (!didCancel) { + if (sessionState === SessionState.SignedIn) { + setSignedIn(true); + } + if (profileResponse) { + setProfile(profileResponse); + } + } + }); } }); @@ -69,7 +87,32 @@ export const ProviderSettingsItem = (props: { primary={title} secondary={ - {description} + + + + + + + + + + {profile.displayName} + + + {profile.email} + + + {description} + + + + + + } secondaryTypographyProps={{ noWrap: true, style: { width: '80%' } }} diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 47f6887094..e4f0774b45 100644 --- a/plugins/vault-backend/package.json +++ b/plugins/vault-backend/package.json @@ -33,11 +33,11 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.1", - "@backstage/backend-tasks": "^0.3.5", - "@backstage/backend-test-utils": "^0.1.28", - "@backstage/config": "^1.0.2", - "@backstage/errors": "^1.1.1", + "@backstage/backend-common": "workspace:^", + "@backstage/backend-tasks": "workspace:^", + "@backstage/backend-test-utils": "workspace:^", + "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", "@types/express": "*", "compression": "^1.7.4", "cors": "^2.8.5", @@ -50,7 +50,7 @@ "yn": "^5.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", + "@backstage/cli": "workspace:^", "@types/compression": "^1.7.2", "@types/supertest": "^2.0.8", "msw": "^0.47.0", diff --git a/plugins/vault/package.json b/plugins/vault/package.json index f7723c6f61..843434be41 100644 --- a/plugins/vault/package.json +++ b/plugins/vault/package.json @@ -33,12 +33,12 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.1", - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/plugin-catalog-react": "^1.1.4", - "@backstage/theme": "^0.2.16", + "@backstage/catalog-model": "workspace:^", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.57", @@ -48,10 +48,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index c01535c93d..afed40f10d 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -23,10 +23,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.1", - "@backstage/core-plugin-api": "^1.0.6", - "@backstage/errors": "^1.1.1", - "@backstage/theme": "^0.2.16", + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -39,10 +39,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.19.0", - "@backstage/core-app-api": "^1.1.0", - "@backstage/dev-utils": "^1.0.6", - "@backstage/test-utils": "^1.2.0", + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/scripts/verify-local-dependencies.js b/scripts/verify-local-dependencies.js index e11ae2e55d..b44e0836f4 100755 --- a/scripts/verify-local-dependencies.js +++ b/scripts/verify-local-dependencies.js @@ -16,13 +16,8 @@ */ const fs = require('fs-extra'); -const semver = require('semver'); const { getPackages } = require('@manypkg/get-packages'); -const { - resolve: resolvePath, - relative: relativePath, - join: joinPath, -} = require('path'); +const { resolve: resolvePath, join: joinPath } = require('path'); /** * This script checks that all local package dependencies within the repo @@ -58,21 +53,14 @@ async function main(args) { continue; } const localPackage = pkgMap.get(dep); - if (localPackage) { - const localVersion = localPackage.packageJson.version; - if (!semver.satisfies(localVersion, range)) { - const path = joinPath( - relativePath(rootPath, pkg.dir), - 'package.json', - ); - console.log( - `${path} depends on the wrong version of ${dep}: ${range} does not satisfy ${localVersion}`, - ); - hadErrors = true; + if (localPackage && range !== 'workspace:^') { + hadErrors = true; + console.log( + `Local dependency from ${pkg.packageJson.name} to ${dep} should have a workspace range`, + ); - fixed = true; - pkg.packageJson[depType][dep] = `^${localVersion}`; - } + fixed = true; + pkg.packageJson[depType][dep] = 'workspace:^'; } } } diff --git a/storybook/yarn.lock b/storybook/yarn.lock index 3409a96314..4a5d57c5b2 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -2977,126 +2977,126 @@ __metadata: languageName: node linkType: hard -"@swc/core-android-arm-eabi@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-android-arm-eabi@npm:1.2.249" +"@swc/core-android-arm-eabi@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-android-arm-eabi@npm:1.3.2" dependencies: "@swc/wasm": 1.2.122 conditions: os=android & cpu=arm languageName: node linkType: hard -"@swc/core-android-arm64@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-android-arm64@npm:1.2.249" +"@swc/core-android-arm64@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-android-arm64@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-darwin-arm64@npm:1.2.249" +"@swc/core-darwin-arm64@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-darwin-arm64@npm:1.3.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-darwin-x64@npm:1.2.249" +"@swc/core-darwin-x64@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-darwin-x64@npm:1.3.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-freebsd-x64@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-freebsd-x64@npm:1.2.249" +"@swc/core-freebsd-x64@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-freebsd-x64@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.2.249" +"@swc/core-linux-arm-gnueabihf@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-arm64-gnu@npm:1.2.249" +"@swc/core-linux-arm64-gnu@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.2" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-arm64-musl@npm:1.2.249" +"@swc/core-linux-arm64-musl@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.2" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-x64-gnu@npm:1.2.249" +"@swc/core-linux-x64-gnu@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.2" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-x64-musl@npm:1.2.249" +"@swc/core-linux-x64-musl@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-x64-musl@npm:1.3.2" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-win32-arm64-msvc@npm:1.2.249" +"@swc/core-win32-arm64-msvc@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-win32-ia32-msvc@npm:1.2.249" +"@swc/core-win32-ia32-msvc@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-win32-x64-msvc@npm:1.2.249" +"@swc/core-win32-x64-msvc@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.2.239": - version: 1.2.249 - resolution: "@swc/core@npm:1.2.249" + version: 1.3.2 + resolution: "@swc/core@npm:1.3.2" dependencies: - "@swc/core-android-arm-eabi": 1.2.249 - "@swc/core-android-arm64": 1.2.249 - "@swc/core-darwin-arm64": 1.2.249 - "@swc/core-darwin-x64": 1.2.249 - "@swc/core-freebsd-x64": 1.2.249 - "@swc/core-linux-arm-gnueabihf": 1.2.249 - "@swc/core-linux-arm64-gnu": 1.2.249 - "@swc/core-linux-arm64-musl": 1.2.249 - "@swc/core-linux-x64-gnu": 1.2.249 - "@swc/core-linux-x64-musl": 1.2.249 - "@swc/core-win32-arm64-msvc": 1.2.249 - "@swc/core-win32-ia32-msvc": 1.2.249 - "@swc/core-win32-x64-msvc": 1.2.249 + "@swc/core-android-arm-eabi": 1.3.2 + "@swc/core-android-arm64": 1.3.2 + "@swc/core-darwin-arm64": 1.3.2 + "@swc/core-darwin-x64": 1.3.2 + "@swc/core-freebsd-x64": 1.3.2 + "@swc/core-linux-arm-gnueabihf": 1.3.2 + "@swc/core-linux-arm64-gnu": 1.3.2 + "@swc/core-linux-arm64-musl": 1.3.2 + "@swc/core-linux-x64-gnu": 1.3.2 + "@swc/core-linux-x64-musl": 1.3.2 + "@swc/core-win32-arm64-msvc": 1.3.2 + "@swc/core-win32-ia32-msvc": 1.3.2 + "@swc/core-win32-x64-msvc": 1.3.2 dependenciesMeta: "@swc/core-android-arm-eabi": optional: true @@ -3126,7 +3126,7 @@ __metadata: optional: true bin: swcx: run_swcx.js - checksum: c47f17fefccd94fb7be3787e832f3e3fd62c07e22f8bf566435bd1de032efd9fdefb4a64e0eefd684a9a24902509a235afeacb5ed93e03512fa09064bf1e1268 + checksum: c2c83d0e6b4c56d65fb3723aa0be5e777823a6efe5b12702d4d44827a6c6dd8fac3c5dec7ff45222c7b22b4084bffc846f8497d697e61a1706817977256a65dc languageName: node linkType: hard diff --git a/yarn.lock b/yarn.lock index 66887e8d2e..45da2c9375 100644 --- a/yarn.lock +++ b/yarn.lock @@ -64,11 +64,13 @@ __metadata: linkType: hard "@apollo/explorer@npm:^1.1.1": - version: 1.1.1 - resolution: "@apollo/explorer@npm:1.1.1" + version: 1.2.0 + resolution: "@apollo/explorer@npm:1.2.0" dependencies: + "@types/whatwg-mimetype": ^3.0.0 graphql-ws: ^5.9.0 subscriptions-transport-ws: ^0.11.0 + whatwg-mimetype: ^3.0.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -80,7 +82,7 @@ __metadata: optional: true use-deep-compare-effect: optional: true - checksum: f9a22c76c557a50c5a1779dc593dd3de970073558f209808faa8d6678a1469a733b564baeb741c36345d81a782230791443ebc4f2de317d90a10893ef1a18882 + checksum: 67cf0b5e8a23abb71ad1e68266529b8e8e1ce66652208c9942c554f21148364fd49afa5e619ecfddf611dd19067aa81ab8b2e828944122dfdc81e79a27ccf37c languageName: node linkType: hard @@ -301,9 +303,9 @@ __metadata: languageName: node linkType: hard -"@asyncapi/react-component@npm:1.0.0-next.40": - version: 1.0.0-next.40 - resolution: "@asyncapi/react-component@npm:1.0.0-next.40" +"@asyncapi/react-component@npm:1.0.0-next.42": + version: 1.0.0-next.42 + resolution: "@asyncapi/react-component@npm:1.0.0-next.42" dependencies: "@asyncapi/avro-schema-parser": ^0.3.0 "@asyncapi/openapi-schema-parser": ^2.0.0 @@ -317,7 +319,7 @@ __metadata: peerDependencies: react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 6a8fc4f701552f678fd9dae8774018d50729708eddb641a3c7fb7919b0abd8dd464472752a80bfd1b2eb21a83b74ba9d3d9ea41c3f3bffa5f63bf8e5d275e87c + checksum: eba4aaf344aabc1889085df7f94d14d51e2449db06cabc70c60b9d5b0b2fb9ccec6aa89cbedf9d45c28deca99e1e4ab2d4399b0a2756e9969d4691f304088a77 languageName: node linkType: hard @@ -632,30 +634,37 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.13.16, @babel/core@npm:^7.14.0": - version: 7.16.12 - resolution: "@babel/core@npm:7.16.12" - dependencies: - "@babel/code-frame": ^7.16.7 - "@babel/generator": ^7.16.8 - "@babel/helper-compilation-targets": ^7.16.7 - "@babel/helper-module-transforms": ^7.16.7 - "@babel/helpers": ^7.16.7 - "@babel/parser": ^7.16.12 - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.16.10 - "@babel/types": ^7.16.8 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.1.2 - semver: ^6.3.0 - source-map: ^0.5.0 - checksum: 29b56f3cb7c329fc038a2efaccf64ac3025835676b3d90f57f2265b6acd477a970114d09021b38d019ac8f20b2bb1596a9e79ce1f820d6b8cf0e4a802891817c +"@babel/compat-data@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/compat-data@npm:7.19.1" + checksum: f985887ea08a140e4af87a94d3fb17af0345491eb97f5a85b1840255c2e2a97429f32a8fd12a7aae9218af5f1024f1eb12a5cd280d2d69b2337583c17ea506ba languageName: node linkType: hard -"@babel/core@npm:^7.12.3, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": +"@babel/core@npm:^7.11.6": + version: 7.19.1 + resolution: "@babel/core@npm:7.19.1" + dependencies: + "@ampproject/remapping": ^2.1.0 + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.19.0 + "@babel/helper-compilation-targets": ^7.19.1 + "@babel/helper-module-transforms": ^7.19.0 + "@babel/helpers": ^7.19.0 + "@babel/parser": ^7.19.1 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.19.1 + "@babel/types": ^7.19.0 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.1 + semver: ^6.3.0 + checksum: 941c8c119b80bdba5fafc80bbaa424d51146b6d3c30b8fae35879358dd37c11d3d0926bc7e970a0861229656eedaa8c884d4a3a25cc904086eb73b827a2f1168 + languageName: node + linkType: hard + +"@babel/core@npm:^7.12.3": version: 7.17.8 resolution: "@babel/core@npm:7.17.8" dependencies: @@ -678,6 +687,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.13.16, @babel/core@npm:^7.14.0": + version: 7.16.12 + resolution: "@babel/core@npm:7.16.12" + dependencies: + "@babel/code-frame": ^7.16.7 + "@babel/generator": ^7.16.8 + "@babel/helper-compilation-targets": ^7.16.7 + "@babel/helper-module-transforms": ^7.16.7 + "@babel/helpers": ^7.16.7 + "@babel/parser": ^7.16.12 + "@babel/template": ^7.16.7 + "@babel/traverse": ^7.16.10 + "@babel/types": ^7.16.8 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.1.2 + semver: ^6.3.0 + source-map: ^0.5.0 + checksum: 29b56f3cb7c329fc038a2efaccf64ac3025835676b3d90f57f2265b6acd477a970114d09021b38d019ac8f20b2bb1596a9e79ce1f820d6b8cf0e4a802891817c + languageName: node + linkType: hard + "@babel/core@npm:^7.18.5": version: 7.18.9 resolution: "@babel/core@npm:7.18.9" @@ -734,6 +766,17 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/generator@npm:7.19.0" + dependencies: + "@babel/types": ^7.19.0 + "@jridgewell/gen-mapping": ^0.3.2 + jsesc: ^2.5.1 + checksum: aa3d5785cf8f8e81672dcc61aef351188efeadb20d9f66d79113d82cbcf3bbbdeb829989fa14582108572ddbc4e4027bdceb06ccaf5ec40fa93c2dda8fbcd4aa + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.16.0, @babel/helper-annotate-as-pure@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-annotate-as-pure@npm:7.16.7" @@ -804,6 +847,20 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/helper-compilation-targets@npm:7.19.1" + dependencies: + "@babel/compat-data": ^7.19.1 + "@babel/helper-validator-option": ^7.18.6 + browserslist: ^4.21.3 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c2d3039265e498b341a6b597f855f2fcef02659050fefedf36ad4e6815e6aafe1011a761214cc80d98260ed07ab15a8cbe959a0458e97bec5f05a450e1b1741b + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.16.7": version: 7.16.10 resolution: "@babel/helper-create-class-features-plugin@npm:7.16.10" @@ -926,6 +983,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-function-name@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/helper-function-name@npm:7.19.0" + dependencies: + "@babel/template": ^7.18.10 + "@babel/types": ^7.19.0 + checksum: eac1f5db428ba546270c2b8d750c24eb528b8fcfe50c81de2e0bdebf0e20f24bec688d4331533b782e4a907fad435244621ca2193cfcf80a86731299840e0f6e + languageName: node + linkType: hard + "@babel/helper-get-function-arity@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-get-function-arity@npm:7.16.7" @@ -1037,6 +1104,22 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/helper-module-transforms@npm:7.19.0" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-simple-access": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/helper-validator-identifier": ^7.18.6 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.19.0 + "@babel/types": ^7.19.0 + checksum: 4483276c66f56cf3b5b063634092ad9438c2593725de5c143ba277dda82f1501e6d73b311c1b28036f181dbe36eaeff29f24726cde37a599d4e735af294e5359 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-optimise-call-expression@npm:7.16.7" @@ -1245,6 +1328,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/helpers@npm:7.19.0" + dependencies: + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.19.0 + "@babel/types": ^7.19.0 + checksum: e50e78e0dbb0435075fa3f85021a6bcae529589800bca0292721afd7f7c874bea54508d6dc57eca16e5b8224f8142c6b0e32e3b0140029dc09865da747da4623 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.0.0": version: 7.16.10 resolution: "@babel/highlight@npm:7.16.10" @@ -1276,6 +1370,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.18.10, @babel/parser@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/parser@npm:7.19.1" + bin: + parser: ./bin/babel-parser.js + checksum: b1e0acb346b2a533c857e1e97ac0886cdcbd76aafef67835a2b23f760c10568eb53ad8a27dd5f862d8ba4e583742e6067f107281ccbd68959d61bc61e4ddaa51 + languageName: node + linkType: hard + "@babel/parser@npm:^7.18.6, @babel/parser@npm:^7.18.9": version: 7.18.9 resolution: "@babel/parser@npm:7.18.9" @@ -1692,7 +1795,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.18.6": +"@babel/plugin-syntax-jsx@npm:^7.18.6, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.18.6 resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" dependencies: @@ -2758,6 +2861,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/template@npm:7.18.10" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/parser": ^7.18.10 + "@babel/types": ^7.18.10 + checksum: 93a6aa094af5f355a72bd55f67fa1828a046c70e46f01b1606e6118fa1802b6df535ca06be83cc5a5e834022be95c7b714f0a268b5f20af984465a71e28f1473 + languageName: node + linkType: hard + "@babel/template@npm:^7.18.6": version: 7.18.6 resolution: "@babel/template@npm:7.18.6" @@ -2823,6 +2937,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/traverse@npm:7.19.1" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.19.0 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.19.0 + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/parser": ^7.19.1 + "@babel/types": ^7.19.0 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 9d782b5089ebc989e54c2406814ed1206cb745ed2734e6602dee3e23d4b6ebbb703ff86e536276630f8de83fda6cde99f0634e3c3d847ddb40572d0303ba8800 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.0, @babel/types@npm:^7.16.7, @babel/types@npm:^7.16.8, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.16.8 resolution: "@babel/types@npm:7.16.8" @@ -2843,6 +2975,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.18.10, @babel/types@npm:^7.19.0": + version: 7.19.0 + resolution: "@babel/types@npm:7.19.0" + dependencies: + "@babel/helper-string-parser": ^7.18.10 + "@babel/helper-validator-identifier": ^7.18.6 + to-fast-properties: ^2.0.0 + checksum: 9b346715a68aeede70ba9c685a144b0b26c53bcd595d448e24c8fa8df4d5956a5712e56ebadb7c85dcc32f218ee42788e37b93d50d3295c992072224cb3ef3fe + languageName: node + linkType: hard + "@babel/types@npm:^7.18.4, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9": version: 7.18.9 resolution: "@babel/types@npm:7.18.9" @@ -2864,17 +3007,17 @@ __metadata: languageName: node linkType: hard -"@backstage/app-defaults@^1.0.6, @backstage/app-defaults@workspace:packages/app-defaults": +"@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": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/plugin-permission-react": ^0.4.5 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@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 @@ -2889,34 +3032,34 @@ __metadata: languageName: unknown linkType: soft -"@backstage/backend-app-api@^0.2.1, @backstage/backend-app-api@workspace:packages/backend-app-api": +"@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": ^0.15.1 - "@backstage/backend-plugin-api": ^0.1.2 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/cli": ^0.19.0 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-permission-node": ^0.6.5 + "@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 -"@backstage/backend-common@^0.15.1, @backstage/backend-common@workspace:packages/backend-common": +"@backstage/backend-common@^0.15.1, @backstage/backend-common@workspace:^, @backstage/backend-common@workspace:packages/backend-common": version: 0.0.0-use.local resolution: "@backstage/backend-common@workspace:packages/backend-common" dependencies: - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/cli-common": ^0.1.10 - "@backstage/config": ^1.0.2 - "@backstage/config-loader": ^1.1.4 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/types": ^1.0.0 + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/cli-common": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/config-loader": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/types": "workspace:^" "@google-cloud/storage": ^6.0.0 "@keyv/redis": ^2.2.3 "@kubernetes/client-node": ^0.17.0 @@ -2991,25 +3134,25 @@ __metadata: languageName: unknown linkType: soft -"@backstage/backend-defaults@^0.1.1, @backstage/backend-defaults@workspace:packages/backend-defaults": +"@backstage/backend-defaults@workspace:^, @backstage/backend-defaults@workspace:packages/backend-defaults": version: 0.0.0-use.local resolution: "@backstage/backend-defaults@workspace:packages/backend-defaults" dependencies: - "@backstage/backend-app-api": ^0.2.1 - "@backstage/backend-plugin-api": ^0.1.2 - "@backstage/cli": ^0.19.0 + "@backstage/backend-app-api": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/cli": "workspace:^" languageName: unknown linkType: soft -"@backstage/backend-plugin-api@^0.1.2, @backstage/backend-plugin-api@workspace:packages/backend-plugin-api": +"@backstage/backend-plugin-api@workspace:^, @backstage/backend-plugin-api@workspace:packages/backend-plugin-api": version: 0.0.0-use.local resolution: "@backstage/backend-plugin-api@workspace:packages/backend-plugin-api" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-permission-common": ^0.6.4 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" "@types/express": ^4.17.6 express: ^4.17.1 winston: ^3.2.1 @@ -3017,16 +3160,16 @@ __metadata: languageName: unknown linkType: soft -"@backstage/backend-tasks@^0.3.5, @backstage/backend-tasks@workspace:packages/backend-tasks": +"@backstage/backend-tasks@workspace:^, @backstage/backend-tasks@workspace:packages/backend-tasks": version: 0.0.0-use.local resolution: "@backstage/backend-tasks@workspace:packages/backend-tasks" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/types": "workspace:^" "@types/cron": ^2.0.0 "@types/luxon": ^3.0.0 cron: ^2.0.0 @@ -3041,15 +3184,15 @@ __metadata: languageName: unknown linkType: soft -"@backstage/backend-test-utils@^0.1.28, @backstage/backend-test-utils@workspace:packages/backend-test-utils": +"@backstage/backend-test-utils@workspace:^, @backstage/backend-test-utils@workspace:packages/backend-test-utils": version: 0.0.0-use.local resolution: "@backstage/backend-test-utils@workspace:packages/backend-test-utils" dependencies: - "@backstage/backend-app-api": ^0.2.1 - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-plugin-api": ^0.1.2 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 + "@backstage/backend-app-api": "workspace:^" + "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" better-sqlite3: ^7.5.0 knex: ^2.0.0 msw: ^0.47.0 @@ -3060,26 +3203,26 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-client@1.1.0, @backstage/catalog-client@^1.1.0, @backstage/catalog-client@workspace:packages/catalog-client": +"@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" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/errors": ^1.1.1 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/errors": "workspace:^" cross-fetch: ^3.1.5 msw: ^0.47.0 languageName: unknown linkType: soft -"@backstage/catalog-model@^1.0.0, @backstage/catalog-model@^1.1.1, @backstage/catalog-model@workspace:packages/catalog-model": +"@backstage/catalog-model@^1.0.0, @backstage/catalog-model@^1.1.1, @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: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/types": "workspace:^" "@types/json-schema": ^7.0.5 "@types/lodash": ^4.14.151 ajv: ^8.10.0 @@ -3090,32 +3233,32 @@ __metadata: languageName: unknown linkType: soft -"@backstage/cli-common@^0.1.10, @backstage/cli-common@^0.1.10-next.0, @backstage/cli-common@workspace:packages/cli-common": +"@backstage/cli-common@workspace:^, @backstage/cli-common@workspace:packages/cli-common": version: 0.0.0-use.local resolution: "@backstage/cli-common@workspace:packages/cli-common" dependencies: - "@backstage/cli": ^0.19.0 + "@backstage/cli": "workspace:^" "@types/node": ^16.0.0 languageName: unknown linkType: soft -"@backstage/cli@^0.19.0, @backstage/cli@^0.19.0-next.1, @backstage/cli@^0.19.0-next.3, @backstage/cli@workspace:*, @backstage/cli@workspace:packages/cli": +"@backstage/cli@^0.19.0, @backstage/cli@workspace:*, @backstage/cli@workspace:^, @backstage/cli@workspace:packages/cli": version: 0.0.0-use.local resolution: "@backstage/cli@workspace:packages/cli" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli-common": ^0.1.10 - "@backstage/config": ^1.0.2 - "@backstage/config-loader": ^1.1.4 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/release-manifests": ^0.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/cli-common": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/config-loader": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/release-manifests": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" "@manypkg/get-packages": ^1.1.3 "@octokit/request": ^6.0.0 "@pmmmwh/react-refresh-webpack-plugin": ^0.5.7 @@ -3140,7 +3283,7 @@ __metadata: "@types/fs-extra": ^9.0.1 "@types/http-proxy": ^1.17.4 "@types/inquirer": ^8.1.3 - "@types/jest": ^27 + "@types/jest": ^29.0.0 "@types/minimatch": ^5.0.0 "@types/mock-fs": ^4.13.0 "@types/node": ^16.11.26 @@ -3186,10 +3329,10 @@ __metadata: handlebars: ^4.7.3 html-webpack-plugin: ^5.3.1 inquirer: ^8.2.0 - jest: ^27.5.1 + jest: ^29.0.2 jest-css-modules: ^2.1.0 - jest-runtime: ^27.5.1 - jest-transform-yaml: ^1.0.0 + jest-environment-jsdom: ^29.0.2 + jest-runtime: ^29.0.2 json-schema: ^0.4.0 lodash: ^4.17.21 mini-css-extract-plugin: ^2.4.2 @@ -3243,8 +3386,8 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/codemods@workspace:packages/codemods" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/cli-common": ^0.1.10 + "@backstage/cli": "workspace:^" + "@backstage/cli-common": "workspace:^" "@types/jscodeshift": ^0.11.0 "@types/node": ^16.11.26 chalk: ^4.0.0 @@ -3257,15 +3400,15 @@ __metadata: languageName: unknown linkType: soft -"@backstage/config-loader@^1.1.4, @backstage/config-loader@workspace:packages/config-loader": +"@backstage/config-loader@workspace:^, @backstage/config-loader@workspace:packages/config-loader": version: 0.0.0-use.local resolution: "@backstage/config-loader@workspace:packages/config-loader" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/cli-common": ^0.1.10 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/cli-common": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/types": "workspace:^" "@types/json-schema": ^7.0.6 "@types/json-schema-merge-allof": ^0.6.0 "@types/mock-fs": ^4.10.0 @@ -3286,28 +3429,28 @@ __metadata: languageName: unknown linkType: soft -"@backstage/config@^1.0.2, @backstage/config@workspace:packages/config": +"@backstage/config@^1.0.2, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": version: 0.0.0-use.local resolution: "@backstage/config@workspace:packages/config" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/test-utils": ^1.2.0 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/types": "workspace:^" "@types/node": ^16.0.0 lodash: ^4.17.21 languageName: unknown linkType: soft -"@backstage/core-app-api@^1.1.0, @backstage/core-app-api@workspace:packages/core-app-api": +"@backstage/core-app-api@^1.1.0, @backstage/core-app-api@workspace:^, @backstage/core-app-api@workspace:packages/core-app-api": version: 0.0.0-use.local resolution: "@backstage/core-app-api@workspace:packages/core-app-api" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/types": ^1.0.0 - "@backstage/version-bridge": ^1.0.1 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/types": "workspace:^" + "@backstage/version-bridge": "workspace:^" "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 "@testing-library/react-hooks": ^8.0.0 @@ -3332,18 +3475,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-components@^0.11.0, @backstage/core-components@^0.11.1, @backstage/core-components@workspace:packages/core-components": +"@backstage/core-components@^0.11.0, @backstage/core-components@^0.11.1, @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: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/version-bridge": ^1.0.1 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/version-bridge": "workspace:^" "@material-table/core": ^3.1.0 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 @@ -3404,16 +3547,16 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-plugin-api@^1.0.0, @backstage/core-plugin-api@^1.0.6, @backstage/core-plugin-api@workspace:packages/core-plugin-api": +"@backstage/core-plugin-api@^1.0.0, @backstage/core-plugin-api@^1.0.6, @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: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/test-utils": ^1.2.0 - "@backstage/types": ^1.0.0 - "@backstage/version-bridge": ^1.0.1 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/types": "workspace:^" + "@backstage/version-bridge": "workspace:^" "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 "@testing-library/react-hooks": ^8.0.0 @@ -3437,8 +3580,8 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/create-app@workspace:packages/create-app" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/cli-common": ^0.1.10 + "@backstage/cli": "workspace:^" + "@backstage/cli-common": "workspace:^" "@types/fs-extra": ^9.0.1 "@types/inquirer": ^8.1.3 "@types/node": ^16.11.26 @@ -3449,6 +3592,7 @@ __metadata: handlebars: ^4.7.3 inquirer: ^8.2.0 mock-fs: ^5.1.1 + nodemon: ^2.0.2 ora: ^5.3.0 recursive-readdir: ^2.2.2 ts-node: ^10.0.0 @@ -3457,20 +3601,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/dev-utils@^1.0.6, @backstage/dev-utils@workspace:packages/dev-utils": +"@backstage/dev-utils@^1.0.6, @backstage/dev-utils@workspace:^, @backstage/dev-utils@workspace:packages/dev-utils": version: 0.0.0-use.local resolution: "@backstage/dev-utils@workspace:packages/dev-utils" dependencies: - "@backstage/app-defaults": ^1.0.6 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/app-defaults": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-catalog-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 @@ -3488,29 +3632,29 @@ __metadata: languageName: unknown linkType: soft -"@backstage/errors@1.1.1, @backstage/errors@^1.1.1, @backstage/errors@^1.1.1-next.0, @backstage/errors@workspace:packages/errors": +"@backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": version: 0.0.0-use.local resolution: "@backstage/errors@workspace:packages/errors" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/types": "workspace:^" cross-fetch: ^3.1.5 serialize-error: ^8.0.1 languageName: unknown linkType: soft -"@backstage/integration-react@^1.0.0, @backstage/integration-react@^1.1.4, @backstage/integration-react@workspace:packages/integration-react": +"@backstage/integration-react@^1.0.0, @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: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/integration": ^1.3.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -3526,15 +3670,15 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration@^1.3.1, @backstage/integration@workspace:packages/integration": +"@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": version: 0.0.0-use.local resolution: "@backstage/integration@workspace:packages/integration" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/config-loader": ^1.1.4 - "@backstage/errors": ^1.1.1 - "@backstage/test-utils": ^1.2.0 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/config-loader": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/test-utils": "workspace:^" "@octokit/auth-app": ^4.0.0 "@octokit/rest": ^19.0.3 "@types/luxon": ^3.0.0 @@ -3550,15 +3694,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-adr-backend@workspace:plugins/adr-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-adr-common": ^0.2.1 - "@backstage/plugin-search-common": ^1.0.1 + "@backstage/backend-common": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-adr-common": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" "@types/marked": ^4.0.0 "@types/supertest": ^2.0.8 luxon: ^3.0.0 @@ -3571,14 +3715,14 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-adr-common@^0.2.1, @backstage/plugin-adr-common@workspace:plugins/adr-common": +"@backstage/plugin-adr-common@workspace:^, @backstage/plugin-adr-common@workspace:plugins/adr-common": version: 0.0.0-use.local resolution: "@backstage/plugin-adr-common@workspace:plugins/adr-common" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-search-common": ^1.0.1 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" languageName: unknown linkType: soft @@ -3586,19 +3730,19 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-adr@workspace:plugins/adr" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-adr-common": ^0.2.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/plugin-search-react": ^1.1.0 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-adr-common": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/plugin-search-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -3624,9 +3768,9 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-airbrake-backend@workspace:plugins/airbrake-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" "@types/express": "*" "@types/http-proxy-middleware": ^0.19.3 "@types/supertest": ^2.0.8 @@ -3640,19 +3784,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-airbrake@^0.3.9, @backstage/plugin-airbrake@workspace:plugins/airbrake": +"@backstage/plugin-airbrake@workspace:^, @backstage/plugin-airbrake@workspace:plugins/airbrake": version: 0.0.0-use.local resolution: "@backstage/plugin-airbrake@workspace:plugins/airbrake" dependencies: - "@backstage/app-defaults": ^1.0.6 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/app-defaults": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -3675,15 +3819,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-allure@workspace:plugins/allure" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -3704,14 +3848,14 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-analytics-module-ga@workspace:plugins/analytics-module-ga" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -3728,16 +3872,16 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-apache-airflow@^0.2.2, @backstage/plugin-apache-airflow@workspace:plugins/apache-airflow": +"@backstage/plugin-apache-airflow@workspace:^, @backstage/plugin-apache-airflow@workspace:plugins/apache-airflow": version: 0.0.0-use.local resolution: "@backstage/plugin-apache-airflow@workspace:plugins/apache-airflow" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -3758,7 +3902,7 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-api-docs-module-protoc-gen-doc@workspace:plugins/api-docs-module-protoc-gen-doc" dependencies: - "@backstage/cli": ^0.19.0-next.1 + "@backstage/cli": "workspace:^" "@testing-library/jest-dom": ^5.16.4 "@types/react": ^16.13.1 || ^17.0.0 grpc-docs: ^1.1.2 @@ -3767,21 +3911,21 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-api-docs@^0.8.9, @backstage/plugin-api-docs@workspace:plugins/api-docs": +"@backstage/plugin-api-docs@workspace:^, @backstage/plugin-api-docs@workspace:plugins/api-docs": version: 0.0.0-use.local resolution: "@backstage/plugin-api-docs@workspace:plugins/api-docs" dependencies: - "@asyncapi/react-component": 1.0.0-next.40 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog": ^1.5.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@asyncapi/react-component": 1.0.0-next.42 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -3811,13 +3955,13 @@ __metadata: resolution: "@backstage/plugin-apollo-explorer@workspace:plugins/apollo-explorer" dependencies: "@apollo/explorer": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.9.13 "@material-ui/icons": ^4.9.1 "@material-ui/lab": ^4.0.0-alpha.57 @@ -3834,16 +3978,16 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-app-backend@^0.3.36, @backstage/plugin-app-backend@workspace:plugins/app-backend": +"@backstage/plugin-app-backend@workspace:^, @backstage/plugin-app-backend@workspace:plugins/app-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-app-backend@workspace:plugins/app-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/config-loader": ^1.1.4 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/config-loader": "workspace:^" + "@backstage/types": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 express: ^4.17.1 @@ -3862,19 +4006,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-auth-backend@^0.16.0, @backstage/plugin-auth-backend@workspace:plugins/auth-backend": +"@backstage/plugin-auth-backend@workspace:^, @backstage/plugin-auth-backend@workspace:plugins/auth-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-auth-backend@workspace:plugins/auth-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/types": "workspace:^" "@davidzemon/passport-okta-oauth": ^0.0.5 "@google-cloud/firestore": ^6.0.0 "@types/body-parser": ^1.19.0 @@ -3926,15 +4070,15 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-auth-node@^0.2.5, @backstage/plugin-auth-node@workspace:plugins/auth-node": +"@backstage/plugin-auth-node@workspace:^, @backstage/plugin-auth-node@workspace:plugins/auth-node": version: 0.0.0-use.local resolution: "@backstage/plugin-auth-node@workspace:plugins/auth-node" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" "@types/express": "*" express: ^4.17.1 jose: ^4.6.0 @@ -3946,14 +4090,14 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-azure-devops-backend@^0.3.15, @backstage/plugin-azure-devops-backend@workspace:plugins/azure-devops-backend": +"@backstage/plugin-azure-devops-backend@workspace:^, @backstage/plugin-azure-devops-backend@workspace:plugins/azure-devops-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-azure-devops-backend@workspace:plugins/azure-devops-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-azure-devops-common": ^0.3.0 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-azure-devops-common": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 azure-devops-node-api: ^11.0.1 @@ -3968,29 +4112,29 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-azure-devops-common@^0.3.0, @backstage/plugin-azure-devops-common@workspace:plugins/azure-devops-common": +"@backstage/plugin-azure-devops-common@workspace:^, @backstage/plugin-azure-devops-common@workspace:plugins/azure-devops-common": version: 0.0.0-use.local resolution: "@backstage/plugin-azure-devops-common@workspace:plugins/azure-devops-common" dependencies: - "@backstage/cli": ^0.19.0 + "@backstage/cli": "workspace:^" languageName: unknown linkType: soft -"@backstage/plugin-azure-devops@^0.2.0, @backstage/plugin-azure-devops@workspace:plugins/azure-devops": +"@backstage/plugin-azure-devops@workspace:^, @backstage/plugin-azure-devops@workspace:plugins/azure-devops": version: 0.0.0-use.local resolution: "@backstage/plugin-azure-devops@workspace:plugins/azure-devops" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-azure-devops-common": ^0.3.0 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-azure-devops-common": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4009,7 +4153,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-azure-functions-backend@^0.0.0, @backstage/plugin-azure-functions-backend@workspace:plugins/azure-functions-backend": +"@backstage/plugin-azure-functions-backend@workspace:^, @backstage/plugin-azure-functions-backend@workspace:plugins/azure-functions-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-azure-functions-backend@workspace:plugins/azure-functions-backend" dependencies: @@ -4038,7 +4182,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-azure-functions@^0.0.0, @backstage/plugin-azure-functions@workspace:plugins/azure-functions": +"@backstage/plugin-azure-functions@workspace:^, @backstage/plugin-azure-functions@workspace:plugins/azure-functions": version: 0.0.0-use.local resolution: "@backstage/plugin-azure-functions@workspace:plugins/azure-functions" dependencies: @@ -4068,16 +4212,16 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-badges-backend@^0.1.30, @backstage/plugin-badges-backend@workspace:plugins/badges-backend": +"@backstage/plugin-badges-backend@workspace:^, @backstage/plugin-badges-backend@workspace:plugins/badges-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-badges-backend@workspace:plugins/badges-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 + "@backstage/backend-common": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 badge-maker: ^3.3.0 @@ -4090,20 +4234,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-badges@^0.2.33, @backstage/plugin-badges@workspace:plugins/badges": +"@backstage/plugin-badges@workspace:^, @backstage/plugin-badges@workspace:plugins/badges": version: 0.0.0-use.local resolution: "@backstage/plugin-badges@workspace:plugins/badges" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4124,10 +4268,10 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-bazaar-backend@workspace:plugins/bazaar-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" "@types/express": ^4.17.6 express: ^4.17.1 express-promise-router: ^4.1.0 @@ -4141,14 +4285,14 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-bazaar@workspace:plugins/bazaar" dependencies: - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog": ^1.5.1 - "@backstage/plugin-catalog-react": ^1.1.4 + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" "@date-io/luxon": 1.x "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 @@ -4165,12 +4309,12 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-bitbucket-cloud-common@^0.1.3, @backstage/plugin-bitbucket-cloud-common@workspace:plugins/bitbucket-cloud-common": +"@backstage/plugin-bitbucket-cloud-common@workspace:^, @backstage/plugin-bitbucket-cloud-common@workspace:plugins/bitbucket-cloud-common": version: 0.0.0-use.local resolution: "@backstage/plugin-bitbucket-cloud-common@workspace:plugins/bitbucket-cloud-common" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/integration": ^1.3.1 + "@backstage/cli": "workspace:^" + "@backstage/integration": "workspace:^" "@openapitools/openapi-generator-cli": ^2.4.26 cross-fetch: ^3.1.5 msw: ^0.47.0 @@ -4182,15 +4326,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-bitrise@workspace:plugins/bitrise" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4215,15 +4359,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-aws@workspace:plugins/catalog-backend-module-aws" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/types": "workspace:^" "@types/lodash": ^4.14.151 aws-sdk: ^2.840.0 aws-sdk-mock: ^5.2.1 @@ -4239,16 +4383,16 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-azure@workspace:plugins/catalog-backend-module-azure" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/types": "workspace:^" "@types/lodash": ^4.14.151 lodash: ^4.17.21 msw: ^0.47.0 @@ -4262,14 +4406,14 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-bitbucket-cloud@workspace:plugins/catalog-backend-module-bitbucket-cloud" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-bitbucket-cloud-common": ^0.1.3 - "@backstage/plugin-catalog-backend": ^1.4.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-bitbucket-cloud-common": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" msw: ^0.47.0 uuid: ^8.0.0 winston: ^3.2.1 @@ -4280,15 +4424,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-bitbucket-server@workspace:plugins/catalog-backend-module-bitbucket-server" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-backend": ^1.4.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" "@types/node-fetch": ^2.5.12 msw: ^0.47.0 node-fetch: ^2.6.7 @@ -4301,16 +4445,16 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-bitbucket@workspace:plugins/catalog-backend-module-bitbucket" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-bitbucket-cloud-common": ^0.1.3 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-bitbucket-cloud-common": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/types": "workspace:^" "@types/lodash": ^4.14.151 lodash: ^4.17.21 msw: ^0.47.0 @@ -4323,15 +4467,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-gerrit@workspace:plugins/catalog-backend-module-gerrit" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-backend": ^1.4.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" "@types/fs-extra": ^9.0.1 fs-extra: 10.1.0 msw: ^0.47.0 @@ -4345,18 +4489,18 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-github@workspace:plugins/catalog-backend-module-github" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-plugin-api": ^0.1.2 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/plugin-catalog-node": ^1.1.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/plugin-catalog-node": "workspace:^" + "@backstage/types": "workspace:^" "@octokit/graphql": ^5.0.0 "@types/lodash": ^4.14.151 lodash: ^4.17.21 @@ -4371,16 +4515,16 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-gitlab@workspace:plugins/catalog-backend-module-gitlab" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/types": "workspace:^" "@types/lodash": ^4.14.151 "@types/uuid": ^8.0.0 lodash: ^4.17.21 @@ -4395,13 +4539,13 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-ldap@workspace:plugins/catalog-backend-module-ldap" dependencies: - "@backstage/backend-tasks": ^0.3.5 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-tasks": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/types": "workspace:^" "@types/ldapjs": ^2.2.0 "@types/lodash": ^4.14.151 ldapjs: ^2.2.0 @@ -4416,13 +4560,13 @@ __metadata: resolution: "@backstage/plugin-catalog-backend-module-msgraph@workspace:plugins/catalog-backend-module-msgraph" dependencies: "@azure/identity": ^2.1.0 - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-catalog-backend": ^1.4.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" "@microsoft/microsoft-graph-types": ^2.6.0 "@types/lodash": ^4.14.151 "@types/node-fetch": ^2.5.12 @@ -4441,42 +4585,42 @@ __metadata: resolution: "@backstage/plugin-catalog-backend-module-openapi@workspace:plugins/catalog-backend-module-openapi" dependencies: "@apidevtools/swagger-parser": ^10.1.0 - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/plugin-catalog-node": ^1.1.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/plugin-catalog-node": "workspace:^" + "@backstage/types": "workspace:^" openapi-types: ^12.0.0 winston: ^3.2.1 yaml: ^2.1.1 languageName: unknown linkType: soft -"@backstage/plugin-catalog-backend@^1.4.0, @backstage/plugin-catalog-backend@workspace:plugins/catalog-backend": +"@backstage/plugin-catalog-backend@workspace:^, @backstage/plugin-catalog-backend@workspace:plugins/catalog-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend@workspace:plugins/catalog-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-plugin-api": ^0.1.2 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-common": ^1.0.6 - "@backstage/plugin-catalog-node": ^1.1.0 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-permission-node": ^0.6.5 - "@backstage/plugin-scaffolder-common": ^1.2.0 - "@backstage/plugin-search-backend-node": 1.0.2 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" + "@backstage/plugin-catalog-node": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-permission-node": "workspace:^" + "@backstage/plugin-scaffolder-common": "workspace:^" + "@backstage/plugin-search-backend-node": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/types": "workspace:^" "@types/core-js": ^2.5.4 "@types/express": ^4.17.6 "@types/git-url-parse": ^9.0.0 @@ -4509,32 +4653,32 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-common@^1.0.6, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": +"@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: - "@backstage/cli": ^0.19.0 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-search-common": ^1.0.1 + "@backstage/cli": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" languageName: unknown linkType: soft -"@backstage/plugin-catalog-graph@^0.2.21, @backstage/plugin-catalog-graph@workspace:plugins/catalog-graph": +"@backstage/plugin-catalog-graph@workspace:^, @backstage/plugin-catalog-graph@workspace:plugins/catalog-graph": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-graph@workspace:plugins/catalog-graph" dependencies: - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog": ^1.5.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4554,15 +4698,15 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-graphql@^0.3.13, @backstage/plugin-catalog-graphql@workspace:plugins/catalog-graphql": +"@backstage/plugin-catalog-graphql@workspace:^, @backstage/plugin-catalog-graphql@workspace:plugins/catalog-graphql": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-graphql@workspace:plugins/catalog-graphql" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/test-utils": ^1.2.0 - "@backstage/types": ^1.0.0 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/types": "workspace:^" "@graphql-codegen/cli": ^2.3.1 "@graphql-codegen/graphql-modules-preset": ^2.3.2 "@graphql-codegen/typescript": ^2.4.2 @@ -4579,23 +4723,23 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-import@^0.8.12, @backstage/plugin-catalog-import@workspace:plugins/catalog-import": +"@backstage/plugin-catalog-import@workspace:^, @backstage/plugin-catalog-import@workspace:plugins/catalog-import": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-import@workspace:plugins/catalog-import" dependencies: - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4619,41 +4763,41 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-node@^1.1.0, @backstage/plugin-catalog-node@workspace:plugins/catalog-node": +"@backstage/plugin-catalog-node@workspace:^, @backstage/plugin-catalog-node@workspace:plugins/catalog-node": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-node@workspace:plugins/catalog-node" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-plugin-api": ^0.1.2 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/errors": 1.1.1 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/types": "workspace:^" languageName: unknown linkType: soft -"@backstage/plugin-catalog-react@^1.0.0, @backstage/plugin-catalog-react@^1.1.4, @backstage/plugin-catalog-react@workspace:plugins/catalog-react": +"@backstage/plugin-catalog-react@^1.0.0, @backstage/plugin-catalog-react@^1.1.4, @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: - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-common": ^1.0.6 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-permission-react": ^0.4.5 - "@backstage/plugin-scaffolder-common": ^1.2.0 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 - "@backstage/version-bridge": ^1.0.1 + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-permission-react": "workspace:^" + "@backstage/plugin-scaffolder-common": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" + "@backstage/version-bridge": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4679,27 +4823,27 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog@^1.5.1, @backstage/plugin-catalog@workspace:plugins/catalog": +"@backstage/plugin-catalog@workspace:^, @backstage/plugin-catalog@workspace:plugins/catalog": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog@workspace:plugins/catalog" dependencies: - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-catalog-common": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-permission-react": ^0.4.5 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/plugin-search-react": ^1.1.0 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-permission-react": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/plugin-search-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4723,10 +4867,10 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-cicd-statistics-module-gitlab@workspace:plugins/cicd-statistics-module-gitlab" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/plugin-cicd-statistics": ^0.1.11 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/plugin-cicd-statistics": "workspace:^" "@gitbeaker/browser": ^35.6.0 "@gitbeaker/core": ^35.6.0 luxon: ^3.0.0 @@ -4734,17 +4878,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-cicd-statistics@^0.1.11, @backstage/plugin-cicd-statistics@workspace:plugins/cicd-statistics": +"@backstage/plugin-cicd-statistics@workspace:^, @backstage/plugin-cicd-statistics@workspace:plugins/cicd-statistics": version: 0.0.0-use.local resolution: "@backstage/plugin-cicd-statistics@workspace:plugins/cicd-statistics" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" "@date-io/luxon": ^1.3.13 "@material-ui/core": ^4.9.13 - "@material-ui/icons": ^4.11.2 + "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 "@material-ui/pickers": ^3.3.10 "@types/luxon": ^3.0.0 @@ -4760,19 +4904,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-circleci@^0.3.9, @backstage/plugin-circleci@workspace:plugins/circleci": +"@backstage/plugin-circleci@workspace:^, @backstage/plugin-circleci@workspace:plugins/circleci": version: 0.0.0-use.local resolution: "@backstage/plugin-circleci@workspace:plugins/circleci" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4795,19 +4939,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-cloudbuild@^0.3.9, @backstage/plugin-cloudbuild@workspace:plugins/cloudbuild": +"@backstage/plugin-cloudbuild@workspace:^, @backstage/plugin-cloudbuild@workspace:plugins/cloudbuild": version: 0.0.0-use.local resolution: "@backstage/plugin-cloudbuild@workspace:plugins/cloudbuild" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4831,14 +4975,14 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-code-climate@workspace:plugins/code-climate" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4859,17 +5003,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-code-coverage-backend@^0.2.2, @backstage/plugin-code-coverage-backend@workspace:plugins/code-coverage-backend": +"@backstage/plugin-code-coverage-backend@workspace:^, @backstage/plugin-code-coverage-backend@workspace:plugins/code-coverage-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-code-coverage-backend@workspace:plugins/code-coverage-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 + "@backstage/backend-common": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" "@types/express": ^4.17.6 "@types/express-xml-bodyparser": ^0.3.2 "@types/supertest": ^2.0.8 @@ -4886,21 +5030,21 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-code-coverage@^0.2.2, @backstage/plugin-code-coverage@workspace:plugins/code-coverage": +"@backstage/plugin-code-coverage@workspace:^, @backstage/plugin-code-coverage@workspace:plugins/code-coverage": version: 0.0.0-use.local resolution: "@backstage/plugin-code-coverage@workspace:plugins/code-coverage" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4928,15 +5072,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-codescene@workspace:plugins/codescene" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.9.10 "@material-ui/icons": ^4.9.1 "@material-ui/lab": ^4.0.0-alpha.57 @@ -4958,16 +5102,16 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-config-schema@workspace:plugins/config-schema" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -4985,28 +5129,28 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-cost-insights-common@^0.1.1, @backstage/plugin-cost-insights-common@workspace:plugins/cost-insights-common": +"@backstage/plugin-cost-insights-common@workspace:^, @backstage/plugin-cost-insights-common@workspace:plugins/cost-insights-common": version: 0.0.0-use.local resolution: "@backstage/plugin-cost-insights-common@workspace:plugins/cost-insights-common" dependencies: - "@backstage/cli": ^0.19.0-next.1 + "@backstage/cli": "workspace:^" languageName: unknown linkType: soft -"@backstage/plugin-cost-insights@^0.11.31, @backstage/plugin-cost-insights@workspace:plugins/cost-insights": +"@backstage/plugin-cost-insights@workspace:^, @backstage/plugin-cost-insights@workspace:plugins/cost-insights": version: 0.0.0-use.local resolution: "@backstage/plugin-cost-insights@workspace:plugins/cost-insights" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-cost-insights-common": ^0.1.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "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 "@material-ui/lab": 4.0.0-alpha.57 @@ -5038,18 +5182,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-dynatrace@^0.2.0, @backstage/plugin-dynatrace@workspace:plugins/dynatrace": +"@backstage/plugin-dynatrace@workspace:^, @backstage/plugin-dynatrace@workspace:plugins/dynatrace": version: 0.0.0-use.local resolution: "@backstage/plugin-dynatrace@workspace:plugins/dynatrace" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.9.13 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5061,19 +5205,19 @@ __metadata: msw: ^0.47.0 react-use: ^17.2.4 peerDependencies: - "@backstage/plugin-catalog-react": ^1.1.4-next.0 + "@backstage/plugin-catalog-react": "workspace:^" react: ^16.13.1 || ^17.0.0 languageName: unknown linkType: soft -"@backstage/plugin-explore-react@^0.0.21, @backstage/plugin-explore-react@workspace:plugins/explore-react": +"@backstage/plugin-explore-react@workspace:^, @backstage/plugin-explore-react@workspace:plugins/explore-react": version: 0.0.0-use.local resolution: "@backstage/plugin-explore-react@workspace:plugins/explore-react" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 + "@backstage/cli": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 "@testing-library/user-event": ^14.0.0 @@ -5083,20 +5227,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-explore@^0.3.40, @backstage/plugin-explore@workspace:plugins/explore": +"@backstage/plugin-explore@workspace:^, @backstage/plugin-explore@workspace:plugins/explore": version: 0.0.0-use.local resolution: "@backstage/plugin-explore@workspace:plugins/explore" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-explore-react": ^0.0.21 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-explore-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5120,14 +5264,14 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-firehydrant@workspace:plugins/firehydrant" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5148,16 +5292,16 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-fossa@workspace:plugins/fossa" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5175,18 +5319,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-gcalendar@^0.3.5, @backstage/plugin-gcalendar@workspace:plugins/gcalendar": +"@backstage/plugin-gcalendar@workspace:^, @backstage/plugin-gcalendar@workspace:plugins/gcalendar": version: 0.0.0-use.local resolution: "@backstage/plugin-gcalendar@workspace:plugins/gcalendar" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5211,17 +5355,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-gcp-projects@^0.3.28, @backstage/plugin-gcp-projects@workspace:plugins/gcp-projects": +"@backstage/plugin-gcp-projects@workspace:^, @backstage/plugin-gcp-projects@workspace:plugins/gcp-projects": version: 0.0.0-use.local resolution: "@backstage/plugin-gcp-projects@workspace:plugins/gcp-projects" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5242,14 +5386,14 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-git-release-manager@workspace:plugins/git-release-manager" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/integration": ^1.3.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5273,20 +5417,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-github-actions@^0.5.9, @backstage/plugin-github-actions@workspace:plugins/github-actions": +"@backstage/plugin-github-actions@workspace:^, @backstage/plugin-github-actions@workspace:plugins/github-actions": version: 0.0.0-use.local resolution: "@backstage/plugin-github-actions@workspace:plugins/github-actions" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5310,18 +5454,18 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-github-deployments@workspace:plugins/github-deployments" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5343,17 +5487,17 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-github-issues@workspace:plugins/github-issues" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.15 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.4 "@material-ui/icons": ^4.9.1 "@material-ui/lab": ^4.0.0-alpha.61 @@ -5377,15 +5521,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-github-pull-requests-board@workspace:plugins/github-pull-requests-board" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5409,13 +5553,13 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-gitops-profiles@workspace:plugins/gitops-profiles" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5432,20 +5576,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-gocd@^0.1.15, @backstage/plugin-gocd@workspace:plugins/gocd": +"@backstage/plugin-gocd@workspace:^, @backstage/plugin-gocd@workspace:plugins/gocd": version: 0.0.0-use.local resolution: "@backstage/plugin-gocd@workspace:plugins/gocd" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5466,17 +5610,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-graphiql@^0.2.41, @backstage/plugin-graphiql@workspace:plugins/graphiql": +"@backstage/plugin-graphiql@workspace:^, @backstage/plugin-graphiql@workspace:plugins/graphiql": version: 0.0.0-use.local resolution: "@backstage/plugin-graphiql@workspace:plugins/graphiql" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5497,14 +5641,14 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-graphql-backend@^0.1.26, @backstage/plugin-graphql-backend@workspace:plugins/graphql-backend": +"@backstage/plugin-graphql-backend@workspace:^, @backstage/plugin-graphql-backend@workspace:plugins/graphql-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-graphql-backend@workspace:plugins/graphql-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-catalog-graphql": ^0.3.13 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-catalog-graphql": "workspace:^" "@graphql-tools/schema": ^9.0.0 "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 @@ -5523,21 +5667,21 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-home@^0.4.19, @backstage/plugin-home@^0.4.25, @backstage/plugin-home@workspace:plugins/home": +"@backstage/plugin-home@^0.4.19, @backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": version: 0.0.0-use.local resolution: "@backstage/plugin-home@workspace:plugins/home" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-stack-overflow": ^0.1.5 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-stack-overflow": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5560,16 +5704,16 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-ilert@workspace:plugins/ilert" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@date-io/luxon": 1.x "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 @@ -5589,19 +5733,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-jenkins-backend@^0.1.26, @backstage/plugin-jenkins-backend@workspace:plugins/jenkins-backend": +"@backstage/plugin-jenkins-backend@workspace:^, @backstage/plugin-jenkins-backend@workspace:plugins/jenkins-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-jenkins-backend@workspace:plugins/jenkins-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/plugin-jenkins-common": ^0.1.8 - "@backstage/plugin-permission-common": ^0.6.4 + "@backstage/backend-common": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-jenkins-common": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" "@types/express": ^4.17.6 "@types/jenkins": ^0.23.1 "@types/supertest": ^2.0.8 @@ -5616,31 +5760,31 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-jenkins-common@^0.1.8, @backstage/plugin-jenkins-common@workspace:plugins/jenkins-common": +"@backstage/plugin-jenkins-common@workspace:^, @backstage/plugin-jenkins-common@workspace:plugins/jenkins-common": version: 0.0.0-use.local resolution: "@backstage/plugin-jenkins-common@workspace:plugins/jenkins-common" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/plugin-catalog-common": ^1.0.6 - "@backstage/plugin-permission-common": ^0.6.4 + "@backstage/cli": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" languageName: unknown linkType: soft -"@backstage/plugin-jenkins@^0.7.8, @backstage/plugin-jenkins@workspace:plugins/jenkins": +"@backstage/plugin-jenkins@workspace:^, @backstage/plugin-jenkins@workspace:plugins/jenkins": version: 0.0.0-use.local resolution: "@backstage/plugin-jenkins@workspace:plugins/jenkins" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-jenkins-common": ^0.1.8 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-jenkins-common": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5660,15 +5804,15 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-kafka-backend@^0.2.29, @backstage/plugin-kafka-backend@workspace:plugins/kafka-backend": +"@backstage/plugin-kafka-backend@workspace:^, @backstage/plugin-kafka-backend@workspace:plugins/kafka-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-kafka-backend@workspace:plugins/kafka-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 + "@backstage/backend-common": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" "@types/express": ^4.17.6 "@types/jest-when": ^3.5.0 "@types/lodash": ^4.14.151 @@ -5682,20 +5826,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-kafka@^0.3.9, @backstage/plugin-kafka@workspace:plugins/kafka": +"@backstage/plugin-kafka@workspace:^, @backstage/plugin-kafka@workspace:plugins/kafka": version: 0.0.0-use.local resolution: "@backstage/plugin-kafka@workspace:plugins/kafka" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5714,19 +5858,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-kubernetes-backend@^0.7.2, @backstage/plugin-kubernetes-backend@workspace:plugins/kubernetes-backend": +"@backstage/plugin-kubernetes-backend@workspace:^, @backstage/plugin-kubernetes-backend@workspace:plugins/kubernetes-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-kubernetes-backend@workspace:plugins/kubernetes-backend" dependencies: "@azure/identity": ^2.0.4 - "@backstage/backend-common": ^0.15.1 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/plugin-kubernetes-common": ^0.4.2 + "@backstage/backend-common": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-kubernetes-common": "workspace:^" "@google-cloud/container": ^4.0.0 "@kubernetes/client-node": ^0.17.0 "@types/aws4": ^1.5.1 @@ -5751,31 +5895,31 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-kubernetes-common@^0.4.2, @backstage/plugin-kubernetes-common@workspace:plugins/kubernetes-common": +"@backstage/plugin-kubernetes-common@workspace:^, @backstage/plugin-kubernetes-common@workspace:plugins/kubernetes-common": version: 0.0.0-use.local resolution: "@backstage/plugin-kubernetes-common@workspace:plugins/kubernetes-common" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" "@kubernetes/client-node": ^0.17.0 languageName: unknown linkType: soft -"@backstage/plugin-kubernetes@^0.7.2, @backstage/plugin-kubernetes@workspace:plugins/kubernetes": +"@backstage/plugin-kubernetes@workspace:^, @backstage/plugin-kubernetes@workspace:plugins/kubernetes": version: 0.0.0-use.local resolution: "@backstage/plugin-kubernetes@workspace:plugins/kubernetes" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-kubernetes-common": ^0.4.2 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-kubernetes-common": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@kubernetes/client-node": ^0.17.0 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 @@ -5799,20 +5943,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-lighthouse@^0.3.9, @backstage/plugin-lighthouse@workspace:plugins/lighthouse": +"@backstage/plugin-lighthouse@workspace:^, @backstage/plugin-lighthouse@workspace:plugins/lighthouse": version: 0.0.0-use.local resolution: "@backstage/plugin-lighthouse@workspace:plugins/lighthouse" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5831,17 +5975,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-newrelic-dashboard@^0.2.2, @backstage/plugin-newrelic-dashboard@workspace:plugins/newrelic-dashboard": +"@backstage/plugin-newrelic-dashboard@workspace:^, @backstage/plugin-newrelic-dashboard@workspace:plugins/newrelic-dashboard": version: 0.0.0-use.local resolution: "@backstage/plugin-newrelic-dashboard@workspace:plugins/newrelic-dashboard" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5854,17 +5998,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-newrelic@^0.3.27, @backstage/plugin-newrelic@workspace:plugins/newrelic": +"@backstage/plugin-newrelic@workspace:^, @backstage/plugin-newrelic@workspace:plugins/newrelic": version: 0.0.0-use.local resolution: "@backstage/plugin-newrelic@workspace:plugins/newrelic" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5880,20 +6024,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-org@^0.5.9, @backstage/plugin-org@workspace:plugins/org": +"@backstage/plugin-org@workspace:^, @backstage/plugin-org@workspace:plugins/org": version: 0.0.0-use.local resolution: "@backstage/plugin-org@workspace:plugins/org" dependencies: - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5914,20 +6058,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-pagerduty@0.5.2, @backstage/plugin-pagerduty@workspace:plugins/pagerduty": +"@backstage/plugin-pagerduty@workspace:^, @backstage/plugin-pagerduty@workspace:plugins/pagerduty": version: 0.0.0-use.local resolution: "@backstage/plugin-pagerduty@workspace:plugins/pagerduty" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5951,9 +6095,9 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-periskop-backend@workspace:plugins/periskop-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" "@types/express": "*" "@types/supertest": ^2.0.8 express: ^4.17.1 @@ -5970,16 +6114,16 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-periskop@workspace:plugins/periskop" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -5998,17 +6142,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-backend@^0.5.11, @backstage/plugin-permission-backend@workspace:plugins/permission-backend": +"@backstage/plugin-permission-backend@workspace:^, @backstage/plugin-permission-backend@workspace:plugins/permission-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-permission-backend@workspace:plugins/permission-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-permission-node": ^0.6.5 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-permission-node": "workspace:^" "@types/express": "*" "@types/lodash": ^4.14.151 "@types/supertest": ^2.0.8 @@ -6025,13 +6169,13 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-common@^0.6.4, @backstage/plugin-permission-common@workspace:plugins/permission-common": +"@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: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" cross-fetch: ^3.1.5 msw: ^0.47.0 uuid: ^8.0.0 @@ -6039,17 +6183,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-node@^0.6.5, @backstage/plugin-permission-node@workspace:plugins/permission-node": +"@backstage/plugin-permission-node@workspace:^, @backstage/plugin-permission-node@workspace:plugins/permission-node": version: 0.0.0-use.local resolution: "@backstage/plugin-permission-node@workspace:plugins/permission-node" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/plugin-permission-common": ^0.6.4 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 express: ^4.17.1 @@ -6060,15 +6204,15 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-react@^0.4.5, @backstage/plugin-permission-react@workspace:plugins/permission-react": +"@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: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/test-utils": ^1.2.0 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/test-utils": "workspace:^" "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 cross-fetch: ^3.1.5 @@ -6081,21 +6225,21 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-playlist-backend@^0.1.0, @backstage/plugin-playlist-backend@workspace:plugins/playlist-backend": +"@backstage/plugin-playlist-backend@workspace:^, @backstage/plugin-playlist-backend@workspace:plugins/playlist-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-playlist-backend@workspace:plugins/playlist-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-client": 1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-permission-node": ^0.6.5 - "@backstage/plugin-playlist-common": ^0.1.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-permission-node": "workspace:^" + "@backstage/plugin-playlist-common": "workspace:^" "@types/express": "*" "@types/supertest": ^2.0.8 express: ^4.17.1 @@ -6110,34 +6254,34 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-playlist-common@^0.1.0, @backstage/plugin-playlist-common@workspace:plugins/playlist-common": +"@backstage/plugin-playlist-common@workspace:^, @backstage/plugin-playlist-common@workspace:plugins/playlist-common": version: 0.0.0-use.local resolution: "@backstage/plugin-playlist-common@workspace:plugins/playlist-common" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/plugin-permission-common": ^0.6.4 + "@backstage/cli": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" languageName: unknown linkType: soft -"@backstage/plugin-playlist@^0.1.0, @backstage/plugin-playlist@workspace:plugins/playlist": +"@backstage/plugin-playlist@workspace:^, @backstage/plugin-playlist@workspace:plugins/playlist": version: 0.0.0-use.local resolution: "@backstage/plugin-playlist@workspace:plugins/playlist" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-common": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-permission-react": ^0.4.5 - "@backstage/plugin-playlist-common": ^0.1.0 - "@backstage/plugin-search-react": ^1.1.0 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-permission-react": "workspace:^" + "@backstage/plugin-playlist-common": "workspace:^" + "@backstage/plugin-search-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.9.13 "@material-ui/icons": ^4.9.1 "@material-ui/lab": ^4.0.0-alpha.57 @@ -6160,13 +6304,13 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-proxy-backend@^0.2.30, @backstage/plugin-proxy-backend@workspace:plugins/proxy-backend": +"@backstage/plugin-proxy-backend@workspace:^, @backstage/plugin-proxy-backend@workspace:plugins/proxy-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-proxy-backend@workspace:plugins/proxy-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" "@types/express": ^4.17.6 "@types/http-proxy-middleware": ^0.19.3 "@types/supertest": ^2.0.8 @@ -6186,14 +6330,14 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-rollbar-backend@^0.1.33, @backstage/plugin-rollbar-backend@workspace:plugins/rollbar-backend": +"@backstage/plugin-rollbar-backend@workspace:^, @backstage/plugin-rollbar-backend@workspace:plugins/rollbar-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-rollbar-backend@workspace:plugins/rollbar-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 camelcase-keys: ^7.0.1 @@ -6212,19 +6356,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-rollbar@^0.4.9, @backstage/plugin-rollbar@workspace:plugins/rollbar": +"@backstage/plugin-rollbar@workspace:^, @backstage/plugin-rollbar@workspace:plugins/rollbar": version: 0.0.0-use.local resolution: "@backstage/plugin-rollbar@workspace:plugins/rollbar" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -6250,13 +6394,13 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-scaffolder-backend-module-cookiecutter@workspace:plugins/scaffolder-backend-module-cookiecutter" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-scaffolder-backend": ^1.6.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-scaffolder-backend": "workspace:^" + "@backstage/types": "workspace:^" "@types/command-exists": ^1.2.0 "@types/fs-extra": ^9.0.1 "@types/mock-fs": ^4.13.0 @@ -6269,17 +6413,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-scaffolder-backend-module-rails@^0.4.4, @backstage/plugin-scaffolder-backend-module-rails@workspace:plugins/scaffolder-backend-module-rails": +"@backstage/plugin-scaffolder-backend-module-rails@workspace:^, @backstage/plugin-scaffolder-backend-module-rails@workspace:plugins/scaffolder-backend-module-rails": version: 0.0.0-use.local resolution: "@backstage/plugin-scaffolder-backend-module-rails@workspace:plugins/scaffolder-backend-module-rails" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-scaffolder-backend": ^1.6.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-scaffolder-backend": "workspace:^" + "@backstage/types": "workspace:^" "@types/command-exists": ^1.2.0 "@types/fs-extra": ^9.0.1 "@types/mock-fs": ^4.13.0 @@ -6295,34 +6439,35 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-scaffolder-backend-module-yeoman@workspace:plugins/scaffolder-backend-module-yeoman" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-scaffolder-backend": ^1.6.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-scaffolder-backend": "workspace:^" + "@backstage/types": "workspace:^" winston: ^3.2.1 yeoman-environment: ^3.9.1 languageName: unknown linkType: soft -"@backstage/plugin-scaffolder-backend@^1.6.0, @backstage/plugin-scaffolder-backend@workspace:plugins/scaffolder-backend": +"@backstage/plugin-scaffolder-backend@workspace:^, @backstage/plugin-scaffolder-backend@workspace:plugins/scaffolder-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-scaffolder-backend@workspace:plugins/scaffolder-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-plugin-api": ^0.1.2 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/plugin-catalog-node": ^1.1.0 - "@backstage/plugin-scaffolder-common": ^1.2.0 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/plugin-catalog-node": "workspace:^" + "@backstage/plugin-scaffolder-common": "workspace:^" + "@backstage/types": "workspace:^" "@gitbeaker/core": ^35.6.0 "@gitbeaker/node": ^35.1.0 "@octokit/webhooks": ^10.0.0 @@ -6369,39 +6514,39 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-scaffolder-common@^1.2.0, @backstage/plugin-scaffolder-common@workspace:plugins/scaffolder-common": +"@backstage/plugin-scaffolder-common@workspace:^, @backstage/plugin-scaffolder-common@workspace:plugins/scaffolder-common": version: 0.0.0-use.local resolution: "@backstage/plugin-scaffolder-common@workspace:plugins/scaffolder-common" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/types": ^1.0.0 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/types": "workspace:^" languageName: unknown linkType: soft -"@backstage/plugin-scaffolder@^1.6.0, @backstage/plugin-scaffolder@workspace:plugins/scaffolder": +"@backstage/plugin-scaffolder@workspace:^, @backstage/plugin-scaffolder@workspace:plugins/scaffolder": version: 0.0.0-use.local resolution: "@backstage/plugin-scaffolder@workspace:plugins/scaffolder" dependencies: - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-catalog": ^1.5.1 - "@backstage/plugin-catalog-common": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-permission-react": ^0.4.5 - "@backstage/plugin-scaffolder-common": ^1.2.0 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-catalog": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-permission-react": "workspace:^" + "@backstage/plugin-scaffolder-common": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" "@codemirror/language": ^6.0.0 "@codemirror/legacy-modes": ^6.1.0 "@codemirror/view": ^6.0.0 @@ -6443,15 +6588,15 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-search-backend-module-elasticsearch@^1.0.2, @backstage/plugin-search-backend-module-elasticsearch@workspace:plugins/search-backend-module-elasticsearch": +"@backstage/plugin-search-backend-module-elasticsearch@workspace:^, @backstage/plugin-search-backend-module-elasticsearch@workspace:plugins/search-backend-module-elasticsearch": version: 0.0.0-use.local resolution: "@backstage/plugin-search-backend-module-elasticsearch@workspace:plugins/search-backend-module-elasticsearch" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-search-backend-node": ^1.0.2 - "@backstage/plugin-search-common": ^1.0.1 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-search-backend-node": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" "@elastic/elasticsearch": ^7.13.0 "@elastic/elasticsearch-mock": ^1.0.0 "@opensearch-project/opensearch": ^2.0.0 @@ -6465,33 +6610,33 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-search-backend-module-pg@^0.4.0, @backstage/plugin-search-backend-module-pg@workspace:plugins/search-backend-module-pg": +"@backstage/plugin-search-backend-module-pg@workspace:^, @backstage/plugin-search-backend-module-pg@workspace:plugins/search-backend-module-pg": version: 0.0.0-use.local resolution: "@backstage/plugin-search-backend-module-pg@workspace:plugins/search-backend-module-pg" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-search-backend-node": ^1.0.2 - "@backstage/plugin-search-common": ^1.0.1 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-search-backend-node": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" knex: ^2.0.0 lodash: ^4.17.21 uuid: ^8.3.2 languageName: unknown linkType: soft -"@backstage/plugin-search-backend-node@1.0.2, @backstage/plugin-search-backend-node@^1.0.2, @backstage/plugin-search-backend-node@workspace:plugins/search-backend-node": +"@backstage/plugin-search-backend-node@workspace:^, @backstage/plugin-search-backend-node@workspace:plugins/search-backend-node": version: 0.0.0-use.local resolution: "@backstage/plugin-search-backend-node@workspace:plugins/search-backend-node" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-search-common": ^1.0.1 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" "@types/lunr": ^2.3.3 "@types/ndjson": ^2.0.1 lodash: ^4.17.21 @@ -6503,20 +6648,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-search-backend@^1.0.2, @backstage/plugin-search-backend@workspace:plugins/search-backend": +"@backstage/plugin-search-backend@workspace:^, @backstage/plugin-search-backend@workspace:plugins/search-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-search-backend@workspace:plugins/search-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-permission-node": ^0.6.5 - "@backstage/plugin-search-backend-node": ^1.0.2 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-permission-node": "workspace:^" + "@backstage/plugin-search-backend-node": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/types": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 dataloader: ^2.0.0 @@ -6531,29 +6676,29 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-search-common@^1.0.1, @backstage/plugin-search-common@workspace:plugins/search-common": +"@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: - "@backstage/cli": ^0.19.0 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/types": "workspace:^" languageName: unknown linkType: soft -"@backstage/plugin-search-react@^1.1.0, @backstage/plugin-search-react@workspace:plugins/search-react": +"@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" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 - "@backstage/version-bridge": ^1.0.1 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" + "@backstage/version-bridge": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -6571,25 +6716,25 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-search@^1.0.2, @backstage/plugin-search@workspace:plugins/search": +"@backstage/plugin-search@workspace:^, @backstage/plugin-search@workspace:plugins/search": version: 0.0.0-use.local resolution: "@backstage/plugin-search@workspace:plugins/search" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/plugin-search-react": ^1.1.0 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 - "@backstage/version-bridge": ^1.0.1 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/plugin-search-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" + "@backstage/version-bridge": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -6610,19 +6755,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-sentry@^0.4.2, @backstage/plugin-sentry@workspace:plugins/sentry": +"@backstage/plugin-sentry@workspace:^, @backstage/plugin-sentry@workspace:plugins/sentry": version: 0.0.0-use.local resolution: "@backstage/plugin-sentry@workspace:plugins/sentry" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-table/core": ^3.1.0 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 @@ -6644,18 +6789,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-shortcuts@^0.3.1, @backstage/plugin-shortcuts@workspace:plugins/shortcuts": +"@backstage/plugin-shortcuts@workspace:^, @backstage/plugin-shortcuts@workspace:plugins/shortcuts": version: 0.0.0-use.local resolution: "@backstage/plugin-shortcuts@workspace:plugins/shortcuts" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -6680,11 +6825,11 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-sonarqube-backend@workspace:plugins/sonarqube-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/test-utils": ^1.2.0 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/test-utils": "workspace:^" "@types/express": "*" "@types/supertest": ^2.0.12 express: ^4.18.1 @@ -6701,15 +6846,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-sonarqube@workspace:plugins/sonarqube" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -6731,15 +6876,15 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-splunk-on-call@workspace:plugins/splunk-on-call" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -6763,29 +6908,29 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-stack-overflow-backend@workspace:plugins/stack-overflow-backend" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-search-common": ^1.0.1 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" node-fetch: ^2.6.7 qs: ^6.9.4 winston: ^3.2.1 languageName: unknown linkType: soft -"@backstage/plugin-stack-overflow@^0.1.5, @backstage/plugin-stack-overflow@workspace:plugins/stack-overflow": +"@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" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-home": ^0.4.25 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-home": "workspace:^" + "@backstage/plugin-search-common": "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 @@ -6803,16 +6948,16 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-tech-insights-backend-module-jsonfc@^0.1.20, @backstage/plugin-tech-insights-backend-module-jsonfc@workspace:plugins/tech-insights-backend-module-jsonfc": +"@backstage/plugin-tech-insights-backend-module-jsonfc@workspace:^, @backstage/plugin-tech-insights-backend-module-jsonfc@workspace:plugins/tech-insights-backend-module-jsonfc": version: 0.0.0-use.local resolution: "@backstage/plugin-tech-insights-backend-module-jsonfc@workspace:plugins/tech-insights-backend-module-jsonfc" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-tech-insights-common": ^0.2.6 - "@backstage/plugin-tech-insights-node": ^0.3.4 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-tech-insights-common": "workspace:^" + "@backstage/plugin-tech-insights-node": "workspace:^" ajv: ^8.10.0 json-rules-engine: ^6.1.2 lodash: ^4.17.21 @@ -6821,20 +6966,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-tech-insights-backend@^0.5.2, @backstage/plugin-tech-insights-backend@workspace:plugins/tech-insights-backend": +"@backstage/plugin-tech-insights-backend@workspace:^, @backstage/plugin-tech-insights-backend@workspace:plugins/tech-insights-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-tech-insights-backend@workspace:plugins/tech-insights-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-tech-insights-common": ^0.2.6 - "@backstage/plugin-tech-insights-node": ^0.3.4 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-tech-insights-common": "workspace:^" + "@backstage/plugin-tech-insights-node": "workspace:^" "@types/express": ^4.17.6 "@types/luxon": ^3.0.0 "@types/semver": ^7.3.8 @@ -6853,49 +6998,49 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-tech-insights-common@^0.2.6, @backstage/plugin-tech-insights-common@workspace:plugins/tech-insights-common": +"@backstage/plugin-tech-insights-common@workspace:^, @backstage/plugin-tech-insights-common@workspace:plugins/tech-insights-common": version: 0.0.0-use.local resolution: "@backstage/plugin-tech-insights-common@workspace:plugins/tech-insights-common" dependencies: - "@backstage/cli": ^0.19.0-next.1 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/types": "workspace:^" "@types/luxon": ^3.0.0 luxon: ^3.0.0 languageName: unknown linkType: soft -"@backstage/plugin-tech-insights-node@^0.3.4, @backstage/plugin-tech-insights-node@workspace:plugins/tech-insights-node": +"@backstage/plugin-tech-insights-node@workspace:^, @backstage/plugin-tech-insights-node@workspace:plugins/tech-insights-node": version: 0.0.0-use.local resolution: "@backstage/plugin-tech-insights-node@workspace:plugins/tech-insights-node" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/plugin-tech-insights-common": ^0.2.6 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-tech-insights-common": "workspace:^" + "@backstage/types": "workspace:^" "@types/luxon": ^3.0.0 luxon: ^3.0.0 winston: ^3.2.1 languageName: unknown linkType: soft -"@backstage/plugin-tech-insights@^0.3.0, @backstage/plugin-tech-insights@workspace:plugins/tech-insights": +"@backstage/plugin-tech-insights@workspace:^, @backstage/plugin-tech-insights@workspace:plugins/tech-insights": version: 0.0.0-use.local resolution: "@backstage/plugin-tech-insights@workspace:plugins/tech-insights" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-tech-insights-common": ^0.2.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-tech-insights-common": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -6913,17 +7058,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-tech-radar@^0.5.16, @backstage/plugin-tech-radar@workspace:plugins/tech-radar": +"@backstage/plugin-tech-radar@workspace:^, @backstage/plugin-tech-radar@workspace:plugins/tech-radar": version: 0.0.0-use.local resolution: "@backstage/plugin-tech-radar@workspace:plugins/tech-radar" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -6945,22 +7090,22 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-techdocs-addons-test-utils@^1.0.4, @backstage/plugin-techdocs-addons-test-utils@workspace:plugins/techdocs-addons-test-utils": +"@backstage/plugin-techdocs-addons-test-utils@workspace:^, @backstage/plugin-techdocs-addons-test-utils@workspace:plugins/techdocs-addons-test-utils": version: 0.0.0-use.local resolution: "@backstage/plugin-techdocs-addons-test-utils@workspace:plugins/techdocs-addons-test-utils" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-catalog": ^1.5.1 - "@backstage/plugin-search-react": ^1.1.0 - "@backstage/plugin-techdocs": ^1.3.2 - "@backstage/plugin-techdocs-react": ^1.0.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-catalog": "workspace:^" + "@backstage/plugin-search-react": "workspace:^" + "@backstage/plugin-techdocs": "workspace:^" + "@backstage/plugin-techdocs-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.9.13 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -6980,23 +7125,23 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-techdocs-backend@^1.3.0, @backstage/plugin-techdocs-backend@workspace:plugins/techdocs-backend": +"@backstage/plugin-techdocs-backend@workspace:^, @backstage/plugin-techdocs-backend@workspace:plugins/techdocs-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-techdocs-backend@workspace:plugins/techdocs-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-catalog-common": ^1.0.6 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-search-backend-node": 1.0.2 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/plugin-techdocs-node": ^1.4.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-search-backend-node": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/plugin-techdocs-node": "workspace:^" "@types/dockerode": ^3.3.0 "@types/express": ^4.17.6 dockerode: ^3.3.1 @@ -7013,21 +7158,21 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-techdocs-module-addons-contrib@^1.0.4, @backstage/plugin-techdocs-module-addons-contrib@workspace:plugins/techdocs-module-addons-contrib": +"@backstage/plugin-techdocs-module-addons-contrib@workspace:^, @backstage/plugin-techdocs-module-addons-contrib@workspace:plugins/techdocs-module-addons-contrib": version: 0.0.0-use.local resolution: "@backstage/plugin-techdocs-module-addons-contrib@workspace:plugins/techdocs-module-addons-contrib" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/integration": ^1.3.1 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-techdocs-addons-test-utils": ^1.0.4 - "@backstage/plugin-techdocs-react": ^1.0.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-techdocs-addons-test-utils": "workspace:^" + "@backstage/plugin-techdocs-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.9.13 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -7046,19 +7191,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-techdocs-node@^1.4.0, @backstage/plugin-techdocs-node@workspace:plugins/techdocs-node": +"@backstage/plugin-techdocs-node@workspace:^, @backstage/plugin-techdocs-node@workspace:plugins/techdocs-node": version: 0.0.0-use.local resolution: "@backstage/plugin-techdocs-node@workspace:plugins/techdocs-node" dependencies: "@azure/identity": ^2.0.1 "@azure/storage-blob": ^12.5.0 - "@backstage/backend-common": ^0.15.1 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-search-common": ^1.0.1 + "@backstage/backend-common": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" "@google-cloud/storage": ^6.0.0 "@trendyol-js/openstack-swift-sdk": ^0.0.5 "@types/express": ^4.17.6 @@ -7083,18 +7228,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-techdocs-react@^1.0.4, @backstage/plugin-techdocs-react@workspace:plugins/techdocs-react": +"@backstage/plugin-techdocs-react@workspace:^, @backstage/plugin-techdocs-react@workspace:plugins/techdocs-react": version: 0.0.0-use.local resolution: "@backstage/plugin-techdocs-react@workspace:plugins/techdocs-react" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/version-bridge": ^1.0.1 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/version-bridge": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/lab": 4.0.0-alpha.57 "@material-ui/styles": ^4.11.0 @@ -7112,26 +7257,26 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-techdocs@^1.3.2, @backstage/plugin-techdocs@workspace:plugins/techdocs": +"@backstage/plugin-techdocs@workspace:^, @backstage/plugin-techdocs@workspace:plugins/techdocs": version: 0.0.0-use.local resolution: "@backstage/plugin-techdocs@workspace:plugins/techdocs" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/plugin-search-react": ^1.1.0 - "@backstage/plugin-techdocs-react": ^1.0.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/plugin-search-react": "workspace:^" + "@backstage/plugin-techdocs-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -7162,17 +7307,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-todo-backend@^0.1.33, @backstage/plugin-todo-backend@workspace:plugins/todo-backend": +"@backstage/plugin-todo-backend@workspace:^, @backstage/plugin-todo-backend@workspace:plugins/todo-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-todo-backend@workspace:plugins/todo-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/integration": ^1.3.1 + "@backstage/backend-common": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 express: ^4.17.1 @@ -7185,20 +7330,20 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-todo@^0.2.11, @backstage/plugin-todo@workspace:plugins/todo": +"@backstage/plugin-todo@workspace:^, @backstage/plugin-todo@workspace:plugins/todo": version: 0.0.0-use.local resolution: "@backstage/plugin-todo@workspace:plugins/todo" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -7219,13 +7364,13 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-user-settings-backend@workspace:plugins/user-settings-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/types": ^1.0.0 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/types": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 express: ^4.17.1 @@ -7237,19 +7382,19 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-user-settings@^0.4.8, @backstage/plugin-user-settings@workspace:plugins/user-settings": +"@backstage/plugin-user-settings@workspace:^, @backstage/plugin-user-settings@workspace:plugins/user-settings": version: 0.0.0-use.local resolution: "@backstage/plugin-user-settings@workspace:plugins/user-settings" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -7272,12 +7417,12 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-vault-backend@workspace:plugins/vault-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/backend-test-utils": ^0.1.28 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" "@types/compression": ^1.7.2 "@types/express": "*" "@types/supertest": ^2.0.8 @@ -7299,16 +7444,16 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-vault@workspace:plugins/vault" dependencies: - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": ^4.0.0-alpha.57 @@ -7328,14 +7473,14 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-xcmetrics@workspace:plugins/xcmetrics" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/errors": ^1.1.1 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -7355,32 +7500,32 @@ __metadata: languageName: unknown linkType: soft -"@backstage/release-manifests@^0.0.6, @backstage/release-manifests@workspace:packages/release-manifests": +"@backstage/release-manifests@workspace:^, @backstage/release-manifests@workspace:packages/release-manifests": version: 0.0.0-use.local resolution: "@backstage/release-manifests@workspace:packages/release-manifests" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/test-utils": ^1.2.0 + "@backstage/cli": "workspace:^" + "@backstage/test-utils": "workspace:^" "@types/node": ^16.0.0 cross-fetch: ^3.1.5 msw: ^0.47.0 languageName: unknown linkType: soft -"@backstage/test-utils@^1.2.0, @backstage/test-utils@workspace:packages/test-utils": +"@backstage/test-utils@^1.2.0, @backstage/test-utils@workspace:^, @backstage/test-utils@workspace:packages/test-utils": version: 0.0.0-use.local resolution: "@backstage/test-utils@workspace:packages/test-utils" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-permission-react": ^0.4.5 - "@backstage/theme": ^0.2.16 - "@backstage/types": ^1.0.0 + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-permission-react": "workspace:^" + "@backstage/theme": "workspace:^" + "@backstage/types": "workspace:^" "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.11.2 + "@material-ui/icons": ^4.9.1 "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 "@testing-library/user-event": ^14.0.0 @@ -7397,30 +7542,30 @@ __metadata: languageName: unknown linkType: soft -"@backstage/theme@^0.2.15, @backstage/theme@^0.2.16, @backstage/theme@^0.2.6, @backstage/theme@^0.2.7, @backstage/theme@^0.2.9, @backstage/theme@workspace:packages/theme": +"@backstage/theme@^0.2.16, @backstage/theme@^0.2.6, @backstage/theme@^0.2.7, @backstage/theme@^0.2.9, @backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme": version: 0.0.0-use.local resolution: "@backstage/theme@workspace:packages/theme" dependencies: - "@backstage/cli": ^0.19.0-next.1 + "@backstage/cli": "workspace:^" "@material-ui/core": ^4.12.2 languageName: unknown linkType: soft -"@backstage/types@^1.0.0, @backstage/types@workspace:packages/types": +"@backstage/types@workspace:^, @backstage/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@backstage/types@workspace:packages/types" dependencies: - "@backstage/cli": ^0.19.0-next.1 + "@backstage/cli": "workspace:^" "@types/zen-observable": ^0.8.0 zen-observable: ^0.8.15 languageName: unknown linkType: soft -"@backstage/version-bridge@^1.0.1, @backstage/version-bridge@workspace:packages/version-bridge": +"@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: - "@backstage/cli": ^0.19.0-next.1 + "@backstage/cli": "workspace:^" "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 "@testing-library/react-hooks": ^8.0.0 @@ -7780,13 +7925,13 @@ __metadata: linkType: hard "@codemirror/view@npm:^6.0.0": - version: 6.2.2 - resolution: "@codemirror/view@npm:6.2.2" + version: 6.2.3 + resolution: "@codemirror/view@npm:6.2.3" dependencies: "@codemirror/state": ^6.0.0 style-mod: ^4.0.0 w3c-keyname: ^2.2.4 - checksum: 6983c51362367d3885961fa233d302e75dfb103cd83ec78e6a044c2420e61466b5e94cfb73a9e840b04765577e8bbb269eb1ad45fa21abd28efda4ae780791db + checksum: 93d6f159c49ffd9276e9b6ba28cef2c41934be7eb68aa49acf1971dede97ee2684bde6daeb7494da8e15f2ef937933c3fa076253127b230c6996db0fe7a79ef2 languageName: node linkType: hard @@ -7961,6 +8106,15 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.15.8": + version: 0.15.8 + resolution: "@esbuild/android-arm@npm:0.15.8" + dependencies: + esbuild-wasm: 0.15.8 + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.14.54": version: 0.14.54 resolution: "@esbuild/linux-loong64@npm:0.14.54" @@ -7968,6 +8122,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.15.8": + version: 0.15.8 + resolution: "@esbuild/linux-loong64@npm:0.15.8" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^1.3.2": version: 1.3.2 resolution: "@eslint/eslintrc@npm:1.3.2" @@ -8068,14 +8229,14 @@ __metadata: linkType: hard "@google-cloud/firestore@npm:^6.0.0": - version: 6.0.0 - resolution: "@google-cloud/firestore@npm:6.0.0" + version: 6.2.0 + resolution: "@google-cloud/firestore@npm:6.2.0" dependencies: fast-deep-equal: ^3.1.1 functional-red-black-tree: ^1.0.1 - google-gax: ^3.0.1 + google-gax: ^3.5.1 protobufjs: ^7.0.0 - checksum: 4b51ed6da004fe9c699cecde3e663f4b6c94937fdf4dd01c27a22df9845bac202d9869d39d8b4a3b9bd38637762754f925b32e4ea4f8ffb755fcf6528988aadf + checksum: fce0d729d63b5722df0dcedb78c8b494b2876de128128de8c8dc7d9add1ff7e00a8df1d04e7e2210a71331e623877e67149593341f714d2b0f92b6fef73dfcbd languageName: node linkType: hard @@ -8104,8 +8265,8 @@ __metadata: linkType: hard "@google-cloud/storage@npm:^6.0.0": - version: 6.4.2 - resolution: "@google-cloud/storage@npm:6.4.2" + version: 6.5.0 + resolution: "@google-cloud/storage@npm:6.5.0" dependencies: "@google-cloud/paginator": ^3.0.7 "@google-cloud/projectify": ^3.0.0 @@ -8125,7 +8286,7 @@ __metadata: retry-request: ^5.0.0 teeny-request: ^8.0.0 uuid: ^8.0.0 - checksum: ebd8bf46675f21b429915d9889c56574acc395745126e40f96803334c1e2d8b35a60d22b1f0ecf9db4bb67c373f53e4eeef9406af334cdf9c0ca8461da777ab3 + checksum: b97dc19814e4154ef0920202e79feaf14c3d7de2ea9aa295bc2e2784b3b0ba4e7feabdd4b499d0f2e996accc4fa965b974174bdb60d5f51408967a268bdc5b9f languageName: node linkType: hard @@ -8163,11 +8324,11 @@ __metadata: linkType: hard "@graphql-codegen/cli@npm:^2.3.1": - version: 2.12.0 - resolution: "@graphql-codegen/cli@npm:2.12.0" + version: 2.12.1 + resolution: "@graphql-codegen/cli@npm:2.12.1" dependencies: "@graphql-codegen/core": 2.6.2 - "@graphql-codegen/plugin-helpers": ^2.7.0 + "@graphql-codegen/plugin-helpers": ^2.7.1 "@graphql-tools/apollo-engine-loader": ^7.3.6 "@graphql-tools/code-file-loader": ^7.3.1 "@graphql-tools/git-loader": ^7.2.1 @@ -8178,7 +8339,7 @@ __metadata: "@graphql-tools/prisma-loader": ^7.2.7 "@graphql-tools/url-loader": ^7.13.2 "@graphql-tools/utils": ^8.9.0 - "@whatwg-node/fetch": ^0.3.0 + "@whatwg-node/fetch": ^0.4.0 ansi-escapes: ^4.3.1 chalk: ^4.1.0 chokidar: ^3.5.2 @@ -8205,7 +8366,7 @@ __metadata: graphql-code-generator: cjs/bin.js graphql-codegen: cjs/bin.js graphql-codegen-esm: esm/bin.js - checksum: f8010d651e7f7bec3ac04da0c250a7c9d863f0c175f923553b9701e99cb61d9feb7393fa11ff601bf31c6f6d4b40c81e28f39cd8797b611b5f0456c46cbd6045 + checksum: c3e3772f1bd7d6a35ecc42a0fcb96d7e417e184170254ef89286f029a31eba688465179d572897f52197199757edf16e5a7442e4e7fb2612cd79530ea33572a3 languageName: node linkType: hard @@ -8255,9 +8416,9 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/plugin-helpers@npm:^2.7.0": - version: 2.7.0 - resolution: "@graphql-codegen/plugin-helpers@npm:2.7.0" +"@graphql-codegen/plugin-helpers@npm:^2.7.1": + version: 2.7.1 + resolution: "@graphql-codegen/plugin-helpers@npm:2.7.1" dependencies: "@graphql-tools/utils": ^8.8.0 change-case-all: 1.0.14 @@ -8267,7 +8428,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: 413099d58e99d4eb3a7d806f3b7eb5c7052e40a680cc2e9ced11eb0b8af0aede8a3fdcdeca937daf89614b6db9cf0a9235ad6f694d211f097c40c1cbf07b3c6a + checksum: fffb801ccccee36d729c134caa79cc5eb6a1b3717253646cd1759e2dd0e754bccb6b0b6b5341a649fd18794f8b0b970776b71907d5a7b15048521ea9eb283180 languageName: node linkType: hard @@ -8942,7 +9103,17 @@ __metadata: languageName: node linkType: hard -"@grpc/proto-loader@npm:^0.6.12, @grpc/proto-loader@npm:^0.6.4": +"@grpc/grpc-js@npm:~1.7.0": + version: 1.7.0 + resolution: "@grpc/grpc-js@npm:1.7.0" + dependencies: + "@grpc/proto-loader": ^0.7.0 + "@types/node": ">=12.12.47" + checksum: 22eee49f9f5aea1abf9566426d993fe4457c94c2afacd3dfb932cc46dbc06ad6ce8f1422fac357d592dd0c75a5cf03405ea15310064ab3c45e1e418f22c48c2b + languageName: node + linkType: hard + +"@grpc/proto-loader@npm:^0.6.4": version: 0.6.12 resolution: "@grpc/proto-loader@npm:0.6.12" dependencies: @@ -9020,13 +9191,6 @@ __metadata: languageName: node linkType: hard -"@hutson/parse-repository-url@npm:^3.0.0": - version: 3.0.2 - resolution: "@hutson/parse-repository-url@npm:3.0.2" - checksum: 39992c5f183c5ca3d761d6ed9dfabcb79b5f3750bf1b7f3532e1dc439ca370138bbd426ee250fdaba460bc948e6761fbefd484b8f4f36885d71ded96138340d1 - languageName: node - linkType: hard - "@iarna/toml@npm:^2.2.5": version: 2.2.5 resolution: "@iarna/toml@npm:2.2.5" @@ -9056,12 +9220,12 @@ __metadata: languageName: node linkType: hard -"@internal/plugin-catalog-customized@0.0.2, @internal/plugin-catalog-customized@workspace:plugins/catalog-customized": +"@internal/plugin-catalog-customized@workspace:^, @internal/plugin-catalog-customized@workspace:plugins/catalog-customized": version: 0.0.0-use.local resolution: "@internal/plugin-catalog-customized@workspace:plugins/catalog-customized" dependencies: - "@backstage/plugin-catalog": ^1.5.1 - "@backstage/plugin-catalog-react": ^1.1.4 + "@backstage/plugin-catalog": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" "@types/react": ^16.13.1 || ^17.0.0 peerDependencies: react: ^16.13.1 || ^17.0.0 @@ -9072,11 +9236,11 @@ __metadata: version: 0.0.0-use.local resolution: "@internal/plugin-todo-list-backend@workspace:plugins/example-todo-list-backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/errors": ^1.1.1 - "@backstage/plugin-auth-node": ^0.2.5 + "@backstage/backend-common": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 "@types/uuid": ^8.0.0 @@ -9094,11 +9258,11 @@ __metadata: version: 0.0.0-use.local resolution: "@internal/plugin-todo-list-common@workspace:plugins/example-todo-list-common" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/dev-utils": ^1.0.6 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/test-utils": ^1.2.0 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/test-utils": "workspace:^" "@types/node": ^16.11.26 cross-fetch: ^3.1.5 msw: ^0.47.0 @@ -9109,13 +9273,13 @@ __metadata: version: 0.0.0-use.local resolution: "@internal/plugin-todo-list@workspace:plugins/example-todo-list" dependencies: - "@backstage/cli": ^0.19.0 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/dev-utils": ^1.0.6 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -9163,50 +9327,50 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/console@npm:27.5.1" +"@jest/console@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/console@npm:29.0.3" dependencies: - "@jest/types": ^27.5.1 + "@jest/types": ^29.0.3 "@types/node": "*" chalk: ^4.0.0 - jest-message-util: ^27.5.1 - jest-util: ^27.5.1 + jest-message-util: ^29.0.3 + jest-util: ^29.0.3 slash: ^3.0.0 - checksum: 7cb20f06a34b09734c0342685ec53aa4c401fe3757c13a9c58fce76b971a322eb884f6de1068ef96f746e5398e067371b89515a07c268d4440a867c87748a706 + checksum: 1c5f092082c45c5c35ea51e7c75f4ce06a9b4350e44e0d3aa6c586c469a687fb095ab2601f196f147cccd1c4b5cbf4adc885ae83c8af42dfeee5aa518fa0968e languageName: node linkType: hard -"@jest/core@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/core@npm:27.5.1" +"@jest/core@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/core@npm:29.0.3" dependencies: - "@jest/console": ^27.5.1 - "@jest/reporters": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/console": ^29.0.3 + "@jest/reporters": ^29.0.3 + "@jest/test-result": ^29.0.3 + "@jest/transform": ^29.0.3 + "@jest/types": ^29.0.3 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 - emittery: ^0.8.1 + ci-info: ^3.2.0 exit: ^0.1.2 graceful-fs: ^4.2.9 - jest-changed-files: ^27.5.1 - jest-config: ^27.5.1 - jest-haste-map: ^27.5.1 - jest-message-util: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-resolve-dependencies: ^27.5.1 - jest-runner: ^27.5.1 - jest-runtime: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 - jest-watcher: ^27.5.1 + jest-changed-files: ^29.0.0 + jest-config: ^29.0.3 + jest-haste-map: ^29.0.3 + jest-message-util: ^29.0.3 + jest-regex-util: ^29.0.0 + jest-resolve: ^29.0.3 + jest-resolve-dependencies: ^29.0.3 + jest-runner: ^29.0.3 + jest-runtime: ^29.0.3 + jest-snapshot: ^29.0.3 + jest-util: ^29.0.3 + jest-validate: ^29.0.3 + jest-watcher: ^29.0.3 micromatch: ^4.0.4 - rimraf: ^3.0.0 + pretty-format: ^29.0.3 slash: ^3.0.0 strip-ansi: ^6.0.0 peerDependencies: @@ -9214,7 +9378,7 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 904a94ad8f1b43cd6b48de3b0226659bff3696150ff8cf7680fc2faffdc8a115203bb9ab6e817c1f79f9d6a81f67953053cbc64d8a4604f2e0c42a04c28cf126 + checksum: 411a994ae0df96262c911c894b231a3148280ae39cf0a5d1132c126e708925a3aa89d3f75be628260916a5c38c6ee1ce27979cf78171a393f3c3bbac019149d9 languageName: node linkType: hard @@ -9227,136 +9391,165 @@ __metadata: languageName: node linkType: hard -"@jest/environment@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/environment@npm:27.5.1" +"@jest/environment@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/environment@npm:29.0.3" dependencies: - "@jest/fake-timers": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/fake-timers": ^29.0.3 + "@jest/types": ^29.0.3 "@types/node": "*" - jest-mock: ^27.5.1 - checksum: 2a9e18c35a015508dbec5b90b21c150230fa6c1c8cb8fabe029d46ee2ca4c40eb832fb636157da14c66590d0a4c8a2c053226b041f54a44507d6f6a89abefd66 + jest-mock: ^29.0.3 + checksum: 3cf9a6c18d1175f9d9dc353ad26a8482cef3aae8d68574d2c2feaf149e4d6f5c83e145aeefffdc0c614e9b770d26251e476cb1bd86f140c9d19b6adf8f1a2681 languageName: node linkType: hard -"@jest/fake-timers@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/fake-timers@npm:27.5.1" +"@jest/expect-utils@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/expect-utils@npm:29.0.3" dependencies: - "@jest/types": ^27.5.1 - "@sinonjs/fake-timers": ^8.0.1 + jest-get-type: ^29.0.0 + checksum: af6fa6e0b9cdf42f5778ff0b70c2049ec768598f720ea473773e0c0bebd2416a32ecbede94cfdc95572a021eda5302a9295a5c416ad5ce155c4ec277c40129da + languageName: node + linkType: hard + +"@jest/expect@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/expect@npm:29.0.3" + dependencies: + expect: ^29.0.3 + jest-snapshot: ^29.0.3 + checksum: 8f969cce260b84edc105a73b8314accd305f2ad012031c00a6a4ba8b3db864237719e95a167702badada274bd764c306e561326bef86d950f72b94f5c9c69c7e + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/fake-timers@npm:29.0.3" + dependencies: + "@jest/types": ^29.0.3 + "@sinonjs/fake-timers": ^9.1.2 "@types/node": "*" - jest-message-util: ^27.5.1 - jest-mock: ^27.5.1 - jest-util: ^27.5.1 - checksum: 02a0561ed2f4586093facd4ae500b74694f187ac24d4a00e949a39a1c5325bca8932b4fcb0388a2c5ed0656506fc1cf51fd3e32cdd48cea7497ad9c6e028aba8 + jest-message-util: ^29.0.3 + jest-mock: ^29.0.3 + jest-util: ^29.0.3 + checksum: c0a641fe239044a766eb27e6e4e085acdc8f53d34813aa883a8da8fcce555d8b6ce06716b94c72b44e60c0ca8088b1f1a1d3b05c7f41ed39fc0f6cf23dead7c4 languageName: node linkType: hard -"@jest/globals@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/globals@npm:27.5.1" +"@jest/globals@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/globals@npm:29.0.3" dependencies: - "@jest/environment": ^27.5.1 - "@jest/types": ^27.5.1 - expect: ^27.5.1 - checksum: 087f97047e9dcf555f76fe2ce54aee681e005eaa837a0c0c2d251df6b6412c892c9df54cb871b180342114389a5ff895a4e52e6e6d3d0015bf83c02a54f64c3c + "@jest/environment": ^29.0.3 + "@jest/expect": ^29.0.3 + "@jest/types": ^29.0.3 + jest-mock: ^29.0.3 + checksum: ab6a3f93b98c600f6b4d57c5cf593e624847101bf037f452800d891f55612cd042f524f032f4871ff784c1814f85a4939afbd853104f50f78aada353ac124b7e languageName: node linkType: hard -"@jest/reporters@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/reporters@npm:27.5.1" +"@jest/reporters@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/reporters@npm:29.0.3" dependencies: "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/console": ^29.0.3 + "@jest/test-result": ^29.0.3 + "@jest/transform": ^29.0.3 + "@jest/types": ^29.0.3 + "@jridgewell/trace-mapping": ^0.3.15 "@types/node": "*" chalk: ^4.0.0 collect-v8-coverage: ^1.0.0 exit: ^0.1.2 - glob: ^7.1.2 + glob: ^7.1.3 graceful-fs: ^4.2.9 istanbul-lib-coverage: ^3.0.0 istanbul-lib-instrument: ^5.1.0 istanbul-lib-report: ^3.0.0 istanbul-lib-source-maps: ^4.0.0 istanbul-reports: ^3.1.3 - jest-haste-map: ^27.5.1 - jest-resolve: ^27.5.1 - jest-util: ^27.5.1 - jest-worker: ^27.5.1 + jest-message-util: ^29.0.3 + jest-util: ^29.0.3 + jest-worker: ^29.0.3 slash: ^3.0.0 - source-map: ^0.6.0 string-length: ^4.0.1 + strip-ansi: ^6.0.0 terminal-link: ^2.0.0 - v8-to-istanbul: ^8.1.0 + v8-to-istanbul: ^9.0.1 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - checksum: faba5eafb86e62b62e152cafc8812d56308f9d1e8b77f3a7dcae4a8803a20a60a0909cc43ed73363ef649bf558e4fb181c7a336d144c89f7998279d1882bb69e + checksum: 43028a8823cb8d58c5219e0471990e0d7e9014ed9ef6f2853076bd9e49a490fc1bcfcf46a4d7b981725da0f31be1496725a4a0edb0149f7c7f54c5d2299dcae1 languageName: node linkType: hard -"@jest/source-map@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/source-map@npm:27.5.1" +"@jest/schemas@npm:^29.0.0": + version: 29.0.0 + resolution: "@jest/schemas@npm:29.0.0" dependencies: + "@sinclair/typebox": ^0.24.1 + checksum: 41355c78f09eb1097e57a3c5d0ca11c9099e235e01ea5fa4e3953562a79a6a9296c1d300f1ba50ca75236048829e056b00685cd2f1ff8285e56fd2ce01249acb + languageName: node + linkType: hard + +"@jest/source-map@npm:^29.0.0": + version: 29.0.0 + resolution: "@jest/source-map@npm:29.0.0" + dependencies: + "@jridgewell/trace-mapping": ^0.3.15 callsites: ^3.0.0 graceful-fs: ^4.2.9 - source-map: ^0.6.0 - checksum: 4fb1e743b602841babf7e22bd84eca34676cb05d4eb3b604cae57fc59e406099f5ac759ac1a0d04d901237d143f0f4f234417306e823bde732a1d19982230862 + checksum: dd97bc5826cf68d6eb5565383816332f800476232fd12800bd027a259cbf3ef216f1633405f3ad0861dde3b12a7886301798c078b334f6d3012044d43abcf4f6 languageName: node linkType: hard -"@jest/test-result@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/test-result@npm:27.5.1" +"@jest/test-result@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/test-result@npm:29.0.3" dependencies: - "@jest/console": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/console": ^29.0.3 + "@jest/types": ^29.0.3 "@types/istanbul-lib-coverage": ^2.0.0 collect-v8-coverage: ^1.0.0 - checksum: 338f7c509d6a3bc6d7dd7388c8f6f548b87638e171dc1fddfedcacb4e8950583288832223ba688058cbcf874b937d22bdc0fa88f79f5fc666f77957e465c06a5 + checksum: 9cb76090b2b49cc19f95c51e3593085ab88b2d9539f9c15b1e7919f770aaee75376b453f30a14f2034a5cb25fa8e14f5fcc422f05954dbdb0873220576d9c9a0 languageName: node linkType: hard -"@jest/test-sequencer@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/test-sequencer@npm:27.5.1" +"@jest/test-sequencer@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/test-sequencer@npm:29.0.3" dependencies: - "@jest/test-result": ^27.5.1 + "@jest/test-result": ^29.0.3 graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-runtime: ^27.5.1 - checksum: f21f9c8bb746847f7f89accfd29d6046eec1446f0b54e4694444feaa4df379791f76ef0f5a4360aafcbc73b50bc979f68b8a7620de404019d3de166be6720cb0 + jest-haste-map: ^29.0.3 + slash: ^3.0.0 + checksum: c6868e29a36c2dd4f6aa71a7148fa7bf34fb845e97b29bc418cb6988245ad7f0cd820aa6dcf9389d0e5b4592b9df8a727a40b0b91eee0dad00f683c250b94a2c languageName: node linkType: hard -"@jest/transform@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/transform@npm:27.5.1" +"@jest/transform@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/transform@npm:29.0.3" dependencies: - "@babel/core": ^7.1.0 - "@jest/types": ^27.5.1 + "@babel/core": ^7.11.6 + "@jest/types": ^29.0.3 + "@jridgewell/trace-mapping": ^0.3.15 babel-plugin-istanbul: ^6.1.1 chalk: ^4.0.0 convert-source-map: ^1.4.0 - fast-json-stable-stringify: ^2.0.0 + fast-json-stable-stringify: ^2.1.0 graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-util: ^27.5.1 + jest-haste-map: ^29.0.3 + jest-regex-util: ^29.0.0 + jest-util: ^29.0.3 micromatch: ^4.0.4 pirates: ^4.0.4 slash: ^3.0.0 - source-map: ^0.6.1 - write-file-atomic: ^3.0.0 - checksum: a22079121aedea0f20a03a9c026be971f7b92adbfb4d5fd1fb67be315741deac4f056936d7c72a53b24aa5a1071bc942c003925fd453bf3f6a0ae5da6384e137 + write-file-atomic: ^4.0.1 + checksum: c68ebb673a27640372c912736aa26bda5bc4dfd7a890bb10c467b81e8a66826c8b8b6826ebf25ed3c7a70b7818fcc60e3c0d7341d1595d5ce4978d53d22a7ea1 languageName: node linkType: hard @@ -9386,6 +9579,20 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^29.0.3": + version: 29.0.3 + resolution: "@jest/types@npm:29.0.3" + dependencies: + "@jest/schemas": ^29.0.0 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: 3bd33e64d87a5421b860396ac7f7b9b8d5abbf0f300f4379bb20c8e3a6169fbbd078933ce0649827cd63e23330c4effeb6b222fa94e8dd0df638dfff6c1fed41 + languageName: node + linkType: hard + "@jimp/bmp@npm:^0.10.3": version: 0.10.3 resolution: "@jimp/bmp@npm:0.10.3" @@ -9909,7 +10116,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.14": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.14, @jridgewell/trace-mapping@npm:^0.3.15": version: 0.3.15 resolution: "@jridgewell/trace-mapping@npm:0.3.15" dependencies: @@ -9989,808 +10196,6 @@ __metadata: languageName: node linkType: hard -"@lerna/add@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/add@npm:5.0.0" - dependencies: - "@lerna/bootstrap": 5.0.0 - "@lerna/command": 5.0.0 - "@lerna/filter-options": 5.0.0 - "@lerna/npm-conf": 5.0.0 - "@lerna/validation-error": 5.0.0 - dedent: ^0.7.0 - npm-package-arg: ^8.1.0 - p-map: ^4.0.0 - pacote: ^13.4.1 - semver: ^7.3.4 - checksum: 3ac24d8c37b6da4078d10926d3ad840868c0b60c71118ca6120e1b286d6300423164cffca7a9a2a943b56c91d7357dd8b05103bdeb70a0ccdf8e114c64ad3c32 - languageName: node - linkType: hard - -"@lerna/bootstrap@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/bootstrap@npm:5.0.0" - dependencies: - "@lerna/command": 5.0.0 - "@lerna/filter-options": 5.0.0 - "@lerna/has-npm-version": 5.0.0 - "@lerna/npm-install": 5.0.0 - "@lerna/package-graph": 5.0.0 - "@lerna/pulse-till-done": 5.0.0 - "@lerna/rimraf-dir": 5.0.0 - "@lerna/run-lifecycle": 5.0.0 - "@lerna/run-topologically": 5.0.0 - "@lerna/symlink-binary": 5.0.0 - "@lerna/symlink-dependencies": 5.0.0 - "@lerna/validation-error": 5.0.0 - "@npmcli/arborist": 5.2.0 - dedent: ^0.7.0 - get-port: ^5.1.1 - multimatch: ^5.0.0 - npm-package-arg: ^8.1.0 - npmlog: ^4.1.2 - p-map: ^4.0.0 - p-map-series: ^2.1.0 - p-waterfall: ^2.1.1 - semver: ^7.3.4 - checksum: 2e2f4e6b508667ce4d3d6588b790cf980d08413a24dda80d61ef37d7bad31b63cc949fc80987717fd6c41cd5d776ef32fa77d672ee6df570397397203842ec1c - languageName: node - linkType: hard - -"@lerna/changed@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/changed@npm:5.0.0" - dependencies: - "@lerna/collect-updates": 5.0.0 - "@lerna/command": 5.0.0 - "@lerna/listable": 5.0.0 - "@lerna/output": 5.0.0 - checksum: 8f53e5e056bba10eda23f44b0eb04b046c382660650d2005719673688465ed124011dec00ba18ae2050b49edbdbe1a587bb62b3414f9bfad15bacc3d84953a3f - languageName: node - linkType: hard - -"@lerna/check-working-tree@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/check-working-tree@npm:5.0.0" - dependencies: - "@lerna/collect-uncommitted": 5.0.0 - "@lerna/describe-ref": 5.0.0 - "@lerna/validation-error": 5.0.0 - checksum: 8bf7b24016c875adcd9f318300f9d5acc6e51b49da519f85e9207026a867b40b7980df8bcbb88ed6c55b3b82e44f71d9553f9402d663e70418951413816de0b5 - languageName: node - linkType: hard - -"@lerna/child-process@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/child-process@npm:5.0.0" - dependencies: - chalk: ^4.1.0 - execa: ^5.0.0 - strong-log-transformer: ^2.1.0 - checksum: 6e1e6075173d776a1f816502714694be8e593e60c512c3e5c4af5fe7f300ebc6b50bd541794e61e988114ea402fb2c919f5fa095554cf885204bb165c171ecf6 - languageName: node - linkType: hard - -"@lerna/clean@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/clean@npm:5.0.0" - dependencies: - "@lerna/command": 5.0.0 - "@lerna/filter-options": 5.0.0 - "@lerna/prompt": 5.0.0 - "@lerna/pulse-till-done": 5.0.0 - "@lerna/rimraf-dir": 5.0.0 - p-map: ^4.0.0 - p-map-series: ^2.1.0 - p-waterfall: ^2.1.1 - checksum: f839ea948d52a9aa907063de974e79cb6c06acb9fb6e80e0ec227d23c956426e46cf77586985873f34e185145b8224608228ceba6aa82aed88f8e7d1f2d70f69 - languageName: node - linkType: hard - -"@lerna/cli@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/cli@npm:5.0.0" - dependencies: - "@lerna/global-options": 5.0.0 - dedent: ^0.7.0 - npmlog: ^4.1.2 - yargs: ^16.2.0 - checksum: 9531a3a74277f1d82febc687826a3c7f84e3407504170824ca5f373da213f8a1f7ff53a9dd44f9004ce72ae8aaae488760bf7f6d22df2240e0011635fcafc541 - languageName: node - linkType: hard - -"@lerna/collect-uncommitted@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/collect-uncommitted@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - chalk: ^4.1.0 - npmlog: ^4.1.2 - checksum: b77e63e033b3a9f81a16f636e73824c695e7b97347755ef1adaa961169fd36762fec5214c6db81e612642a4ec50afff6d84824d5a850484092bb2752ff280d33 - languageName: node - linkType: hard - -"@lerna/collect-updates@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/collect-updates@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@lerna/describe-ref": 5.0.0 - minimatch: ^3.0.4 - npmlog: ^4.1.2 - slash: ^3.0.0 - checksum: a3da2e8aced69e83b7c599eb4e2ccee2216d5964fb647874b1c2956d8089d1df15cc6ba8b3a0334d2de6b6071985e2ff77655b56d0bee6021d14b22e26b4a6a7 - languageName: node - linkType: hard - -"@lerna/command@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/command@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@lerna/package-graph": 5.0.0 - "@lerna/project": 5.0.0 - "@lerna/validation-error": 5.0.0 - "@lerna/write-log-file": 5.0.0 - clone-deep: ^4.0.1 - dedent: ^0.7.0 - execa: ^5.0.0 - is-ci: ^2.0.0 - npmlog: ^4.1.2 - checksum: 4fd54db1f1749013da6d8bba59fa62953f874108a74c79cd6a9bafa0516ee2cf373ca27641fd862b22a59b8904ef6c7090c7156fa408846cbc1302545a3ea4db - languageName: node - linkType: hard - -"@lerna/conventional-commits@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/conventional-commits@npm:5.0.0" - dependencies: - "@lerna/validation-error": 5.0.0 - conventional-changelog-angular: ^5.0.12 - conventional-changelog-core: ^4.2.2 - conventional-recommended-bump: ^6.1.0 - fs-extra: ^9.1.0 - get-stream: ^6.0.0 - lodash.template: ^4.5.0 - npm-package-arg: ^8.1.0 - npmlog: ^4.1.2 - pify: ^5.0.0 - semver: ^7.3.4 - checksum: 3b1cf3117c0f1e0dfad824de6771e8f831badc122b2fe27a6011a39d20b959c4b49448e512c6715ea10d9ff97f2b946d98c158ce6a44a971a75bae1621eb3f4d - languageName: node - linkType: hard - -"@lerna/create-symlink@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/create-symlink@npm:5.0.0" - dependencies: - cmd-shim: ^4.1.0 - fs-extra: ^9.1.0 - npmlog: ^4.1.2 - checksum: 75985da76c3a2666f1e8a6175bf6f652e0417290416d01e6d55b05e8f67e3b07d7852cb9c9c96bc36346c27c204c8ee3546db916c0ea356a95ffece51e25e1b3 - languageName: node - linkType: hard - -"@lerna/create@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/create@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@lerna/command": 5.0.0 - "@lerna/npm-conf": 5.0.0 - "@lerna/validation-error": 5.0.0 - dedent: ^0.7.0 - fs-extra: ^9.1.0 - globby: ^11.0.2 - init-package-json: ^2.0.2 - npm-package-arg: ^8.1.0 - p-reduce: ^2.1.0 - pacote: ^13.4.1 - pify: ^5.0.0 - semver: ^7.3.4 - slash: ^3.0.0 - validate-npm-package-license: ^3.0.4 - validate-npm-package-name: ^3.0.0 - whatwg-url: ^8.4.0 - yargs-parser: 20.2.4 - checksum: 916ce096b71e7e859d19c0f25e4eb8a2fee2cab608f805f698f6d2c5fef2fe6359d18a7ca5019c2aa2535a31b2e0e1416514d4994f7e0124ac88e3a7fa222b36 - languageName: node - linkType: hard - -"@lerna/describe-ref@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/describe-ref@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - npmlog: ^4.1.2 - checksum: 784cb6ed5bc231c3de0f2b21657511ec3beb633b19826c4af3e54d313bd3040b9bfc575de8ce1960358ec95333d7b77a4b9ba19d74b61737a5a32f0c4c5d708c - languageName: node - linkType: hard - -"@lerna/diff@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/diff@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@lerna/command": 5.0.0 - "@lerna/validation-error": 5.0.0 - npmlog: ^4.1.2 - checksum: 1629da4e07f67beed4ef150699fdb295bbed851f8c69663883149e32c4596e781d1cee1d8a10bb6413a6c79a96aff4918bef76dffc707a7aa1b053939bc1074c - languageName: node - linkType: hard - -"@lerna/exec@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/exec@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@lerna/command": 5.0.0 - "@lerna/filter-options": 5.0.0 - "@lerna/profiler": 5.0.0 - "@lerna/run-topologically": 5.0.0 - "@lerna/validation-error": 5.0.0 - p-map: ^4.0.0 - checksum: 6dd5b13f82843eeaf21e5030380c5c15c40affe230f42bd56ea568330da89cf3e9713a7f3c65068ba98fbae74ab05d7fd60e904a5f006ff2ecdbcce195952fd1 - languageName: node - linkType: hard - -"@lerna/filter-options@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/filter-options@npm:5.0.0" - dependencies: - "@lerna/collect-updates": 5.0.0 - "@lerna/filter-packages": 5.0.0 - dedent: ^0.7.0 - npmlog: ^4.1.2 - checksum: 0adeb55b94ec758b6d3c2ced6c3ec7315abe98333a742a72658238a96bee22bb14bebb892777ed1b13b7a305116e1eea4d02fb99793909a6284ddda572107eaa - languageName: node - linkType: hard - -"@lerna/filter-packages@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/filter-packages@npm:5.0.0" - dependencies: - "@lerna/validation-error": 5.0.0 - multimatch: ^5.0.0 - npmlog: ^4.1.2 - checksum: 3d0117cc1cb96a194a1d9a862c70cf1f41cef823b82e9ec16fdea34405151daade6ac8f39c03082c11f5225fdb7236284c08a4e7bfda598f238fc33bd23e3b4f - languageName: node - linkType: hard - -"@lerna/get-npm-exec-opts@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/get-npm-exec-opts@npm:5.0.0" - dependencies: - npmlog: ^4.1.2 - checksum: 48c0673ca1a4862140a82fef95001e4f6a8f5b0f700c1df6998f75d8f21bbe241ad5ad3ee5af43b068a77b79fd14746155f7b086d31b67d96579f5eab19f26d4 - languageName: node - linkType: hard - -"@lerna/get-packed@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/get-packed@npm:5.0.0" - dependencies: - fs-extra: ^9.1.0 - ssri: ^8.0.1 - tar: ^6.1.0 - checksum: f246da047d9f2703b35309a83cd92bb1d8af0a06405024ce99c25f5b2909d687f534ba44bed3f4419abe5710f228b6b980d9dff568baa569cb6f324d3088a9e8 - languageName: node - linkType: hard - -"@lerna/github-client@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/github-client@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@octokit/plugin-enterprise-rest": ^6.0.1 - "@octokit/rest": ^18.1.0 - git-url-parse: ^11.4.4 - npmlog: ^4.1.2 - checksum: 936ecbfd382867465bc9d269eb7ceb071a3764ba0c8cd89c014fa4edc3f769b42193cc8a490a5a93a0d86b65bcab52d57f7a6e7c8f9eecdd0076e5d7e53a3a44 - languageName: node - linkType: hard - -"@lerna/gitlab-client@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/gitlab-client@npm:5.0.0" - dependencies: - node-fetch: ^2.6.1 - npmlog: ^4.1.2 - whatwg-url: ^8.4.0 - checksum: 6d533a4b381094d7f87c276341f15789729e06aeb44e3c3bb4e57d17485113d3d741ed2d15de36cccedef0adfc0b82a52847764bcfb0a0780f97ca1a53e05cbe - languageName: node - linkType: hard - -"@lerna/global-options@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/global-options@npm:5.0.0" - checksum: b65a9e8f3e87f2d0e764cc3f6ec7ae047816395b80ff155fc0ad5ffc3df8f254df0ebc01d58ce21da970d23783a463d5e6c054148762112ceb15bd277a44933d - languageName: node - linkType: hard - -"@lerna/has-npm-version@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/has-npm-version@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - semver: ^7.3.4 - checksum: 7ddcaf2b41fbc2b50e70cd0f5d259fa55d83a1cf8663b7ad7dd427ed0ec9d9008ddd342c3beed15225255192e16504ed0feef3aa7ce8c46bc1d9ad187073bd29 - languageName: node - linkType: hard - -"@lerna/import@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/import@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@lerna/command": 5.0.0 - "@lerna/prompt": 5.0.0 - "@lerna/pulse-till-done": 5.0.0 - "@lerna/validation-error": 5.0.0 - dedent: ^0.7.0 - fs-extra: ^9.1.0 - p-map-series: ^2.1.0 - checksum: 07606a434dcf3c14afb664539f4ff4d89e67ba3f140fda8a9b5e92da932918bca6e5ac710ce98e19b00b73fc2332c19260a9c50407baed4b97083b92b731568f - languageName: node - linkType: hard - -"@lerna/info@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/info@npm:5.0.0" - dependencies: - "@lerna/command": 5.0.0 - "@lerna/output": 5.0.0 - envinfo: ^7.7.4 - checksum: a598499a1679ef27f32dbf08ab00fb02fc8f12fcf67da5129a7cce00d9fca943b0014276398ac57e27856e443d67a994ae33c343f3a41824c6a0cf629eecc631 - languageName: node - linkType: hard - -"@lerna/init@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/init@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@lerna/command": 5.0.0 - fs-extra: ^9.1.0 - p-map: ^4.0.0 - write-json-file: ^4.3.0 - checksum: e10c42cc9164f8518c2a713906d648ab37d081ad13d13c2397336b357d8412f35e628537acc668b3da55744e343697dbe606e36039b9aab648c4605ff9ad666b - languageName: node - linkType: hard - -"@lerna/link@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/link@npm:5.0.0" - dependencies: - "@lerna/command": 5.0.0 - "@lerna/package-graph": 5.0.0 - "@lerna/symlink-dependencies": 5.0.0 - p-map: ^4.0.0 - slash: ^3.0.0 - checksum: 68bb4ad21dae956234b36f333fcb5ba996ecf549e5c7b46ae01b8a1005c69bdeabb4f59a6bfc1d8f4a08a715b14c7b5398233cc7e2e70218adca28ed8f6c300b - languageName: node - linkType: hard - -"@lerna/list@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/list@npm:5.0.0" - dependencies: - "@lerna/command": 5.0.0 - "@lerna/filter-options": 5.0.0 - "@lerna/listable": 5.0.0 - "@lerna/output": 5.0.0 - checksum: 1b7d89dc241c8e1caa3b4f182e9634a87ed8c11e85abe20c1d39e857ce19ca4f1d3d0ed283aa272f5e708d29145c20f187153728569e708c6b2116f836ca61ff - languageName: node - linkType: hard - -"@lerna/listable@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/listable@npm:5.0.0" - dependencies: - "@lerna/query-graph": 5.0.0 - chalk: ^4.1.0 - columnify: ^1.5.4 - checksum: 86148764bddc5ad70d8a4693333d79d87cac50300a48601bc68bb05ac21f5ad7c371ee73290a2db2331e8ca1f447368c80133847494730f3ae43348660321977 - languageName: node - linkType: hard - -"@lerna/log-packed@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/log-packed@npm:5.0.0" - dependencies: - byte-size: ^7.0.0 - columnify: ^1.5.4 - has-unicode: ^2.0.1 - npmlog: ^4.1.2 - checksum: 06f34d1d52725a4141290ea89ad433c55384876b725a0571a96d93a507333ea16750a85a2a29439d002b764b5c737aeba51b4aefaabde7a1269dcfd9d108fe72 - languageName: node - linkType: hard - -"@lerna/npm-conf@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/npm-conf@npm:5.0.0" - dependencies: - config-chain: ^1.1.12 - pify: ^5.0.0 - checksum: d5df3d249c548ca1d976c5273dbb6702d2d6d05078db34312a56a60dd6916568bbdc478b11fbe4f6109a202cc7aad15b565cee730c7d91d8c3c1631858cb1e9e - languageName: node - linkType: hard - -"@lerna/npm-dist-tag@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/npm-dist-tag@npm:5.0.0" - dependencies: - "@lerna/otplease": 5.0.0 - npm-package-arg: ^8.1.0 - npm-registry-fetch: ^9.0.0 - npmlog: ^4.1.2 - checksum: 3e25f91f7076ebf28c4e01dfd558ba4ee6ea6c01d64fd02e6dc565adb9f6421b7eff4fd5c5324bf62ac10602843fbc3c74b8f7075e149616e5957fd2e5afc6ff - languageName: node - linkType: hard - -"@lerna/npm-install@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/npm-install@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@lerna/get-npm-exec-opts": 5.0.0 - fs-extra: ^9.1.0 - npm-package-arg: ^8.1.0 - npmlog: ^4.1.2 - signal-exit: ^3.0.3 - write-pkg: ^4.0.0 - checksum: fc23f1c2cbc3114c8dddc70676c77aee995a29279753bf5a0ce9190e03f004a787c9fd83c7d7a861b58ac63a16540c6bb40afbe045e1642a18e05b1d7276d53e - languageName: node - linkType: hard - -"@lerna/npm-publish@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/npm-publish@npm:5.0.0" - dependencies: - "@lerna/otplease": 5.0.0 - "@lerna/run-lifecycle": 5.0.0 - fs-extra: ^9.1.0 - libnpmpublish: ^4.0.0 - npm-package-arg: ^8.1.0 - npmlog: ^4.1.2 - pify: ^5.0.0 - read-package-json: ^3.0.0 - checksum: 828b74413bb8b77bc6a808feb27823827fcdbf74e4b14a2b41cb580cceba3e5f971cb3ff69deed71c5cf58cee03b345256b4444b01723ae8abd291356a3746cb - languageName: node - linkType: hard - -"@lerna/npm-run-script@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/npm-run-script@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - "@lerna/get-npm-exec-opts": 5.0.0 - npmlog: ^4.1.2 - checksum: 17d4adf9ab021939fb6863a068a02813862c71f301b0a0bab9fa6c884ef4f53f8dceb44fcfd1c641115edd4ee928f4e02888651ec9a024278fc310d69c1e11b8 - languageName: node - linkType: hard - -"@lerna/otplease@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/otplease@npm:5.0.0" - dependencies: - "@lerna/prompt": 5.0.0 - checksum: 31825528376f2dfacbef0eded9569eef623f1a012cc719f5285e1c7b27553e4ea06c0e44dcf606fd24a8bda15cd249eb538b9db467794b3d07ea6f0c2b210945 - languageName: node - linkType: hard - -"@lerna/output@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/output@npm:5.0.0" - dependencies: - npmlog: ^4.1.2 - checksum: 8571aa7cc60ddc894a695af50c09b8c9c137b3b1227e15bde45665fffca7a686bdc0749595155b1a97e90fe0f0a696bf0770601f11f1c6d62585d5ef1926ede8 - languageName: node - linkType: hard - -"@lerna/pack-directory@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/pack-directory@npm:5.0.0" - dependencies: - "@lerna/get-packed": 5.0.0 - "@lerna/package": 5.0.0 - "@lerna/run-lifecycle": 5.0.0 - "@lerna/temp-write": 5.0.0 - npm-packlist: ^2.1.4 - npmlog: ^4.1.2 - tar: ^6.1.0 - checksum: 5388b765420714a0bb03e717d868c22191d1e72a981932d32d7336874b4d550a72dac6286349f1d5bc6dfd51696cde9a61580369bab9796a20d3b3daccc19c9d - languageName: node - linkType: hard - -"@lerna/package-graph@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/package-graph@npm:5.0.0" - dependencies: - "@lerna/prerelease-id-from-version": 5.0.0 - "@lerna/validation-error": 5.0.0 - npm-package-arg: ^8.1.0 - npmlog: ^4.1.2 - semver: ^7.3.4 - checksum: b0b3115f264d00861718e5b7c061230daec37687c7c48966c0a6be0bb2f6b4238829b05190a73e54e2ea7807977c69455aa61a9050253e7af56ba765b1ec37de - languageName: node - linkType: hard - -"@lerna/package@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/package@npm:5.0.0" - dependencies: - load-json-file: ^6.2.0 - npm-package-arg: ^8.1.0 - write-pkg: ^4.0.0 - checksum: f26f677fd43eaf4588455edbfc79353434a411ff506f62dee8d9293bfe7b1cb4e4801252002476a4ec701064891841f7dae1ee43f5fdada7733d367e727e7a62 - languageName: node - linkType: hard - -"@lerna/prerelease-id-from-version@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/prerelease-id-from-version@npm:5.0.0" - dependencies: - semver: ^7.3.4 - checksum: 85eba3339fb3d17f6d95e361762fa5277ce4bbc84e2e66b013253b1ba29087a2cbbfcd090dcbda65a54d6e759a342d791635fd6397b8e3b941d620390d8af533 - languageName: node - linkType: hard - -"@lerna/profiler@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/profiler@npm:5.0.0" - dependencies: - fs-extra: ^9.1.0 - npmlog: ^4.1.2 - upath: ^2.0.1 - checksum: 3f23a917e8330fddefa610a01dddb55aea6737e763e06b58b7614bcc5c74caf5fe8bdee3b344345ea847de348a8c4d914d87039600dd6772c713611fec47bdd6 - languageName: node - linkType: hard - -"@lerna/project@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/project@npm:5.0.0" - dependencies: - "@lerna/package": 5.0.0 - "@lerna/validation-error": 5.0.0 - cosmiconfig: ^7.0.0 - dedent: ^0.7.0 - dot-prop: ^6.0.1 - glob-parent: ^5.1.1 - globby: ^11.0.2 - load-json-file: ^6.2.0 - npmlog: ^4.1.2 - p-map: ^4.0.0 - resolve-from: ^5.0.0 - write-json-file: ^4.3.0 - checksum: ee6a3c40e1bb753255bef0f74078750d6787fd26b34a4eb4505e71502484d955de79b83d3e417b52ee67ffab3acb7588555ceaa6a7675a623bc9f54b16bd6f87 - languageName: node - linkType: hard - -"@lerna/prompt@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/prompt@npm:5.0.0" - dependencies: - inquirer: ^7.3.3 - npmlog: ^4.1.2 - checksum: 4cd44c1ecfb18dff50e8ddbe4db3a180eadd173be479aaa4f1ce951353846bdf20fdc48a94c1bae34b5788989e0c8b997a17c2baed9d12a5bc86f43b81c9d709 - languageName: node - linkType: hard - -"@lerna/publish@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/publish@npm:5.0.0" - dependencies: - "@lerna/check-working-tree": 5.0.0 - "@lerna/child-process": 5.0.0 - "@lerna/collect-updates": 5.0.0 - "@lerna/command": 5.0.0 - "@lerna/describe-ref": 5.0.0 - "@lerna/log-packed": 5.0.0 - "@lerna/npm-conf": 5.0.0 - "@lerna/npm-dist-tag": 5.0.0 - "@lerna/npm-publish": 5.0.0 - "@lerna/otplease": 5.0.0 - "@lerna/output": 5.0.0 - "@lerna/pack-directory": 5.0.0 - "@lerna/prerelease-id-from-version": 5.0.0 - "@lerna/prompt": 5.0.0 - "@lerna/pulse-till-done": 5.0.0 - "@lerna/run-lifecycle": 5.0.0 - "@lerna/run-topologically": 5.0.0 - "@lerna/validation-error": 5.0.0 - "@lerna/version": 5.0.0 - fs-extra: ^9.1.0 - libnpmaccess: ^4.0.1 - npm-package-arg: ^8.1.0 - npm-registry-fetch: ^9.0.0 - npmlog: ^4.1.2 - p-map: ^4.0.0 - p-pipe: ^3.1.0 - pacote: ^13.4.1 - semver: ^7.3.4 - checksum: c45d6fd3968655c46c236b40f27cec21003232a8f165ca71c249affa27fc455d9d7f01ed2b40b5cd7e9125f807bbf3beb6b573e5e30dc812ffc74bd94f0657f5 - languageName: node - linkType: hard - -"@lerna/pulse-till-done@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/pulse-till-done@npm:5.0.0" - dependencies: - npmlog: ^4.1.2 - checksum: 9c66c24c95a64b9b0dc092da948208420f2f479ea355d2d9e8e03a2ed96f621ac557da52beb7063b457c97c87580d00c2264ec1d1a154304cb26b14ea4e12a31 - languageName: node - linkType: hard - -"@lerna/query-graph@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/query-graph@npm:5.0.0" - dependencies: - "@lerna/package-graph": 5.0.0 - checksum: 12cec89a007b24400de880a6265c7dfd4fe06e29792c409bb2cfa376137332876f7fc5fc528db193be416a5e795a6b80bc7b5ab46ee41a183135597184c1eb3a - languageName: node - linkType: hard - -"@lerna/resolve-symlink@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/resolve-symlink@npm:5.0.0" - dependencies: - fs-extra: ^9.1.0 - npmlog: ^4.1.2 - read-cmd-shim: ^2.0.0 - checksum: 657f64b02abb3cf24ac4db0453ec7e729fddebd338c844e84d000b642a931d9b2c473da39e37e042cfe7d7054203c448b9485aba486c215684a2c086a8bc9eb8 - languageName: node - linkType: hard - -"@lerna/rimraf-dir@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/rimraf-dir@npm:5.0.0" - dependencies: - "@lerna/child-process": 5.0.0 - npmlog: ^4.1.2 - path-exists: ^4.0.0 - rimraf: ^3.0.2 - checksum: a7b2023e1c54465df018dfd564ebb01bd10baf5a3612076a981533419654f3af4720de0e0d4260f6fcb48edbe63a79a7b1289229faa3750ae53652226fc903f7 - languageName: node - linkType: hard - -"@lerna/run-lifecycle@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/run-lifecycle@npm:5.0.0" - dependencies: - "@lerna/npm-conf": 5.0.0 - "@npmcli/run-script": ^3.0.2 - npmlog: ^4.1.2 - checksum: 1d893f441f54c3b95fafe356ebc22e85134a4f9f1aacaf31141657107b858517f79de5eec3ad054ee0d0042abb765e6aeafdf6eeeefecb41b785318fbce953dc - languageName: node - linkType: hard - -"@lerna/run-topologically@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/run-topologically@npm:5.0.0" - dependencies: - "@lerna/query-graph": 5.0.0 - p-queue: ^6.6.2 - checksum: 0fc337f315d23bf4035f5bdd15a4a1abb687172b0556faf3b8e3b6a848975bbdd6cba960d95755783371e66864af8e6f82bc08f70e1ef173156eeb8833f773d3 - languageName: node - linkType: hard - -"@lerna/run@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/run@npm:5.0.0" - dependencies: - "@lerna/command": 5.0.0 - "@lerna/filter-options": 5.0.0 - "@lerna/npm-run-script": 5.0.0 - "@lerna/output": 5.0.0 - "@lerna/profiler": 5.0.0 - "@lerna/run-topologically": 5.0.0 - "@lerna/timer": 5.0.0 - "@lerna/validation-error": 5.0.0 - p-map: ^4.0.0 - checksum: c05484f746b3df4e364b1abb99b02aebed518ccec6b6e3e4a5b080efdebfb3387a9b6f2ee432085d3352c853b4c623f9d61d26693d0d1fd92201a4c90dfe3086 - languageName: node - linkType: hard - -"@lerna/symlink-binary@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/symlink-binary@npm:5.0.0" - dependencies: - "@lerna/create-symlink": 5.0.0 - "@lerna/package": 5.0.0 - fs-extra: ^9.1.0 - p-map: ^4.0.0 - checksum: f2a702a12cda02d29070fe73d3bb357e8552e701d490d56d5251118be98acd1632f4e8b0e25a9d84a158b26ba4cdae4e3279ecf76a77ee6fbea2cd114d017058 - languageName: node - linkType: hard - -"@lerna/symlink-dependencies@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/symlink-dependencies@npm:5.0.0" - dependencies: - "@lerna/create-symlink": 5.0.0 - "@lerna/resolve-symlink": 5.0.0 - "@lerna/symlink-binary": 5.0.0 - fs-extra: ^9.1.0 - p-map: ^4.0.0 - p-map-series: ^2.1.0 - checksum: e76f12bbb37e85a27d3a5099679accd5b6307f900102c54bdd835c0f98c0f32adea5d01dcf262e4e0014e907615383edb2e33189e316e5d710332fbae84fd10d - languageName: node - linkType: hard - -"@lerna/temp-write@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/temp-write@npm:5.0.0" - dependencies: - graceful-fs: ^4.1.15 - is-stream: ^2.0.0 - make-dir: ^3.0.0 - temp-dir: ^1.0.0 - uuid: ^8.3.2 - checksum: 298fb6c7d11ad8c372e2e3f84a1c37f806d1498431aec03794225b28b68819881260fbffc058124e23f497ab1a9260340c1c97e478bd8fe6cee14938085e9ff0 - languageName: node - linkType: hard - -"@lerna/timer@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/timer@npm:5.0.0" - checksum: a410d33c9e0c7ceb77e05f94c550597e6dc416c644ce3a963c7a7837af22ad4046fea4733946bf984a25b67b125bb661f22d14e41799c30b091d415c85b71884 - languageName: node - linkType: hard - -"@lerna/validation-error@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/validation-error@npm:5.0.0" - dependencies: - npmlog: ^4.1.2 - checksum: 5e0d6bc2e01b622c584ed966749943073169ff7445bc203c017204cfeb62dc9e116ef3e01b0bf0733c7259db32815bc4241e4ddf6717d5ede9a092635c2fa78a - languageName: node - linkType: hard - -"@lerna/version@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/version@npm:5.0.0" - dependencies: - "@lerna/check-working-tree": 5.0.0 - "@lerna/child-process": 5.0.0 - "@lerna/collect-updates": 5.0.0 - "@lerna/command": 5.0.0 - "@lerna/conventional-commits": 5.0.0 - "@lerna/github-client": 5.0.0 - "@lerna/gitlab-client": 5.0.0 - "@lerna/output": 5.0.0 - "@lerna/prerelease-id-from-version": 5.0.0 - "@lerna/prompt": 5.0.0 - "@lerna/run-lifecycle": 5.0.0 - "@lerna/run-topologically": 5.0.0 - "@lerna/temp-write": 5.0.0 - "@lerna/validation-error": 5.0.0 - chalk: ^4.1.0 - dedent: ^0.7.0 - load-json-file: ^6.2.0 - minimatch: ^3.0.4 - npmlog: ^4.1.2 - p-map: ^4.0.0 - p-pipe: ^3.1.0 - p-reduce: ^2.1.0 - p-waterfall: ^2.1.1 - semver: ^7.3.4 - slash: ^3.0.0 - write-json-file: ^4.3.0 - checksum: 53efe53bce922b002f1a573032c893a76062732cb40aed343cc20a72c7182a0430086231d930a3d58b08daaeb7048aadd4691b2c0a8c5c2827a2a9f73e078633 - languageName: node - linkType: hard - -"@lerna/write-log-file@npm:5.0.0": - version: 5.0.0 - resolution: "@lerna/write-log-file@npm:5.0.0" - dependencies: - npmlog: ^4.1.2 - write-file-atomic: ^3.0.3 - checksum: a925093a939d71b7d80efd4b651921f56218745c468dab22bef45633708f7943eb3e69f609476e94a2a94b0e2ed909155958d1b23c8501a82224aaa9bc456178 - languageName: node - linkType: hard - "@lezer/common@npm:^1.0.0": version: 1.0.0 resolution: "@lezer/common@npm:1.0.0" @@ -11339,50 +10744,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/arborist@npm:5.2.0": - version: 5.2.0 - resolution: "@npmcli/arborist@npm:5.2.0" - dependencies: - "@isaacs/string-locale-compare": ^1.1.0 - "@npmcli/installed-package-contents": ^1.0.7 - "@npmcli/map-workspaces": ^2.0.3 - "@npmcli/metavuln-calculator": ^3.0.1 - "@npmcli/move-file": ^2.0.0 - "@npmcli/name-from-folder": ^1.0.1 - "@npmcli/node-gyp": ^2.0.0 - "@npmcli/package-json": ^2.0.0 - "@npmcli/run-script": ^3.0.0 - bin-links: ^3.0.0 - cacache: ^16.0.6 - common-ancestor-path: ^1.0.1 - json-parse-even-better-errors: ^2.3.1 - json-stringify-nice: ^1.1.4 - mkdirp: ^1.0.4 - mkdirp-infer-owner: ^2.0.0 - nopt: ^5.0.0 - npm-install-checks: ^5.0.0 - npm-package-arg: ^9.0.0 - npm-pick-manifest: ^7.0.0 - npm-registry-fetch: ^13.0.0 - npmlog: ^6.0.2 - pacote: ^13.0.5 - parse-conflict-json: ^2.0.1 - proc-log: ^2.0.0 - promise-all-reject-late: ^1.0.0 - promise-call-limit: ^1.0.1 - read-package-json-fast: ^2.0.2 - readdir-scoped-modules: ^1.1.0 - rimraf: ^3.0.2 - semver: ^7.3.7 - ssri: ^9.0.0 - treeverse: ^2.0.0 - walk-up-path: ^1.0.0 - bin: - arborist: bin/index.js - checksum: e466133cb564619f1544b53ed48632082e90d294a2c7f31103bc685b029c4ba6cb63cea845212148f28b5328ad42fd137936e3395039028b1bd84ed542b9108c - languageName: node - linkType: hard - "@npmcli/arborist@npm:^4.0.4": version: 4.3.1 resolution: "@npmcli/arborist@npm:4.3.1" @@ -11425,13 +10786,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/ci-detect@npm:^1.0.0": - version: 1.3.0 - resolution: "@npmcli/ci-detect@npm:1.3.0" - checksum: 3ba5e974c71596edf5327def31fd6af02f7ca4ec08bce39f9cfb44132dda748f9f5ad631d6f1b168e983c58d01555d31ff37f26c7d45731a9784fb936a5af11e - languageName: node - linkType: hard - "@npmcli/fs@npm:^1.0.0": version: 1.0.0 resolution: "@npmcli/fs@npm:1.0.0" @@ -11468,23 +10822,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/git@npm:^3.0.0": - version: 3.0.1 - resolution: "@npmcli/git@npm:3.0.1" - dependencies: - "@npmcli/promise-spawn": ^3.0.0 - lru-cache: ^7.4.4 - mkdirp: ^1.0.4 - npm-pick-manifest: ^7.0.0 - proc-log: ^2.0.0 - promise-inflight: ^1.0.1 - promise-retry: ^2.0.1 - semver: ^7.3.5 - which: ^2.0.2 - checksum: 0e289d11e2d6034652993f2d05f68396d8377603a1c1f983b2d0893e7591a22bcf3896a43c7dfbcc43f03c308a110f0b9ec37e0191e48b0bd1d236e0f57a3ec6 - languageName: node - linkType: hard - "@npmcli/installed-package-contents@npm:^1.0.6, @npmcli/installed-package-contents@npm:^1.0.7": version: 1.0.7 resolution: "@npmcli/installed-package-contents@npm:1.0.7" @@ -11509,18 +10846,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/map-workspaces@npm:^2.0.3": - version: 2.0.3 - resolution: "@npmcli/map-workspaces@npm:2.0.3" - dependencies: - "@npmcli/name-from-folder": ^1.0.1 - glob: ^8.0.1 - minimatch: ^5.0.1 - read-package-json-fast: ^2.0.3 - checksum: c9878a22168d3f2d8df9e339ed0799628db3ea8502bd623b5bbe7b0dfcac065b3310e4093df94667a4a28ef2c54c02ce6956467a8aaa2e150305f2fe1cd64f9d - languageName: node - linkType: hard - "@npmcli/metavuln-calculator@npm:^2.0.0": version: 2.0.0 resolution: "@npmcli/metavuln-calculator@npm:2.0.0" @@ -11533,18 +10858,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/metavuln-calculator@npm:^3.0.1": - version: 3.1.0 - resolution: "@npmcli/metavuln-calculator@npm:3.1.0" - dependencies: - cacache: ^16.0.0 - json-parse-even-better-errors: ^2.3.1 - pacote: ^13.0.3 - semver: ^7.3.5 - checksum: 39fb474e239d3f221178f0c2f6089cd4a2fce8183343b7f52f8f9fe0b3cb0a98b386b15c9afe63a0b0dc2ae5302497d00eb2de2f4b3431953dbf05e69d613c9a - languageName: node - linkType: hard - "@npmcli/move-file@npm:^1.0.1": version: 1.0.1 resolution: "@npmcli/move-file@npm:1.0.1" @@ -11588,13 +10901,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/node-gyp@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/node-gyp@npm:2.0.0" - checksum: b6bbf0015000f9b64d31aefdc30f244b0348c57adb64017667e0304e96c38644d83da46a4581252652f5d606268df49118f9c9993b41d8020f62b7b15dd2c8d8 - languageName: node - linkType: hard - "@npmcli/package-json@npm:^1.0.1": version: 1.0.1 resolution: "@npmcli/package-json@npm:1.0.1" @@ -11604,15 +10910,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/package-json@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/package-json@npm:2.0.0" - dependencies: - json-parse-even-better-errors: ^2.3.1 - checksum: 7a598e42d2778654ec87438ebfafbcbafbe5a5f5e89ed2ca1db6ca3f94ef14655e304aa41f77632a2a3f5c66b6bd5960bd9370e0ceb4902ea09346720364f9e4 - languageName: node - linkType: hard - "@npmcli/promise-spawn@npm:^1.2.0, @npmcli/promise-spawn@npm:^1.3.2": version: 1.3.2 resolution: "@npmcli/promise-spawn@npm:1.3.2" @@ -11622,15 +10919,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/promise-spawn@npm:^3.0.0": - version: 3.0.0 - resolution: "@npmcli/promise-spawn@npm:3.0.0" - dependencies: - infer-owner: ^1.0.4 - checksum: 3454465a2731cea5875ba51f80873e2205e5bd878c31517286b0ede4ea931c7bf3de895382287e906d03710fff6f9e44186bd0eee068ce578901c5d3b58e7692 - languageName: node - linkType: hard - "@npmcli/run-script@npm:^2.0.0": version: 2.0.0 resolution: "@npmcli/run-script@npm:2.0.0" @@ -11643,18 +10931,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/run-script@npm:^3.0.0, @npmcli/run-script@npm:^3.0.1, @npmcli/run-script@npm:^3.0.2": - version: 3.0.3 - resolution: "@npmcli/run-script@npm:3.0.3" - dependencies: - "@npmcli/node-gyp": ^2.0.0 - "@npmcli/promise-spawn": ^3.0.0 - node-gyp: ^8.4.1 - read-package-json-fast: ^2.0.3 - checksum: 3d0540a95620420d6e77c796a9e9d4fdf2600b5cf5b8d1ceabda15b1dd1d88cc5abf11e28b0494f03eee79c075a1549127bcfa550eb758b08f3948557d77b27a - languageName: node - linkType: hard - "@nuxtjs/opencollective@npm:0.3.2": version: 0.3.2 resolution: "@nuxtjs/opencollective@npm:0.3.2" @@ -11959,13 +11235,6 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-enterprise-rest@npm:^6.0.1": - version: 6.0.1 - resolution: "@octokit/plugin-enterprise-rest@npm:6.0.1" - checksum: 1c9720002f31daf62f4f48e73557dcdd7fcde6e0f6d43256e3f2ec827b5548417297186c361fb1af497fdcc93075a7b681e6ff06e2f20e4a8a3e74cc09d1f7e3 - languageName: node - linkType: hard - "@octokit/plugin-paginate-rest@npm:^2.6.2": version: 2.7.0 resolution: "@octokit/plugin-paginate-rest@npm:2.7.0" @@ -12113,7 +11382,7 @@ __metadata: languageName: node linkType: hard -"@octokit/rest@npm:^18.1.0, @octokit/rest@npm:^18.5.3": +"@octokit/rest@npm:^18.5.3": version: 18.5.6 resolution: "@octokit/rest@npm:18.5.6" dependencies: @@ -12738,6 +12007,13 @@ __metadata: languageName: node linkType: hard +"@sinclair/typebox@npm:^0.24.1": + version: 0.24.42 + resolution: "@sinclair/typebox@npm:0.24.42" + checksum: 83a3083b71063ad270669308634f7c5b473272da71cbc405343b2ff774d641ec2be0993e0a61386f8ef3f8b786c173dc01921a5bc6627d95657eb98f19f1a4c4 + languageName: node + linkType: hard + "@sindresorhus/is@npm:^4.0.0": version: 4.0.0 resolution: "@sindresorhus/is@npm:4.0.0" @@ -12763,15 +12039,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^8.0.1": - version: 8.1.0 - resolution: "@sinonjs/fake-timers@npm:8.1.0" - dependencies: - "@sinonjs/commons": ^1.7.0 - checksum: 09b5a158ce013a6c37613258bad79ca4efeb99b1f59c41c73cca36cac00b258aefcf46eeea970fccf06b989414d86fe9f54c1102272c0c3bdd51a313cea80949 - languageName: node - linkType: hard - "@sinonjs/samsam@npm:^6.1.1": version: 6.1.1 resolution: "@sinonjs/samsam@npm:6.1.1" @@ -13022,126 +12289,126 @@ __metadata: languageName: node linkType: hard -"@swc/core-android-arm-eabi@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-android-arm-eabi@npm:1.2.249" +"@swc/core-android-arm-eabi@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-android-arm-eabi@npm:1.3.2" dependencies: "@swc/wasm": 1.2.122 conditions: os=android & cpu=arm languageName: node linkType: hard -"@swc/core-android-arm64@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-android-arm64@npm:1.2.249" +"@swc/core-android-arm64@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-android-arm64@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-darwin-arm64@npm:1.2.249" +"@swc/core-darwin-arm64@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-darwin-arm64@npm:1.3.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-darwin-x64@npm:1.2.249" +"@swc/core-darwin-x64@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-darwin-x64@npm:1.3.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-freebsd-x64@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-freebsd-x64@npm:1.2.249" +"@swc/core-freebsd-x64@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-freebsd-x64@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.2.249" +"@swc/core-linux-arm-gnueabihf@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-arm64-gnu@npm:1.2.249" +"@swc/core-linux-arm64-gnu@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.2" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-arm64-musl@npm:1.2.249" +"@swc/core-linux-arm64-musl@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.2" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-x64-gnu@npm:1.2.249" +"@swc/core-linux-x64-gnu@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.2" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-linux-x64-musl@npm:1.2.249" +"@swc/core-linux-x64-musl@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-linux-x64-musl@npm:1.3.2" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-win32-arm64-msvc@npm:1.2.249" +"@swc/core-win32-arm64-msvc@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-win32-ia32-msvc@npm:1.2.249" +"@swc/core-win32-ia32-msvc@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.2" dependencies: "@swc/wasm": 1.2.130 conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.2.249": - version: 1.2.249 - resolution: "@swc/core-win32-x64-msvc@npm:1.2.249" +"@swc/core-win32-x64-msvc@npm:1.3.2": + version: 1.3.2 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.2.239": - version: 1.2.249 - resolution: "@swc/core@npm:1.2.249" + version: 1.3.2 + resolution: "@swc/core@npm:1.3.2" dependencies: - "@swc/core-android-arm-eabi": 1.2.249 - "@swc/core-android-arm64": 1.2.249 - "@swc/core-darwin-arm64": 1.2.249 - "@swc/core-darwin-x64": 1.2.249 - "@swc/core-freebsd-x64": 1.2.249 - "@swc/core-linux-arm-gnueabihf": 1.2.249 - "@swc/core-linux-arm64-gnu": 1.2.249 - "@swc/core-linux-arm64-musl": 1.2.249 - "@swc/core-linux-x64-gnu": 1.2.249 - "@swc/core-linux-x64-musl": 1.2.249 - "@swc/core-win32-arm64-msvc": 1.2.249 - "@swc/core-win32-ia32-msvc": 1.2.249 - "@swc/core-win32-x64-msvc": 1.2.249 + "@swc/core-android-arm-eabi": 1.3.2 + "@swc/core-android-arm64": 1.3.2 + "@swc/core-darwin-arm64": 1.3.2 + "@swc/core-darwin-x64": 1.3.2 + "@swc/core-freebsd-x64": 1.3.2 + "@swc/core-linux-arm-gnueabihf": 1.3.2 + "@swc/core-linux-arm64-gnu": 1.3.2 + "@swc/core-linux-arm64-musl": 1.3.2 + "@swc/core-linux-x64-gnu": 1.3.2 + "@swc/core-linux-x64-musl": 1.3.2 + "@swc/core-win32-arm64-msvc": 1.3.2 + "@swc/core-win32-ia32-msvc": 1.3.2 + "@swc/core-win32-x64-msvc": 1.3.2 dependenciesMeta: "@swc/core-android-arm-eabi": optional: true @@ -13171,7 +12438,7 @@ __metadata: optional: true bin: swcx: run_swcx.js - checksum: c47f17fefccd94fb7be3787e832f3e3fd62c07e22f8bf566435bd1de032efd9fdefb4a64e0eefd684a9a24902509a235afeacb5ed93e03512fa09064bf1e1268 + checksum: c2c83d0e6b4c56d65fb3723aa0be5e777823a6efe5b12702d4d44827a6c6dd8fac3c5dec7ff45222c7b22b4084bffc846f8497d697e61a1706817977256a65dc languageName: node linkType: hard @@ -13218,19 +12485,18 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:4.2.3": - version: 4.2.3 - resolution: "@tanstack/query-core@npm:4.2.3" - checksum: b37efdc32b1731575eba398eda3b7a4cd3ed25ee1032d5200124c37ab4e58711d310e2e29e9e51284553a7c03c85e55cf8da6833bc3b1e215e0e43e7399ab3ca +"@tanstack/query-core@npm:4.3.8": + version: 4.3.8 + resolution: "@tanstack/query-core@npm:4.3.8" + checksum: 25ea16db7632f5acc7c80e60b9f1410cf9df430240ec5077a1607c3ffea14db2c78db800f7bc70efafd7ce26f7216cda767824fa279049cc9c7e40ac1818f38e languageName: node linkType: hard "@tanstack/react-query@npm:^4.1.3": - version: 4.2.3 - resolution: "@tanstack/react-query@npm:4.2.3" + version: 4.3.9 + resolution: "@tanstack/react-query@npm:4.3.9" dependencies: - "@tanstack/query-core": 4.2.3 - "@types/use-sync-external-store": ^0.0.3 + "@tanstack/query-core": 4.3.8 use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -13241,7 +12507,7 @@ __metadata: optional: true react-native: optional: true - checksum: 0a38ae05271e1669c6efd5cc77608103b6dfde577ecdc88c3f0e72953aea11c102c9b5a49fa2ca822f260a68f9f9646c5e847e7d87c99117b2c2e3b1356cbc8b + checksum: 1f77aadda55722519458185b4db5378d05d95bcbe9f7c4fda0ef82121a975223ede1a56729db6030984b336e533c04b1c7aa8fed344e5c52ec73a0486b65f8e7 languageName: node linkType: hard @@ -13249,12 +12515,12 @@ __metadata: version: 0.0.0-use.local resolution: "@techdocs/cli@workspace:packages/techdocs-cli" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/cli-common": ^0.1.10 - "@backstage/config": ^1.0.2 - "@backstage/plugin-techdocs-node": ^1.4.0 + "@backstage/backend-common": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/cli-common": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/plugin-techdocs-node": "workspace:^" "@types/commander": ^2.12.2 "@types/dockerode": ^3.3.0 "@types/fs-extra": ^9.0.6 @@ -13507,19 +12773,6 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.0.0": - version: 7.1.9 - resolution: "@types/babel__core@npm:7.1.9" - dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: d92c530efc3e50147f7956fc2aa49162508d2c5abffea7818051dfa9a9c9bc263b7d3da7d6fa826669ff8c68d733bbaced2dfdd486282b8bd013ccc3a0a3b7f6 - languageName: node - linkType: hard - "@types/babel__core@npm:^7.1.14": version: 7.1.18 resolution: "@types/babel__core@npm:7.1.18" @@ -13552,7 +12805,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.4, @types/babel__traverse@npm:^7.0.6": +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": version: 7.0.15 resolution: "@types/babel__traverse@npm:7.0.15" dependencies: @@ -14082,7 +13335,7 @@ __metadata: languageName: node linkType: hard -"@types/graceful-fs@npm:^4.1.2": +"@types/graceful-fs@npm:^4.1.3": version: 4.1.5 resolution: "@types/graceful-fs@npm:4.1.5" dependencies: @@ -14238,13 +13491,13 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^27": - version: 27.5.2 - resolution: "@types/jest@npm:27.5.2" +"@types/jest@npm:^29.0.0": + version: 29.0.3 + resolution: "@types/jest@npm:29.0.3" dependencies: - jest-matcher-utils: ^27.0.0 - pretty-format: ^27.0.0 - checksum: 7e11c6826aa429ad990dc262e4e4b54aa36573287fddf15773e4137f07d11d3105f0dd9f1baff73252160a057df23f5529bb83b1bf83cd3f45f9460a5ca5c22e + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: 14a8ec1954540ec59f4072c3c4dbc6b5d5ff616556c98671aca26606bdf9d49616a3f269f3e488c80cd481ee19880351575c1f6895827628818e193600c121e0 languageName: node linkType: hard @@ -14288,6 +13541,17 @@ __metadata: languageName: node linkType: hard +"@types/jsdom@npm:^20.0.0": + version: 20.0.0 + resolution: "@types/jsdom@npm:20.0.0" + dependencies: + "@types/node": "*" + "@types/tough-cookie": "*" + parse5: ^7.0.0 + checksum: 13e67d31347e02d46ec6a23919b3ce39d86136665922a2a6cb977e216a2f46c22d2f025d0586a64ab492ebaa5f43da669b6f173a5a8cfd3e3bb7c9d19b6cfa9e + languageName: node + linkType: hard + "@types/json-buffer@npm:~3.0.0": version: 3.0.0 resolution: "@types/json-buffer@npm:3.0.0" @@ -15237,13 +14501,6 @@ __metadata: languageName: node linkType: hard -"@types/use-sync-external-store@npm:^0.0.3": - version: 0.0.3 - resolution: "@types/use-sync-external-store@npm:0.0.3" - checksum: 161ddb8eec5dbe7279ac971531217e9af6b99f7783213566d2b502e2e2378ea19cf5e5ea4595039d730aa79d3d35c6567d48599f69773a02ffcff1776ec2a44e - languageName: node - linkType: hard - "@types/uuid@npm:^8.0.0": version: 8.3.4 resolution: "@types/uuid@npm:8.3.4" @@ -15279,6 +14536,13 @@ __metadata: languageName: node linkType: hard +"@types/whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/whatwg-mimetype@npm:3.0.0" + checksum: 98254edcddb5b9580aa41c19e6c96d2bfb178285d5c2560e3a1f321f14da70192adc82950baecd2cad5876098b0677fbe813db1edf9ab9ba0a9996f0bf2bb703 + languageName: node + linkType: hard + "@types/ws@npm:^6.0.1": version: 6.0.4 resolution: "@types/ws@npm:6.0.4" @@ -15322,6 +14586,15 @@ __metadata: languageName: node linkType: hard +"@types/yargs@npm:^17.0.8": + version: 17.0.12 + resolution: "@types/yargs@npm:17.0.12" + dependencies: + "@types/yargs-parser": "*" + checksum: 5b41d21d8624199f89db82209b2adab2e47867b3677e852fde65698be2ca48364b14c2e70cb0adc9bca4a2102c93dad2409cae0ad666ea36ae031ae1cb08a7b5 + languageName: node + linkType: hard + "@types/yarnpkg__lockfile@npm:^1.1.4": version: 1.1.5 resolution: "@types/yarnpkg__lockfile@npm:1.1.5" @@ -15811,20 +15084,19 @@ __metadata: languageName: node linkType: hard -"@whatwg-node/fetch@npm:^0.3.0": - version: 0.3.2 - resolution: "@whatwg-node/fetch@npm:0.3.2" +"@whatwg-node/fetch@npm:^0.4.0": + version: 0.4.4 + resolution: "@whatwg-node/fetch@npm:0.4.4" dependencies: "@peculiar/webcrypto": ^1.4.0 abort-controller: ^3.0.0 busboy: ^1.6.0 - event-target-polyfill: ^0.0.3 form-data-encoder: ^1.7.1 formdata-node: ^4.3.1 node-fetch: ^2.6.7 undici: ^5.8.0 web-streams-polyfill: ^3.2.0 - checksum: d9cb1b1293694edf0d61889512e5b5a0b8b69db2cf8c4cca4acdbbe652f899742456d10954312ef96a8f7257a898d6275b50df03cc481e5a97740cb301930892 + checksum: f91ebad3c07f1244dec0c57b1bdc4d70e8e2b0eccd237407f649439eb091e1e8a23dfb8e13159468c727537c5ebf6f66f20f5659ca682495cd1a0752de2c2fad languageName: node linkType: hard @@ -15880,18 +15152,6 @@ __metadata: languageName: node linkType: hard -"JSONStream@npm:^1.0.4": - version: 1.3.5 - resolution: "JSONStream@npm:1.3.5" - dependencies: - jsonparse: ^1.2.0 - through: ">=2.2.7 <3" - bin: - JSONStream: ./bin.js - checksum: 2605fa124260c61bad38bb65eba30d2f72216a78e94d0ab19b11b4e0327d572b8d530c0c9cc3b0764f727ad26d39e00bf7ebad57781ca6368394d73169c59e46 - languageName: node - linkType: hard - "a-sync-waterfall@npm:^1.0.0": version: 1.0.1 resolution: "a-sync-waterfall@npm:1.0.1" @@ -15906,6 +15166,13 @@ __metadata: languageName: node linkType: hard +"abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e + languageName: node + linkType: hard + "abbrev@npm:1": version: 1.1.1 resolution: "abbrev@npm:1.1.1" @@ -16008,13 +15275,6 @@ __metadata: languageName: node linkType: hard -"add-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "add-stream@npm:1.0.0" - checksum: 3e9e8b0b8f0170406d7c3a9a39bfbdf419ccccb0fd2a396338c0fda0a339af73bf738ad414fc520741de74517acf0dd92b4a36fd3298a47fd5371eee8f2c5a06 - languageName: node - linkType: hard - "address@npm:^1.0.1, address@npm:^1.1.2": version: 1.1.2 resolution: "address@npm:1.1.2" @@ -16418,7 +15678,7 @@ __metadata: languageName: node linkType: hard -"aproba@npm:^1.0.3 || ^2.0.0, aproba@npm:^2.0.0": +"aproba@npm:^1.0.3 || ^2.0.0": version: 2.0.0 resolution: "aproba@npm:2.0.0" checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 @@ -16596,13 +15856,6 @@ __metadata: languageName: node linkType: hard -"array-ify@npm:^1.0.0": - version: 1.0.0 - resolution: "array-ify@npm:1.0.0" - checksum: c0502015b319c93dd4484f18036bcc4b654eb76a4aa1f04afbcef11ac918859bb1f5d71ba1f0f1141770db9eef1a4f40f1761753650873068010bbf7bcdae4a4 - languageName: node - linkType: hard - "array-includes@npm:^3.1.2, array-includes@npm:^3.1.4": version: 3.1.4 resolution: "array-includes@npm:3.1.4" @@ -17022,21 +16275,20 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^27.5.1": - version: 27.5.1 - resolution: "babel-jest@npm:27.5.1" +"babel-jest@npm:^29.0.3": + version: 29.0.3 + resolution: "babel-jest@npm:29.0.3" dependencies: - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/transform": ^29.0.3 "@types/babel__core": ^7.1.14 babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^27.5.1 + babel-preset-jest: ^29.0.2 chalk: ^4.0.0 graceful-fs: ^4.2.9 slash: ^3.0.0 peerDependencies: "@babel/core": ^7.8.0 - checksum: 4e93e6e9fb996cc5f1505e924eb8e8cc7b25c294ba9629762a2715390f48af6a4c14dbb84cd9730013ac0e03267a5a9aa2fb6318c544489cda7f50f4e506def4 + checksum: 4670945691c204464f7694017d59148b97cdbd51ff91ef492340ef5d6bbc74c461fa698a5feb04a93515300632ed44a55e85500bb61206d8a7ff60afb5b6da48 languageName: node linkType: hard @@ -17062,15 +16314,15 @@ __metadata: languageName: node linkType: hard -"babel-plugin-jest-hoist@npm:^27.5.1": - version: 27.5.1 - resolution: "babel-plugin-jest-hoist@npm:27.5.1" +"babel-plugin-jest-hoist@npm:^29.0.2": + version: 29.0.2 + resolution: "babel-plugin-jest-hoist@npm:29.0.2" dependencies: "@babel/template": ^7.3.3 "@babel/types": ^7.3.3 - "@types/babel__core": ^7.0.0 + "@types/babel__core": ^7.1.14 "@types/babel__traverse": ^7.0.6 - checksum: 709c17727aa8fd3be755d256fb514bf945a5c2ea6017f037d80280fc44ae5fe7dfeebf63d8412df53796455c2c216119d628d8cc90b099434fd819005943d058 + checksum: e02ab2c56b471940bc147d75808f6fb5d18b81382088beb36088d2fee8c5f9699b2a814a98884539191d43871d66770928e09c268c095ec39aad5766c3337f34 languageName: node linkType: hard @@ -17209,15 +16461,15 @@ __metadata: languageName: node linkType: hard -"babel-preset-jest@npm:^27.5.1": - version: 27.5.1 - resolution: "babel-preset-jest@npm:27.5.1" +"babel-preset-jest@npm:^29.0.2": + version: 29.0.2 + resolution: "babel-preset-jest@npm:29.0.2" dependencies: - babel-plugin-jest-hoist: ^27.5.1 + babel-plugin-jest-hoist: ^29.0.2 babel-preset-current-node-syntax: ^1.0.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 251bcea11c18fd9672fec104eadb45b43f117ceeb326fa7345ced778d4c1feab29343cd7a87a1dcfae4997d6c851a8b386d7f7213792da6e23b74f4443a8976d + checksum: 485db525f4cd38c02c29edcd7240dd232e8d6dbcaef88bfa4765ad3057ed733512f1b7aad06f4bf9661afefeb0ada2c4e259d130113b0289d7db574f82bbd4f8 languageName: node linkType: hard @@ -17759,6 +17011,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.3": + version: 4.21.4 + resolution: "browserslist@npm:4.21.4" + dependencies: + caniuse-lite: ^1.0.30001400 + electron-to-chromium: ^1.4.251 + node-releases: ^2.0.6 + update-browserslist-db: ^1.0.9 + bin: + browserslist: cli.js + checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -17869,15 +17135,6 @@ __metadata: languageName: node linkType: hard -"builtins@npm:^5.0.0": - version: 5.0.1 - resolution: "builtins@npm:5.0.1" - dependencies: - semver: ^7.0.0 - checksum: 66d204657fe36522822a95b288943ad11b58f5eaede235b11d8c4edaa28ce4800087d44a2681524c340494aadb120a0068011acabe99d30e8f11a7d826d83515 - languageName: node - linkType: hard - "busboy@npm:^1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" @@ -17894,13 +17151,6 @@ __metadata: languageName: node linkType: hard -"byte-size@npm:^7.0.0": - version: 7.0.0 - resolution: "byte-size@npm:7.0.0" - checksum: 6cdd45fb64ac3f80d5cbbc01df7974a4613b3e64bd792b6b8211c8669ca3d1f7efd9379ba24cebfc371ce3e890817dcdaf0bd7ed99571fe2de4b946e6c31a138 - languageName: node - linkType: hard - "bytes@npm:3.0.0": version: 3.0.0 resolution: "bytes@npm:3.0.0" @@ -17941,7 +17191,7 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^16.0.0, cacache@npm:^16.0.6, cacache@npm:^16.1.0": +"cacache@npm:^16.1.0": version: 16.1.1 resolution: "cacache@npm:16.1.1" dependencies: @@ -18124,6 +17374,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001400": + version: 1.0.30001407 + resolution: "caniuse-lite@npm:1.0.30001407" + checksum: e1c449d22f120a708accc956c1780f1da01af6c226cb6a324e531dc9f26f53075bff98e6c9cfce806157cdeede459aa8de03a3407b05f71d292a57b2910018b1 + languageName: node + linkType: hard + "canvas@npm:^2.6.1": version: 2.10.1 resolution: "canvas@npm:2.10.1" @@ -18370,13 +17627,6 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^2.0.0": - version: 2.0.0 - resolution: "ci-info@npm:2.0.0" - checksum: 3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67 - languageName: node - linkType: hard - "ci-info@npm:^3.1.0, ci-info@npm:^3.2.0": version: 3.3.2 resolution: "ci-info@npm:3.3.2" @@ -18623,7 +17873,7 @@ __metadata: languageName: node linkType: hard -"cmd-shim@npm:^4.0.1, cmd-shim@npm:^4.1.0": +"cmd-shim@npm:^4.0.1": version: 4.1.0 resolution: "cmd-shim@npm:4.1.0" dependencies: @@ -18775,7 +18025,7 @@ __metadata: languageName: node linkType: hard -"color-support@npm:^1.1.2, color-support@npm:^1.1.3": +"color-support@npm:^1.1.2": version: 1.1.3 resolution: "color-support@npm:1.1.3" bin: @@ -18856,16 +18106,6 @@ __metadata: languageName: node linkType: hard -"columnify@npm:^1.5.4": - version: 1.5.4 - resolution: "columnify@npm:1.5.4" - dependencies: - strip-ansi: ^3.0.0 - wcwidth: ^1.0.0 - checksum: f0693937412ec41d387f8ae89ff8cd5811a07ad636f753f0276ba8394fd76c0f610621ebeb379d6adcb30d98696919546dbbf93a28bd4e546efc7e30d905edc2 - languageName: node - linkType: hard - "combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": version: 1.0.8 resolution: "combined-stream@npm:1.0.8" @@ -18980,16 +18220,6 @@ __metadata: languageName: node linkType: hard -"compare-func@npm:^2.0.0": - version: 2.0.0 - resolution: "compare-func@npm:2.0.0" - dependencies: - array-ify: ^1.0.0 - dot-prop: ^5.1.0 - checksum: fb71d70632baa1e93283cf9d80f30ac97f003aabee026e0b4426c9716678079ef5fea7519b84d012cbed938c476493866a38a79760564a9e21ae9433e40e6f0d - languageName: node - linkType: hard - "compare-versions@npm:4.1.3": version: 4.1.3 resolution: "compare-versions@npm:4.1.3" @@ -19141,11 +18371,11 @@ __metadata: linkType: hard "concurrently@npm:^7.0.0": - version: 7.3.0 - resolution: "concurrently@npm:7.3.0" + version: 7.4.0 + resolution: "concurrently@npm:7.4.0" dependencies: chalk: ^4.1.0 - date-fns: ^2.16.1 + date-fns: ^2.29.1 lodash: ^4.17.21 rxjs: ^7.0.0 shell-quote: ^1.7.3 @@ -19154,18 +18384,9 @@ __metadata: tree-kill: ^1.2.2 yargs: ^17.3.1 bin: + conc: dist/bin/concurrently.js concurrently: dist/bin/concurrently.js - checksum: 5de845e4947c550a6ff74ecc80e1897109abe339fe8a7fa117e7b8978362566ac4ee070e4475bdaa6fc453f780fadb9089739a02606e27e04affaa7dd8905d2d - languageName: node - linkType: hard - -"config-chain@npm:^1.1.12": - version: 1.1.12 - resolution: "config-chain@npm:1.1.12" - dependencies: - ini: ^1.3.4 - proto-list: ~1.2.1 - checksum: a16332f87212b4015afcdfc95fe42b40b162e7f10b4f4370ab3239979b6e69a41b4e6fb34d7891aa028a557f2340da236f810df433b18dfa5c408b2eb8489bf7 + checksum: cc547866ad8d009d184ca3a7115d6636052a5f56f5429d123092d651286043d7233f6429257e30e50f509894cd12798ea831896ac18092d8135f67ffcc8ac3ea languageName: node linkType: hard @@ -19247,109 +18468,6 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-angular@npm:^5.0.12": - version: 5.0.12 - resolution: "conventional-changelog-angular@npm:5.0.12" - dependencies: - compare-func: ^2.0.0 - q: ^1.5.1 - checksum: 552db8762d210a5172b1ad8cd95312e2e2a0483ba43f8d30b075a56ccf05231fdca1d4d5843028d43bec6bc7f903f480005efc5386587321a15a1fc4d2b73016 - languageName: node - linkType: hard - -"conventional-changelog-core@npm:^4.2.2": - version: 4.2.4 - resolution: "conventional-changelog-core@npm:4.2.4" - dependencies: - add-stream: ^1.0.0 - conventional-changelog-writer: ^5.0.0 - conventional-commits-parser: ^3.2.0 - dateformat: ^3.0.0 - get-pkg-repo: ^4.0.0 - git-raw-commits: ^2.0.8 - git-remote-origin-url: ^2.0.0 - git-semver-tags: ^4.1.1 - lodash: ^4.17.15 - normalize-package-data: ^3.0.0 - q: ^1.5.1 - read-pkg: ^3.0.0 - read-pkg-up: ^3.0.0 - through2: ^4.0.0 - checksum: 56d5194040495ea316e53fd64cb3614462c318f0fe54b1bf25aba6fba9b3d51cb9fdf7ac5b766f17e5529a3f90e317257394e00b0a9a5ce42caf3a59f82afb3a - languageName: node - linkType: hard - -"conventional-changelog-preset-loader@npm:^2.3.4": - version: 2.3.4 - resolution: "conventional-changelog-preset-loader@npm:2.3.4" - checksum: 23a889b7fcf6fe7653e61f32a048877b2f954dcc1e0daa2848c5422eb908e6f24c78372f8d0d2130b5ed941c02e7010c599dccf44b8552602c6c8db9cb227453 - languageName: node - linkType: hard - -"conventional-changelog-writer@npm:^5.0.0": - version: 5.0.1 - resolution: "conventional-changelog-writer@npm:5.0.1" - dependencies: - conventional-commits-filter: ^2.0.7 - dateformat: ^3.0.0 - handlebars: ^4.7.7 - json-stringify-safe: ^5.0.1 - lodash: ^4.17.15 - meow: ^8.0.0 - semver: ^6.0.0 - split: ^1.0.0 - through2: ^4.0.0 - bin: - conventional-changelog-writer: cli.js - checksum: 5c0129db44577f14b1f8de225b62a392a9927ba7fe3422cb21ad71a771b8472bd03badb7c87cb47419913abc3f2ce3759b69f59550cdc6f7a7b0459015b3b44c - languageName: node - linkType: hard - -"conventional-commits-filter@npm:^2.0.7": - version: 2.0.7 - resolution: "conventional-commits-filter@npm:2.0.7" - dependencies: - lodash.ismatch: ^4.4.0 - modify-values: ^1.0.0 - checksum: feb567f680a6da1baaa1ef3cff393b3c56a5828f77ab9df5e70626475425d109a6fee0289b4979223c62bbd63bf9c98ef532baa6fcb1b66ee8b5f49077f5d46c - languageName: node - linkType: hard - -"conventional-commits-parser@npm:^3.2.0": - version: 3.2.1 - resolution: "conventional-commits-parser@npm:3.2.1" - dependencies: - JSONStream: ^1.0.4 - is-text-path: ^1.0.1 - lodash: ^4.17.15 - meow: ^8.0.0 - split2: ^3.0.0 - through2: ^4.0.0 - trim-off-newlines: ^1.0.0 - bin: - conventional-commits-parser: cli.js - checksum: 01b83c625ac3d8f9dca0510a5e21385c9bb410b80bcb60dcfdef20e1fa7fe7fad5a280aa5e1dff8ac32ea0aea5966fa973696557d38f831f8630d4fcf31756d5 - languageName: node - linkType: hard - -"conventional-recommended-bump@npm:^6.1.0": - version: 6.1.0 - resolution: "conventional-recommended-bump@npm:6.1.0" - dependencies: - concat-stream: ^2.0.0 - conventional-changelog-preset-loader: ^2.3.4 - conventional-commits-filter: ^2.0.7 - conventional-commits-parser: ^3.2.0 - git-raw-commits: ^2.0.8 - git-semver-tags: ^4.1.1 - meow: ^8.0.0 - q: ^1.5.1 - bin: - conventional-recommended-bump: cli.js - checksum: da1d7a5f3b9f7706bede685cdcb3db67997fdaa43c310fd5bf340955c84a4b85dbb9427031522ee06dad290b730a54be987b08629d79c73720dbad3a2531146b - languageName: node - linkType: hard - "convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": version: 1.7.0 resolution: "convert-source-map@npm:1.7.0" @@ -19923,6 +19041,13 @@ __metadata: languageName: node linkType: hard +"cssom@npm:^0.5.0": + version: 0.5.0 + resolution: "cssom@npm:0.5.0" + checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 + languageName: node + linkType: hard + "cssom@npm:~0.3.6": version: 0.3.8 resolution: "cssom@npm:0.3.8" @@ -20012,8 +19137,8 @@ __metadata: linkType: hard "cypress@npm:^10.0.0": - version: 10.7.0 - resolution: "cypress@npm:10.7.0" + version: 10.8.0 + resolution: "cypress@npm:10.8.0" dependencies: "@cypress/request": ^2.88.10 "@cypress/xvfb": ^1.2.4 @@ -20034,7 +19159,7 @@ __metadata: dayjs: ^1.10.4 debug: ^4.3.2 enquirer: ^2.3.6 - eventemitter2: ^6.4.3 + eventemitter2: 6.4.7 execa: 4.1.0 executable: ^4.1.1 extract-zip: 2.0.1 @@ -20059,7 +19184,7 @@ __metadata: yauzl: ^2.10.0 bin: cypress: bin/cypress - checksum: ef8a5ae54f3404f7926e1e248ba7a27c7f66e654a9603bf9df6366731d8dd75455f6ec9cc34d7e55e1a8c3cb8e0e36ce59add81b7b14466f2063cfe45e6c00f4 + checksum: c052690049980e7721e6fca563b724fde839d87d83c1478dfe26ce7d230992717c2c4028e7157bfb39ec274473e51929f49e5aab6a23c2b25cde2a439b1c3cf9 languageName: node linkType: hard @@ -20358,13 +19483,6 @@ __metadata: languageName: node linkType: hard -"dargs@npm:^7.0.0": - version: 7.0.0 - resolution: "dargs@npm:7.0.0" - checksum: b8f1e3cba59c42e1f13a114ad4848c3fc1cf7470f633ee9e9f1043762429bc97d91ae31b826fb135eefde203a3fdb20deb0c0a0222ac29d937b8046085d668d1 - languageName: node - linkType: hard - "dashdash@npm:^1.12.0": version: 1.14.1 resolution: "dashdash@npm:1.14.1" @@ -20385,6 +19503,17 @@ __metadata: languageName: node linkType: hard +"data-urls@npm:^3.0.2": + version: 3.0.2 + resolution: "data-urls@npm:3.0.2" + dependencies: + abab: ^2.0.6 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + languageName: node + linkType: hard + "dataloader@npm:2.1.0, dataloader@npm:^2.0.0": version: 2.1.0 resolution: "dataloader@npm:2.1.0" @@ -20406,7 +19535,14 @@ __metadata: languageName: node linkType: hard -"dateformat@npm:^3.0.0, dateformat@npm:^3.0.3": +"date-fns@npm:^2.29.1": + version: 2.29.3 + resolution: "date-fns@npm:2.29.3" + checksum: e01cf5b62af04e05dfff921bb9c9933310ed0e1ae9a81eb8653452e64dc841acf7f6e01e1a5ae5644d0337e9a7f936175fd2cb6819dc122fdd9c5e86c56be484 + languageName: node + linkType: hard + +"dateformat@npm:^3.0.3": version: 3.0.3 resolution: "dateformat@npm:3.0.3" checksum: ca4911148abb09887bd9bdcd632c399b06f3ecad709a18eb594d289a1031982f441e08e281db77ffebcb2cbcbfa1ac578a7cbfbf8743f41009aa5adc1846ed34 @@ -20532,6 +19668,13 @@ __metadata: languageName: node linkType: hard +"decimal.js@npm:^10.3.1": + version: 10.4.1 + resolution: "decimal.js@npm:10.4.1" + checksum: 5da6dc74af5b73d954741b24d404ef6da07841794d9e51412a2708ec384dd7b4bced3365fb178f4cd119b7ef45f0b34344014a4dc0494c8374c5e746df3cb410 + languageName: node + linkType: hard + "decode-named-character-reference@npm:^1.0.0": version: 1.0.1 resolution: "decode-named-character-reference@npm:1.0.1" @@ -20767,13 +19910,6 @@ __metadata: languageName: node linkType: hard -"detect-indent@npm:^5.0.0": - version: 5.0.0 - resolution: "detect-indent@npm:5.0.0" - checksum: 61763211daa498e00eec073aba95d544ae5baed19286a0a655697fa4fffc9f4539c8376e2c7df8fa11d6f8eaa16c1e6a689f403ac41ee78a060278cdadefe2ff - languageName: node - linkType: hard - "detect-indent@npm:^6.0.0": version: 6.1.0 resolution: "detect-indent@npm:6.1.0" @@ -20848,6 +19984,13 @@ __metadata: languageName: node linkType: hard +"diff-sequences@npm:^29.0.0": + version: 29.0.0 + resolution: "diff-sequences@npm:29.0.0" + checksum: 2c084a3db03ecde26f649f6f2559974e01e174451debeb301a7e17199e73423a8e8ddeb9a35ae38638c084b4fa51296a4a20fa7f44f3db0c0ba566bdc704ed3d + languageName: node + linkType: hard + "diff2html@npm:^2.7.0": version: 2.12.2 resolution: "diff2html@npm:2.12.2" @@ -21059,6 +20202,15 @@ __metadata: languageName: node linkType: hard +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: ^7.0.0 + checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 + languageName: node + linkType: hard + "domhandler@npm:^4.0.0, domhandler@npm:^4.2.0": version: 4.3.0 resolution: "domhandler@npm:4.3.0" @@ -21096,24 +20248,6 @@ __metadata: languageName: node linkType: hard -"dot-prop@npm:^5.1.0": - version: 5.3.0 - resolution: "dot-prop@npm:5.3.0" - dependencies: - is-obj: ^2.0.0 - checksum: d5775790093c234ef4bfd5fbe40884ff7e6c87573e5339432870616331189f7f5d86575c5b5af2dcf0f61172990f4f734d07844b1f23482fff09e3c4bead05ea - languageName: node - linkType: hard - -"dot-prop@npm:^6.0.1": - version: 6.0.1 - resolution: "dot-prop@npm:6.0.1" - dependencies: - is-obj: ^2.0.0 - checksum: 0f47600a4b93e1dc37261da4e6909652c008832a5d3684b5bf9a9a0d3f4c67ea949a86dceed9b72f5733ed8e8e6383cc5958df3bbd0799ee317fd181f2ece700 - languageName: node - linkType: hard - "dotenv@npm:^16.0.0": version: 16.0.0 resolution: "dotenv@npm:16.0.0" @@ -21135,13 +20269,6 @@ __metadata: languageName: node linkType: hard -"duplexer@npm:^0.1.1, duplexer@npm:~0.1.1": - version: 0.1.1 - resolution: "duplexer@npm:0.1.1" - checksum: fc7937c4a43808493cd63dfa59f4deb6cf02beea783cb17f39677b53ccacb9fba48f87731b8944048dd6dfa8f456d0725f86f3fd587ab780532d9a8e2914e8b7 - languageName: node - linkType: hard - "duplexer@npm:^0.1.2": version: 0.1.2 resolution: "duplexer@npm:0.1.2" @@ -21149,6 +20276,13 @@ __metadata: languageName: node linkType: hard +"duplexer@npm:~0.1.1": + version: 0.1.1 + resolution: "duplexer@npm:0.1.1" + checksum: fc7937c4a43808493cd63dfa59f4deb6cf02beea783cb17f39677b53ccacb9fba48f87731b8944048dd6dfa8f456d0725f86f3fd587ab780532d9a8e2914e8b7 + languageName: node + linkType: hard + "duplexify@npm:^4.0.0": version: 4.1.1 resolution: "duplexify@npm:4.1.1" @@ -21165,9 +20299,9 @@ __metadata: version: 0.0.0-use.local resolution: "e2e-test@workspace:packages/e2e-test" dependencies: - "@backstage/cli": ^0.19.0-next.3 - "@backstage/cli-common": ^0.1.10-next.0 - "@backstage/errors": ^1.1.1-next.0 + "@backstage/cli": "workspace:^" + "@backstage/cli-common": "workspace:^" + "@backstage/errors": "workspace:^" "@types/fs-extra": ^9.0.1 "@types/node": ^16.11.26 "@types/puppeteer": ^5.4.4 @@ -21176,6 +20310,7 @@ __metadata: cross-fetch: ^3.1.5 fs-extra: 10.1.0 handlebars: ^4.7.3 + nodemon: ^2.0.2 pgtools: ^0.3.0 puppeteer: ^17.0.0 tree-kill: ^1.2.2 @@ -21281,6 +20416,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.251": + version: 1.4.255 + resolution: "electron-to-chromium@npm:1.4.255" + checksum: 9fd4e0b4a05b072e211b5a1ad2e20b099d7cd54a47b6cbf700dc9ef2020291b5b2d179af0dd0fc71be74b3c765a71ad14f7ff20afb637c0b58e7abc26ff3b68e + languageName: node + linkType: hard + "elliptic@npm:^6.0.0": version: 6.5.4 resolution: "elliptic@npm:6.5.4" @@ -21296,10 +20438,10 @@ __metadata: languageName: node linkType: hard -"emittery@npm:^0.8.1": - version: 0.8.1 - resolution: "emittery@npm:0.8.1" - checksum: 2457e8c7b0688bb006126f2c025b2655abe682f66b184954122a8a065b5277f9813d49d627896a10b076b81c513ec5f491fd9c14fbd42c04b95ca3c9f3c365ee +"emittery@npm:^0.10.2": + version: 0.10.2 + resolution: "emittery@npm:0.10.2" + checksum: ee3e21788b043b90885b18ea756ec3105c1cedc50b29709c92b01e239c7e55345d4bb6d3aef4ddbaf528eef448a40b3bb831bad9ee0fc9c25cbf1367ab1ab5ac languageName: node linkType: hard @@ -21442,6 +20584,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^4.4.0": + version: 4.4.0 + resolution: "entities@npm:4.4.0" + checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0": version: 2.2.0 resolution: "env-paths@npm:2.2.0" @@ -21449,15 +20598,6 @@ __metadata: languageName: node linkType: hard -"envinfo@npm:^7.7.4": - version: 7.7.4 - resolution: "envinfo@npm:7.7.4" - bin: - envinfo: dist/cli.js - checksum: 73fb993dd9845c61ce52118fcbe4de4d3644d8163130e7bf266f223f32e75e2d33a2c59db83fa0f01f147f122c76567f5f613457a151eb8c6835013538506704 - languageName: node - linkType: hard - "eol@npm:^0.9.1": version: 0.9.1 resolution: "eol@npm:0.9.1" @@ -21597,6 +20737,15 @@ __metadata: languageName: node linkType: hard +"esbuild-android-64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-android-64@npm:0.15.8" + dependencies: + esbuild-wasm: 0.15.8 + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "esbuild-android-arm64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-android-arm64@npm:0.14.54" @@ -21604,6 +20753,13 @@ __metadata: languageName: node linkType: hard +"esbuild-android-arm64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-android-arm64@npm:0.15.8" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "esbuild-darwin-64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-darwin-64@npm:0.14.54" @@ -21611,6 +20767,13 @@ __metadata: languageName: node linkType: hard +"esbuild-darwin-64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-darwin-64@npm:0.15.8" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "esbuild-darwin-arm64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-darwin-arm64@npm:0.14.54" @@ -21618,6 +20781,13 @@ __metadata: languageName: node linkType: hard +"esbuild-darwin-arm64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-darwin-arm64@npm:0.15.8" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "esbuild-freebsd-64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-freebsd-64@npm:0.14.54" @@ -21625,6 +20795,13 @@ __metadata: languageName: node linkType: hard +"esbuild-freebsd-64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-freebsd-64@npm:0.15.8" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "esbuild-freebsd-arm64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-freebsd-arm64@npm:0.14.54" @@ -21632,6 +20809,13 @@ __metadata: languageName: node linkType: hard +"esbuild-freebsd-arm64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-freebsd-arm64@npm:0.15.8" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "esbuild-linux-32@npm:0.14.54": version: 0.14.54 resolution: "esbuild-linux-32@npm:0.14.54" @@ -21639,6 +20823,13 @@ __metadata: languageName: node linkType: hard +"esbuild-linux-32@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-linux-32@npm:0.15.8" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "esbuild-linux-64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-linux-64@npm:0.14.54" @@ -21646,6 +20837,13 @@ __metadata: languageName: node linkType: hard +"esbuild-linux-64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-linux-64@npm:0.15.8" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "esbuild-linux-arm64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-linux-arm64@npm:0.14.54" @@ -21653,6 +20851,13 @@ __metadata: languageName: node linkType: hard +"esbuild-linux-arm64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-linux-arm64@npm:0.15.8" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "esbuild-linux-arm@npm:0.14.54": version: 0.14.54 resolution: "esbuild-linux-arm@npm:0.14.54" @@ -21660,6 +20865,13 @@ __metadata: languageName: node linkType: hard +"esbuild-linux-arm@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-linux-arm@npm:0.15.8" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "esbuild-linux-mips64le@npm:0.14.54": version: 0.14.54 resolution: "esbuild-linux-mips64le@npm:0.14.54" @@ -21667,6 +20879,13 @@ __metadata: languageName: node linkType: hard +"esbuild-linux-mips64le@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-linux-mips64le@npm:0.15.8" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "esbuild-linux-ppc64le@npm:0.14.54": version: 0.14.54 resolution: "esbuild-linux-ppc64le@npm:0.14.54" @@ -21674,6 +20893,13 @@ __metadata: languageName: node linkType: hard +"esbuild-linux-ppc64le@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-linux-ppc64le@npm:0.15.8" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "esbuild-linux-riscv64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-linux-riscv64@npm:0.14.54" @@ -21681,6 +20907,13 @@ __metadata: languageName: node linkType: hard +"esbuild-linux-riscv64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-linux-riscv64@npm:0.15.8" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "esbuild-linux-s390x@npm:0.14.54": version: 0.14.54 resolution: "esbuild-linux-s390x@npm:0.14.54" @@ -21688,11 +20921,18 @@ __metadata: languageName: node linkType: hard +"esbuild-linux-s390x@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-linux-s390x@npm:0.15.8" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "esbuild-loader@npm:^2.18.0": - version: 2.19.0 - resolution: "esbuild-loader@npm:2.19.0" + version: 2.20.0 + resolution: "esbuild-loader@npm:2.20.0" dependencies: - esbuild: ^0.14.39 + esbuild: ^0.15.6 joycon: ^3.0.1 json5: ^2.2.0 loader-utils: ^2.0.0 @@ -21700,7 +20940,7 @@ __metadata: webpack-sources: ^2.2.0 peerDependencies: webpack: ^4.40.0 || ^5.0.0 - checksum: 7dc8deca3ab6f8684437359ce6d407d18622ba7cb7f0a22f44861f72b34405431070a6137e366232bea2418e37a54fe04299951a588fec54058f047e65616adc + checksum: 81faee7155b35af1fdef3dffa273a14ec83e56b9efa1efb76cb1eb64964dd738809c147a87ab9d3507de11946eed51fd1ee42d476b2c9654cbda145da0d9479b languageName: node linkType: hard @@ -21711,6 +20951,13 @@ __metadata: languageName: node linkType: hard +"esbuild-netbsd-64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-netbsd-64@npm:0.15.8" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "esbuild-openbsd-64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-openbsd-64@npm:0.14.54" @@ -21718,6 +20965,13 @@ __metadata: languageName: node linkType: hard +"esbuild-openbsd-64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-openbsd-64@npm:0.15.8" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "esbuild-sunos-64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-sunos-64@npm:0.14.54" @@ -21725,6 +20979,22 @@ __metadata: languageName: node linkType: hard +"esbuild-sunos-64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-sunos-64@npm:0.15.8" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"esbuild-wasm@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-wasm@npm:0.15.8" + bin: + esbuild: bin/esbuild + checksum: 54797a22f42b572ca7f314cb95a8d130f85948a9557bb03775ebdd2f76d60f164ac2a80bb1ee8339f8a7445a1bc5ab28e1b48584c0573aeca9366119dbad7448 + languageName: node + linkType: hard + "esbuild-windows-32@npm:0.14.54": version: 0.14.54 resolution: "esbuild-windows-32@npm:0.14.54" @@ -21732,6 +21002,13 @@ __metadata: languageName: node linkType: hard +"esbuild-windows-32@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-windows-32@npm:0.15.8" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "esbuild-windows-64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-windows-64@npm:0.14.54" @@ -21739,6 +21016,13 @@ __metadata: languageName: node linkType: hard +"esbuild-windows-64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-windows-64@npm:0.15.8" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "esbuild-windows-arm64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-windows-arm64@npm:0.14.54" @@ -21746,7 +21030,14 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.14.1, esbuild@npm:^0.14.10, esbuild@npm:^0.14.39": +"esbuild-windows-arm64@npm:0.15.8": + version: 0.15.8 + resolution: "esbuild-windows-arm64@npm:0.15.8" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"esbuild@npm:^0.14.1, esbuild@npm:^0.14.10": version: 0.14.54 resolution: "esbuild@npm:0.14.54" dependencies: @@ -21820,6 +21111,83 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.15.6": + version: 0.15.8 + resolution: "esbuild@npm:0.15.8" + dependencies: + "@esbuild/android-arm": 0.15.8 + "@esbuild/linux-loong64": 0.15.8 + esbuild-android-64: 0.15.8 + esbuild-android-arm64: 0.15.8 + esbuild-darwin-64: 0.15.8 + esbuild-darwin-arm64: 0.15.8 + esbuild-freebsd-64: 0.15.8 + esbuild-freebsd-arm64: 0.15.8 + esbuild-linux-32: 0.15.8 + esbuild-linux-64: 0.15.8 + esbuild-linux-arm: 0.15.8 + esbuild-linux-arm64: 0.15.8 + esbuild-linux-mips64le: 0.15.8 + esbuild-linux-ppc64le: 0.15.8 + esbuild-linux-riscv64: 0.15.8 + esbuild-linux-s390x: 0.15.8 + esbuild-netbsd-64: 0.15.8 + esbuild-openbsd-64: 0.15.8 + esbuild-sunos-64: 0.15.8 + esbuild-windows-32: 0.15.8 + esbuild-windows-64: 0.15.8 + esbuild-windows-arm64: 0.15.8 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/linux-loong64": + optional: true + esbuild-android-64: + optional: true + esbuild-android-arm64: + optional: true + esbuild-darwin-64: + optional: true + esbuild-darwin-arm64: + optional: true + esbuild-freebsd-64: + optional: true + esbuild-freebsd-arm64: + optional: true + esbuild-linux-32: + optional: true + esbuild-linux-64: + optional: true + esbuild-linux-arm: + optional: true + esbuild-linux-arm64: + optional: true + esbuild-linux-mips64le: + optional: true + esbuild-linux-ppc64le: + optional: true + esbuild-linux-riscv64: + optional: true + esbuild-linux-s390x: + optional: true + esbuild-netbsd-64: + optional: true + esbuild-openbsd-64: + optional: true + esbuild-sunos-64: + optional: true + esbuild-windows-32: + optional: true + esbuild-windows-64: + optional: true + esbuild-windows-arm64: + optional: true + bin: + esbuild: bin/esbuild + checksum: 96991dd4bdd628a62d8b962b1e8f1cf6f71ffb06f2c8c8615cba326a2f1800a0029b602c9c5ced0db43d78026ee2cce8bd4c3990411cb0081ede297627735d9d + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -22334,7 +21702,14 @@ __metadata: languageName: node linkType: hard -"eventemitter2@npm:^6.4.3, eventemitter2@npm:^6.4.4": +"eventemitter2@npm:6.4.7": + version: 6.4.7 + resolution: "eventemitter2@npm:6.4.7" + checksum: 1b36a77e139d6965ebf3a36c01fa00c089ae6b80faa1911e52888f40b3a7057b36a2cc45dcd1ad87cda3798fe7b97a0aabcbb8175a8b96092a23bb7d0f039e66 + languageName: node + linkType: hard + +"eventemitter2@npm:^6.4.4": version: 6.4.5 resolution: "eventemitter2@npm:6.4.5" checksum: 84504f9cf0cc30205cdd46783fe9df3733435e5097f13070b678023110b5ef07847651808ae280cd94c42cd5976880211c7a40321a8ff8fa56f7c5f9c5c11960 @@ -22390,64 +21765,64 @@ __metadata: version: 0.0.0-use.local resolution: "example-app@workspace:packages/app" dependencies: - "@backstage/app-defaults": ^1.0.6 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-airbrake": ^0.3.9 - "@backstage/plugin-apache-airflow": ^0.2.2 - "@backstage/plugin-api-docs": ^0.8.9 - "@backstage/plugin-azure-devops": ^0.2.0 - "@backstage/plugin-azure-functions": ^0.0.0 - "@backstage/plugin-badges": ^0.2.33 - "@backstage/plugin-catalog-common": ^1.0.6 - "@backstage/plugin-catalog-graph": ^0.2.21 - "@backstage/plugin-catalog-import": ^0.8.12 - "@backstage/plugin-catalog-react": ^1.1.4 - "@backstage/plugin-circleci": ^0.3.9 - "@backstage/plugin-cloudbuild": ^0.3.9 - "@backstage/plugin-code-coverage": ^0.2.2 - "@backstage/plugin-cost-insights": ^0.11.31 - "@backstage/plugin-dynatrace": ^0.2.0 - "@backstage/plugin-explore": ^0.3.40 - "@backstage/plugin-gcalendar": ^0.3.5 - "@backstage/plugin-gcp-projects": ^0.3.28 - "@backstage/plugin-github-actions": ^0.5.9 - "@backstage/plugin-gocd": ^0.1.15 - "@backstage/plugin-graphiql": ^0.2.41 - "@backstage/plugin-home": ^0.4.25 - "@backstage/plugin-jenkins": ^0.7.8 - "@backstage/plugin-kafka": ^0.3.9 - "@backstage/plugin-kubernetes": ^0.7.2 - "@backstage/plugin-lighthouse": ^0.3.9 - "@backstage/plugin-newrelic": ^0.3.27 - "@backstage/plugin-newrelic-dashboard": ^0.2.2 - "@backstage/plugin-org": ^0.5.9 - "@backstage/plugin-pagerduty": 0.5.2 - "@backstage/plugin-permission-react": ^0.4.5 - "@backstage/plugin-playlist": ^0.1.0 - "@backstage/plugin-rollbar": ^0.4.9 - "@backstage/plugin-scaffolder": ^1.6.0 - "@backstage/plugin-search": ^1.0.2 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/plugin-search-react": ^1.1.0 - "@backstage/plugin-sentry": ^0.4.2 - "@backstage/plugin-shortcuts": ^0.3.1 - "@backstage/plugin-stack-overflow": ^0.1.5 - "@backstage/plugin-tech-insights": ^0.3.0 - "@backstage/plugin-tech-radar": ^0.5.16 - "@backstage/plugin-techdocs": ^1.3.2 - "@backstage/plugin-techdocs-module-addons-contrib": ^1.0.4 - "@backstage/plugin-techdocs-react": ^1.0.4 - "@backstage/plugin-todo": ^0.2.11 - "@backstage/plugin-user-settings": ^0.4.8 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 - "@internal/plugin-catalog-customized": 0.0.2 + "@backstage/app-defaults": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-airbrake": "workspace:^" + "@backstage/plugin-apache-airflow": "workspace:^" + "@backstage/plugin-api-docs": "workspace:^" + "@backstage/plugin-azure-devops": "workspace:^" + "@backstage/plugin-azure-functions": "workspace:^" + "@backstage/plugin-badges": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" + "@backstage/plugin-catalog-graph": "workspace:^" + "@backstage/plugin-catalog-import": "workspace:^" + "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-circleci": "workspace:^" + "@backstage/plugin-cloudbuild": "workspace:^" + "@backstage/plugin-code-coverage": "workspace:^" + "@backstage/plugin-cost-insights": "workspace:^" + "@backstage/plugin-dynatrace": "workspace:^" + "@backstage/plugin-explore": "workspace:^" + "@backstage/plugin-gcalendar": "workspace:^" + "@backstage/plugin-gcp-projects": "workspace:^" + "@backstage/plugin-github-actions": "workspace:^" + "@backstage/plugin-gocd": "workspace:^" + "@backstage/plugin-graphiql": "workspace:^" + "@backstage/plugin-home": "workspace:^" + "@backstage/plugin-jenkins": "workspace:^" + "@backstage/plugin-kafka": "workspace:^" + "@backstage/plugin-kubernetes": "workspace:^" + "@backstage/plugin-lighthouse": "workspace:^" + "@backstage/plugin-newrelic": "workspace:^" + "@backstage/plugin-newrelic-dashboard": "workspace:^" + "@backstage/plugin-org": "workspace:^" + "@backstage/plugin-pagerduty": "workspace:^" + "@backstage/plugin-permission-react": "workspace:^" + "@backstage/plugin-playlist": "workspace:^" + "@backstage/plugin-rollbar": "workspace:^" + "@backstage/plugin-scaffolder": "workspace:^" + "@backstage/plugin-search": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/plugin-search-react": "workspace:^" + "@backstage/plugin-sentry": "workspace:^" + "@backstage/plugin-shortcuts": "workspace:^" + "@backstage/plugin-stack-overflow": "workspace:^" + "@backstage/plugin-tech-insights": "workspace:^" + "@backstage/plugin-tech-radar": "workspace:^" + "@backstage/plugin-techdocs": "workspace:^" + "@backstage/plugin-techdocs-module-addons-contrib": "workspace:^" + "@backstage/plugin-techdocs-react": "workspace:^" + "@backstage/plugin-todo": "workspace:^" + "@backstage/plugin-user-settings": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@internal/plugin-catalog-customized": "workspace:^" "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.57 @@ -22485,10 +21860,10 @@ __metadata: version: 0.0.0-use.local resolution: "example-backend-next@workspace:packages/backend-next" dependencies: - "@backstage/backend-defaults": ^0.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/plugin-scaffolder-backend": ^1.6.0 + "@backstage/backend-defaults": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/plugin-scaffolder-backend": "workspace:^" languageName: unknown linkType: soft @@ -22496,43 +21871,43 @@ __metadata: version: 0.0.0-use.local resolution: "example-backend@workspace:packages/backend" dependencies: - "@backstage/backend-common": ^0.15.1 - "@backstage/backend-tasks": ^0.3.5 - "@backstage/catalog-client": ^1.1.0 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/integration": ^1.3.1 - "@backstage/plugin-app-backend": ^0.3.36 - "@backstage/plugin-auth-backend": ^0.16.0 - "@backstage/plugin-auth-node": ^0.2.5 - "@backstage/plugin-azure-devops-backend": ^0.3.15 - "@backstage/plugin-azure-functions-backend": ^0.0.0 - "@backstage/plugin-badges-backend": ^0.1.30 - "@backstage/plugin-catalog-backend": ^1.4.0 - "@backstage/plugin-code-coverage-backend": ^0.2.2 - "@backstage/plugin-graphql-backend": ^0.1.26 - "@backstage/plugin-jenkins-backend": ^0.1.26 - "@backstage/plugin-kafka-backend": ^0.2.29 - "@backstage/plugin-kubernetes-backend": ^0.7.2 - "@backstage/plugin-permission-backend": ^0.5.11 - "@backstage/plugin-permission-common": ^0.6.4 - "@backstage/plugin-permission-node": ^0.6.5 - "@backstage/plugin-playlist-backend": ^0.1.0 - "@backstage/plugin-proxy-backend": ^0.2.30 - "@backstage/plugin-rollbar-backend": ^0.1.33 - "@backstage/plugin-scaffolder-backend": ^1.6.0 - "@backstage/plugin-scaffolder-backend-module-rails": ^0.4.4 - "@backstage/plugin-search-backend": ^1.0.2 - "@backstage/plugin-search-backend-module-elasticsearch": ^1.0.2 - "@backstage/plugin-search-backend-module-pg": ^0.4.0 - "@backstage/plugin-search-backend-node": ^1.0.2 - "@backstage/plugin-search-common": ^1.0.1 - "@backstage/plugin-tech-insights-backend": ^0.5.2 - "@backstage/plugin-tech-insights-backend-module-jsonfc": ^0.1.20 - "@backstage/plugin-tech-insights-node": ^0.3.4 - "@backstage/plugin-techdocs-backend": ^1.3.0 - "@backstage/plugin-todo-backend": ^0.1.33 + "@backstage/backend-common": "workspace:^" + "@backstage/backend-tasks": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/plugin-app-backend": "workspace:^" + "@backstage/plugin-auth-backend": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-azure-devops-backend": "workspace:^" + "@backstage/plugin-azure-functions-backend": "workspace:^" + "@backstage/plugin-badges-backend": "workspace:^" + "@backstage/plugin-catalog-backend": "workspace:^" + "@backstage/plugin-code-coverage-backend": "workspace:^" + "@backstage/plugin-graphql-backend": "workspace:^" + "@backstage/plugin-jenkins-backend": "workspace:^" + "@backstage/plugin-kafka-backend": "workspace:^" + "@backstage/plugin-kubernetes-backend": "workspace:^" + "@backstage/plugin-permission-backend": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-permission-node": "workspace:^" + "@backstage/plugin-playlist-backend": "workspace:^" + "@backstage/plugin-proxy-backend": "workspace:^" + "@backstage/plugin-rollbar-backend": "workspace:^" + "@backstage/plugin-scaffolder-backend": "workspace:^" + "@backstage/plugin-scaffolder-backend-module-rails": "workspace:^" + "@backstage/plugin-search-backend": "workspace:^" + "@backstage/plugin-search-backend-module-elasticsearch": "workspace:^" + "@backstage/plugin-search-backend-module-pg": "workspace:^" + "@backstage/plugin-search-backend-node": "workspace:^" + "@backstage/plugin-search-common": "workspace:^" + "@backstage/plugin-tech-insights-backend": "workspace:^" + "@backstage/plugin-tech-insights-backend-module-jsonfc": "workspace:^" + "@backstage/plugin-tech-insights-node": "workspace:^" + "@backstage/plugin-techdocs-backend": "workspace:^" + "@backstage/plugin-todo-backend": "workspace:^" "@gitbeaker/node": ^35.1.0 "@octokit/rest": ^19.0.3 "@types/dockerode": ^3.3.0 @@ -22674,15 +22049,16 @@ __metadata: languageName: node linkType: hard -"expect@npm:^27.5.1": - version: 27.5.1 - resolution: "expect@npm:27.5.1" +"expect@npm:^29.0.0, expect@npm:^29.0.3": + version: 29.0.3 + resolution: "expect@npm:29.0.3" dependencies: - "@jest/types": ^27.5.1 - jest-get-type: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - checksum: b2c66beb52de53ef1872165aace40224e722bca3c2274c54cfa74b6d617d55cf0ccdbf36783ccd64dbea501b280098ed33fd0b207d4f15bc03cd3c7a24364a6a + "@jest/expect-utils": ^29.0.3 + jest-get-type: ^29.0.0 + jest-matcher-utils: ^29.0.3 + jest-message-util: ^29.0.3 + jest-util: ^29.0.3 + checksum: 21b7fd346c47896a3de8f1103d7be32dab9409eb3dc170b7a9ff5d8d564b8499bd600b9af6251fe2f46064cf4e2f1456a6c6318da15314b7d74ed6dad723b555 languageName: node linkType: hard @@ -23219,7 +22595,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^2.0.0, find-up@npm:^2.1.0": +"find-up@npm:^2.1.0": version: 2.1.0 resolution: "find-up@npm:2.1.0" dependencies: @@ -23732,22 +23108,6 @@ __metadata: languageName: node linkType: hard -"gauge@npm:^4.0.3": - version: 4.0.4 - resolution: "gauge@npm:4.0.4" - dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^3.0.7 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d - languageName: node - linkType: hard - "gauge@npm:~2.7.3": version: 2.7.4 resolution: "gauge@npm:2.7.4" @@ -23876,20 +23236,6 @@ __metadata: languageName: node linkType: hard -"get-pkg-repo@npm:^4.0.0": - version: 4.2.1 - resolution: "get-pkg-repo@npm:4.2.1" - dependencies: - "@hutson/parse-repository-url": ^3.0.0 - hosted-git-info: ^4.0.0 - through2: ^2.0.0 - yargs: ^16.2.0 - bin: - get-pkg-repo: src/cli.js - checksum: 5abf169137665e45b09a857b33ad2fdcf2f4a09f0ecbd0ebdd789a7ce78c39186a21f58621127eb724d2d4a3a7ee8e6bd4ac7715efda01ad5200665afc218e0d - languageName: node - linkType: hard - "get-port@npm:^5.1.1": version: 5.1.1 resolution: "get-port@npm:5.1.1" @@ -23962,53 +23308,6 @@ __metadata: languageName: node linkType: hard -"git-raw-commits@npm:^2.0.8": - version: 2.0.10 - resolution: "git-raw-commits@npm:2.0.10" - dependencies: - dargs: ^7.0.0 - lodash: ^4.17.15 - meow: ^8.0.0 - split2: ^3.0.0 - through2: ^4.0.0 - bin: - git-raw-commits: cli.js - checksum: 66e2d7b4cdeff946ac639e1bba37f5dcbd9f5c9245348b31e027e4529f6b6733d23f75768d285d5f29c1f08d3485705a4932300a81a45b77b660fe3ce6089c29 - languageName: node - linkType: hard - -"git-remote-origin-url@npm:^2.0.0": - version: 2.0.0 - resolution: "git-remote-origin-url@npm:2.0.0" - dependencies: - gitconfiglocal: ^1.0.0 - pify: ^2.3.0 - checksum: 85263a09c044b5f4fe2acc45cbb3c5331ab2bd4484bb53dfe7f3dd593a4bf90a9786a2e00b9884524331f50b3da18e8c924f01c2944087fc7f342282c4437b73 - languageName: node - linkType: hard - -"git-semver-tags@npm:^4.1.1": - version: 4.1.1 - resolution: "git-semver-tags@npm:4.1.1" - dependencies: - meow: ^8.0.0 - semver: ^6.0.0 - bin: - git-semver-tags: cli.js - checksum: e16d02a515c0f88289a28b5bf59bf42c0dc053765922d3b617ae4b50546bd4f74a25bf3ad53b91cb6c1159319a2e92533b160c573b856c2629125c8b26b3b0e3 - languageName: node - linkType: hard - -"git-up@npm:^4.0.0": - version: 4.0.1 - resolution: "git-up@npm:4.0.1" - dependencies: - is-ssh: ^1.3.0 - parse-url: ^5.0.0 - checksum: fbbd8f8f5a57dbd6830592f051564498d322acbbccec5b85b7eff41aade8e175dbd702ae9f6caa80d5ce3cb5435b03711c9d706f26e07923eba6d940fc7dcebf - languageName: node - linkType: hard - "git-up@npm:^7.0.0": version: 7.0.0 resolution: "git-up@npm:7.0.0" @@ -24019,30 +23318,12 @@ __metadata: languageName: node linkType: hard -"git-url-parse@npm:^11.4.4": - version: 11.6.0 - resolution: "git-url-parse@npm:11.6.0" - dependencies: - git-up: ^4.0.0 - checksum: 18a7d0bbac76c55fe8a501d4bd4c6b5f5528883a4dadcfce1152b4902e3e5831df8e97f36ea3f564de633e9ab44d9ab09bb2f319e41af1b6e4f627af139d35d5 - languageName: node - linkType: hard - "git-url-parse@npm:^13.0.0": - version: 13.0.0 - resolution: "git-url-parse@npm:13.0.0" + version: 13.1.0 + resolution: "git-url-parse@npm:13.1.0" dependencies: git-up: ^7.0.0 - checksum: 05a3bf51fc5863d26461a815347929a7432e1ebc6763e6a7ee31f510936266f9a82e0f090d09c2c48cd6dba2f17163fa1d860ba4a3ff157083cca5a5d1961c57 - languageName: node - linkType: hard - -"gitconfiglocal@npm:^1.0.0": - version: 1.0.0 - resolution: "gitconfiglocal@npm:1.0.0" - dependencies: - ini: ^1.3.2 - checksum: e6d2764c15bbab6d1d1000d1181bb907f6b3796bb04f63614dba571b18369e0ecb1beaf27ce8da5b24307ef607e3a5f262a67cb9575510b9446aac697d421beb + checksum: 212a9b0343e9199998b6a532efe2014476a7a1283af393663ca49ac28d4768929aad16d3322e2685236065ee394dbc93e7aa63a48956531e984c56d8b5edb54d languageName: node linkType: hard @@ -24053,7 +23334,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^5.1.1, glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" dependencies: @@ -24211,7 +23492,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.0, globby@npm:^11.0.1, globby@npm:^11.0.2, globby@npm:^11.0.3, globby@npm:^11.0.4, globby@npm:^11.1.0": +"globby@npm:^11.0.0, globby@npm:^11.0.1, globby@npm:^11.0.3, globby@npm:^11.0.4, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -24273,29 +23554,6 @@ __metadata: languageName: node linkType: hard -"google-gax@npm:^3.0.1": - version: 3.0.3 - resolution: "google-gax@npm:3.0.3" - dependencies: - "@grpc/grpc-js": ~1.6.0 - "@grpc/proto-loader": ^0.6.12 - "@types/long": ^4.0.0 - abort-controller: ^3.0.0 - duplexify: ^4.0.0 - fast-text-encoding: ^1.0.3 - google-auth-library: ^8.0.2 - is-stream-ended: ^0.1.4 - node-fetch: ^2.6.1 - object-hash: ^3.0.0 - proto3-json-serializer: ^1.0.0 - protobufjs: 6.11.3 - retry-request: ^5.0.0 - bin: - compileProtos: build/tools/compileProtos.js - checksum: 4f7f38eb39cba1ee80f9569976d4b43db6803b4ae9ebc4de0c348b129c7d6fdd3f43f9add87c07cb1026de19dd78cf101b1c8427016e7f1dcad17dc9e166acf0 - languageName: node - linkType: hard - "google-gax@npm:^3.3.0": version: 3.3.0 resolution: "google-gax@npm:3.3.0" @@ -24320,6 +23578,31 @@ __metadata: languageName: node linkType: hard +"google-gax@npm:^3.5.1": + version: 3.5.1 + resolution: "google-gax@npm:3.5.1" + dependencies: + "@grpc/grpc-js": ~1.7.0 + "@grpc/proto-loader": ^0.7.0 + "@types/long": ^4.0.0 + abort-controller: ^3.0.0 + duplexify: ^4.0.0 + fast-text-encoding: ^1.0.3 + google-auth-library: ^8.0.2 + is-stream-ended: ^0.1.4 + node-fetch: ^2.6.1 + object-hash: ^3.0.0 + proto3-json-serializer: ^1.0.0 + protobufjs: 7.1.1 + protobufjs-cli: 1.0.2 + retry-request: ^5.0.0 + bin: + compileProtos: build/tools/compileProtos.js + minifyProtoJson: build/tools/minify.js + checksum: 81ecd10981554944a117ace753b2fc8f6d82b26b244db005d01fc5e127181571de9a71ec02b28aa2e233c6fe696108617512a8b090c8304e753913f1ca441767 + languageName: node + linkType: hard + "google-p12-pem@npm:^4.0.0": version: 4.0.0 resolution: "google-p12-pem@npm:4.0.0" @@ -24357,7 +23640,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.9 resolution: "graceful-fs@npm:4.2.9" checksum: 68ea4e07ff2c041ada184f9278b830375f8e0b75154e3f080af6b70f66172fabb4108d19b3863a96b53fc068a310b9b6493d86d1291acc5f3861eb4b79d26ad6 @@ -24620,7 +23903,7 @@ __metadata: languageName: node linkType: hard -"handlebars@npm:^4.7.3, handlebars@npm:^4.7.7": +"handlebars@npm:^4.7.3": version: 4.7.7 resolution: "handlebars@npm:4.7.7" dependencies: @@ -24949,16 +24232,7 @@ __metadata: languageName: node linkType: hard -"hosted-git-info@npm:^3.0.6": - version: 3.0.8 - resolution: "hosted-git-info@npm:3.0.8" - dependencies: - lru-cache: ^6.0.0 - checksum: 5af7a69581acb84206a7b8e009f4680c36396814e92c8a83973dfb3b87e44e44d1f7b8eaf3e4a953686482770ecb78406a4ce4666bfdfe447762434127871d8d - languageName: node - linkType: hard - -"hosted-git-info@npm:^4.0.0, hosted-git-info@npm:^4.0.1": +"hosted-git-info@npm:^4.0.1": version: 4.1.0 resolution: "hosted-git-info@npm:4.1.0" dependencies: @@ -24967,15 +24241,6 @@ __metadata: languageName: node linkType: hard -"hosted-git-info@npm:^5.0.0": - version: 5.0.0 - resolution: "hosted-git-info@npm:5.0.0" - dependencies: - lru-cache: ^7.5.1 - checksum: 515e69463d123635f70d70656c5ec648951ffc1987f92a87cb4a038e1794bfed833cf87569b358b137ebbc75d992c073ed0408d420c9e5b717c2b4f0a291490c - languageName: node - linkType: hard - "hpack.js@npm:^2.1.6": version: 2.1.6 resolution: "hpack.js@npm:2.1.6" @@ -25004,6 +24269,15 @@ __metadata: languageName: node linkType: hard +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" + dependencies: + whatwg-encoding: ^2.0.0 + checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 + languageName: node + linkType: hard + "html-entities@npm:^2.1.0, html-entities@npm:^2.3.2": version: 2.3.2 resolution: "html-entities@npm:2.3.2" @@ -25211,7 +24485,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:5.0.1, https-proxy-agent@npm:^5.0.0": +"https-proxy-agent@npm:5.0.1, https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" dependencies: @@ -25290,7 +24564,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -25345,15 +24619,6 @@ __metadata: languageName: node linkType: hard -"ignore-walk@npm:^3.0.3": - version: 3.0.3 - resolution: "ignore-walk@npm:3.0.3" - dependencies: - minimatch: ^3.0.4 - checksum: 34bc6f0497276a9bfad7ba1ae301c7d16bc6424890755a21d90536eaa1f4b7acd598686a01033e64345483b2fef41dad8f93794af73c8b13a7cf21a3cae34a4e - languageName: node - linkType: hard - "ignore-walk@npm:^4.0.1": version: 4.0.1 resolution: "ignore-walk@npm:4.0.1" @@ -25559,29 +24824,13 @@ __metadata: languageName: node linkType: hard -"ini@npm:^1.3.2, ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": +"ini@npm:^1.3.5, ini@npm:~1.3.0": version: 1.3.8 resolution: "ini@npm:1.3.8" checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 languageName: node linkType: hard -"init-package-json@npm:^2.0.2": - version: 2.0.2 - resolution: "init-package-json@npm:2.0.2" - dependencies: - glob: ^7.1.1 - npm-package-arg: ^8.1.0 - promzard: ^0.3.0 - read: ~1.0.1 - read-package-json: ^3.0.0 - semver: ^7.3.2 - validate-npm-package-license: ^3.0.4 - validate-npm-package-name: ^3.0.0 - checksum: d8bfd3bd0de46411768011d441c6c96299e639279d7720184f51796533d0088a04a1010ad675718ec899bf6991e84a5e2de6b1ffa3c9357cea919b87c9fb4f73 - languageName: node - linkType: hard - "inline-style-parser@npm:0.1.1": version: 0.1.1 resolution: "inline-style-parser@npm:0.1.1" @@ -25620,27 +24869,6 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^7.3.3": - version: 7.3.3 - resolution: "inquirer@npm:7.3.3" - dependencies: - ansi-escapes: ^4.2.1 - chalk: ^4.1.0 - cli-cursor: ^3.1.0 - cli-width: ^3.0.0 - external-editor: ^3.0.3 - figures: ^3.0.0 - lodash: ^4.17.19 - mute-stream: 0.0.8 - run-async: ^2.4.0 - rxjs: ^6.6.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - through: ^2.3.6 - checksum: 4d387fc1eb6126acbd58cbdb9ad99d2887d181df86ab0c2b9abdf734e751093e2d5882c2b6dc7144d9ab16b7ab30a78a1d7f01fb6a2850a44aeb175d1e3f8778 - languageName: node - linkType: hard - "inquirer@npm:^8.0.0, inquirer@npm:^8.2.0": version: 8.2.4 resolution: "inquirer@npm:8.2.4" @@ -25915,17 +25143,6 @@ __metadata: languageName: node linkType: hard -"is-ci@npm:^2.0.0": - version: 2.0.0 - resolution: "is-ci@npm:2.0.0" - dependencies: - ci-info: ^2.0.0 - bin: - is-ci: bin.js - checksum: 77b869057510f3efa439bbb36e9be429d53b3f51abd4776eeea79ab3b221337fe1753d1e50058a9e2c650d38246108beffb15ccfd443929d77748d8c0cc90144 - languageName: node - linkType: hard - "is-ci@npm:^3.0.0, is-ci@npm:^3.0.1": version: 3.0.1 resolution: "is-ci@npm:3.0.1" @@ -26222,13 +25439,6 @@ __metadata: languageName: node linkType: hard -"is-obj@npm:^2.0.0": - version: 2.0.0 - resolution: "is-obj@npm:2.0.0" - checksum: c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08 - languageName: node - linkType: hard - "is-object@npm:^1.0.1": version: 1.0.1 resolution: "is-object@npm:1.0.1" @@ -26250,20 +25460,13 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^1.0.0, is-plain-obj@npm:^1.1.0": +"is-plain-obj@npm:^1.1.0": version: 1.1.0 resolution: "is-plain-obj@npm:1.1.0" checksum: 0ee04807797aad50859652a7467481816cbb57e5cc97d813a7dcd8915da8195dc68c436010bf39d195226cde6a2d352f4b815f16f26b7bf486a5754290629931 languageName: node linkType: hard -"is-plain-obj@npm:^2.0.0": - version: 2.1.0 - resolution: "is-plain-obj@npm:2.1.0" - checksum: cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa - languageName: node - linkType: hard - "is-plain-obj@npm:^3.0.0": version: 3.0.0 resolution: "is-plain-obj@npm:3.0.0" @@ -26389,15 +25592,6 @@ __metadata: languageName: node linkType: hard -"is-ssh@npm:^1.3.0": - version: 1.3.1 - resolution: "is-ssh@npm:1.3.1" - dependencies: - protocols: ^1.1.0 - checksum: 769a6ce56477881b66cc3f9ef7924785d32bd904d7fff39bef8eac08251fc5cc9e02fd4b3d99f0b357312b550c2122d9202a887f5630c67cf890263f2c7f1acc - languageName: node - linkType: hard - "is-ssh@npm:^1.4.0": version: 1.4.0 resolution: "is-ssh@npm:1.4.0" @@ -26455,15 +25649,6 @@ __metadata: languageName: node linkType: hard -"is-text-path@npm:^1.0.1": - version: 1.0.1 - resolution: "is-text-path@npm:1.0.1" - dependencies: - text-extensions: ^1.0.0 - checksum: fb5d78752c22b3f73a7c9540768f765ffcfa38c9e421e2b9af869565307fa1ae5e3d3a2ba016a43549742856846566d327da406e94a5846ec838a288b1704fd2 - languageName: node - linkType: hard - "is-typed-array@npm:^1.1.3": version: 1.1.5 resolution: "is-typed-array@npm:1.1.5" @@ -26477,7 +25662,7 @@ __metadata: languageName: node linkType: hard -"is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": +"is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 @@ -26644,8 +25829,8 @@ __metadata: linkType: hard "isomorphic-git@npm:^1.8.0": - version: 1.20.0 - resolution: "isomorphic-git@npm:1.20.0" + version: 1.21.0 + resolution: "isomorphic-git@npm:1.21.0" dependencies: async-lock: ^1.1.0 clean-git-ref: ^2.0.1 @@ -26660,7 +25845,7 @@ __metadata: simple-get: ^4.0.1 bin: isogit: cli.cjs - checksum: 4f5af69b02795d656c171c2347186ac0b04269db23ab4ec3fb0204cda5cb89cceaacae8eb44ee3e1870fcbc930518c63a6e82a9fc7428719e08be5c3d6d88396 + checksum: afbdf98000c586fdcb96f84c054d6ada392b0d2422a7b7baad89e5f5881a79426f8555bdadeebe25202be18bb8eaee3881f8c04b6a289d04b916790bdd5dd5df languageName: node linkType: hard @@ -26785,60 +25970,59 @@ __metadata: languageName: node linkType: hard -"jest-changed-files@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-changed-files@npm:27.5.1" +"jest-changed-files@npm:^29.0.0": + version: 29.0.0 + resolution: "jest-changed-files@npm:29.0.0" dependencies: - "@jest/types": ^27.5.1 execa: ^5.0.0 - throat: ^6.0.1 - checksum: 95e9dc74c3ca688ef85cfeab270f43f8902721a6c8ade6ac2459459a77890c85977f537d6fb809056deaa6d9c3f075fa7d2699ff5f3bf7d3fda17c3760b79b15 + p-limit: ^3.1.0 + checksum: 5642ace8cd1e7e4f9e3ee423b97d0b018b00ad85ea7e5864592b4657e8500ef56ec50d2189229b912223046bbf31c9196c8ef2442a917be9726a5911d40db1b2 languageName: node linkType: hard -"jest-circus@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-circus@npm:27.5.1" +"jest-circus@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-circus@npm:29.0.3" dependencies: - "@jest/environment": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/environment": ^29.0.3 + "@jest/expect": ^29.0.3 + "@jest/test-result": ^29.0.3 + "@jest/types": ^29.0.3 "@types/node": "*" chalk: ^4.0.0 co: ^4.6.0 dedent: ^0.7.0 - expect: ^27.5.1 is-generator-fn: ^2.0.0 - jest-each: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - jest-runtime: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - pretty-format: ^27.5.1 + jest-each: ^29.0.3 + jest-matcher-utils: ^29.0.3 + jest-message-util: ^29.0.3 + jest-runtime: ^29.0.3 + jest-snapshot: ^29.0.3 + jest-util: ^29.0.3 + p-limit: ^3.1.0 + pretty-format: ^29.0.3 slash: ^3.0.0 stack-utils: ^2.0.3 - throat: ^6.0.1 - checksum: 6192dccbccb3a6acfa361cbb97bdbabe94864ccf3d885932cfd41f19534329d40698078cf9be1489415e8234255d6ea9f9aff5396b79ad842a6fca6e6fc08fd0 + checksum: 6ba495d4fb68ebb59f269b59029837f55009793d632ba2f29300992de80f7e3a37e619ea4e88676982cf74128416265a5929b3f9b77142fbf27c1dd0d6b6f98c languageName: node linkType: hard -"jest-cli@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-cli@npm:27.5.1" +"jest-cli@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-cli@npm:29.0.3" dependencies: - "@jest/core": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/core": ^29.0.3 + "@jest/test-result": ^29.0.3 + "@jest/types": ^29.0.3 chalk: ^4.0.0 exit: ^0.1.2 graceful-fs: ^4.2.9 import-local: ^3.0.2 - jest-config: ^27.5.1 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 + jest-config: ^29.0.3 + jest-util: ^29.0.3 + jest-validate: ^29.0.3 prompts: ^2.0.1 - yargs: ^16.2.0 + yargs: ^17.3.1 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -26846,44 +26030,45 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 6c0a69fb48e500241409e09ff743ed72bc6578d7769e2c994724e7ef1e5587f6c1f85dc429e93b98ae38a365222993ee70f0acc2199358992120900984f349e5 + checksum: 4cd6ed7effcf703c3275bb07231227e32bd2de2dfc84354f0bbd25a2a8b26395570c8902c7dc87b02bed4a57c304a6b48e21a60fa26025b89c1e4e61eae1ea38 languageName: node linkType: hard -"jest-config@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-config@npm:27.5.1" +"jest-config@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-config@npm:29.0.3" dependencies: - "@babel/core": ^7.8.0 - "@jest/test-sequencer": ^27.5.1 - "@jest/types": ^27.5.1 - babel-jest: ^27.5.1 + "@babel/core": ^7.11.6 + "@jest/test-sequencer": ^29.0.3 + "@jest/types": ^29.0.3 + babel-jest: ^29.0.3 chalk: ^4.0.0 ci-info: ^3.2.0 deepmerge: ^4.2.2 - glob: ^7.1.1 + glob: ^7.1.3 graceful-fs: ^4.2.9 - jest-circus: ^27.5.1 - jest-environment-jsdom: ^27.5.1 - jest-environment-node: ^27.5.1 - jest-get-type: ^27.5.1 - jest-jasmine2: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-runner: ^27.5.1 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 + jest-circus: ^29.0.3 + jest-environment-node: ^29.0.3 + jest-get-type: ^29.0.0 + jest-regex-util: ^29.0.0 + jest-resolve: ^29.0.3 + jest-runner: ^29.0.3 + jest-util: ^29.0.3 + jest-validate: ^29.0.3 micromatch: ^4.0.4 parse-json: ^5.2.0 - pretty-format: ^27.5.1 + pretty-format: ^29.0.3 slash: ^3.0.0 strip-json-comments: ^3.1.1 peerDependencies: + "@types/node": "*" ts-node: ">=9.0.0" peerDependenciesMeta: + "@types/node": + optional: true ts-node: optional: true - checksum: 1188fd46c0ed78cbe3175eb9ad6712ccf74a74be33d9f0d748e147c107f0889f8b701fbff1567f31836ae18597dacdc43d6a8fc30dd34ade6c9229cc6c7cb82d + checksum: b2861ebf946e8c332c0526559de7f41d79bbe27731ee4de15add1a2ac8baec160ed572d22e66fd8dae6cde38dbedc9dd0987397021499f7aa44f558da651c65a languageName: node linkType: hard @@ -26908,54 +26093,67 @@ __metadata: languageName: node linkType: hard -"jest-docblock@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-docblock@npm:27.5.1" +"jest-diff@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-diff@npm:29.0.3" + dependencies: + chalk: ^4.0.0 + diff-sequences: ^29.0.0 + jest-get-type: ^29.0.0 + pretty-format: ^29.0.3 + checksum: 1e12b63ea6254ea25146b6fb19f8b2d1ba334e1b8b635a007767c17dc272728afbdf41ccccce26c2a40cd9c7f3176bcfed53be2572927a3fc7b1ee5fff43eb26 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.0.0": + version: 29.0.0 + resolution: "jest-docblock@npm:29.0.0" dependencies: detect-newline: ^3.0.0 - checksum: c0fed6d55b229d8bffdd8d03f121dd1a3be77c88f50552d374f9e1ea3bde57bf6bea017a0add04628d98abcb1bfb48b456438eeca8a74ef0053f4dae3b95d29c + checksum: b4f81426cc0dffb05b873d3cc373a1643040be62d72cce4dfed499fbcb57c55ac02c44af7aba5e7753915ff5e85b8d6030456981156eaea20be1cb57d2719904 languageName: node linkType: hard -"jest-each@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-each@npm:27.5.1" +"jest-each@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-each@npm:29.0.3" dependencies: - "@jest/types": ^27.5.1 + "@jest/types": ^29.0.3 chalk: ^4.0.0 - jest-get-type: ^27.5.1 - jest-util: ^27.5.1 - pretty-format: ^27.5.1 - checksum: b5a6d8730fd938982569c9e0b42bdf3c242f97b957ed8155a6473b5f7b540970f8685524e7f53963dc1805319f4b6602abfc56605590ca19d55bd7a87e467e63 + jest-get-type: ^29.0.0 + jest-util: ^29.0.3 + pretty-format: ^29.0.3 + checksum: 80c1912eb573a2972e29d9731cfbfa773b010c1416998eca28a90bda4f50de393c60860a2cb1531a4d3e0a0d23698c561a64e8942d48a75023b683136de519cc languageName: node linkType: hard -"jest-environment-jsdom@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-environment-jsdom@npm:27.5.1" +"jest-environment-jsdom@npm:^29.0.2": + version: 29.0.3 + resolution: "jest-environment-jsdom@npm:29.0.3" dependencies: - "@jest/environment": ^27.5.1 - "@jest/fake-timers": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/environment": ^29.0.3 + "@jest/fake-timers": ^29.0.3 + "@jest/types": ^29.0.3 + "@types/jsdom": ^20.0.0 "@types/node": "*" - jest-mock: ^27.5.1 - jest-util: ^27.5.1 - jsdom: ^16.6.0 - checksum: bc104aef7d7530d0740402aa84ac812138b6d1e51fe58adecce679f82b99340ddab73e5ec68fa079f33f50c9ddec9728fc9f0ddcca2ad6f0b351eed2762cc555 + jest-mock: ^29.0.3 + jest-util: ^29.0.3 + jsdom: ^20.0.0 + checksum: fee4f06b61fd0a402cbbf770d6a4cee70ea2b93a9bd776830d16d4b8dcf488943b7d7b2779301e977747bb7ef3ce1e6265725b6296236803385bb7a212ca6290 languageName: node linkType: hard -"jest-environment-node@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-environment-node@npm:27.5.1" +"jest-environment-node@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-environment-node@npm:29.0.3" dependencies: - "@jest/environment": ^27.5.1 - "@jest/fake-timers": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/environment": ^29.0.3 + "@jest/fake-timers": ^29.0.3 + "@jest/types": ^29.0.3 "@types/node": "*" - jest-mock: ^27.5.1 - jest-util: ^27.5.1 - checksum: 0f988330c4f3eec092e3fb37ea753b0c6f702e83cd8f4d770af9c2bf964a70bc45fbd34ec6fdb6d71ce98a778d9f54afd673e63f222e4667fff289e8069dba39 + jest-mock: ^29.0.3 + jest-util: ^29.0.3 + checksum: 76cd5759cdb08d3a4619004a23cc45fb8d103004b4d3e95451a36b981540c5d56e4f2a5b3cafb8ecf144bf874633ea86118a202e08aec1f445a25caf4081d8bc languageName: node linkType: hard @@ -26966,66 +26164,47 @@ __metadata: languageName: node linkType: hard -"jest-haste-map@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-haste-map@npm:27.5.1" +"jest-get-type@npm:^29.0.0": + version: 29.0.0 + resolution: "jest-get-type@npm:29.0.0" + checksum: 9abdd11d69788963a92fb9d813a7b887654ecc8f3a3c8bf83166d33aaf4d57ed380e74ab8ef106f57565dd235446ca6ebc607679f0c516c4633e6d09f0540a2b + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-haste-map@npm:29.0.3" dependencies: - "@jest/types": ^27.5.1 - "@types/graceful-fs": ^4.1.2 + "@jest/types": ^29.0.3 + "@types/graceful-fs": ^4.1.3 "@types/node": "*" anymatch: ^3.0.3 fb-watchman: ^2.0.0 fsevents: ^2.3.2 graceful-fs: ^4.2.9 - jest-regex-util: ^27.5.1 - jest-serializer: ^27.5.1 - jest-util: ^27.5.1 - jest-worker: ^27.5.1 + jest-regex-util: ^29.0.0 + jest-util: ^29.0.3 + jest-worker: ^29.0.3 micromatch: ^4.0.4 - walker: ^1.0.7 + walker: ^1.0.8 dependenciesMeta: fsevents: optional: true - checksum: e092a1412829a9254b4725531ee72926de530f77fda7b0d9ea18008fb7623c16f72e772d8e93be71cac9e591b2c6843a669610887dd2c89bd9eb528856e3ab47 + checksum: fb766e0d8174e7e3a43a63b28e23bd35db61a5939d6c5c1335d7f3d642d1c608e16fef8a105289b78795e308ab3176a62bc45acfa3fa14087e7635cb008795c3 languageName: node linkType: hard -"jest-jasmine2@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-jasmine2@npm:27.5.1" +"jest-leak-detector@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-leak-detector@npm:29.0.3" dependencies: - "@jest/environment": ^27.5.1 - "@jest/source-map": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - expect: ^27.5.1 - is-generator-fn: ^2.0.0 - jest-each: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - jest-runtime: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - pretty-format: ^27.5.1 - throat: ^6.0.1 - checksum: b716adf253ceb73db661936153394ab90d7f3a8ba56d6189b7cd4df8e4e2a4153b4e63ebb5d36e29ceb0f4c211d5a6f36ab7048c6abbd881c8646567e2ab8e6d + jest-get-type: ^29.0.0 + pretty-format: ^29.0.3 + checksum: a1657dbb72f2c3b4a8af148daec491d42eabdadc4e27eb8ec325d5267c21ac958e82e5c8ee679861c2131afd2bdfed4139b806511de7624d93b9838c6fcf5b2e languageName: node linkType: hard -"jest-leak-detector@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-leak-detector@npm:27.5.1" - dependencies: - jest-get-type: ^27.5.1 - pretty-format: ^27.5.1 - checksum: 5c9689060960567ddaf16c570d87afa760a461885765d2c71ef4f4857bbc3af1482c34e3cce88e50beefde1bf35e33530b020480752057a7e3dbb1ca0bae359f - languageName: node - linkType: hard - -"jest-matcher-utils@npm:^27.0.0, jest-matcher-utils@npm:^27.5.1": +"jest-matcher-utils@npm:^27.0.0": version: 27.5.1 resolution: "jest-matcher-utils@npm:27.5.1" dependencies: @@ -27037,30 +26216,42 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-message-util@npm:27.5.1" +"jest-matcher-utils@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-matcher-utils@npm:29.0.3" + dependencies: + chalk: ^4.0.0 + jest-diff: ^29.0.3 + jest-get-type: ^29.0.0 + pretty-format: ^29.0.3 + checksum: e39ab74a046ada8fbd75a275bfe54bd5f8ec14a98f77e1162a49d4e1ea82e68c5a4575691767cea0f60dd0b74cb481275012bf3467cd91fdb014311c670b8a83 + languageName: node + linkType: hard + +"jest-message-util@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-message-util@npm:29.0.3" dependencies: "@babel/code-frame": ^7.12.13 - "@jest/types": ^27.5.1 + "@jest/types": ^29.0.3 "@types/stack-utils": ^2.0.0 chalk: ^4.0.0 graceful-fs: ^4.2.9 micromatch: ^4.0.4 - pretty-format: ^27.5.1 + pretty-format: ^29.0.3 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: eb6d637d1411c71646de578c49826b6da8e33dd293e501967011de9d1916d53d845afbfb52a5b661ff1c495be7c13f751c48c7f30781fd94fbd64842e8195796 + checksum: 04bee1fee10106f4eb875092e5d06187930d44050a4f99e7aa1d1e42768b18d6d9e5439623d9242202942deb8a1eec08359e0cd19a43ae505d96aeaf243a3f8d languageName: node linkType: hard -"jest-mock@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-mock@npm:27.5.1" +"jest-mock@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-mock@npm:29.0.3" dependencies: - "@jest/types": ^27.5.1 + "@jest/types": ^29.0.3 "@types/node": "*" - checksum: f5b5904bb1741b4a1687a5f492535b7b1758dc26534c72a5423305f8711292e96a601dec966df81bb313269fb52d47227e29f9c2e08324d79529172f67311be0 + checksum: 8a04823334216f5fca9733a200cbb4cca207bdd74c523321a4170cbec3b2086b44eb1744a9faef808d2853593f132dda90d17e4bce59678fc373e1bab666ad0f languageName: node linkType: hard @@ -27076,190 +26267,172 @@ __metadata: languageName: node linkType: hard -"jest-regex-util@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-regex-util@npm:27.5.1" - checksum: d45ca7a9543616a34f7f3079337439cf07566e677a096472baa2810e274b9808b76767c97b0a4029b8a5b82b9d256dee28ef9ad4138b2b9e5933f6fac106c418 +"jest-regex-util@npm:^29.0.0": + version: 29.0.0 + resolution: "jest-regex-util@npm:29.0.0" + checksum: dce16394c357213008e6f84f2288f77c64bba59b7cb48ea614e85c5aae036a7e46dbfd1f45aa08180b7e7c576102bf4f8f0ff8bc60fb9721fb80874adc3ae0ea languageName: node linkType: hard -"jest-resolve-dependencies@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-resolve-dependencies@npm:27.5.1" +"jest-resolve-dependencies@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-resolve-dependencies@npm:29.0.3" dependencies: - "@jest/types": ^27.5.1 - jest-regex-util: ^27.5.1 - jest-snapshot: ^27.5.1 - checksum: c67af97afad1da88f5530317c732bbd1262d1225f6cd7f4e4740a5db48f90ab0bd8564738ac70d1a43934894f9aef62205c1b8f8ee89e5c7a737e6a121ee4c25 + jest-regex-util: ^29.0.0 + jest-snapshot: ^29.0.3 + checksum: 43980c0c03a7f00459209315832f03c28d8289ca30ccd8bb6652c87a2c03275aacdba8789177cefc162ceb05218ba3db8bf5a1968920aa4e510cbbefd54f9793 languageName: node linkType: hard -"jest-resolve@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-resolve@npm:27.5.1" +"jest-resolve@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-resolve@npm:29.0.3" dependencies: - "@jest/types": ^27.5.1 chalk: ^4.0.0 graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 + jest-haste-map: ^29.0.3 jest-pnp-resolver: ^1.2.2 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 + jest-util: ^29.0.3 + jest-validate: ^29.0.3 resolve: ^1.20.0 resolve.exports: ^1.1.0 slash: ^3.0.0 - checksum: 735830e7265b20a348029738680bb2f6e37f80ecea86cda869a4c318ba3a45d39c7a3a873a22f7f746d86258c50ead6e7f501de043e201c095d7ba628a1c440f + checksum: 9a774f78decbd9caa863e8c539d439aac76a780ea7acc54e90f2ad9c2000c03294e7f4f38816d16a8aa020ae0e3358845cc8f96fbab5f3e186b00e6e0462bf9b languageName: node linkType: hard -"jest-runner@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-runner@npm:27.5.1" +"jest-runner@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-runner@npm:29.0.3" dependencies: - "@jest/console": ^27.5.1 - "@jest/environment": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/console": ^29.0.3 + "@jest/environment": ^29.0.3 + "@jest/test-result": ^29.0.3 + "@jest/transform": ^29.0.3 + "@jest/types": ^29.0.3 "@types/node": "*" chalk: ^4.0.0 - emittery: ^0.8.1 + emittery: ^0.10.2 graceful-fs: ^4.2.9 - jest-docblock: ^27.5.1 - jest-environment-jsdom: ^27.5.1 - jest-environment-node: ^27.5.1 - jest-haste-map: ^27.5.1 - jest-leak-detector: ^27.5.1 - jest-message-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-runtime: ^27.5.1 - jest-util: ^27.5.1 - jest-worker: ^27.5.1 - source-map-support: ^0.5.6 - throat: ^6.0.1 - checksum: 5bbe6cf847dd322b3332ec9d6977b54f91bd5f72ff620bc1a0192f0f129deda8aa7ca74c98922187a7aa87d8e0ce4f6c50e99a7ccb2a310bf4d94be2e0c3ce8e + jest-docblock: ^29.0.0 + jest-environment-node: ^29.0.3 + jest-haste-map: ^29.0.3 + jest-leak-detector: ^29.0.3 + jest-message-util: ^29.0.3 + jest-resolve: ^29.0.3 + jest-runtime: ^29.0.3 + jest-util: ^29.0.3 + jest-watcher: ^29.0.3 + jest-worker: ^29.0.3 + p-limit: ^3.1.0 + source-map-support: 0.5.13 + checksum: db62830d1635be5e376fd261e38d37a4855146c9a586ec616cfb64257ef6f79697bd947bbb9751377dc2302626e73d1b77036eafd78ef6f93e1e53ca89c23e3e languageName: node linkType: hard -"jest-runtime@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-runtime@npm:27.5.1" +"jest-runtime@npm:^29.0.2, jest-runtime@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-runtime@npm:29.0.3" dependencies: - "@jest/environment": ^27.5.1 - "@jest/fake-timers": ^27.5.1 - "@jest/globals": ^27.5.1 - "@jest/source-map": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/environment": ^29.0.3 + "@jest/fake-timers": ^29.0.3 + "@jest/globals": ^29.0.3 + "@jest/source-map": ^29.0.0 + "@jest/test-result": ^29.0.3 + "@jest/transform": ^29.0.3 + "@jest/types": ^29.0.3 + "@types/node": "*" chalk: ^4.0.0 cjs-module-lexer: ^1.0.0 collect-v8-coverage: ^1.0.0 - execa: ^5.0.0 glob: ^7.1.3 graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-message-util: ^27.5.1 - jest-mock: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 + jest-haste-map: ^29.0.3 + jest-message-util: ^29.0.3 + jest-mock: ^29.0.3 + jest-regex-util: ^29.0.0 + jest-resolve: ^29.0.3 + jest-snapshot: ^29.0.3 + jest-util: ^29.0.3 slash: ^3.0.0 strip-bom: ^4.0.0 - checksum: 929e3df0c53dab43f831f2af4e2996b22aa8cb2d6d483919d6b0426cbc100098fd5b777b998c6568b77f8c4d860b2e83127514292ff61416064f5ef926492386 + checksum: e13bfadfe225e9c06a95809d34e209e1769723c0c3d5913d86e4e748a22777e2bec11a352f2d12ca790e04203a6defc6556f77a3050518ebf6600a454a56fd36 languageName: node linkType: hard -"jest-serializer@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-serializer@npm:27.5.1" +"jest-snapshot@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-snapshot@npm:29.0.3" dependencies: - "@types/node": "*" - graceful-fs: ^4.2.9 - checksum: 803e03a552278610edc6753c0dd9fa5bb5cd3ca47414a7b2918106efb62b79fd5e9ae785d0a21f12a299fa599fea8acc1fa6dd41283328cee43962cf7df9bb44 - languageName: node - linkType: hard - -"jest-snapshot@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-snapshot@npm:27.5.1" - dependencies: - "@babel/core": ^7.7.2 + "@babel/core": ^7.11.6 "@babel/generator": ^7.7.2 + "@babel/plugin-syntax-jsx": ^7.7.2 "@babel/plugin-syntax-typescript": ^7.7.2 "@babel/traverse": ^7.7.2 - "@babel/types": ^7.0.0 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/babel__traverse": ^7.0.4 + "@babel/types": ^7.3.3 + "@jest/expect-utils": ^29.0.3 + "@jest/transform": ^29.0.3 + "@jest/types": ^29.0.3 + "@types/babel__traverse": ^7.0.6 "@types/prettier": ^2.1.5 babel-preset-current-node-syntax: ^1.0.0 chalk: ^4.0.0 - expect: ^27.5.1 + expect: ^29.0.3 graceful-fs: ^4.2.9 - jest-diff: ^27.5.1 - jest-get-type: ^27.5.1 - jest-haste-map: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - jest-util: ^27.5.1 + jest-diff: ^29.0.3 + jest-get-type: ^29.0.0 + jest-haste-map: ^29.0.3 + jest-matcher-utils: ^29.0.3 + jest-message-util: ^29.0.3 + jest-util: ^29.0.3 natural-compare: ^1.4.0 - pretty-format: ^27.5.1 - semver: ^7.3.2 - checksum: a5cfadf0d21cd76063925d1434bc076443ed6d87847d0e248f0b245f11db3d98ff13e45cc03b15404027dabecd712d925f47b6eae4f64986f688640a7d362514 + pretty-format: ^29.0.3 + semver: ^7.3.5 + checksum: 412c0fc4c12c14470aa33beeddfeb04fa0d5724235321e8284b52097c74c97ada40ea52f5ac52a8e01e6d42dd5894b9a0260577d30c8c723ca84fcc7a60bd40c languageName: node linkType: hard -"jest-transform-yaml@npm:^1.0.0": - version: 1.0.0 - resolution: "jest-transform-yaml@npm:1.0.0" +"jest-util@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-util@npm:29.0.3" dependencies: - js-yaml: 4.1.0 - checksum: 3bb1646c9fd08beb7d9f28a340bc28cebbc1aedb657c5f7809247423bfd39d99eccb8792a689876079133031281e95c56f2fadb93cdf1a142b74e9b9b7584595 - languageName: node - linkType: hard - -"jest-util@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-util@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 + "@jest/types": ^29.0.3 "@types/node": "*" chalk: ^4.0.0 ci-info: ^3.2.0 graceful-fs: ^4.2.9 picomatch: ^2.2.3 - checksum: ac8d122f6daf7a035dcea156641fd3701aeba245417c40836a77e35b3341b9c02ddc5d904cfcd4ddbaa00ab854da76d3b911870cafdcdbaff90ea471de26c7d7 + checksum: 39c31e75ba5bcb4c3ccdf0895f9fdbb83f839c432e7c6639a688beb414d681b5d50282da017c723ea1f2a7033e74a4938fd33dcff231c3e90f903173919991d5 languageName: node linkType: hard -"jest-validate@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-validate@npm:27.5.1" +"jest-validate@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-validate@npm:29.0.3" dependencies: - "@jest/types": ^27.5.1 + "@jest/types": ^29.0.3 camelcase: ^6.2.0 chalk: ^4.0.0 - jest-get-type: ^27.5.1 + jest-get-type: ^29.0.0 leven: ^3.1.0 - pretty-format: ^27.5.1 - checksum: 82e870f8ee7e4fb949652711b1567f05ae31c54be346b0899e8353e5c20fad7692b511905b37966945e90af8dc0383eb41a74f3ffefb16140ea4f9164d841412 + pretty-format: ^29.0.3 + checksum: 096df6a77837155d9b65cd7ff9198489317c53903eb74a7f207e053c0b56204c18b6a8047e168eced291eb550b792ef4ab322b05c7da348af76cd78ea3556b4e languageName: node linkType: hard -"jest-watcher@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-watcher@npm:27.5.1" +"jest-watcher@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-watcher@npm:29.0.3" dependencies: - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/test-result": ^29.0.3 + "@jest/types": ^29.0.3 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 - jest-util: ^27.5.1 + emittery: ^0.10.2 + jest-util: ^29.0.3 string-length: ^4.0.1 - checksum: 191c4e9c278c0902ade1a8a80883ac244963ba3e6e78607a3d5f729ccca9c6e71fb3b316f87883658132641c5d818aa84202585c76752e03c539e6cbecb820bd + checksum: d585b9dda467d08946357c8ed1f971f15a302f958ccd3f6e2e59df5da245edca91cd4a72329d0126de8ac5793567965e4be1e555c4e40ecadb4f8f14306441bb languageName: node linkType: hard @@ -27272,7 +26445,7 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^27.4.5, jest-worker@npm:^27.5.1": +"jest-worker@npm:^27.4.5": version: 27.5.1 resolution: "jest-worker@npm:27.5.1" dependencies: @@ -27294,13 +26467,25 @@ __metadata: languageName: node linkType: hard -"jest@npm:^27.5.1": - version: 27.5.1 - resolution: "jest@npm:27.5.1" +"jest-worker@npm:^29.0.3": + version: 29.0.3 + resolution: "jest-worker@npm:29.0.3" dependencies: - "@jest/core": ^27.5.1 + "@types/node": "*" + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: cdae4a58f6ab1ec3c384b42f1106004d434e65febcb34ba14a1e7d8538f7a5a5c2ebb0cf29cecfe8c71882c526ee02c4aa338a9ce0abcf11fcec9b8fa662189b + languageName: node + linkType: hard + +"jest@npm:^29.0.2": + version: 29.0.3 + resolution: "jest@npm:29.0.3" + dependencies: + "@jest/core": ^29.0.3 + "@jest/types": ^29.0.3 import-local: ^3.0.2 - jest-cli: ^27.5.1 + jest-cli: ^29.0.3 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -27308,7 +26493,7 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 96f1d69042b3c6dfc695f2a4e4b0db38af6fb78582ad1a02beaa57cfcd77cbd31567d7d865c1c85709b7c3e176eefa3b2035ffecd646005f15d8ef528eccf205 + checksum: 6bffa1ec703dbf64ce79aa7ef2887b586fdc96881cf2b83c8e86569237124a17aa001ddd4e7be7877202abe530ee5c04e9f0dd54e7320533b05b90709aca2607 languageName: node linkType: hard @@ -27437,7 +26622,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:4.1.0, js-yaml@npm:=4.1.0, js-yaml@npm:^4.0.0, js-yaml@npm:^4.1.0": +"js-yaml@npm:=4.1.0, js-yaml@npm:^4.0.0, js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" dependencies: @@ -27565,7 +26750,7 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^16.5.2, jsdom@npm:^16.6.0": +"jsdom@npm:^16.5.2": version: 16.7.0 resolution: "jsdom@npm:16.7.0" dependencies: @@ -27605,6 +26790,46 @@ __metadata: languageName: node linkType: hard +"jsdom@npm:^20.0.0": + version: 20.0.0 + resolution: "jsdom@npm:20.0.0" + dependencies: + abab: ^2.0.6 + acorn: ^8.7.1 + acorn-globals: ^6.0.0 + cssom: ^0.5.0 + cssstyle: ^2.3.0 + data-urls: ^3.0.2 + decimal.js: ^10.3.1 + domexception: ^4.0.0 + escodegen: ^2.0.0 + form-data: ^4.0.0 + html-encoding-sniffer: ^3.0.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.1 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.0 + parse5: ^7.0.0 + saxes: ^6.0.0 + symbol-tree: ^3.2.4 + tough-cookie: ^4.0.0 + w3c-hr-time: ^1.0.2 + w3c-xmlserializer: ^3.0.0 + webidl-conversions: ^7.0.0 + whatwg-encoding: ^2.0.0 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + ws: ^8.8.0 + xml-name-validator: ^4.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: f69b40679d8cfaee2353615445aaff08b823c53dc7778ede6592d02ed12b3e9fb4e8db2b6d033551b67e08424a3adb2b79d231caa7dcda2d16019c20c705c11f + languageName: node + linkType: hard + "jsesc@npm:^2.5.1": version: 2.5.2 resolution: "jsesc@npm:2.5.2" @@ -27856,7 +27081,7 @@ __metadata: languageName: node linkType: hard -"jsonparse@npm:^1.2.0, jsonparse@npm:^1.3.1": +"jsonparse@npm:^1.3.1": version: 1.3.1 resolution: "jsonparse@npm:1.3.1" checksum: 6514a7be4674ebf407afca0eda3ba284b69b07f9958a8d3113ef1005f7ec610860c312be067e450c569aab8b89635e332cee3696789c750692bb60daba627f4d @@ -28352,34 +27577,6 @@ __metadata: languageName: node linkType: hard -"lerna@npm:~5.0.0": - version: 5.0.0 - resolution: "lerna@npm:5.0.0" - dependencies: - "@lerna/add": 5.0.0 - "@lerna/bootstrap": 5.0.0 - "@lerna/changed": 5.0.0 - "@lerna/clean": 5.0.0 - "@lerna/cli": 5.0.0 - "@lerna/create": 5.0.0 - "@lerna/diff": 5.0.0 - "@lerna/exec": 5.0.0 - "@lerna/import": 5.0.0 - "@lerna/info": 5.0.0 - "@lerna/init": 5.0.0 - "@lerna/link": 5.0.0 - "@lerna/list": 5.0.0 - "@lerna/publish": 5.0.0 - "@lerna/run": 5.0.0 - "@lerna/version": 5.0.0 - import-local: ^3.0.2 - npmlog: ^4.1.2 - bin: - lerna: cli.js - checksum: 27383b3dba162041dbd9de8ca3cd134fe6c6fe57082fee3f12fbf795dfc0e9e513eca9a1cc0aacbea29ef19c6009c3ba64d620ef3e67143e001fbcd4eebeebf5 - languageName: node - linkType: hard - "leven@npm:2.1.0": version: 2.1.0 resolution: "leven@npm:2.1.0" @@ -28421,31 +27618,6 @@ __metadata: languageName: node linkType: hard -"libnpmaccess@npm:^4.0.1": - version: 4.0.1 - resolution: "libnpmaccess@npm:4.0.1" - dependencies: - aproba: ^2.0.0 - minipass: ^3.1.1 - npm-package-arg: ^8.0.0 - npm-registry-fetch: ^9.0.0 - checksum: ca89f579311b2d348236107566f9c9a9e84678428fc267c3ed284ab99b4179ae560864fee36b676726c906e9dd83725d2e91b334d0c4cb7b2d3a52827fa75dd9 - languageName: node - linkType: hard - -"libnpmpublish@npm:^4.0.0": - version: 4.0.0 - resolution: "libnpmpublish@npm:4.0.0" - dependencies: - normalize-package-data: ^3.0.0 - npm-package-arg: ^8.1.0 - npm-registry-fetch: ^9.0.0 - semver: ^7.1.3 - ssri: ^8.0.0 - checksum: 382cb15b19053b7097cdd6fe36e1c760cbb4906e5a3fac02f8909e4f2792e66f4652a655cd74c6744ad412a000a769d40fee23a58e8c38299535c0d76a1ff3a9 - languageName: node - linkType: hard - "lilconfig@npm:2.0.5": version: 2.0.5 resolution: "lilconfig@npm:2.0.5" @@ -28582,18 +27754,6 @@ __metadata: languageName: node linkType: hard -"load-json-file@npm:^6.2.0": - version: 6.2.0 - resolution: "load-json-file@npm:6.2.0" - dependencies: - graceful-fs: ^4.1.15 - parse-json: ^5.0.0 - strip-bom: ^4.0.0 - type-fest: ^0.6.0 - checksum: 4429e430ebb99375fc7cd936348e4f7ba729486080ced4272091c1e386a7f5f738ea3337d8ffd4b01c2f5bc3ddde92f2c780045b66838fe98bdb79f901884643 - languageName: node - linkType: hard - "load-yaml-file@npm:^0.2.0": version: 0.2.0 resolution: "load-yaml-file@npm:0.2.0" @@ -28687,13 +27847,6 @@ __metadata: languageName: node linkType: hard -"lodash._reinterpolate@npm:^3.0.0": - version: 3.0.0 - resolution: "lodash._reinterpolate@npm:3.0.0" - checksum: 06d2d5f33169604fa5e9f27b6067ed9fb85d51a84202a656901e5ffb63b426781a601508466f039c720af111b0c685d12f1a5c14ff8df5d5f27e491e562784b2 - languageName: node - linkType: hard - "lodash.assign@npm:^4.1.0, lodash.assign@npm:^4.2.0": version: 4.2.0 resolution: "lodash.assign@npm:4.2.0" @@ -28820,13 +27973,6 @@ __metadata: languageName: node linkType: hard -"lodash.ismatch@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.ismatch@npm:4.4.0" - checksum: a393917578842705c7fc1a30fb80613d1ac42d20b67eb26a2a6004d6d61ee90b419f9eb320508ddcd608e328d91eeaa2651411727eaa9a12534ed6ccb02fc705 - languageName: node - linkType: hard - "lodash.isnil@npm:^4.0.0": version: 4.0.0 resolution: "lodash.isnil@npm:4.0.0" @@ -28911,25 +28057,6 @@ __metadata: languageName: node linkType: hard -"lodash.template@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.template@npm:4.5.0" - dependencies: - lodash._reinterpolate: ^3.0.0 - lodash.templatesettings: ^4.0.0 - checksum: ca64e5f07b6646c9d3dbc0fe3aaa995cb227c4918abd1cef7a9024cd9c924f2fa389a0ec4296aa6634667e029bc81d4bbdb8efbfde11df76d66085e6c529b450 - languageName: node - linkType: hard - -"lodash.templatesettings@npm:^4.0.0": - version: 4.2.0 - resolution: "lodash.templatesettings@npm:4.2.0" - dependencies: - lodash._reinterpolate: ^3.0.0 - checksum: 863e025478b092997e11a04e9d9e735875eeff1ffcd6c61742aa8272e3c2cddc89ce795eb9726c4e74cef5991f722897ff37df7738a125895f23fc7d12a7bb59 - languageName: node - linkType: hard - "lodash.throttle@npm:^4.1.1": version: 4.1.1 resolution: "lodash.throttle@npm:4.1.1" @@ -29095,7 +28222,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.10.1, lru-cache@npm:^7.4.4, lru-cache@npm:^7.5.1, lru-cache@npm:^7.7.1": +"lru-cache@npm:^7.10.1, lru-cache@npm:^7.7.1": version: 7.10.1 resolution: "lru-cache@npm:7.10.1" checksum: e8b190d71ed0fcd7b29c71a3e9b01f851c92d1ef8865ff06b5581ca991db1e5e006920ed4da8b56da1910664ed51abfd76c46fb55e82ac252ff6c970ff910d72 @@ -29238,53 +28365,6 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^10.0.6": - version: 10.1.7 - resolution: "make-fetch-happen@npm:10.1.7" - dependencies: - agentkeepalive: ^4.2.1 - cacache: ^16.1.0 - http-cache-semantics: ^4.1.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 - is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-fetch: ^2.0.3 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 - ssri: ^9.0.0 - checksum: 2b7301256e18a2f825c1c3cad14e11492428531ecdea04d846dc12c2d69658d65832746ce965e67c7f98b0d0506115674cf43676c3322709278620bfc886cf4a - languageName: node - linkType: hard - -"make-fetch-happen@npm:^8.0.9": - version: 8.0.14 - resolution: "make-fetch-happen@npm:8.0.14" - dependencies: - agentkeepalive: ^4.1.3 - cacache: ^15.0.5 - http-cache-semantics: ^4.1.0 - http-proxy-agent: ^4.0.1 - https-proxy-agent: ^5.0.0 - is-lambda: ^1.0.1 - lru-cache: ^6.0.0 - minipass: ^3.1.3 - minipass-collect: ^1.0.2 - minipass-fetch: ^1.3.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - promise-retry: ^2.0.1 - socks-proxy-agent: ^5.0.0 - ssri: ^8.0.0 - checksum: 326fefde1aec1f1314e548be74baaaa322208718d1b51c9688a326f73dea70f57767b4f5423230e39408cfe7c6dcf7adcf86ca4798c919c3ea78f54532910434 - languageName: node - linkType: hard - "make-fetch-happen@npm:^9.1.0": version: 9.1.0 resolution: "make-fetch-happen@npm:9.1.0" @@ -29309,12 +28389,12 @@ __metadata: languageName: node linkType: hard -"makeerror@npm:1.0.x": - version: 1.0.11 - resolution: "makeerror@npm:1.0.11" +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" dependencies: - tmpl: 1.0.x - checksum: 9a62ec2d9648c5329fdc4bc7d779a7305f32b1e55422a4f14244bc890bb43287fe013eb8d965e92a0cf4c443f3e59265b1fc3125eaedb0c2361e28b1a8de565d + tmpl: 1.0.5 + checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 languageName: node linkType: hard @@ -29698,25 +28778,6 @@ __metadata: languageName: node linkType: hard -"meow@npm:^8.0.0": - version: 8.1.2 - resolution: "meow@npm:8.1.2" - dependencies: - "@types/minimist": ^1.2.0 - camelcase-keys: ^6.2.2 - decamelize-keys: ^1.1.0 - hard-rejection: ^2.1.0 - minimist-options: 4.1.0 - normalize-package-data: ^3.0.0 - read-pkg-up: ^7.0.1 - redent: ^3.0.0 - trim-newlines: ^3.0.0 - type-fest: ^0.18.0 - yargs-parser: ^20.2.3 - checksum: bc23bf1b4423ef6a821dff9734406bce4b91ea257e7f10a8b7f896f45b59649f07adc0926e2917eacd8cf1df9e4cd89c77623cf63dfd0f8bf54de07a32ee5a85 - languageName: node - linkType: hard - "merge-descriptors@npm:1.0.1": version: 1.0.1 resolution: "merge-descriptors@npm:1.0.1" @@ -30313,7 +29374,7 @@ __metadata: languageName: node linkType: hard -"minimist-options@npm:4.1.0, minimist-options@npm:^4.0.2": +"minimist-options@npm:^4.0.2": version: 4.1.0 resolution: "minimist-options@npm:4.1.0" dependencies: @@ -30349,7 +29410,7 @@ __metadata: languageName: node linkType: hard -"minipass-fetch@npm:^1.3.0, minipass-fetch@npm:^1.3.2, minipass-fetch@npm:^1.4.1": +"minipass-fetch@npm:^1.3.2, minipass-fetch@npm:^1.4.1": version: 1.4.1 resolution: "minipass-fetch@npm:1.4.1" dependencies: @@ -30529,13 +29590,6 @@ __metadata: languageName: node linkType: hard -"modify-values@npm:^1.0.0": - version: 1.0.1 - resolution: "modify-values@npm:1.0.1" - checksum: 8296610c608bc97b03c2cf889c6cdf4517e32fa2d836440096374c2209f6b7b3e256c209493a0b32584b9cb32d528e99d0dd19dcd9a14d2d915a312d391cc7e9 - languageName: node - linkType: hard - "moment@npm:^2.27.0, moment@npm:^2.29.1": version: 2.29.4 resolution: "moment@npm:2.29.4" @@ -30680,7 +29734,7 @@ __metadata: languageName: node linkType: hard -"mute-stream@npm:0.0.8, mute-stream@npm:~0.0.4": +"mute-stream@npm:0.0.8": version: 0.0.8 resolution: "mute-stream@npm:0.0.8" checksum: ff48d251fc3f827e5b1206cda0ffdaec885e56057ee86a3155e1951bc940fd5f33531774b1cc8414d7668c10a8907f863f6561875ee6e8768931a62121a531a1 @@ -30923,7 +29977,7 @@ __metadata: languageName: node linkType: hard -"node-gyp@npm:^8.2.0, node-gyp@npm:^8.4.1": +"node-gyp@npm:^8.2.0": version: 8.4.1 resolution: "node-gyp@npm:8.4.1" dependencies: @@ -31076,30 +30130,6 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.0": - version: 3.0.0 - resolution: "normalize-package-data@npm:3.0.0" - dependencies: - hosted-git-info: ^3.0.6 - resolve: ^1.17.0 - semver: ^7.3.2 - validate-npm-package-license: ^3.0.1 - checksum: 665ad6e3d0463f56ee8acc1f8f71c5f62535e4c689ed389521c36e8fd34273306f978c934154de3a43f5b128ed7010872ce3381948f8d4a63d70f50ed01ac2e0 - languageName: node - linkType: hard - -"normalize-package-data@npm:^4.0.0": - version: 4.0.0 - resolution: "normalize-package-data@npm:4.0.0" - dependencies: - hosted-git-info: ^5.0.0 - is-core-module: ^2.8.1 - semver: ^7.3.5 - validate-npm-package-license: ^3.0.4 - checksum: b0f47de4295a0f8499bd478e84b9f9592a29f65227c2b4446ae80f7dff6e7a5ec6ef25ea8f06f3dcb9b7b7d945c2daa274385925b3d85e77e34eaffa0b42e316 - languageName: node - linkType: hard - "normalize-path@npm:^2.1.1": version: 2.1.1 resolution: "normalize-path@npm:2.1.1" @@ -31116,13 +30146,6 @@ __metadata: languageName: node linkType: hard -"normalize-url@npm:^3.3.0": - version: 3.3.0 - resolution: "normalize-url@npm:3.3.0" - checksum: f6aa4a1a94c3b799812f3e7fc987fb4599d869bfa8e9a160b6f2c5a2b4e62ada998d64dca30d9e20769d8bd95d3da1da3d4841dba2cc3c4d85364e1eb46219a2 - languageName: node - linkType: hard - "normalize-url@npm:^6.0.1": version: 6.1.0 resolution: "normalize-url@npm:6.1.0" @@ -31157,15 +30180,6 @@ __metadata: languageName: node linkType: hard -"npm-install-checks@npm:^5.0.0": - version: 5.0.0 - resolution: "npm-install-checks@npm:5.0.0" - dependencies: - semver: ^7.1.1 - checksum: 0e7d1aae52b1fe9d3a0fd4a008850c7047931722dd49ee908afd13fd0297ac5ddb10964d9c59afcdaaa2ca04b51d75af2788f668c729ae71fec0e4cdac590ffc - languageName: node - linkType: hard - "npm-normalize-package-bin@npm:^1.0.0, npm-normalize-package-bin@npm:^1.0.1": version: 1.0.1 resolution: "npm-normalize-package-bin@npm:1.0.1" @@ -31180,7 +30194,7 @@ __metadata: languageName: node linkType: hard -"npm-package-arg@npm:^8.0.0, npm-package-arg@npm:^8.0.1, npm-package-arg@npm:^8.1.0, npm-package-arg@npm:^8.1.2, npm-package-arg@npm:^8.1.5": +"npm-package-arg@npm:^8.0.1, npm-package-arg@npm:^8.1.2, npm-package-arg@npm:^8.1.5": version: 8.1.5 resolution: "npm-package-arg@npm:8.1.5" dependencies: @@ -31191,31 +30205,6 @@ __metadata: languageName: node linkType: hard -"npm-package-arg@npm:^9.0.0, npm-package-arg@npm:^9.0.1": - version: 9.0.2 - resolution: "npm-package-arg@npm:9.0.2" - dependencies: - hosted-git-info: ^5.0.0 - semver: ^7.3.5 - validate-npm-package-name: ^4.0.0 - checksum: 07828f330f611214a0aa1e87f402b30b3dc90388671470ad8dc1551f28b0cb886f1f75fa7c37e894a9598640a555c05643642994ecacb9a6c68f655e571968f7 - languageName: node - linkType: hard - -"npm-packlist@npm:^2.1.4": - version: 2.1.4 - resolution: "npm-packlist@npm:2.1.4" - dependencies: - glob: ^7.1.6 - ignore-walk: ^3.0.3 - npm-bundled: ^1.1.1 - npm-normalize-package-bin: ^1.0.1 - bin: - npm-packlist: bin/index.js - checksum: 916eb67d81c52124b01e20a72168e83fed6fbc168fb6ecd659f5581f515818b9668dab9c1a6b19c7fd6dbe583ad2ed7ceb06924aa884336696f1b08f0f637b22 - languageName: node - linkType: hard - "npm-packlist@npm:^3.0.0": version: 3.0.0 resolution: "npm-packlist@npm:3.0.0" @@ -31230,7 +30219,7 @@ __metadata: languageName: node linkType: hard -"npm-packlist@npm:^5.0.0, npm-packlist@npm:^5.1.0": +"npm-packlist@npm:^5.0.0": version: 5.1.3 resolution: "npm-packlist@npm:5.1.3" dependencies: @@ -31256,18 +30245,6 @@ __metadata: languageName: node linkType: hard -"npm-pick-manifest@npm:^7.0.0": - version: 7.0.1 - resolution: "npm-pick-manifest@npm:7.0.1" - dependencies: - npm-install-checks: ^5.0.0 - npm-normalize-package-bin: ^1.0.1 - npm-package-arg: ^9.0.0 - semver: ^7.3.5 - checksum: 9a4a8e64d2214783b2b74a361845000f5d91bb40c7858e2a30af2ac7876d9296efc37f8cacf60335e96a45effee2035b033d9bdefb4889757cc60d85959accbb - languageName: node - linkType: hard - "npm-registry-fetch@npm:^12.0.0, npm-registry-fetch@npm:^12.0.1": version: 12.0.2 resolution: "npm-registry-fetch@npm:12.0.2" @@ -31282,37 +30259,6 @@ __metadata: languageName: node linkType: hard -"npm-registry-fetch@npm:^13.0.0, npm-registry-fetch@npm:^13.0.1": - version: 13.1.1 - resolution: "npm-registry-fetch@npm:13.1.1" - dependencies: - make-fetch-happen: ^10.0.6 - minipass: ^3.1.6 - minipass-fetch: ^2.0.3 - minipass-json-stream: ^1.0.1 - minizlib: ^2.1.2 - npm-package-arg: ^9.0.1 - proc-log: ^2.0.0 - checksum: e085faf5cdc1cfe9b8f825065a0823531b2a28799d84614b3971e344dde087f9089c0f0220360771a81f110c5444978c6f7309084ff7d7d396252b068148bb44 - languageName: node - linkType: hard - -"npm-registry-fetch@npm:^9.0.0": - version: 9.0.0 - resolution: "npm-registry-fetch@npm:9.0.0" - dependencies: - "@npmcli/ci-detect": ^1.0.0 - lru-cache: ^6.0.0 - make-fetch-happen: ^8.0.9 - minipass: ^3.1.3 - minipass-fetch: ^1.3.0 - minipass-json-stream: ^1.0.1 - minizlib: ^2.0.0 - npm-package-arg: ^8.0.0 - checksum: b5376b72efc503e46a84cda967b79c08b093f040bfa819b59db32dfa9b057c810401a740dbf739a94a2ebbd0f6a3888bc0918db6506553ab97afb555260a5a22 - languageName: node - linkType: hard - "npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -31367,18 +30313,6 @@ __metadata: languageName: node linkType: hard -"npmlog@npm:^6.0.2": - version: 6.0.2 - resolution: "npmlog@npm:6.0.2" - dependencies: - are-we-there-yet: ^3.0.0 - console-control-strings: ^1.1.0 - gauge: ^4.0.3 - set-blocking: ^2.0.0 - checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a - languageName: node - linkType: hard - "nth-check@npm:^2.0.0": version: 2.0.1 resolution: "nth-check@npm:2.0.1" @@ -31919,13 +30853,6 @@ __metadata: languageName: node linkType: hard -"p-map-series@npm:^2.1.0": - version: 2.1.0 - resolution: "p-map-series@npm:2.1.0" - checksum: 69d4efbb6951c0dd62591d5a18c3af0af78496eae8b55791e049da239d70011aa3af727dece3fc9943e0bb3fd4fa64d24177cfbecc46efaf193179f0feeac486 - languageName: node - linkType: hard - "p-map@npm:^2.0.0": version: 2.1.0 resolution: "p-map@npm:2.1.0" @@ -31942,13 +30869,6 @@ __metadata: languageName: node linkType: hard -"p-pipe@npm:^3.1.0": - version: 3.1.0 - resolution: "p-pipe@npm:3.1.0" - checksum: ee9a2609685f742c6ceb3122281ec4453bbbcc80179b13e66fd139dcf19b1c327cf6c2fdfc815b548d6667e7eaefe5396323f6d49c4f7933e4cef47939e3d65c - languageName: node - linkType: hard - "p-queue@npm:^6.6.2": version: 6.6.2 resolution: "p-queue@npm:6.6.2" @@ -31959,13 +30879,6 @@ __metadata: languageName: node linkType: hard -"p-reduce@npm:^2.0.0, p-reduce@npm:^2.1.0": - version: 2.1.0 - resolution: "p-reduce@npm:2.1.0" - checksum: 99b26d36066a921982f25c575e78355824da0787c486e3dd9fc867460e8bf17d5fb3ce98d006b41bdc81ffc0aa99edf5faee53d11fe282a20291fb721b0cb1c7 - languageName: node - linkType: hard - "p-retry@npm:^4.5.0": version: 4.5.0 resolution: "p-retry@npm:4.5.0" @@ -32009,15 +30922,6 @@ __metadata: languageName: node linkType: hard -"p-waterfall@npm:^2.1.1": - version: 2.1.1 - resolution: "p-waterfall@npm:2.1.1" - dependencies: - p-reduce: ^2.0.0 - checksum: 8588bb8b004ee37e559c7e940a480c1742c42725d477b0776ff30b894920a3e48bddf8f60aa0ae82773e500a8fc99d75e947c450e0c2ce187aff72cc1b248f6d - languageName: node - linkType: hard - "packet-reader@npm:1.0.0": version: 1.0.0 resolution: "packet-reader@npm:1.0.0" @@ -32054,37 +30958,6 @@ __metadata: languageName: node linkType: hard -"pacote@npm:^13.0.3, pacote@npm:^13.0.5, pacote@npm:^13.4.1": - version: 13.6.0 - resolution: "pacote@npm:13.6.0" - dependencies: - "@npmcli/git": ^3.0.0 - "@npmcli/installed-package-contents": ^1.0.7 - "@npmcli/promise-spawn": ^3.0.0 - "@npmcli/run-script": ^3.0.1 - cacache: ^16.0.0 - chownr: ^2.0.0 - fs-minipass: ^2.1.0 - infer-owner: ^1.0.4 - minipass: ^3.1.6 - mkdirp: ^1.0.4 - npm-package-arg: ^9.0.0 - npm-packlist: ^5.1.0 - npm-pick-manifest: ^7.0.0 - npm-registry-fetch: ^13.0.1 - proc-log: ^2.0.0 - promise-retry: ^2.0.1 - read-package-json: ^5.0.0 - read-package-json-fast: ^2.0.3 - rimraf: ^3.0.2 - ssri: ^9.0.0 - tar: ^6.1.11 - bin: - pacote: lib/bin.js - checksum: 9e68300fbe35d4f004444f949b88ce3f5a92c44b92b63e57514962b228ef78bb1a92208f8f2a5fc8066e639c76a442e1cf6fad2a1d29efa63f07aece3cccc6f7 - languageName: node - linkType: hard - "pako@npm:^1.0.10, pako@npm:^1.0.5, pako@npm:~1.0.5": version: 1.0.11 resolution: "pako@npm:1.0.11" @@ -32251,16 +31124,6 @@ __metadata: languageName: node linkType: hard -"parse-path@npm:^4.0.0": - version: 4.0.1 - resolution: "parse-path@npm:4.0.1" - dependencies: - is-ssh: ^1.3.0 - protocols: ^1.4.0 - checksum: dbe025d5827359fee9162932757bf7eb964220a6636ec6d233f9acc981a646aa605d5b49df585792a56e9fdd238d8d5daf2d532d1cd45642f15a47817e4352f6 - languageName: node - linkType: hard - "parse-path@npm:^7.0.0": version: 7.0.0 resolution: "parse-path@npm:7.0.0" @@ -32270,18 +31133,6 @@ __metadata: languageName: node linkType: hard -"parse-url@npm:^5.0.0": - version: 5.0.1 - resolution: "parse-url@npm:5.0.1" - dependencies: - is-ssh: ^1.3.0 - normalize-url: ^3.3.0 - parse-path: ^4.0.0 - protocols: ^1.4.0 - checksum: 05c8e88f8c918b11a4feeedfa693a547987eb11266e852746d362bfb92662bd79fa5a422dd41ed297d73e2cfe659dad8c594d97f4ca9e523bec1af289a9a4366 - languageName: node - linkType: hard - "parse-url@npm:^8.1.0": version: 8.1.0 resolution: "parse-url@npm:8.1.0" @@ -32298,6 +31149,15 @@ __metadata: languageName: node linkType: hard +"parse5@npm:^7.0.0": + version: 7.1.1 + resolution: "parse5@npm:7.1.1" + dependencies: + entities: ^4.4.0 + checksum: 8f72fbfa6df83a3f29f58e1818f7bd46b47ff3e26d79c74e10b8fc7ef7ee76163f205113f1b2f6a5b8dc4e31e726f490444f04890cead6e974dbcbe8172b1321 + languageName: node + linkType: hard + "parseqs@npm:0.0.6": version: 0.0.6 resolution: "parseqs@npm:0.0.6" @@ -33565,6 +32425,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.0.3": + version: 29.0.3 + resolution: "pretty-format@npm:29.0.3" + dependencies: + "@jest/schemas": ^29.0.0 + ansi-styles: ^5.0.0 + react-is: ^18.0.0 + checksum: 239aa73b09919b195353e62530908b43883af66e3ba8ecb5fda77578b20f297fd774fcf53abbedcb6cfff72521e8a220052a49e6a0e29418082d06386da27bac + languageName: node + linkType: hard + "printj@npm:~1.1.0": version: 1.1.2 resolution: "printj@npm:1.1.2" @@ -33588,13 +32459,6 @@ __metadata: languageName: node linkType: hard -"proc-log@npm:^2.0.0": - version: 2.0.1 - resolution: "proc-log@npm:2.0.1" - checksum: f6f23564ff759097db37443e6e2765af84979a703d2c52c1b9df506ee9f87caa101ba49d8fdc115c1a313ec78e37e8134704e9069e6a870f3499d98bb24c436f - languageName: node - linkType: hard - "process-nextick-args@npm:^2.0.0, process-nextick-args@npm:~2.0.0": version: 2.0.1 resolution: "process-nextick-args@npm:2.0.1" @@ -33689,15 +32553,6 @@ __metadata: languageName: node linkType: hard -"promzard@npm:^0.3.0": - version: 0.3.0 - resolution: "promzard@npm:0.3.0" - dependencies: - read: 1 - checksum: 443a3b39ac916099988ee0161ab4e22edd1fa27e3d39a38d60e48c11ca6df3f5a90bfe44d95af06ed8659c4050b789ffe64c3f9f8e49a4bea1ea19105c98445a - languageName: node - linkType: hard - "prop-types@npm:^15.0.0, prop-types@npm:^15.5.10, prop-types@npm:^15.5.7, prop-types@npm:^15.5.8, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" @@ -33741,13 +32596,6 @@ __metadata: languageName: node linkType: hard -"proto-list@npm:~1.2.1": - version: 1.2.4 - resolution: "proto-list@npm:1.2.4" - checksum: 4d4826e1713cbfa0f15124ab0ae494c91b597a3c458670c9714c36e8baddf5a6aad22842776f2f5b137f259c8533e741771445eb8df82e861eea37a6eaba03f7 - languageName: node - linkType: hard - "proto3-json-serializer@npm:^1.0.0": version: 1.0.0 resolution: "proto3-json-serializer@npm:1.0.0" @@ -33780,27 +32628,26 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:6.11.3, protobufjs@npm:^6.10.0, protobufjs@npm:^6.11.2": - version: 6.11.3 - resolution: "protobufjs@npm:6.11.3" +"protobufjs-cli@npm:1.0.2": + version: 1.0.2 + resolution: "protobufjs-cli@npm:1.0.2" dependencies: - "@protobufjs/aspromise": ^1.1.2 - "@protobufjs/base64": ^1.1.2 - "@protobufjs/codegen": ^2.0.4 - "@protobufjs/eventemitter": ^1.1.0 - "@protobufjs/fetch": ^1.1.0 - "@protobufjs/float": ^1.0.2 - "@protobufjs/inquire": ^1.1.0 - "@protobufjs/path": ^1.1.2 - "@protobufjs/pool": ^1.1.0 - "@protobufjs/utf8": ^1.1.0 - "@types/long": ^4.0.1 - "@types/node": ">=13.7.0" - long: ^4.0.0 + chalk: ^4.0.0 + escodegen: ^1.13.0 + espree: ^9.0.0 + estraverse: ^5.1.0 + glob: ^8.0.0 + jsdoc: ^3.6.3 + minimist: ^1.2.0 + semver: ^7.1.2 + tmp: ^0.2.1 + uglify-js: ^3.7.7 + peerDependencies: + protobufjs: ^7.0.0 bin: pbjs: bin/pbjs pbts: bin/pbts - checksum: 4a6ce1964167e4c45c53fd8a312d7646415c777dd31b4ba346719947b88e61654912326101f927da387d6b6473ab52a7ea4f54d6f15d63b31130ce28e2e15070 + checksum: 75dfa8bb76ea390c4f4926120439892fce6c730ec56960e85d5f03cac9c390fd7467d1254833542d722616ab4cb64a622e6de2fb7c75e7c42972878ae447b773 languageName: node linkType: hard @@ -33825,10 +32672,47 @@ __metadata: languageName: node linkType: hard -"protocols@npm:^1.1.0, protocols@npm:^1.4.0": - version: 1.4.7 - resolution: "protocols@npm:1.4.7" - checksum: e4be48f9304303bdbca6159cbbf04edc91ff34921e6e3e3e75ea29eb02e64b38191b73f3404d14f551af87b53572a321b59a402b31a3a2005d62b668b35a8b53 +"protobufjs@npm:7.1.1": + version: 7.1.1 + resolution: "protobufjs@npm:7.1.1" + dependencies: + "@protobufjs/aspromise": ^1.1.2 + "@protobufjs/base64": ^1.1.2 + "@protobufjs/codegen": ^2.0.4 + "@protobufjs/eventemitter": ^1.1.0 + "@protobufjs/fetch": ^1.1.0 + "@protobufjs/float": ^1.0.2 + "@protobufjs/inquire": ^1.1.0 + "@protobufjs/path": ^1.1.2 + "@protobufjs/pool": ^1.1.0 + "@protobufjs/utf8": ^1.1.0 + "@types/node": ">=13.7.0" + long: ^5.0.0 + checksum: f6b0e7cec29056cefb83902009b39d24ac14a6117b52bc9b291b29778dad010e42d5563a20045e4de89b880114f4214f984396c8296a0d1b22f5dc7d9fe6705e + languageName: node + linkType: hard + +"protobufjs@npm:^6.10.0, protobufjs@npm:^6.11.2": + version: 6.11.3 + resolution: "protobufjs@npm:6.11.3" + dependencies: + "@protobufjs/aspromise": ^1.1.2 + "@protobufjs/base64": ^1.1.2 + "@protobufjs/codegen": ^2.0.4 + "@protobufjs/eventemitter": ^1.1.0 + "@protobufjs/fetch": ^1.1.0 + "@protobufjs/float": ^1.0.2 + "@protobufjs/inquire": ^1.1.0 + "@protobufjs/path": ^1.1.2 + "@protobufjs/pool": ^1.1.0 + "@protobufjs/utf8": ^1.1.0 + "@types/long": ^4.0.1 + "@types/node": ">=13.7.0" + long: ^4.0.0 + bin: + pbjs: bin/pbjs + pbts: bin/pbts + checksum: 4a6ce1964167e4c45c53fd8a312d7646415c777dd31b4ba346719947b88e61654912326101f927da387d6b6473ab52a7ea4f54d6f15d63b31130ce28e2e15070 languageName: node linkType: hard @@ -33975,13 +32859,6 @@ __metadata: languageName: node linkType: hard -"q@npm:^1.5.1": - version: 1.5.1 - resolution: "q@npm:1.5.1" - checksum: 147baa93c805bc1200ed698bdf9c72e9e42c05f96d007e33a558b5fdfd63e5ea130e99313f28efc1783e90e6bdb4e48b67a36fcc026b7b09202437ae88a1fb12 - languageName: node - linkType: hard - "qs@npm:6.10.3, qs@npm:^6.10.1, qs@npm:^6.10.2, qs@npm:^6.10.3, qs@npm:^6.9.1, qs@npm:^6.9.4, qs@npm:^6.9.6": version: 6.10.3 resolution: "qs@npm:6.10.3" @@ -34786,7 +33663,7 @@ __metadata: languageName: node linkType: hard -"read-package-json-fast@npm:^2.0.1, read-package-json-fast@npm:^2.0.2, read-package-json-fast@npm:^2.0.3": +"read-package-json-fast@npm:^2.0.1, read-package-json-fast@npm:^2.0.2": version: 2.0.3 resolution: "read-package-json-fast@npm:2.0.3" dependencies: @@ -34796,30 +33673,6 @@ __metadata: languageName: node linkType: hard -"read-package-json@npm:^3.0.0": - version: 3.0.0 - resolution: "read-package-json@npm:3.0.0" - dependencies: - glob: ^7.1.1 - json-parse-even-better-errors: ^2.3.0 - normalize-package-data: ^3.0.0 - npm-normalize-package-bin: ^1.0.0 - checksum: f17d10f7c3bd641c0462184cdeacfe22f9494911d4ab3232dd987accc75b6c26387c4573811486e733d1b403780de8c9b2187a51f8d56ff7165f79c199ddce71 - languageName: node - linkType: hard - -"read-package-json@npm:^5.0.0": - version: 5.0.1 - resolution: "read-package-json@npm:5.0.1" - dependencies: - glob: ^8.0.1 - json-parse-even-better-errors: ^2.3.1 - normalize-package-data: ^4.0.0 - npm-normalize-package-bin: ^1.0.1 - checksum: e8c2ad72df1f17e71268feabdb9bb0153ed2c7d38a05b759c5c49cf368a754bdd3c0e8a279fbc8d707802ff91d2cf144a995e6ebd5534de2848d52ab2c14034d - languageName: node - linkType: hard - "read-pkg-up@npm:^1.0.1": version: 1.0.1 resolution: "read-pkg-up@npm:1.0.1" @@ -34830,16 +33683,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^3.0.0": - version: 3.0.0 - resolution: "read-pkg-up@npm:3.0.0" - dependencies: - find-up: ^2.0.0 - read-pkg: ^3.0.0 - checksum: 16175573f2914ab9788897bcbe2a62b5728d0075e62285b3680cebe97059e2911e0134a062cf6e51ebe3e3775312bc788ac2039ed6af38ec68d2c10c6f2b30fb - languageName: node - linkType: hard - "read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" @@ -34862,17 +33705,6 @@ __metadata: languageName: node linkType: hard -"read-pkg@npm:^3.0.0": - version: 3.0.0 - resolution: "read-pkg@npm:3.0.0" - dependencies: - load-json-file: ^4.0.0 - normalize-package-data: ^2.3.2 - path-type: ^3.0.0 - checksum: 398903ebae6c7e9965419a1062924436cc0b6f516c42c4679a90290d2f87448ed8f977e7aa2dbba4aa1ac09248628c43e493ac25b2bc76640e946035200e34c6 - languageName: node - linkType: hard - "read-pkg@npm:^5.2.0": version: 5.2.0 resolution: "read-pkg@npm:5.2.0" @@ -34897,15 +33729,6 @@ __metadata: languageName: node linkType: hard -"read@npm:1, read@npm:~1.0.1": - version: 1.0.7 - resolution: "read@npm:1.0.7" - dependencies: - mute-stream: ~0.0.4 - checksum: 2777c254e5732cac96f5d0a1c0f6b836c89ae23d8febd405b206f6f24d5de1873420f1a0795e0e3721066650d19adf802c7882c4027143ee0acf942a4f34f97b - languageName: node - linkType: hard - "readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": version: 3.6.0 resolution: "readable-stream@npm:3.6.0" @@ -34917,7 +33740,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.0.6, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.5, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.0.6, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.5, readable-stream@npm:^2.3.6": version: 2.3.7 resolution: "readable-stream@npm:2.3.7" dependencies: @@ -36016,7 +34839,6 @@ __metadata: eslint-plugin-notice: ^0.9.10 fs-extra: 10.1.0 husky: ^8.0.0 - lerna: ~5.0.0 lint-staged: ^13.0.0 minimist: ^1.2.5 prettier: ^2.2.1 @@ -36068,7 +34890,7 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^6.6.0, rxjs@npm:^6.6.3": +"rxjs@npm:^6.6.3": version: 6.6.7 resolution: "rxjs@npm:6.6.7" dependencies: @@ -36180,6 +35002,15 @@ __metadata: languageName: node linkType: hard +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: ^2.2.0 + checksum: d3fa3e2aaf6c65ed52ee993aff1891fc47d5e47d515164b5449cbf5da2cbdc396137e55590472e64c5c436c14ae64a8a03c29b9e7389fc6f14035cf4e982ef3b + languageName: node + linkType: hard + "scheduler@npm:^0.19.1": version: 0.19.1 resolution: "scheduler@npm:0.19.1" @@ -36319,7 +35150,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:~7.3.0": +"semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:~7.3.0": version: 7.3.7 resolution: "semver@npm:7.3.7" dependencies: @@ -36876,17 +35707,6 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "socks-proxy-agent@npm:5.0.0" - dependencies: - agent-base: 6 - debug: 4 - socks: ^2.3.3 - checksum: 1dd30d1cc346c33b3180a5bbe75ed93979ca3a916f453a6802f64642f07d30af7e93a640a607c920f10d4b1dfe1d0eec485f64c2a93c951a8d9a50090e6a7776 - languageName: node - linkType: hard - "socks-proxy-agent@npm:^6.0.0, socks-proxy-agent@npm:^6.1.1": version: 6.1.1 resolution: "socks-proxy-agent@npm:6.1.1" @@ -36909,7 +35729,7 @@ __metadata: languageName: node linkType: hard -"socks@npm:^2.3.3, socks@npm:^2.6.1, socks@npm:^2.6.2": +"socks@npm:^2.6.1, socks@npm:^2.6.2": version: 2.6.2 resolution: "socks@npm:2.6.2" dependencies: @@ -36929,24 +35749,6 @@ __metadata: languageName: node linkType: hard -"sort-keys@npm:^2.0.0": - version: 2.0.0 - resolution: "sort-keys@npm:2.0.0" - dependencies: - is-plain-obj: ^1.0.0 - checksum: f0fd827fa9f8f866e98588d2a38c35209afbf1e9a05bb0e4ceeeb8bbf31d923c8902b0a7e0f561590ddb65e58eba6a74f74b991c85360bcc52e83a3f0d1cffd7 - languageName: node - linkType: hard - -"sort-keys@npm:^4.0.0": - version: 4.2.0 - resolution: "sort-keys@npm:4.2.0" - dependencies: - is-plain-obj: ^2.0.0 - checksum: 1535ffd5a789259fc55107d5c3cec09b3e47803a9407fcaae37e1b9e0b813762c47dfee35b6e71e20ca7a69798d0a4791b2058a07f6cab5ef17b2dae83cedbda - languageName: node - linkType: hard - "source-list-map@npm:^2.0.1": version: 2.0.1 resolution: "source-list-map@npm:2.0.1" @@ -36974,7 +35776,17 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.10, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.20": +"source-map-support@npm:0.5.13": + version: 0.5.13 + resolution: "source-map-support@npm:0.5.13" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 + languageName: node + linkType: hard + +"source-map-support@npm:^0.5.10, source-map-support@npm:^0.5.16, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -37712,19 +36524,6 @@ __metadata: languageName: node linkType: hard -"strong-log-transformer@npm:^2.1.0": - version: 2.1.0 - resolution: "strong-log-transformer@npm:2.1.0" - dependencies: - duplexer: ^0.1.1 - minimist: ^1.2.0 - through: ^2.3.4 - bin: - sl-log-transformer: bin/sl-log-transformer.js - checksum: abf9a4ac143118f26c3a0771b204b02f5cf4fa80384ae158f25e02bfbff761038accc44a7f65869ccd5a5995a7f2c16b1466b83149644ba6cecd3072a8927297 - languageName: node - linkType: hard - "strtok3@npm:^6.2.4": version: 6.2.4 resolution: "strtok3@npm:6.2.4" @@ -38159,19 +36958,19 @@ __metadata: version: 0.0.0-use.local resolution: "techdocs-cli-embedded-app@workspace:packages/techdocs-cli-embedded-app" dependencies: - "@backstage/app-defaults": ^1.0.6 - "@backstage/catalog-model": ^1.1.1 - "@backstage/cli": ^0.19.0 - "@backstage/config": ^1.0.2 - "@backstage/core-app-api": ^1.1.0 - "@backstage/core-components": ^0.11.1 - "@backstage/core-plugin-api": ^1.0.6 - "@backstage/integration-react": ^1.1.4 - "@backstage/plugin-catalog": ^1.5.1 - "@backstage/plugin-techdocs": ^1.3.2 - "@backstage/plugin-techdocs-react": ^1.0.4 - "@backstage/test-utils": ^1.2.0 - "@backstage/theme": ^0.2.16 + "@backstage/app-defaults": "workspace:^" + "@backstage/catalog-model": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/config": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/integration-react": "workspace:^" + "@backstage/plugin-catalog": "workspace:^" + "@backstage/plugin-techdocs": "workspace:^" + "@backstage/plugin-techdocs-react": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" "@material-ui/core": ^4.11.0 "@material-ui/icons": ^4.9.1 "@testing-library/jest-dom": ^5.10.1 @@ -38205,13 +37004,6 @@ __metadata: languageName: node linkType: hard -"temp-dir@npm:^1.0.0": - version: 1.0.0 - resolution: "temp-dir@npm:1.0.0" - checksum: cb2b58ddfb12efa83e939091386ad73b425c9a8487ea0095fe4653192a40d49184a771a1beba99045fbd011e389fd563122d79f54f82be86a55620667e08a6b2 - languageName: node - linkType: hard - "temp@npm:^0.8.4": version: 0.8.4 resolution: "temp@npm:0.8.4" @@ -38312,13 +37104,6 @@ __metadata: languageName: node linkType: hard -"text-extensions@npm:^1.0.0": - version: 1.9.0 - resolution: "text-extensions@npm:1.9.0" - checksum: 56a9962c1b62d39b2bcb369b7558ca85c1b55e554b38dfd725edcc0a1babe5815782a60c17ff6b839093b163dfebb92b804208aaaea616ec7571c8059ae0cf44 - languageName: node - linkType: hard - "text-hex@npm:1.0.x": version: 1.0.0 resolution: "text-hex@npm:1.0.0" @@ -38358,13 +37143,6 @@ __metadata: languageName: node linkType: hard -"throat@npm:^6.0.1": - version: 6.0.1 - resolution: "throat@npm:6.0.1" - checksum: 782d4171ee4e3cf947483ed2ff1af3e17cc4354c693b9d339284f61f99fbc401d171e0b0d2db3295bb7d447630333e9319c174ebd7ef315c6fb791db9675369c - languageName: node - linkType: hard - "throttle-debounce@npm:^3.0.1": version: 3.0.1 resolution: "throttle-debounce@npm:3.0.1" @@ -38379,16 +37157,6 @@ __metadata: languageName: node linkType: hard -"through2@npm:^2.0.0": - version: 2.0.5 - resolution: "through2@npm:2.0.5" - dependencies: - readable-stream: ~2.3.6 - xtend: ~4.0.1 - checksum: beb0f338aa2931e5660ec7bf3ad949e6d2e068c31f4737b9525e5201b824ac40cac6a337224856b56bd1ddd866334bbfb92a9f57cd6f66bc3f18d3d86fc0fe50 - languageName: node - linkType: hard - "through2@npm:^4.0.0": version: 4.0.2 resolution: "through2@npm:4.0.2" @@ -38398,7 +37166,7 @@ __metadata: languageName: node linkType: hard -"through@npm:2, through@npm:>=2.2.7 <3, through@npm:^2.3.4, through@npm:^2.3.6, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.1": +"through@npm:2, through@npm:^2.3.6, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.1": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd @@ -38506,7 +37274,7 @@ __metadata: languageName: node linkType: hard -"tmpl@npm:1.0.x": +"tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 @@ -38664,6 +37432,15 @@ __metadata: languageName: node linkType: hard +"tr46@npm:^3.0.0": + version: 3.0.0 + resolution: "tr46@npm:3.0.0" + dependencies: + punycode: ^2.1.1 + checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -38694,13 +37471,6 @@ __metadata: languageName: node linkType: hard -"treeverse@npm:^2.0.0": - version: 2.0.0 - resolution: "treeverse@npm:2.0.0" - checksum: 3c6b2b890975a4d42c86b9a0f1eb932b4450db3fa874be5c301c4f5e306fd76330c6a490cf334b0937b3a44b049787ba5d98c88bc7b140f34fdb3ab1f83e5269 - languageName: node - linkType: hard - "trim-newlines@npm:^3.0.0": version: 3.0.1 resolution: "trim-newlines@npm:3.0.1" @@ -38708,13 +37478,6 @@ __metadata: languageName: node linkType: hard -"trim-off-newlines@npm:^1.0.0": - version: 1.0.3 - resolution: "trim-off-newlines@npm:1.0.3" - checksum: faf042bb7dd4cb097ab6d358cd51012a9ff5e06f7f2c6570da2ef6f01da9da3ff22ab01080866815e3927ffbf367d57c6aab4c275c67662676b60c563142a558 - languageName: node - linkType: hard - "triple-beam@npm:^1.3.0": version: 1.3.0 resolution: "triple-beam@npm:1.3.0" @@ -38944,13 +37707,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.18.0": - version: 0.18.1 - resolution: "type-fest@npm:0.18.1" - checksum: e96dcee18abe50ec82dab6cbc4751b3a82046da54c52e3b2d035b3c519732c0b3dd7a2fa9df24efd1a38d953d8d4813c50985f215f1957ee5e4f26b0fe0da395 - languageName: node - linkType: hard - "type-fest@npm:^0.20.2": version: 0.20.2 resolution: "type-fest@npm:0.20.2" @@ -38965,13 +37721,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.4.1": - version: 0.4.1 - resolution: "type-fest@npm:0.4.1" - checksum: 25f882d9cc2f24af7a0a529157f96dead157894c456bfbad16d48f990c43b470dfb79848e8d9c03fe1be72a7d169e44f6f3135b54628393c66a6189c5dc077f7 - languageName: node - linkType: hard - "type-fest@npm:^0.6.0": version: 0.6.0 resolution: "type-fest@npm:0.6.0" @@ -39021,15 +37770,6 @@ __metadata: languageName: node linkType: hard -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 - languageName: node - linkType: hard - "typedarray@npm:^0.0.6": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -39482,13 +38222,6 @@ __metadata: languageName: node linkType: hard -"upath@npm:^2.0.1": - version: 2.0.1 - resolution: "upath@npm:2.0.1" - checksum: 2db04f24a03ef72204c7b969d6991abec9e2cb06fb4c13a1fd1c59bc33b46526b16c3325e55930a11ff86a77a8cbbcda8f6399bf914087028c5beae21ecdb33c - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.0.4": version: 1.0.5 resolution: "update-browserslist-db@npm:1.0.5" @@ -39503,6 +38236,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.0.9": + version: 1.0.9 + resolution: "update-browserslist-db@npm:1.0.9" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + browserslist-lint: cli.js + checksum: f625899b236f6a4d7f62b56be1b8da230c5563d1fef84d3ef148f2e1a3f11a5a4b3be4fd7e3703e51274c116194017775b10afb4de09eb2c0d09d36b90f1f578 + languageName: node + linkType: hard + "upper-case-first@npm:^2.0.2": version: 2.0.2 resolution: "upper-case-first@npm:2.0.2" @@ -39750,14 +38497,14 @@ __metadata: languageName: node linkType: hard -"v8-to-istanbul@npm:^8.1.0": - version: 8.1.1 - resolution: "v8-to-istanbul@npm:8.1.1" +"v8-to-istanbul@npm:^9.0.1": + version: 9.0.1 + resolution: "v8-to-istanbul@npm:9.0.1" dependencies: + "@jridgewell/trace-mapping": ^0.3.12 "@types/istanbul-lib-coverage": ^2.0.1 convert-source-map: ^1.6.0 - source-map: ^0.7.3 - checksum: 54ce92bec2727879626f623d02c8d193f0c7e919941fa373ec135189a8382265117f5316ea317a1e12a5f9c13d84d8449052a731fe3306fa4beaafbfa4cab229 + checksum: a49c34bf0a3af0c11041a3952a2600913904a983bd1bc87148b5c033bc5c1d02d5a13620fcdbfa2c60bc582a2e2970185780f0c844b4c3a220abf405f8af6311 languageName: node linkType: hard @@ -39768,7 +38515,7 @@ __metadata: languageName: node linkType: hard -"validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": +"validate-npm-package-license@npm:^3.0.1": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" dependencies: @@ -39787,15 +38534,6 @@ __metadata: languageName: node linkType: hard -"validate-npm-package-name@npm:^4.0.0": - version: 4.0.0 - resolution: "validate-npm-package-name@npm:4.0.0" - dependencies: - builtins: ^5.0.0 - checksum: a32fd537bad17fcb59cfd58ae95a414d443866020d448ec3b22e8d40550cb585026582a57efbe1f132b882eea4da8ac38ee35f7be0dd72988a3cb55d305a20c1 - languageName: node - linkType: hard - "validate.io-array@npm:^1.0.3": version: 1.0.6 resolution: "validate.io-array@npm:1.0.6" @@ -39977,6 +38715,15 @@ __metadata: languageName: node linkType: hard +"w3c-xmlserializer@npm:^3.0.0": + version: 3.0.0 + resolution: "w3c-xmlserializer@npm:3.0.0" + dependencies: + xml-name-validator: ^4.0.0 + checksum: 0af8589942eeb11c9fe29eb31a1a09f3d5dd136aea53a9848dfbabff79ac0dd26fe13eb54d330d5555fe27bb50b28dca0715e09f9cc2bfa7670ccc8b7f919ca2 + languageName: node + linkType: hard + "wait-for-expect@npm:^3.0.2": version: 3.0.2 resolution: "wait-for-expect@npm:3.0.2" @@ -40006,12 +38753,12 @@ __metadata: languageName: node linkType: hard -"walker@npm:^1.0.7": - version: 1.0.7 - resolution: "walker@npm:1.0.7" +"walker@npm:^1.0.8": + version: 1.0.8 + resolution: "walker@npm:1.0.8" dependencies: - makeerror: 1.0.x - checksum: 4038fcf92f6ab0288267ad05008aec9e089a759f1bd32e1ea45cc2eb498eb12095ec43cf8ca2bf23a465f4580a0d33b25b89f450ba521dd27083cbc695ee6bf5 + makeerror: 1.0.12 + checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c languageName: node linkType: hard @@ -40034,7 +38781,7 @@ __metadata: languageName: node linkType: hard -"wcwidth@npm:>=1.0.1, wcwidth@npm:^1.0.0, wcwidth@npm:^1.0.1": +"wcwidth@npm:>=1.0.1, wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" dependencies: @@ -40104,6 +38851,13 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b + languageName: node + linkType: hard + "webpack-dev-middleware@npm:^5.3.1": version: 5.3.1 resolution: "webpack-dev-middleware@npm:5.3.1" @@ -40251,6 +39005,15 @@ __metadata: languageName: node linkType: hard +"whatwg-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "whatwg-encoding@npm:2.0.0" + dependencies: + iconv-lite: 0.6.3 + checksum: 7087810c410aa9b689cbd6af8773341a53cdc1f3aae2a882c163bd5522ec8ca4cdfc269aef417a5792f411807d5d77d50df4c24e3abb00bb60192858a40cc675 + languageName: node + linkType: hard + "whatwg-fetch@npm:^3.0.0, whatwg-fetch@npm:^3.4.1": version: 3.6.2 resolution: "whatwg-fetch@npm:3.6.2" @@ -40272,6 +39035,16 @@ __metadata: languageName: node linkType: hard +"whatwg-url@npm:^11.0.0": + version: 11.0.0 + resolution: "whatwg-url@npm:11.0.0" + dependencies: + tr46: ^3.0.0 + webidl-conversions: ^7.0.0 + checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af + languageName: node + linkType: hard + "whatwg-url@npm:^5.0.0": version: 5.0.0 resolution: "whatwg-url@npm:5.0.0" @@ -40282,7 +39055,7 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.4.0, whatwg-url@npm:^8.5.0": +"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": version: 8.7.0 resolution: "whatwg-url@npm:8.7.0" dependencies: @@ -40367,7 +39140,7 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.0, wide-align@npm:^1.1.2, wide-align@npm:^1.1.5": +"wide-align@npm:^1.1.0, wide-align@npm:^1.1.2": version: 1.1.5 resolution: "wide-align@npm:1.1.5" dependencies: @@ -40397,9 +39170,10 @@ __metadata: linkType: hard "winston@npm:^3.2.1, winston@npm:^3.7.2, winston@npm:^3.8.1": - version: 3.8.1 - resolution: "winston@npm:3.8.1" + version: 3.8.2 + resolution: "winston@npm:3.8.2" dependencies: + "@colors/colors": 1.5.0 "@dabh/diagnostics": ^2.0.2 async: ^3.2.3 is-stream: ^2.0.0 @@ -40410,7 +39184,7 @@ __metadata: stack-trace: 0.0.x triple-beam: ^1.3.0 winston-transport: ^4.5.0 - checksum: 14637222a4239f1ee7e629dbbf0c65161abe95eeb7acd275caf210c5d47d93254fdb007291ea75b5e241d4bb6dd3c29d000bd04ae5420a347711ae7cd0b2da88 + checksum: f7b901798b92ab9e93c850110bf6e98500e9a0e762b62dab410cf928b2a4145533dfa6d3d2b24f7bf0dc94b53808d5bd28aaaeff9a4b43b89ea4c798cce308ea languageName: node linkType: hard @@ -40467,7 +39241,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^2.3.0, write-file-atomic@npm:^2.4.2": +"write-file-atomic@npm:^2.3.0": version: 2.4.3 resolution: "write-file-atomic@npm:2.4.3" dependencies: @@ -40478,18 +39252,6 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^3.0.0, write-file-atomic@npm:^3.0.3": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" - dependencies: - imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 - languageName: node - linkType: hard - "write-file-atomic@npm:^4.0.0": version: 4.0.1 resolution: "write-file-atomic@npm:4.0.1" @@ -40500,46 +39262,17 @@ __metadata: languageName: node linkType: hard -"write-json-file@npm:^3.2.0": - version: 3.2.0 - resolution: "write-json-file@npm:3.2.0" +"write-file-atomic@npm:^4.0.1": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" dependencies: - detect-indent: ^5.0.0 - graceful-fs: ^4.1.15 - make-dir: ^2.1.0 - pify: ^4.0.1 - sort-keys: ^2.0.0 - write-file-atomic: ^2.4.2 - checksum: 2b97ce2027d53c28a33e4a8e7b0d565faf785988b3776f9e0c68d36477c1fb12639fd0d70877d92a861820707966c62ea9c5f7a36a165d615fd47ca8e24c8371 + imurmurhash: ^0.1.4 + signal-exit: ^3.0.7 + checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c languageName: node linkType: hard -"write-json-file@npm:^4.3.0": - version: 4.3.0 - resolution: "write-json-file@npm:4.3.0" - dependencies: - detect-indent: ^6.0.0 - graceful-fs: ^4.1.15 - is-plain-obj: ^2.0.0 - make-dir: ^3.0.0 - sort-keys: ^4.0.0 - write-file-atomic: ^3.0.0 - checksum: 33908c591923dc273e6574e7c0e2df157acfcf498e3a87c5615ced006a465c4058877df6abce6fc1acd2844fa3cf4518ace4a34d5d82ab28bcf896317ba1db6f - languageName: node - linkType: hard - -"write-pkg@npm:^4.0.0": - version: 4.0.0 - resolution: "write-pkg@npm:4.0.0" - dependencies: - sort-keys: ^2.0.0 - type-fest: ^0.4.1 - write-json-file: ^3.2.0 - checksum: 7864d44370f42a6761f6898d07ee2818c7a2faad45116580cf779f3adaf94e4bea5557612533a6c421c32323253ecb63b50615094960a637aeaef5df0fd2d6cd - languageName: node - linkType: hard - -"ws@npm:8.8.1, ws@npm:^8.3.0": +"ws@npm:8.8.1, ws@npm:^8.3.0, ws@npm:^8.8.0": version: 8.8.1 resolution: "ws@npm:8.8.1" peerDependencies: @@ -40670,6 +39403,13 @@ __metadata: languageName: node linkType: hard +"xml-name-validator@npm:^4.0.0": + version: 4.0.0 + resolution: "xml-name-validator@npm:4.0.0" + checksum: af100b79c29804f05fa35aa3683e29a321db9b9685d5e5febda3fa1e40f13f85abc40f45a6b2bf7bee33f68a1dc5e8eaef4cec100a304a9db565e6061d4cb5ad + languageName: node + linkType: hard + "xml-parse-from-string@npm:^1.0.0": version: 1.0.1 resolution: "xml-parse-from-string@npm:1.0.1" @@ -40765,7 +39505,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:^4.0.0, xtend@npm:~4.0.1": +"xtend@npm:^4.0.0": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a @@ -40835,13 +39575,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:20.2.4, yargs-parser@npm:^20.2.3": - version: 20.2.4 - resolution: "yargs-parser@npm:20.2.4" - checksum: d251998a374b2743a20271c2fd752b9fbef24eb881d53a3b99a7caa5e8227fcafd9abf1f345ac5de46435821be25ec12189a11030c12ee6481fef6863ed8b924 - languageName: node - linkType: hard - "yargs-parser@npm:^18.1.2, yargs-parser@npm:^18.1.3": version: 18.1.3 resolution: "yargs-parser@npm:18.1.3"