backstage
backstage copied to clipboard
Key for the ES256 algorithm must be one of type KeyObject or CryptoKey. Received an instance of Uint8Array
📜 Description
I'm trying to log in using okta provider and get 401 error. After some debugging I found out that Key for the ES256 algorithm must be one of type KeyObject or CryptoKey. Received an instance of Uint8Array
is the original error. Error appeared after upgrade backstage from 1.25.2 to 1.26.3
Am I missing some migration step ?
👍 Expected behavior
Authentication works well
👎 Actual Behavior with Screenshots
Fails on log in attempt with 401 code.
👟 Reproduction steps
Hard to provide exact steps. Just migrating from 1.25.2 to 1.26.3
📃 Provide the context for the Bug.
No response
🖥️ Your Environment
OS: Darwin 23.4.0 - darwin/arm64 node: v18.19.0 yarn: 4.1.0 cli: 0.26.4 (installed) backstage: 1.26.3
Dependencies: @backstage/app-defaults 1.5.4 @backstage/backend-app-api 0.7.0 @backstage/backend-common 0.21.7 @backstage/backend-defaults 0.2.17 @backstage/backend-dev-utils 0.1.4 @backstage/backend-openapi-utils 0.1.10 @backstage/backend-plugin-api 0.6.17 @backstage/backend-tasks 0.5.22 @backstage/backend-test-utils 0.3.7 @backstage/catalog-client 1.6.4 @backstage/catalog-model 1.4.5 @backstage/cli-common 0.1.13 @backstage/cli-node 0.2.5 @backstage/cli 0.26.4 @backstage/config-loader 1.8.0 @backstage/config 1.2.0 @backstage/core-app-api 1.12.4 @backstage/core-compat-api 0.2.4 @backstage/core-components 0.14.4 @backstage/core-plugin-api 1.9.2 @backstage/dev-utils 1.0.31 @backstage/errors 1.2.4 @backstage/eslint-plugin 0.1.7 @backstage/frontend-plugin-api 0.6.4 @backstage/integration-aws-node 0.1.12 @backstage/integration-react 1.1.26 @backstage/integration 1.10.0 @backstage/plugin-app-backend 0.3.65 @backstage/plugin-app-node 0.1.17 @backstage/plugin-auth-backend-module-atlassian-provider 0.1.9 @backstage/plugin-auth-backend-module-aws-alb-provider 0.1.9 @backstage/plugin-auth-backend-module-azure-easyauth-provider 0.1.0 @backstage/plugin-auth-backend-module-bitbucket-provider 0.1.0 @backstage/plugin-auth-backend-module-cloudflare-access-provider 0.1.0 @backstage/plugin-auth-backend-module-gcp-iap-provider 0.2.12 @backstage/plugin-auth-backend-module-github-provider 0.1.14 @backstage/plugin-auth-backend-module-gitlab-provider 0.1.14 @backstage/plugin-auth-backend-module-google-provider 0.1.14 @backstage/plugin-auth-backend-module-microsoft-provider 0.1.12 @backstage/plugin-auth-backend-module-oauth2-provider 0.1.14 @backstage/plugin-auth-backend-module-oauth2-proxy-provider 0.1.10 @backstage/plugin-auth-backend-module-oidc-provider 0.1.8 @backstage/plugin-auth-backend-module-okta-provider 0.0.10 @backstage/plugin-auth-backend 0.22.4 @backstage/plugin-auth-node 0.4.12 @backstage/plugin-catalog-backend-module-gcp 0.1.18 @backstage/plugin-catalog-backend-module-ldap 0.5.33 @backstage/plugin-catalog-backend-module-scaffolder-entity-model 0.1.15 @backstage/plugin-catalog-backend 1.21.1 @backstage/plugin-catalog-common 1.0.22 @backstage/plugin-catalog-graph 0.4.4 @backstage/plugin-catalog-node 1.11.1 @backstage/plugin-catalog-react 1.11.3 @backstage/plugin-catalog 1.19.0 @backstage/plugin-events-node 0.3.3 @backstage/plugin-gcalendar 0.3.28 @backstage/plugin-home-react 0.1.12 @backstage/plugin-home 0.7.3 @backstage/plugin-kubernetes-backend 0.17.0 @backstage/plugin-kubernetes-common 0.7.5 @backstage/plugin-kubernetes-node 0.1.11 @backstage/plugin-kubernetes-react 0.3.4 @backstage/plugin-kubernetes 0.11.9 @backstage/plugin-org 0.6.24 @backstage/plugin-permission-backend 0.5.41 @backstage/plugin-permission-common 0.7.13 @backstage/plugin-permission-node 0.7.28 @backstage/plugin-permission-react 0.4.22 @backstage/plugin-proxy-backend 0.4.15 @backstage/plugin-scaffolder-backend-module-azure 0.1.9 @backstage/plugin-scaffolder-backend-module-bitbucket-cloud 0.1.7 @backstage/plugin-scaffolder-backend-module-bitbucket-server 0.1.7 @backstage/plugin-scaffolder-backend-module-bitbucket 0.2.7 @backstage/plugin-scaffolder-backend-module-gerrit 0.1.9 @backstage/plugin-scaffolder-backend-module-gitea 0.1.7 @backstage/plugin-scaffolder-backend-module-github 0.2.7 @backstage/plugin-scaffolder-backend-module-gitlab 0.3.3 @backstage/plugin-scaffolder-backend 1.22.4 @backstage/plugin-scaffolder-common 1.5.1 @backstage/plugin-scaffolder-node 0.4.3 @backstage/plugin-scaffolder-react 1.8.4 @backstage/plugin-scaffolder 1.19.3 @backstage/plugin-search-backend-module-catalog 0.1.22 @backstage/plugin-search-backend-node 1.2.21 @backstage/plugin-search-backend 1.5.7 @backstage/plugin-search-common 1.2.11 @backstage/plugin-search-react 1.7.10 @backstage/plugin-search 1.4.10 @backstage/plugin-tech-insights-backend 0.5.32 @backstage/plugin-tech-insights-common 0.2.13 @backstage/plugin-tech-insights-node 0.6.1 @backstage/plugin-tech-insights 0.3.27 @backstage/plugin-user-settings-backend 0.2.16 @backstage/plugin-user-settings 0.8.5 @backstage/release-manifests 0.0.11 @backstage/repo-tools 0.8.0 @backstage/test-utils 1.5.4 @backstage/theme 0.5.3 @backstage/types 1.1.1 @backstage/version-bridge 1.0.8
👀 Have you spent some time to check if this bug has been raised before?
- [X] I checked and didn't find similar issue
🏢 Have you read the Code of Conduct?
- [X] I have read the Code of Conduct
Are you willing to submit PR?
None
Are you deployed behind a reverse proxy like for example oauth2proxy? Could it be configured to inject authorization headers of its own? We've seen some cases like that, where an intermediary proxy was ruining the Backstage token passing, so that the backend receiving the calls could not recognize the auth it received. Reconfiguring the proxy made the problem go away in those instances
the problem is it fails not on external call, but when tries to get catalog entity after successful auth in okta, so it fails on inter-module communication
"It" is the browser here, making a request to a backend plugin (catalog), am I understanding that correctly?
nope, auth plugin makes request to catalog plugin
I see it fails on CatalogAuthResolverContext.ts
when tries to get catalog entities await this.catalogApi.getEntityByRef(entityRef, { token });
When you did this upgrade to the new Backstage release, did you update both the auth plugin and the catalog plugin to the newest versions?
Is your backend instance migrated to the new backend system?
Did you have a custom TokenManager
in place in your backend?
What do you mean by upgrading plugin to the newest version ? if backstage deps then yes
I migrated backend to the new backend system, but some internal plugins are still not migrated
I don't have custom TokenManager
Can you run yarn why jose
and paste the output here also, and what database are you using?
@benjdlambert
├─ @backstage/backend-app-api@npm:0.7.0
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
├─ @backstage/backend-common@npm:0.21.7
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
├─ @backstage/backend-common@npm:0.21.7 [bd11c]
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
├─ @backstage/plugin-auth-backend-module-aws-alb-provider@npm:0.1.9
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
├─ @backstage/plugin-auth-backend-module-azure-easyauth-provider@npm:0.1.0
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
├─ @backstage/plugin-auth-backend-module-cloudflare-access-provider@npm:0.1.0
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
├─ @backstage/plugin-auth-backend-module-microsoft-provider@npm:0.1.12
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
├─ @backstage/plugin-auth-backend-module-oauth2-proxy-provider@npm:0.1.10
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
├─ @backstage/plugin-auth-backend@npm:0.22.4
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
├─ @backstage/plugin-auth-node@npm:0.4.12
│ └─ jose@npm:5.2.3 (via npm:^5.0.0)
│
└─ openid-client@npm:5.6.4
└─ jose@npm:4.15.5 (via npm:^4.15.4)
I'm using Postgres
Do you do anything special with configuring the auth.identityTokenAlgorithm
in app-config.yaml
?
nope, nothing
@benjdlambert do you have any idea what could be wrong ?
btw, I needed to override okta provider, so it looks like this
authProviders.registerProvider({
providerId: 'okta',
factory: createOAuthProviderFactory({
authenticator: oktaAuthenticator,
signInResolverFactories: {
emailLocalPartMatchingUserEntityName:
catalogNotFoundFallbackResolverFactory(
commonSignInResolvers.emailLocalPartMatchingUserEntityName(),
),
},
}),
});
@benjdlambert I see that PluginTokenHandler
during initialization sets up ES256
algorithm and no possibility to change that, not sure what was supposed, I see previously HS256
was used.
@IlyaSavich would it be possible to dig around and see if you can get a stack trace for the "Key for the ES256 algorithm must be one of type KeyObject or CryptoKey. Received an instance of Uint8Array" error? That'd help narrow things down quite a lot because there are a couple of different places it could be happening.
The switch from HS256 to ES256 is intentional, although it could be related
@Rugvip
TypeError: Key for the ES256 algorithm must be one of type KeyObject or CryptoKey. Received an instance of Uint8Array
at asymmetricTypeCheck (/Users/isavich/projects/productivity/backstage/node_modules/jose/dist/node/cjs/lib/check_key_type.js:17:15)
at checkKeyType (/Users/isavich/projects/productivity/backstage/node_modules/jose/dist/node/cjs/lib/check_key_type.js:44:9)
at flattenedVerify (/Users/isavich/projects/productivity/backstage/node_modules/jose/dist/node/cjs/jws/flattened/verify.js:78:37)
at compactVerify (/Users/isavich/projects/productivity/backstage/node_modules/jose/dist/node/cjs/jws/compact/verify.js:18:60)
at Object.jwtVerify (/Users/isavich/projects/productivity/backstage/node_modules/jose/dist/node/cjs/jwt/verify.js:8:58)
at ServerTokenManager.authenticate (/Users/isavich/projects/productivity/backstage/node_modules/@backstage/backend-common/src/tokens/ServerTokenManager.ts:190:19)
at AuthCompat.authenticate (/Users/isavich/projects/productivity/backstage/node_modules/@backstage/backend-common/src/auth/createLegacyAuthAdapters.ts:107:30)
at HttpAuthCompat.extractCredentialsFromRequest_fn (/Users/isavich/projects/productivity/backstage/node_modules/@backstage/backend-common/src/auth/createLegacyAuthAdapters.ts:208:23)
at HttpAuthCompat.getCredentials_fn (/Users/isavich/projects/productivity/backstage/node_modules/@backstage/backend-common/src/auth/createLegacyAuthAdapters.ts:213:7)
at HttpAuthCompat.credentials (/Users/isavich/projects/productivity/backstage/node_modules/@backstage/backend-common/src/auth/createLegacyAuthAdapters.ts:223:31)
at <anonymous> (/Users/isavich/projects/productivity/backstage/node_modules/@backstage/plugin-catalog-backend/src/service/createRouter.ts:201:39)
at handleReturn (/Users/isavich/projects/productivity/backstage/node_modules/express-promise-router/lib/express-promise-router.js:24:23)
at /Users/isavich/projects/productivity/backstage/node_modules/express-promise-router/lib/express-promise-router.js:64:7
at handleReturn (/Users/isavich/projects/productivity/backstage/node_modules/express-promise-router/lib/express-promise-router.js:24:23)
at /Users/isavich/projects/productivity/backstage/node_modules/express-promise-router/lib/express-promise-router.js:64:7
at Layer.handle [as handle_request] (/Users/isavich/projects/productivity/backstage/node_modules/express/lib/router/layer.js:95:5)
@Rugvip @benjdlambert something wrong happens on ServerTokenManager:190
, it looks like it's written the way it expects to work with symmetrical algorithms, while PluginTokenHandler
is configured with default ES256
which leads to constant fail.
Not sure if I miss some configuration, but I didn't find any customizable place
@Rugvip @benjdlambert maybe this place is something where something strange happens DefaultAuthService:140
const targetSupportsNewAuth =
await this.pluginTokenHandler.isTargetPluginSupported(targetPluginId);
Inside I see it checks for keys in response
const res = await fetch(
`${await this.discovery.getBaseUrl(
targetPluginId,
)}/.backstage/auth/v1/jwks.json`,
);
but it doesn't check for empty array. I guess there is the issue
@IlyaSavich ServerTokenManager:190
is a red herring, it's actually :223
where the error happens, don't know why the sourcemaps are off :/
So yep this is clearly a token from the new auth service being validated by the old token manager. Do you happen to be using a mix of migrated backend plugins and some installed via the legacyPlugin
helper? I suspect that might trigger this issue.
@IlyaSavich about the isTargetPluginSupported
, it needs to consider an empty array valid since the array will be empty if the plugin hasn't made any requests yet, because it hasn't generated any keys. It's for sure a potential solution though. Gonna have a think on how best to solve this, but I think we've figured out the issue.
oh, yeah, I have some plugins not migrated yet and catalog is one of them. Ok, I will try to migrate it, hope it will help :)
Suggested a fix in https://github.com/backstage/backstage/pull/24676
Hello, I'm also running into this issue. When I launch the app with yarn dev
and visit http://localhost:3000/docs/default/component/reverb-backstage
I get a "Whoops" page and the backend terminal scrolls infinitely with 401 errors. Similarly the browser console is also reporting the client-side 401s.
Invalid server token; caused by TypeError: Key for the ES256 algorithm must be one of type KeyObject or CryptoKey. Received an instance of Uint8Array
This happens when I use the new backend, and has been a persistent stumbling block since at least 1.25. I am presently on 1.27 and still stumbling to use the new backend system.
OS: Sonoma 14.5 node: v20.14.0 yarn: 1.22.2 ?? cli: 0.26.6 backstage: 1.27.7
Packages at depth 0
yarn list v1.22.22
├─ @aashutoshrathi/[email protected]
├─ @adobe/[email protected]
├─ @ampproject/[email protected]
├─ @apidevtools/[email protected]
├─ @apidevtools/[email protected]
├─ @apidevtools/[email protected]
├─ @apidevtools/[email protected]
├─ @apisyouwonthate/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @apollo/[email protected]
├─ @ardatan/[email protected]
├─ @asyncapi/[email protected]
├─ @asyncapi/[email protected]
├─ @asyncapi/[email protected]
├─ @asyncapi/[email protected]
├─ @asyncapi/[email protected]
├─ @asyncapi/[email protected]
├─ @aws-crypto/[email protected]
├─ @aws-crypto/[email protected]
├─ @aws-crypto/[email protected]
├─ @aws-crypto/[email protected]
├─ @aws-crypto/[email protected]
├─ @aws-crypto/[email protected]
├─ @aws-crypto/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @aws-sdk/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @azure/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5
├─ @babel/[email protected]
├─ @babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @backstage-community/[email protected]
├─ @backstage-community/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @backstage/[email protected]
├─ @balena/[email protected]
├─ @bcoe/[email protected]
├─ @braintree/[email protected]
├─ @changesets/[email protected]
├─ @codemirror/[email protected]
├─ @codemirror/[email protected]
├─ @codemirror/[email protected]
├─ @codemirror/[email protected]
├─ @codemirror/[email protected]
├─ @codemirror/[email protected]
├─ @codemirror/[email protected]
├─ @codemirror/[email protected]
├─ @codemirror/[email protected]
├─ @colors/[email protected]
├─ @cspotcode/[email protected]
├─ @dabh/[email protected]
├─ @datadog/[email protected]
├─ @datadog/[email protected]
├─ @datadog/[email protected]
├─ @datadog/[email protected]
├─ @datadog/[email protected]
├─ @datadog/[email protected]
├─ @datadog/[email protected]
├─ @datadog/[email protected]
├─ @datadog/[email protected]
├─ @date-io/[email protected]
├─ @date-io/[email protected]
├─ @date-io/[email protected]
├─ @davidzemon/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @emotion/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @esbuild/[email protected]
├─ @eslint-community/[email protected]
├─ @eslint-community/[email protected]
├─ @eslint/[email protected]
├─ @eslint/[email protected]
├─ @fast-csv/[email protected]
├─ @fast-csv/[email protected]
├─ @floating-ui/[email protected]
├─ @floating-ui/[email protected]
├─ @floating-ui/[email protected]
├─ @floating-ui/[email protected]
├─ @floating-ui/[email protected]
├─ @gitbeaker/[email protected]
├─ @gitbeaker/[email protected]
├─ @gitbeaker/[email protected]
├─ @gitbeaker/[email protected]
├─ @google-cloud/[email protected]
├─ @google-cloud/[email protected]
├─ @google-cloud/[email protected]
├─ @google-cloud/[email protected]
├─ @google-cloud/[email protected]
├─ @graphiql/[email protected]
├─ @graphiql/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-tools/[email protected]
├─ @graphql-typed-document-node/[email protected]
├─ @grpc/[email protected]
├─ @grpc/[email protected]
├─ @headlessui/[email protected]
├─ @hookform/[email protected]
├─ @humanwhocodes/[email protected]
├─ @humanwhocodes/[email protected]
├─ @humanwhocodes/[email protected]
├─ @hutson/[email protected]
├─ @internal/[email protected]
├─ @ioredis/[email protected]
├─ @isaacs/[email protected]
├─ @istanbuljs/[email protected]
├─ @istanbuljs/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @jest/[email protected]
├─ @josephg/[email protected]
├─ @jridgewell/[email protected]
├─ @jridgewell/[email protected]
├─ @jridgewell/[email protected]
├─ @jridgewell/[email protected]
├─ @jridgewell/[email protected]
├─ @jridgewell/[email protected]
├─ @jsdevtools/[email protected]
├─ @jsep-plugin/[email protected]
├─ @jsep-plugin/[email protected]
├─ @jsep-plugin/[email protected]
├─ @juggle/[email protected]
├─ @k-phoen/[email protected]
├─ @k-phoen/[email protected]
├─ @k-phoen/[email protected]
├─ @kamilkisiela/[email protected]
├─ @keyv/[email protected]
├─ @keyv/[email protected]
├─ @kubernetes/[email protected]
├─ @leichtgewicht/[email protected]
├─ @lerna/[email protected]
├─ @lerna/[email protected]
├─ @lezer/[email protected]
├─ @lezer/[email protected]
├─ @lezer/[email protected]
├─ @loomhq/[email protected]
├─ @lukeed/[email protected]
├─ @manypkg/[email protected]
├─ @manypkg/[email protected]
├─ @material-table/[email protected]
├─ @material-ui/[email protected]
├─ @material-ui/[email protected]
├─ @material-ui/[email protected]
├─ @material-ui/[email protected]
├─ @material-ui/[email protected]
├─ @material-ui/[email protected]
├─ @material-ui/[email protected]
├─ @material-ui/[email protected]
├─ @microsoft/[email protected]
├─ @microsoft/[email protected]
├─ @microsoft/[email protected]
├─ @microsoft/[email protected]
├─ @microsoft/[email protected]
├─ @motionone/[email protected]
├─ @motionone/[email protected]
├─ @motionone/[email protected]
├─ @motionone/[email protected]
├─ @motionone/[email protected]
├─ @motionone/[email protected]
├─ @msgpackr-extract/[email protected]
├─ @msgpackr-extract/[email protected]
├─ @msgpackr-extract/[email protected]
├─ @msgpackr-extract/[email protected]
├─ @msgpackr-extract/[email protected]
├─ @msgpackr-extract/[email protected]
├─ @mswjs/[email protected]
├─ @mswjs/[email protected]
├─ @mui/[email protected]
├─ @mui/[email protected]
├─ @mui/[email protected]
├─ @mui/[email protected]
├─ @mui/[email protected]
├─ @mui/[email protected]
├─ @mui/[email protected]
├─ @mui/[email protected]
├─ @n1ru4l/[email protected]
├─ @nestjs/[email protected]
├─ @nestjs/[email protected]
├─ @nestjs/[email protected]
├─ @node-saml/[email protected]
├─ @node-saml/[email protected]
├─ @nodelib/[email protected]
├─ @nodelib/[email protected]
├─ @nodelib/[email protected]
├─ @npmcli/[email protected]
├─ @npmcli/[email protected]
├─ @npmcli/[email protected]
├─ @npmcli/[email protected]
├─ @npmcli/[email protected]
├─ @npmcli/[email protected]
├─ @nrwl/[email protected]
├─ @nrwl/[email protected]
├─ @nuxtjs/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @nx/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @octokit/[email protected]
├─ @okta/[email protected]
├─ @open-draft/[email protected]
├─ @openapi-contrib/[email protected]
├─ @openapitools/[email protected]
├─ @opentelemetry/[email protected]
├─ @opentelemetry/[email protected]
├─ @opentelemetry/[email protected]
├─ @parcel/[email protected]
├─ @pkgjs/[email protected]
├─ @playwright/[email protected]
├─ @pmmmwh/[email protected]
├─ @popperjs/[email protected]
├─ @protobufjs/[email protected]
├─ @protobufjs/[email protected]
├─ @protobufjs/[email protected]
├─ @protobufjs/[email protected]
├─ @protobufjs/[email protected]
├─ @protobufjs/[email protected]
├─ @protobufjs/[email protected]
├─ @protobufjs/[email protected]
├─ @protobufjs/[email protected]
├─ @protobufjs/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @radix-ui/[email protected]
├─ @react-dnd/[email protected]
├─ @react-dnd/[email protected]
├─ @react-dnd/[email protected]
├─ @react-hookz/[email protected]
├─ @react-hookz/[email protected]
├─ @react-spring/[email protected]
├─ @react-spring/[email protected]
├─ @react-spring/[email protected]
├─ @react-spring/[email protected]
├─ @react-spring/[email protected]
├─ @remix-run/[email protected]
├─ @repeaterjs/[email protected]
├─ @rjsf/[email protected]
├─ @rjsf/[email protected]
├─ @rjsf/[email protected]
├─ @rjsf/[email protected]
├─ @roadiehq/[email protected]
├─ @roadiehq/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rollup/[email protected]
├─ @rushstack/[email protected]
├─ @rushstack/[email protected]
├─ @rushstack/[email protected]
├─ @rushstack/[email protected]
├─ @sagold/[email protected]
├─ @sagold/[email protected]
├─ @sigstore/[email protected]
├─ @sigstore/[email protected]
├─ @sigstore/[email protected]
├─ @sigstore/[email protected]
├─ @sinclair/[email protected]
├─ @sindresorhus/[email protected]
├─ @sinonjs/[email protected]
├─ @sinonjs/[email protected]
├─ @slack/[email protected]
├─ @slack/[email protected]
├─ @slack/[email protected]
├─ @slack/[email protected]
├─ @slack/[email protected]
├─ @slack/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @smithy/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @spotify/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @stoplight/[email protected]
├─ @sucrase/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @svgr/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swagger-api/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @swc/[email protected]
├─ @szmarczak/[email protected]
├─ @tanstack/[email protected]
├─ @tanstack/[email protected]
├─ @testing-library/[email protected]
├─ @testing-library/[email protected]
├─ @testing-library/[email protected]
├─ @testing-library/[email protected]
├─ @tokenizer/[email protected]
├─ @tootallnate/[email protected]
├─ @trendyol-js/[email protected]
├─ @trysound/[email protected]
├─ @tsconfig/[email protected]
├─ @tsconfig/[email protected]
├─ @tsconfig/[email protected]
├─ @tsconfig/[email protected]
├─ @tufjs/[email protected]
├─ @tufjs/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @typescript-eslint/[email protected]
├─ @typescript-eslint/[email protected]
├─ @typescript-eslint/[email protected]
├─ @typescript-eslint/[email protected]
├─ @typescript-eslint/[email protected]
├─ @typescript-eslint/[email protected]
├─ @typescript-eslint/[email protected]
├─ @typescript-eslint/[email protected]
├─ @uiw/[email protected]
├─ @uiw/[email protected]
├─ @uiw/[email protected]
├─ @uiw/[email protected]
├─ @uiw/[email protected]
├─ @ungap/[email protected]
├─ @useoptic/[email protected]
├─ @useoptic/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @visx/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @whatwg-node/[email protected]
├─ @whatwg-node/[email protected]
├─ @whatwg-node/[email protected]
├─ @wry/[email protected]
├─ @wry/[email protected]
├─ @wry/[email protected]
├─ @xmldom/[email protected]
├─ @xobotyi/[email protected]
├─ @xtuc/[email protected]
├─ @xtuc/[email protected]
├─ @yarnpkg/[email protected]
├─ @yarnpkg/[email protected]
├─ @zkochan/[email protected]
├─ @zxing/[email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
└─ [email protected]
Done in 1.18s.
@carl-reverb I'd expect this to be related to @backstage/backend-common
but it does look like your root version is alright. Could you run and show the output of yarn why @backstage/backend-common
? I want to make sure there's nothing unexpected there that might be causing this before digging deeper.
Certainly
`yarn why @backstage/backend-common`
yarn why v1.22.22
[1/4] Why do we have the module "@backstage/backend-common"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
info
=> Found "@backstage/[email protected]"
info Has been hoisted to "@backstage/backend-common"
info Reasons this module exists
- "workspace-aggregator-b79c3f5d-9e6b-4e62-8005-3175be100254" depends on it
- Hoisted from "_project_#@backstage#backend-app-api#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#backend-common"
- Hoisted from "_project_#@internal#backstage-plugin-healthcheck-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#backend-defaults#@backstage#backend-common"
- Hoisted from "_project_#@backstage#backend-app-api#@backstage#backend-tasks#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-auth-backend-module-guest-provider#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-auth-backend#@backstage#backend-common"
- Hoisted from "_project_#@backstage#backend-app-api#@backstage#plugin-auth-node#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-catalog-backend-module-github#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-catalog-backend-module-unprocessed#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-catalog-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-permission-backend#@backstage#backend-common"
- Hoisted from "_project_#@backstage#backend-app-api#@backstage#plugin-permission-node#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-proxy-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-scaffolder-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-search-backend-module-catalog#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-search-backend-module-pg#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-search-backend-module-techdocs#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-search-backend-node#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-search-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-techdocs-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-insights-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-rbac-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-skill-exchange-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-soundcheck-backend-module-github#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-soundcheck-backend-module-scm#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-soundcheck-backend#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-auth-backend#@backstage#plugin-auth-backend-module-aws-alb-provider#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-auth-backend#@backstage#plugin-auth-backend-module-oidc-provider#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-scaffolder-backend#@backstage#plugin-scaffolder-backend-module-github#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-scaffolder-backend#@backstage#plugin-scaffolder-backend-module-gitlab#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-scaffolder-backend#@backstage#plugin-scaffolder-node#@backstage#backend-common"
- Hoisted from "_project_#backend#@backstage#plugin-search-backend-module-techdocs#@backstage#plugin-techdocs-node#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-insights-backend#@spotify#backstage-plugin-core-node#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-rbac-backend#@spotify#backstage-plugin-permission-backend-module-rbac#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-skill-exchange-backend#@spotify#backstage-plugin-skill-exchange-node#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-skill-exchange-backend#@spotify#backstage-plugin-slack-node#@backstage#backend-common"
- Hoisted from "_project_#backend#@spotify#backstage-plugin-soundcheck-backend-module-github#@spotify#backstage-plugin-soundcheck-node#@backstage#backend-common"
info Disk size without dependencies: "1.55MB"
info Disk size with unique dependencies: "63.76MB"
info Disk size with transitive dependencies: "1.55MB"
info Number of shared dependencies: 393
info
=> Found "@k-phoen/backstage-plugin-announcements-backend#@backstage/[email protected]"
info This module exists because "_project_#backend#@k-phoen#backstage-plugin-announcements-backend" depends on it.
info Disk size without dependencies: "1.13MB"
info Disk size with unique dependencies: "54.5MB"
info Disk size with transitive dependencies: "1.13MB"
info Number of shared dependencies: 393
info
=> Found "@roadiehq/catalog-backend-module-okta#@backstage/[email protected]"
info This module exists because "_project_#backend#@roadiehq#catalog-backend-module-okta" depends on it.
info Disk size without dependencies: "912KB"
info Disk size with unique dependencies: "63.1MB"
info Disk size with transitive dependencies: "912KB"
info Number of shared dependencies: 393
info
=> Found "@k-phoen/backstage-plugin-announcements-backend#@backstage/backend-app-api#@backstage/[email protected]"
info This module exists because "_project_#backend#@k-phoen#backstage-plugin-announcements-backend#@backstage#backend-common#@backstage#backend-app-api" depends on it.
info Disk size without dependencies: "1.46MB"
info Disk size with unique dependencies: "63.68MB"
info Disk size with transitive dependencies: "1.46MB"
info Number of shared dependencies: 393
info
=> Found "@k-phoen/backstage-plugin-announcements-backend#@backstage/backend-app-api#@backstage/backend-app-api#@backstage/[email protected]"
info This module exists because "_project_#backend#@k-phoen#backstage-plugin-announcements-backend#@backstage#backend-common#@backstage#backend-app-api#@backstage#backend-common#@backstage#backend-app-api" depends on it.
info Disk size without dependencies: "960KB"
info Disk size with unique dependencies: "63.15MB"
info Disk size with transitive dependencies: "960KB"
info Number of shared dependencies: 393
Done in 3.14s.
@carl-reverb hmm, yeah I don't think that's gonna be it. What if you migrate the permissions backend first? It could be that we're not handling the chained calls correctly.
This is where my backend index.ts
is at right now:
import 'dd-trace/init';
import { createBackend } from '@backstage/backend-defaults';
import { legacyPlugin } from '@backstage/backend-common';
const backend = createBackend();
// New Backend
backend.add(import('@backstage/plugin-auth-backend'));
backend.add(import('@backstage/plugin-auth-backend-module-okta-provider'));
backend.add(import('@backstage/plugin-auth-backend-module-guest-provider'));
backend.add(import('@internal/backstage-plugin-healthcheck-backend'));
backend.add(import('@spotify/backstage-plugin-soundcheck-backend'));
backend.add(import('@spotify/backstage-plugin-soundcheck-backend-module-scm'));
backend.add(import('@spotify/backstage-plugin-soundcheck-backend-module-github'));
backend.add(import('@backstage/plugin-techdocs-backend/alpha'));
// TODO: convert all legacy plugins to new backend
backend.add(legacyPlugin('announcements', import('./plugins/announcements')));
backend.add(legacyPlugin('backstageInsights', import('./plugins/backstageInsights')));
backend.add(legacyPlugin('catalog', import('./plugins/catalog')));
backend.add(legacyPlugin('permission', import('./plugins/permission')));
backend.add(legacyPlugin('proxy', import('./plugins/proxy')));
backend.add(legacyPlugin('rbac', import('./plugins/rbac')));
backend.add(legacyPlugin('scaffolder', import('./plugins/scaffolder')));
backend.add(legacyPlugin('search', import('./plugins/search')));
backend.add(legacyPlugin('skillexchange', import('./plugins/skillexchange')));
// backend.add(legacyPlugin('techdocs', import('./plugins/techdocs')));
backend.start();
@carl-reverb yep, so try moving the permissions plugin to be using the new system cleanly without legacyPlugin
. Afaik you should be able to install @backstage/plugin-permission-backend/alpha
and the permission backend module for RBAC.
My hunch is that there could be an issue where auth with multiple hops across legacyPlugin
s might not work as expected, which we'd then want to fix on our side. Either way it would help you move forward in the migration to fully using the new backend system without legacyPlugin
, regardless of whether that turns out to be the issue or not.
Following this advice, I updated my index.ts
, removing the legacy permission backend, and adding:
backend.add(import('@backstage/plugin-permission-backend/alpha'));
backend.add(
import('@backstage/plugin-permission-backend-module-allow-all-policy'),
);
After restarting, I'm still having the same issue when visiting techdocs, 401, with the error:
Invalid server token; caused by TypeError: Key for the ES256 algorithm must be one of type KeyObject or CryptoKey. Received an instance of Uint8Array
Edit: It occurred to me that maybe the issue persists with legacy plugins generally. I commented all but catalog, which will take a bit more work to migrate with the few custom catalog providers.
The whole file now reads:
Collapsed for readability: Edit: Removed extraneous plugins/spotify plugins
import 'dd-trace/init';
import { createBackend } from '@backstage/backend-defaults';
import { legacyPlugin } from '@backstage/backend-common';
const backend = createBackend();
// New Backend
backend.add(import('@backstage/plugin-auth-backend'));
backend.add(import('@backstage/plugin-auth-backend-module-guest-provider'));
backend.add(import('@backstage/plugin-auth-backend-module-okta-provider'));
backend.add(import('@backstage/plugin-permission-backend/alpha'));
backend.add(
import('@backstage/plugin-permission-backend-module-allow-all-policy'),
);
backend.add(import('@backstage/plugin-techdocs-backend/alpha'));
backend.add(import('@internal/backstage-plugin-healthcheck-backend'));
// backend.add(import('@spotify/backstage-plugin-permission-backend-module-rbac'));
// backend.add(import('@spotify/backstage-plugin-soundcheck-backend'));
// backend.add(import('@spotify/backstage-plugin-soundcheck-backend-module-github'));
// backend.add(import('@spotify/backstage-plugin-soundcheck-backend-module-scm'));
// TODO: convert all legacy plugins to new backend
// backend.add(legacyPlugin('announcements', import('./plugins/announcements')));
// backend.add(legacyPlugin('backstageInsights', import('./plugins/backstageInsights')));
backend.add(legacyPlugin('catalog', import('./plugins/catalog')));
// backend.add(legacyPlugin('proxy', import('./plugins/proxy')));
// backend.add(legacyPlugin('rbac', import('./plugins/rbac')));
// backend.add(legacyPlugin('scaffolder', import('./plugins/scaffolder')));
// backend.add(legacyPlugin('search', import('./plugins/search')));
// backend.add(legacyPlugin('skillexchange', import('./plugins/skillexchange')));
// backend.add(legacyPlugin('techdocs', import('./plugins/techdocs')));
backend.start();
I put in some extra work and migrated the catalog plugin from legacyPlugin
and that cleared the issue up. It seems that while Techdocs requires the catalog plugin to look up entities, it trips over the legacyplugin version.
I hope this debugging sequence is helpful to future implementers. My advice is: Don't use legacyPlugin
for any core plugins, and only for 3rd-party plugins with caution. My legacy-first approach to migrating was a bad strategy.