From ac15885e9daa00e3b2cef1202986962084164675 Mon Sep 17 00:00:00 2001 From: Med Mouine Date: Wed, 24 Apr 2024 13:20:06 -0400 Subject: [PATCH] gh org + devtools --- sreez-showcase/app-config.yaml | 120 +++++--- sreez-showcase/packages/app/package.json | 2 + sreez-showcase/packages/app/src/App.tsx | 8 +- .../packages/app/src/components/Root/Root.tsx | 2 + .../app/src/components/catalog/EntityPage.tsx | 60 +++- sreez-showcase/packages/backend/Dockerfile | 8 +- sreez-showcase/packages/backend/package.json | 7 + sreez-showcase/packages/backend/src/index.ts | 13 +- sreez-showcase/yarn.lock | 290 +++++++++++++++--- 9 files changed, 407 insertions(+), 103 deletions(-) diff --git a/sreez-showcase/app-config.yaml b/sreez-showcase/app-config.yaml index a6e5717..133e6f7 100644 --- a/sreez-showcase/app-config.yaml +++ b/sreez-showcase/app-config.yaml @@ -3,7 +3,7 @@ app: baseUrl: http://localhost:3000 organization: - name: My Company + name: Sreez backend: # Used for enabling authentication, secret is shared by all backend plugins @@ -32,46 +32,14 @@ backend: connection: ":memory:" # workingDirectory: /tmp # Use this to configure a working directory for the scaffolder, defaults to the OS temp-dir -integrations: - github: - - host: github.com - apps: - - appId: 880885 - webhookUrl: https://smee.io/Nj4FT0Aq729ugz7yunjy - clientId: Iv1.62e73edda444f42c - clientSecret: 3f723fe4e40239d3817cb0a6a1190b7a71e86395 - webhookSecret: 707dd0e621c9fa7c00acd060e406d9f3a07fbe88 - privateKey: | - -----BEGIN RSA PRIVATE KEY----- - MIIEpAIBAAKCAQEA3NUeQ8dwqOxLgxqhSs8XQT2rWWNeJDrtqhGLYoTkP9jcm+YV - NvqHT3mRbOlff9d1sk+lmLbtTQc/ToOTifwAyIHrHU0ZuGqAiQSKLNSFYYtEe/r6 - bqaJMmClHXBLkNt027MIWHuU1nM6zsbAhizBRZbmpMyr/gOfgH4WzXeeM4RYlbwp - qTujlCigWX51BJCJlBxAmq+UHURZooQreP5hBZBd4GpUctaDElZAfOOOYV42U0Al - 651FBt8kZOzBBjZbx0yrBsl2A9yCjWq5xNTKMHC9Xg0MhDv8ge41DX2Kb4zDkG8Q - xJg6rrId6isOsjACGh5mfC+T1Xn7bzs2uyhfkQIDAQABAoIBAFNvLe0b2EPqaylQ - kWoLTlT28NtoALSdkxfzYv9JCFfbHpbEWnWYODFd1AUbM1rA1BYXo5BMZOH6f/+x - FLhIfx9CfstmSvZzPrcGARKpBO/yx2A0VhQiVamz/A5gVByZ3c/4F4oevwA7Lxfa - 3fiTxj39oozXS5BAXC4W9ZSRwjLh9U3+z8vyR0udc4aYL60Vme9aNf+Vo4SLCBxE - mMjhHD5DHkbVgEHULUM53mWDMUMj5Q2r3EQAcDzeO1gQCJxDd63gsjkc9JlVvXLI - YJh907YgPsgny5NHn5LJck7vXej/yqPHAem1hIG4GGeXLAMUeBkAauWQGmd0hJG2 - MCkdO0ECgYEA75IMrA2ISi1mJg5BCK1jcDumlvcXO2dUN0Vt3EvVDYliztMocAmA - py8A51nKxA+OK3M+m4oyqtFPZa383doHV3UdrBzvwz4qvQQ9RzBs5r+Di/f8edu0 - H1BUNU4kqUHJyhrY4xuHkOKQlbc/bkk9WNjQGnIdFwaceMfR4JmVSjkCgYEA6/oZ - puoUG6DAup8nJopMghlhf4/knXZL+kwqXbfeTmT+msQktw/ZJqI30GRETGjlzcGc - WDpuhLDg2dnbldXCr+adShl4H5M/anyTh4RoQi/NeW+CKyJ+9ryeDQTBUvwjZfBa - iWuohJXgepCytH7nEclG5T2PRG9YdafZJFi1IBkCgYEAgVex3cZkmd/O8abqd7vd - HwAlngYDlf/gmQK0IKcUfP16yj147JxEyH55F28EKTxYvp6245UGa/Eb08LO7hxD - sHU7suvgiuHqgyhhySic8yvc4tndhxEWO33MKQdqhbNONf6usFbxp0ibVSmdZnbG - V0yfdle72u2n1xHS/1cMIgkCgYAEqMWE5C5NdVkY1jehrS1hjDq+mAq9iS5q3MIh - Y5YCGkBksea/rpJtDtrnRHOMxq1y6JW7sDuqZwupgYGybawQaQ9F/Ua/6Nphsd// - 1v9v/x2hfjAlxeKX4JWGUEe46b2RL7O57uQ+6e6qvNyqb68ETOMXd6WyhjhK6muB - Kjc5UQKBgQDGMob1La4FPI+qSYo8jw7xrk5Pl15RnFAbYmC7Jxsl6ilx4Y0d9q0o - EkcZ2Cft85Tx+Jnuzm2V8HnufqO4EVcmy44vGetsMMcuMqqtwYn/K51o1G4S49rR - knI0blhVopibXjvzViuJu+WrJyI98itcaYJUXd1u4osLpHk6Fd18oQ== - -----END RSA PRIVATE KEY----- - proxy: - '/argocd/api': + "/github/api": + target: https://api.github.com/repos + allowedHeaders: ["Authorization", "X-GitHub-Api-Version"] + headers: + Accept: application/vnd.github+json + X-GitHub-Api-Version: "2022-11-28" + "/argocd/api": target: https://argocd-server-sreez.apps.oc-med.wk.nt.local/api/v1 changeOrigin: true secure: false @@ -100,28 +68,54 @@ techdocs: type: "local" # Alternatives - 'googleGcs' or 'awsS3'. Read documentation for using alternatives. auth: + environment: development + # allowGuestAccess: true # see https://backstage.io/docs/auth/ to learn about auth providers providers: # See https://backstage.io/docs/auth/guest/provider guest: {} github: development: - clientId: 400cfa04377727669c97 - clientSecret: 5f058d2257c63dac4ef773a20369e01d0baea6bf + clientId: Iv1.62e73edda444f42c + clientSecret: 3f723fe4e40239d3817cb0a6a1190b7a71e86395 signIn: resolvers: - resolver: usernameMatchingUserEntityName - #- resolver: emailMatchingUserEntityProfileEmail - #- resolver: emailLocalPartMatchingUserEntityName + # - resolver: emailMatchingUserEntityProfileEmail + # - resolver: emailLocalPartMatchingUserEntityName +integrations: + github: + - host: github.com + apps: + - $include: github-app-backstage-sreez-credentials.yaml + scaffolder: - # see https://backstage.io/docs/features/software-templates/configuration for software template options +# see https://backstage.io/docs/features/software-templates/configuration for software template options +events: + modules: + github: + webhookSecret: 707dd0e621c9fa7c00acd060e406d9f3a07fbe88 catalog: + providers: + github: + kheops: + organization: "kheops-org" + schedule: # same options as in TaskScheduleDefinition + frequency: { minutes: 30 } + timeout: { seconds: 30 } + githubOrg: + id: "kheops-org" + orgs: [kheops-org] + githubUrl: "https://github.com/" + schedule: # same options as in TaskScheduleDefinition + frequency: { minutes: 30 } + timeout: { seconds: 30 } import: entityFilename: catalog-info.yaml pullRequestBranchName: backstage-integration rules: - - allow: [Component, System, API, Resource, Location] + - allow: [Component, System, API, Resource, Location, Users, Group] locations: # Local example data, file locations are relative to the backend process, typically `packages/backend` - type: file @@ -137,10 +131,25 @@ catalog: target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml # Local example organizational data - - type: file - target: ../../examples/org.yaml - rules: - - allow: [User, Group] + # - type: file + # target: ../../examples/org.yaml + # rules: + # - allow: [User, Group] + # - type: github-org + # target: https://github.com/kheops-org + # rules: + # - allow: [User, Group] + # - type: file + # target: ./examples/entities.yaml + # - type: file + # target: ./examples/template/template.yaml + # rules: + # - allow: [Template] + # - type: file + # target: ./examples/org.yaml + # rules: + # - allow: [User, Group] + - type: url target: https://github.com/backstage/backstage/raw/master/packages/catalog-model/examples/apis/petstore-api.yaml @@ -162,3 +171,14 @@ catalog: # target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme-corp.yaml # rules: # - allow: [User, Group] +devTools: + externalDependencies: + endpoints: + - name: "Google" + type: "fetch" + target: "https://google.ca" + - name: "Google Public DNS" + type: "ping" + target: "8.8.8.8" +permission: + enabled: true diff --git a/sreez-showcase/packages/app/package.json b/sreez-showcase/packages/app/package.json index 498c454..f4d6774 100644 --- a/sreez-showcase/packages/app/package.json +++ b/sreez-showcase/packages/app/package.json @@ -28,6 +28,7 @@ "@backstage/plugin-catalog-graph": "^0.4.4", "@backstage/plugin-catalog-import": "^0.10.10", "@backstage/plugin-catalog-react": "^1.11.3", + "@backstage/plugin-devtools": "^0.1.13", "@backstage/plugin-org": "^0.6.24", "@backstage/plugin-permission-react": "^0.4.22", "@backstage/plugin-scaffolder": "^1.19.3", @@ -42,6 +43,7 @@ "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@roadiehq/backstage-plugin-argo-cd": "^2.6.4", + "@veecode-platform/backstage-plugin-github-workflows": "^0.2.70", "history": "^5.0.0", "react": "^18.0.2", "react-dom": "^18.0.2", diff --git a/sreez-showcase/packages/app/src/App.tsx b/sreez-showcase/packages/app/src/App.tsx index d401497..67eafaa 100644 --- a/sreez-showcase/packages/app/src/App.tsx +++ b/sreez-showcase/packages/app/src/App.tsx @@ -38,6 +38,7 @@ import { CatalogGraphPage } from '@backstage/plugin-catalog-graph'; import { RequirePermission } from '@backstage/plugin-permission-react'; import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha'; import { githubAuthApiRef } from '@backstage/core-plugin-api'; +import { DevToolsPage } from '@backstage/plugin-devtools'; const app = createApp({ @@ -64,12 +65,14 @@ const app = createApp({ ), @@ -78,6 +81,7 @@ const app = createApp({ const routes = ( + } /> } /> } /> ) => ( to="/settings" > + {children} diff --git a/sreez-showcase/packages/app/src/components/catalog/EntityPage.tsx b/sreez-showcase/packages/app/src/components/catalog/EntityPage.tsx index 91d5f33..fb4c865 100644 --- a/sreez-showcase/packages/app/src/components/catalog/EntityPage.tsx +++ b/sreez-showcase/packages/app/src/components/catalog/EntityPage.tsx @@ -45,7 +45,6 @@ import { EntityCatalogGraphCard, } from '@backstage/plugin-catalog-graph'; import { - Entity, RELATION_API_CONSUMED_BY, RELATION_API_PROVIDED_BY, RELATION_CONSUMES_API, @@ -58,7 +57,40 @@ import { import { TechDocsAddons } from '@backstage/plugin-techdocs-react'; import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib'; -import { EntityArgoCDOverviewCard, isArgocdAvailable } from '@roadiehq/backstage-plugin-argo-cd'; +import { + EntityArgoCDOverviewCard, + isArgocdAvailable, +} from '@roadiehq/backstage-plugin-argo-cd'; +import { + GithubWorkflowsCard, + GithubWorkflowsList, + isGithubAvailable, + isGithubWorkflowsAvailable, +} from '@veecode-platform/backstage-plugin-github-workflows'; + +const WorkflowsContent = ( + + + + + + + Read more + + } + /> + + +); const techdocsContent = ( @@ -73,7 +105,7 @@ const cicdContent = ( // You can for example enforce that all components of type 'service' should use GitHubActions - + + + + + + + + @@ -157,6 +196,13 @@ const serviceEntityPage = ( {cicdContent} + + {WorkflowsContent} + @@ -195,7 +241,13 @@ const websiteEntityPage = ( {cicdContent} - + + {WorkflowsContent} + diff --git a/sreez-showcase/packages/backend/Dockerfile b/sreez-showcase/packages/backend/Dockerfile index 18548e9..af51ea8 100644 --- a/sreez-showcase/packages/backend/Dockerfile +++ b/sreez-showcase/packages/backend/Dockerfile @@ -23,7 +23,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \ apt-get update && \ - apt-get install -y --no-install-recommends libsqlite3-dev + apt-get install -y --no-install-recommends libsqlite3-dev iputils-ping # From here on we use the least-privileged `node` user to run the backend. USER node @@ -34,7 +34,7 @@ USER node WORKDIR /app # This switches many Node.js dependencies to production mode. -ENV NODE_ENV production +# ENV NODE_ENV production # Copy repo skeleton first, to avoid unnecessary docker cache invalidation. # The skeleton contains the package.json of each package in the monorepo, @@ -49,4 +49,6 @@ RUN --mount=type=cache,target=/home/node/.cache/yarn,sharing=locked,uid=1000,gid COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./ RUN tar xzf bundle.tar.gz && rm bundle.tar.gz -CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"] +COPY ./examples ./examples + +CMD ["node", "packages/backend", "--config", "app-config.yaml"] diff --git a/sreez-showcase/packages/backend/package.json b/sreez-showcase/packages/backend/package.json index 08e0104..d6e4570 100644 --- a/sreez-showcase/packages/backend/package.json +++ b/sreez-showcase/packages/backend/package.json @@ -18,8 +18,10 @@ "dependencies": { "@backstage/backend-common": "^0.21.7", "@backstage/backend-defaults": "^0.2.17", + "@backstage/backend-plugin-api": "^0.6.17", "@backstage/backend-tasks": "^0.5.22", "@backstage/config": "^1.2.0", + "@backstage/integration": "^1.10.0", "@backstage/plugin-app-backend": "^0.3.65", "@backstage/plugin-auth-backend": "^0.22.4", "@backstage/plugin-auth-backend-module-github-provider": "^0.1.14", @@ -27,13 +29,18 @@ "@backstage/plugin-auth-node": "^0.4.12", "@backstage/plugin-catalog-backend": "^1.21.1", "@backstage/plugin-catalog-backend-module-github": "^0.6.0", + "@backstage/plugin-catalog-backend-module-github-org": "^0.1.12", "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.1.15", + "@backstage/plugin-catalog-node": "^1.11.1", + "@backstage/plugin-devtools-backend": "^0.3.3", + "@backstage/plugin-events-backend-module-github": "^0.2.3", "@backstage/plugin-permission-backend": "^0.5.41", "@backstage/plugin-permission-backend-module-allow-all-policy": "^0.1.14", "@backstage/plugin-permission-common": "^0.7.13", "@backstage/plugin-permission-node": "^0.7.28", "@backstage/plugin-proxy-backend": "^0.4.15", "@backstage/plugin-scaffolder-backend": "^1.22.4", + "@backstage/plugin-scaffolder-backend-module-github": "^0.2.7", "@backstage/plugin-search-backend": "^1.5.7", "@backstage/plugin-search-backend-module-catalog": "^0.1.22", "@backstage/plugin-search-backend-module-techdocs": "^0.1.22", diff --git a/sreez-showcase/packages/backend/src/index.ts b/sreez-showcase/packages/backend/src/index.ts index baa724e..5d3ab66 100644 --- a/sreez-showcase/packages/backend/src/index.ts +++ b/sreez-showcase/packages/backend/src/index.ts @@ -7,6 +7,8 @@ */ import { createBackend } from '@backstage/backend-defaults'; +import { eventsModuleGithubEventRouter } from '@backstage/plugin-events-backend-module-github/alpha'; +import { eventsModuleGithubWebhook } from '@backstage/plugin-events-backend-module-github/alpha'; const backend = createBackend(); @@ -28,6 +30,11 @@ backend.add( import('@backstage/plugin-catalog-backend-module-scaffolder-entity-model'), ); backend.add(import('@backstage/plugin-scaffolder-backend-module-github')); +backend.add(import('@backstage/plugin-catalog-backend-module-github/alpha')); +backend.add(import('@backstage/plugin-catalog-backend-module-github-org')); + +backend.add(eventsModuleGithubEventRouter()); +backend.add(eventsModuleGithubWebhook()); // permission plugin backend.add(import('@backstage/plugin-permission-backend/alpha')); @@ -37,7 +44,9 @@ backend.add( // search plugin backend.add(import('@backstage/plugin-search-backend/alpha')); -backend.add(import('@backstage/plugin-search-backend-module-catalog/alpha')); -backend.add(import('@backstage/plugin-search-backend-module-techdocs/alpha')); +// backend.add(import('@backstage/plugin-search-backend-module-catalog/alpha')); +// backend.add(import('@backstage/plugin-search-backend-module-techdocs/alpha')); + +backend.add(import('@backstage/plugin-devtools-backend')); backend.start(); diff --git a/sreez-showcase/yarn.lock b/sreez-showcase/yarn.lock index b8ecf02..87b5974 100644 --- a/sreez-showcase/yarn.lock +++ b/sreez-showcase/yarn.lock @@ -2095,7 +2095,7 @@ core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.24.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.4.tgz#de795accd698007a66ba44add6cc86542aff1edd" integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA== @@ -2347,7 +2347,7 @@ cross-fetch "^4.0.0" uri-template "^2.0.0" -"@backstage/catalog-model@^1.4.5": +"@backstage/catalog-model@^1.4.4", "@backstage/catalog-model@^1.4.5": version "1.4.5" resolved "https://registry.yarnpkg.com/@backstage/catalog-model/-/catalog-model-1.4.5.tgz#b8f6309ff12b72dffdfe852d615c553ae13452c0" integrity sha512-I4QOCy0pSXJikQWgC8MWj2zDRCgQnnmvnNOOnPFcg7hIIIzeV0sGp6d3Qi7bc2tvzXt3fT3biSOCgGOWi1IJKA== @@ -2551,7 +2551,7 @@ "@backstage/version-bridge" "^1.0.8" "@types/react" "^16.13.1 || ^17.0.0" -"@backstage/core-components@^0.14.3", "@backstage/core-components@^0.14.4": +"@backstage/core-components@^0.14.0", "@backstage/core-components@^0.14.3", "@backstage/core-components@^0.14.4": version "0.14.4" resolved "https://registry.yarnpkg.com/@backstage/core-components/-/core-components-0.14.4.tgz#96867e77898327a4bc12a671597d0ca481d4d227" integrity sha512-yPsLtXI37Ar4bcmtL1VHxlR8GZAhRiXKor+25zuu6stArkVirIJvH4CdS0S2eMQZ9HEFnzo1O+QzeKGxsm7PKw== @@ -2596,7 +2596,7 @@ zen-observable "^0.10.0" zod "^3.22.4" -"@backstage/core-plugin-api@^1.9.1", "@backstage/core-plugin-api@^1.9.2": +"@backstage/core-plugin-api@^1.9.0", "@backstage/core-plugin-api@^1.9.1", "@backstage/core-plugin-api@^1.9.2": version "1.9.2" resolved "https://registry.yarnpkg.com/@backstage/core-plugin-api/-/core-plugin-api-1.9.2.tgz#1a75865e567708829f5a8056ad23ea94233f4b7f" integrity sha512-VbMzgbp5c14B+xi5qFDXEd/LMsrM9D9IpU9tLPSaN2fn9FWhxmeHILNaiLHO2mdLd6RxLopKKbKWduBYbqyu5Q== @@ -2660,7 +2660,7 @@ "@backstage/config" "^1.2.0" "@backstage/errors" "^1.2.4" -"@backstage/integration-react@^1.1.26": +"@backstage/integration-react@^1.1.24", "@backstage/integration-react@^1.1.26": version "1.1.26" resolved "https://registry.yarnpkg.com/@backstage/integration-react/-/integration-react-1.1.26.tgz#6214a6653532c3862c003e9259038e0b265a1d7c" integrity sha512-So+W2fPKIiZxpvrzvosKmULB+m1jr3cQvChQnNlZLmcTZ7oGQ7IwR9AmgCUhdPImeOjcxyCyoNjZ4OVIVb1wVg== @@ -3019,6 +3019,19 @@ "@react-hookz/web" "^24.0.0" "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" +"@backstage/plugin-catalog-backend-module-github-org@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-backend-module-github-org/-/plugin-catalog-backend-module-github-org-0.1.12.tgz#031dd9e1b67cd0a461e71fbf1e409ee1e9aa095e" + integrity sha512-rT33Fn/0R1BqaOVM0/hklaSGieuzH5e8BKZl+gpUJVreXe2eXULXWhQ48aVqObNfltfU8FgHaCKp6ZharvC4KQ== + dependencies: + "@backstage/backend-common" "^0.21.7" + "@backstage/backend-plugin-api" "^0.6.17" + "@backstage/backend-tasks" "^0.5.22" + "@backstage/config" "^1.2.0" + "@backstage/plugin-catalog-backend-module-github" "^0.6.0" + "@backstage/plugin-catalog-node" "^1.11.1" + "@backstage/plugin-events-node" "^0.3.3" + "@backstage/plugin-catalog-backend-module-github@^0.6.0": version "0.6.0" resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-backend-module-github/-/plugin-catalog-backend-module-github-0.6.0.tgz#58fb5d055ae7f44fd29829dd22ab69d42f31f523" @@ -3171,7 +3184,7 @@ "@backstage/plugin-permission-node" "^0.7.28" "@backstage/types" "^1.1.1" -"@backstage/plugin-catalog-react@^1.11.2", "@backstage/plugin-catalog-react@^1.11.3": +"@backstage/plugin-catalog-react@^1.10.0", "@backstage/plugin-catalog-react@^1.11.2", "@backstage/plugin-catalog-react@^1.11.3": version "1.11.3" resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.11.3.tgz#e83948f3c921791066499d30ef487a9f4ce5964b" integrity sha512-WJPLLhYrRh6zPQ/lr1Lub+q8I7dd/kOfVklVxl3FmAK3Ad6z3IdK3Z7RrzUEHc2WVIE57bjnepEtBSSM9Xum/g== @@ -3234,6 +3247,70 @@ react-use "^17.2.4" zen-observable "^0.10.0" +"@backstage/plugin-devtools-backend@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@backstage/plugin-devtools-backend/-/plugin-devtools-backend-0.3.3.tgz#02f2b4fabcc0adb257f1c78f0d5bdcfde073734c" + integrity sha512-+ipd9Nhn8hKiClX4oMthjNoLiJgkG6P3pINr4E5YzpvRQQexwEJfVO4Vk/Q4+DlcBSE+VbuqR32mKZthc0ldMg== + dependencies: + "@backstage/backend-common" "^0.21.7" + "@backstage/backend-plugin-api" "^0.6.17" + "@backstage/cli-common" "^0.1.13" + "@backstage/config" "^1.2.0" + "@backstage/config-loader" "^1.8.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-devtools-common" "^0.1.9" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-permission-node" "^0.7.28" + "@backstage/types" "^1.1.1" + "@manypkg/get-packages" "^1.1.3" + "@types/express" "*" + "@yarnpkg/lockfile" "^1.1.0" + "@yarnpkg/parsers" "^3.0.0-rc.4" + express "^4.18.1" + express-promise-router "^4.1.0" + fs-extra "^11.0.0" + lodash "^4.17.21" + node-fetch "^2.6.7" + ping "^0.4.1" + semver "^7.5.3" + yn "^4.0.0" + +"@backstage/plugin-devtools-common@^0.1.9": + version "0.1.9" + resolved "https://registry.yarnpkg.com/@backstage/plugin-devtools-common/-/plugin-devtools-common-0.1.9.tgz#fae042dbd96b60cac09cab69672e42bcdaafe2aa" + integrity sha512-PrVIy1ZVO7Z3Hu2LW12zi7gl/bFNMcEYmVw+oGDj9TDiJjMI+ZL9wc6gB+qS3+eXC/teFHaEw+BZE5oWMkSgaA== + dependencies: + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/types" "^1.1.1" + +"@backstage/plugin-devtools@^0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@backstage/plugin-devtools/-/plugin-devtools-0.1.13.tgz#7c78f7c7fe676c3a807e1c77d9b042a27e13b8fe" + integrity sha512-K8Y14EGd3OPa+2JQ3LIBEHnMLjnP+zm0EGuqATa88EUg4+l4gB1pi/19EgmmbDksMEZYlKaDJMcqecTXv/etFw== + dependencies: + "@backstage/core-compat-api" "^0.2.4" + "@backstage/core-components" "^0.14.4" + "@backstage/core-plugin-api" "^1.9.2" + "@backstage/errors" "^1.2.4" + "@backstage/frontend-plugin-api" "^0.6.4" + "@backstage/plugin-devtools-common" "^0.1.9" + "@backstage/plugin-permission-react" "^0.4.22" + "@material-ui/core" "^4.9.13" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "^4.0.0-alpha.57" + react-json-view "^1.21.3" + react-use "^17.2.4" + +"@backstage/plugin-events-backend-module-github@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@backstage/plugin-events-backend-module-github/-/plugin-events-backend-module-github-0.2.3.tgz#8df34ba3e101a38b2c14eedce94a9dc24fd37674" + integrity sha512-PvgMoig2XrtaaJvyXegH/e+9i6nxjzjBCNpPoXbLiL0IDyjqgBADm5Vxp3Gi2zGy7L/W7WUOFZ7k5psM9NRzxQ== + dependencies: + "@backstage/backend-plugin-api" "^0.6.17" + "@backstage/config" "^1.2.0" + "@backstage/plugin-events-node" "^0.3.3" + "@octokit/webhooks-methods" "^3.0.0" + "@backstage/plugin-events-node@^0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@backstage/plugin-events-node/-/plugin-events-node-0.3.3.tgz#4881730ed0889439b6366b27defb3e6ea6ba8fcf" @@ -3999,7 +4076,7 @@ i18next "^22.4.15" zen-observable "^0.10.0" -"@backstage/theme@^0.5.2", "@backstage/theme@^0.5.3": +"@backstage/theme@^0.5.1", "@backstage/theme@^0.5.2", "@backstage/theme@^0.5.3": version "0.5.3" resolved "https://registry.yarnpkg.com/@backstage/theme/-/theme-0.5.3.tgz#bc715ad0f2215f1ad9683d15a460240feabbafca" integrity sha512-0d9tyLfbrjdIugSQHVA4ww/XT/VR7Kt2SvkhX/ZvQkcud85P4MN2P0aF/9q7BZeog7wpjI00AGHoWzMX4MdDIw== @@ -5358,7 +5435,7 @@ prop-types "^15.7.2" react-is "^16.8.0" -"@material-ui/lab@4.0.0-alpha.61": +"@material-ui/lab@4.0.0-alpha.61", "@material-ui/lab@^4.0.0-alpha.57": version "4.0.0-alpha.61" resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz#9bf8eb389c0c26c15e40933cc114d4ad85e3d978" integrity sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg== @@ -9036,7 +9113,7 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@*", "@types/react-dom@^18", "@types/react-dom@^18.0.0": +"@types/react-dom@*", "@types/react-dom@^18.0.0": version "18.2.25" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.25.tgz#2946a30081f53e7c8d585eb138277245caedc521" integrity sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA== @@ -9074,7 +9151,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.13.1 || ^17.0.0", "@types/react@^16.13.1 || ^17.0.0 || ^18.0.0", "@types/react@^18": +"@types/react@*", "@types/react@^16.13.1 || ^17.0.0 || ^18.0.0": version "18.2.79" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.79.tgz#c40efb4f255711f554d47b449f796d1c7756d865" integrity sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w== @@ -9082,6 +9159,15 @@ "@types/prop-types" "*" csstype "^3.0.2" +"@types/react@^16.13.1 || ^17.0.0": + version "17.0.80" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.80.tgz#a5dfc351d6a41257eb592d73d3a85d3b7dbcbb41" + integrity sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "^0.16" + csstype "^3.0.2" + "@types/request@^2.47.1", "@types/request@^2.48.8": version "2.48.12" resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.12.tgz#0f590f615a10f87da18e9790ac94c29ec4c5ef30" @@ -9114,6 +9200,11 @@ resolved "https://registry.yarnpkg.com/@types/sarif/-/sarif-2.1.7.tgz#dab4d16ba7568e9846c454a8764f33c5d98e5524" integrity sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ== +"@types/scheduler@^0.16": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + "@types/semver@^7.3.12", "@types/semver@^7.5.0": version "7.5.8" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" @@ -9423,6 +9514,23 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@veecode-platform/backstage-plugin-github-workflows@^0.2.70": + version "0.2.70" + resolved "https://registry.yarnpkg.com/@veecode-platform/backstage-plugin-github-workflows/-/backstage-plugin-github-workflows-0.2.70.tgz#2dca84738fe4c16766290560e938300de873ca62" + integrity sha512-tZgNRsRXtaE3GDzuELTOMWOEChsIvzD0T5wwfacrrvoQlX0wLDD9zQMm2EHKb81OozmzcWFaMmy9HGumCJTEQg== + dependencies: + "@backstage/catalog-model" "^1.4.4" + "@backstage/core-components" "^0.14.0" + "@backstage/core-plugin-api" "^1.9.0" + "@backstage/integration-react" "^1.1.24" + "@backstage/plugin-catalog-react" "^1.10.0" + "@backstage/theme" "^0.5.1" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.61" + js-yaml "^4.1.0" + react-use "^17.2.4" + "@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" @@ -9874,6 +9982,7 @@ anymatch@^3.0.3, anymatch@~3.1.2: "@backstage/plugin-catalog-graph" "^0.4.4" "@backstage/plugin-catalog-import" "^0.10.10" "@backstage/plugin-catalog-react" "^1.11.3" + "@backstage/plugin-devtools" "^0.1.13" "@backstage/plugin-org" "^0.6.24" "@backstage/plugin-permission-react" "^0.4.22" "@backstage/plugin-scaffolder" "^1.19.3" @@ -9888,6 +9997,7 @@ anymatch@^3.0.3, anymatch@~3.1.2: "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" "@roadiehq/backstage-plugin-argo-cd" "^2.6.4" + "@veecode-platform/backstage-plugin-github-workflows" "^0.2.70" history "^5.0.0" react "^18.0.2" react-dom "^18.0.2" @@ -10115,7 +10225,7 @@ arrify@^2.0.0, arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asap@^2.0.3: +asap@^2.0.3, asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== @@ -10415,6 +10525,11 @@ bare-events@^2.2.0: resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.2.2.tgz#a98a41841f98b2efe7ecc5c5468814469b018078" integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ== +base16@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" + integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== + base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -11819,7 +11934,7 @@ cross-env@^7.0.0: dependencies: cross-spawn "^7.0.1" -cross-fetch@^3.1.4: +cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.8" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== @@ -13551,7 +13666,7 @@ express-session@^1.17.1: safe-buffer "5.2.1" uid-safe "~2.1.5" -express@^4.17.1, express@^4.17.3, express@^4.18.2, express@^4.19.2: +express@^4.17.1, express@^4.17.3, express@^4.18.1, express@^4.18.2, express@^4.19.2: version "4.19.2" resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== @@ -13747,6 +13862,31 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +fbemitter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" + integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== + dependencies: + fbjs "^3.0.0" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^3.0.0, fbjs@^3.0.1: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" + integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== + dependencies: + cross-fetch "^3.1.5" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^1.0.35" + fecha@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" @@ -13883,6 +14023,14 @@ flatted@3.3.1, flatted@^3.2.9: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== +flux@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.4.tgz#9661182ea81d161ee1a6a6af10d20485ef2ac572" + integrity sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw== + dependencies: + fbemitter "^3.0.0" + fbjs "^3.0.1" + fn.name@1.x.x: version "1.1.0" resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" @@ -17122,6 +17270,11 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== +lodash.curry@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" + integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== + lodash.debounce@^4, lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -17137,6 +17290,11 @@ lodash.flattendeep@^4.0.0: resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== +lodash.flow@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" + integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -18854,7 +19012,7 @@ oauth@0.9.x: resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" integrity sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA== -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -19732,6 +19890,11 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== +ping@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/ping/-/ping-0.4.4.tgz#f70c5c8ad7b476d903100c9d45ecd52cf83e1de3" + integrity sha512-56ZMC0j7SCsMMLdOoUg12VZCfj/+ZO+yfOSjaNCRrmZZr6GLbN2X/Ui56T15dI8NhiHckaw5X2pvyfAomanwqQ== + pino-pretty@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-2.6.1.tgz#b5a8e28137deb1629428931d98c708b51f0e9555" @@ -20247,6 +20410,13 @@ promise.series@^0.2.0: resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" integrity sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ== +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + prompts@^2.0.1, prompts@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -20366,6 +20536,11 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== +pure-color@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" + integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA== + pure-rand@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" @@ -20538,6 +20713,16 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-base16-styling@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" + integrity sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ== + dependencies: + base16 "^1.0.0" + lodash.curry "^4.0.1" + lodash.flow "^3.3.0" + pure-color "^1.2.0" + react-beautiful-dnd@^13.0.0: version "13.1.1" resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz#b0f3087a5840920abf8bb2325f1ffa46d8c4d0a2" @@ -20672,6 +20857,21 @@ react-is@^18.0.0, react-is@^18.2.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react-json-view@^1.21.3: + version "1.21.3" + resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" + integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== + dependencies: + flux "^4.0.1" + react-base16-styling "^0.6.0" + react-lifecycles-compat "^3.0.4" + react-textarea-autosize "^8.3.2" + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + react-markdown@^8.0.0: version "8.0.7" resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.7.tgz#c8dbd1b9ba5f1c5e7e5f2a44de465a3caafdf89b" @@ -20791,6 +20991,15 @@ react-text-truncate@^0.19.0: dependencies: prop-types "^15.5.7" +react-textarea-autosize@^8.3.2: + version "8.5.3" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz#d1e9fe760178413891484847d3378706052dd409" + integrity sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ== + dependencies: + "@babel/runtime" "^7.20.13" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + react-transition-group@^4.0.0, react-transition-group@^4.4.0, react-transition-group@^4.4.5: version "4.4.5" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" @@ -22329,16 +22538,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -22416,7 +22616,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0, strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -22430,13 +22630,6 @@ strip-ansi@5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@6.0, strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -23371,6 +23564,11 @@ typescript@~5.3.0: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +ua-parser-js@^1.0.35: + version "1.0.37" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" + integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" @@ -23647,11 +23845,28 @@ use-callback-ref@^1.3.0: dependencies: tslib "^2.0.0" +use-composed-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" + integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== + use-immer@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/use-immer/-/use-immer-0.9.0.tgz#66e4e8f7ab75df45e96dfd5c56337f9fd49db9fd" integrity sha512-/L+enLi0nvuZ6j4WlyK0US9/ECUtV5v9RUbtxnn5+WbtaXYUaOBoKHDNL9I5AETdurQ4rIFIj/s+Z5X80ATyKw== +use-isomorphic-layout-effect@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +use-latest@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" + integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== + dependencies: + use-isomorphic-layout-effect "^1.1.1" + use-memo-one@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.3.tgz#2fd2e43a2169eabc7496960ace8c79efef975e99" @@ -24233,7 +24448,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -24251,15 +24466,6 @@ wrap-ansi@^6.0.1: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"