diff --git a/plugins/dynamic-plugins-info/.eslintrc.js b/plugins/dynamic-plugins-info/.eslintrc.js
new file mode 100644
index 0000000000..e2a53a6ad2
--- /dev/null
+++ b/plugins/dynamic-plugins-info/.eslintrc.js
@@ -0,0 +1 @@
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/plugins/dynamic-plugins-info/CONTRIBUTING.md b/plugins/dynamic-plugins-info/CONTRIBUTING.md
new file mode 100644
index 0000000000..234259f812
--- /dev/null
+++ b/plugins/dynamic-plugins-info/CONTRIBUTING.md
@@ -0,0 +1,7 @@
+# Setting up the development environment for Dynamic Plugins Info plugin
+
+In [Backstage plugin terminology](https://backstage.io/docs/local-dev/cli-build-system#package-roles), the Dynamic Plugins Info plugin is a front-end plugin. You can start a live development session from the repository root using the following command:
+
+```console
+yarn workspace @janus-idp/backstage-plugin-dynamic-plugins-info run start
+```
diff --git a/plugins/dynamic-plugins-info/README.md b/plugins/dynamic-plugins-info/README.md
new file mode 100644
index 0000000000..9b723841f2
--- /dev/null
+++ b/plugins/dynamic-plugins-info/README.md
@@ -0,0 +1,45 @@
+# Dynamic Plugins Info plugin for Backstage
+
+The dynamic-plugins-info plugin is a frontend component for the [dynamic-plugins-info-backend](https://github.com/janus-idp/backstage-showcase/tree/main/plugins/dynamic-plugins-info-backend) plugin. It offers a simple table UI that supports client-side sorting, filtering and pagination.
+
+The plugin is designed to be installed dynamically in the [backstage-showcase](https://github.com/janus-idp/backstage-showcase/tree/main) app.
+
+To build this plugin and the dynamic entrypoint:
+
+`yarn install`
+
+`yarn tsc`
+
+`yarn build`
+
+`yarn export-dynamic`
+
+To install the dynamic plugin from a local build:
+
+```bash
+cd dist-scalprum
+npm pack .
+archive=$(npm pack $pkg)
+tar -xzf "$archive" && rm "$archive"
+mv package $(echo $archive | sed -e 's:\.tgz$::')
+```
+
+Move the resulting directory (`janus-idp-backstage-plugin-dynamic-plugins-info-0.1.0`) into the `dynamic-plugins-root` folder of your [backstage-showcase](https://github.com/janus-idp/backstage-showcase/tree/main) clone.
+
+This configuration will enable the plugin to be visible in the UI:
+
+```yaml
+dynamicPlugins:
+ frontend:
+ janus-idp.backstage-plugin-dynamic-plugins-info:
+ dynamicRoutes:
+ - path: /admin/plugins
+ importName: DynamicPluginsInfo
+ mountPoints:
+ - mountPoint: admin.page.plugins/cards
+ importName: DynamicPluginsInfo
+ config:
+ layout:
+ gridColumn: '1 / -1'
+ width: 100vw
+```
diff --git a/plugins/dynamic-plugins-info/app-config.janus-idp.yaml b/plugins/dynamic-plugins-info/app-config.janus-idp.yaml
new file mode 100644
index 0000000000..490c0123a9
--- /dev/null
+++ b/plugins/dynamic-plugins-info/app-config.janus-idp.yaml
@@ -0,0 +1,13 @@
+dynamicPlugins:
+ frontend:
+ janus-idp.backstage-plugin-dynamic-plugins-info:
+ dynamicRoutes:
+ - path: /admin/plugins
+ importName: DynamicPluginsInfo
+ mountPoints:
+ - mountPoint: admin.page.plugins/cards
+ importName: DynamicPluginsInfo
+ config:
+ layout:
+ gridColumn: '1 / -1'
+ width: 100vw
diff --git a/plugins/dynamic-plugins-info/dev/index.tsx b/plugins/dynamic-plugins-info/dev/index.tsx
new file mode 100644
index 0000000000..c40e8b3503
--- /dev/null
+++ b/plugins/dynamic-plugins-info/dev/index.tsx
@@ -0,0 +1,85 @@
+import React from 'react';
+
+import { Content, Header, HeaderTabs, Page } from '@backstage/core-components';
+import { createDevApp } from '@backstage/dev-utils';
+import { TestApiProvider } from '@backstage/test-utils';
+
+import { dynamicPluginsInfoApiRef } from '../src/api/types';
+import { DynamicPluginsInfoContent } from '../src/components/DynamicPluginsInfoContent/DynamicPluginsInfoContent';
+import { dynamicPluginsInfoPlugin } from '../src/plugin';
+
+export const listLoadedPluginsResult = [
+ {
+ name: 'some-plugin-one',
+ version: '0.1.0',
+ role: 'frontend-plugin',
+ platform: 'web',
+ },
+ {
+ name: 'some-plugin-two',
+ version: '1.1.0',
+ role: 'backend-plugin-module',
+ platform: 'node',
+ },
+ {
+ name: 'some-plugin-three',
+ version: '0.1.2',
+ role: 'backend-plugin',
+ platform: 'node',
+ },
+ {
+ name: 'some-plugin-four',
+ version: '1.1.0',
+ role: 'frontend-plugin',
+ platform: 'web',
+ },
+ {
+ name: 'some-plugin-five',
+ version: '1.2.0',
+ role: 'frontend-plugin',
+ platform: 'web',
+ },
+ {
+ name: 'some-plugin-six',
+ version: '0.6.3',
+ role: 'backend-plugin',
+ platform: 'node',
+ },
+];
+
+const mockedApi = {
+ listLoadedPlugins: async () => {
+ return listLoadedPluginsResult;
+ },
+};
+
+createDevApp()
+ .registerPlugin(dynamicPluginsInfoPlugin)
+ .addPage({
+ element: (
+
+
+
+
+
+
+
+
+
+ ),
+ title: 'Root Page',
+ path: '/dynamic-plugins-info',
+ })
+ .render();
diff --git a/plugins/dynamic-plugins-info/package.json b/plugins/dynamic-plugins-info/package.json
new file mode 100644
index 0000000000..6899efbecb
--- /dev/null
+++ b/plugins/dynamic-plugins-info/package.json
@@ -0,0 +1,65 @@
+{
+ "name": "@janus-idp/backstage-plugin-dynamic-plugins-info",
+ "version": "0.1.0",
+ "main": "src/index.ts",
+ "types": "src/index.ts",
+ "license": "Apache-2.0",
+ "publishConfig": {
+ "access": "public",
+ "main": "dist/index.esm.js",
+ "types": "dist/index.d.ts"
+ },
+ "backstage": {
+ "role": "frontend-plugin"
+ },
+ "scripts": {
+ "build": "backstage-cli package build",
+ "clean": "backstage-cli package clean",
+ "export-dynamic": "janus-cli package export-dynamic-plugin",
+ "lint": "backstage-cli package lint",
+ "postpack": "backstage-cli package postpack",
+ "postversion": "yarn run export-dynamic",
+ "prepack": "backstage-cli package prepack",
+ "start": "backstage-cli package start",
+ "test": "backstage-cli package test --passWithNoTests --coverage",
+ "tsc": "tsc"
+ },
+ "dependencies": {
+ "@backstage/core-components": "^0.13.6",
+ "@backstage/core-plugin-api": "^1.7.0",
+ "@backstage/theme": "^0.4.3",
+ "@material-table/core": "^3.1.0",
+ "react-use": "^17.4.0"
+ },
+ "peerDependencies": {
+ "react": "^16.13.1 || ^17.0.0",
+ "react-router-dom": "^6.20.0"
+ },
+ "devDependencies": {
+ "@backstage/cli": "0.23.0",
+ "@backstage/core-app-api": "1.11.0",
+ "@backstage/dev-utils": "1.0.22",
+ "@backstage/test-utils": "1.4.4",
+ "@testing-library/jest-dom": "5.17.0",
+ "@testing-library/react": "12.1.5",
+ "@testing-library/user-event": "14.5.1",
+ "msw": "1.3.2"
+ },
+ "files": [
+ "dist",
+ "dist-scalprum"
+ ],
+ "scalprum": {
+ "name": "janus-idp.backstage-plugin-dynamic-plugins-info",
+ "exposedModules": {
+ "PluginRoot": "./src/index.ts"
+ }
+ },
+ "repository": "github:janus-idp/backstage-plugins",
+ "keywords": [
+ "backstage",
+ "plugin"
+ ],
+ "homepage": "https://janus-idp.io/",
+ "bugs": "https://github.com/janus-idp/backstage-plugins/issues"
+}
diff --git a/plugins/dynamic-plugins-info/src/api/DynamicPluginsInfoClient.ts b/plugins/dynamic-plugins-info/src/api/DynamicPluginsInfoClient.ts
new file mode 100644
index 0000000000..b3c4224dea
--- /dev/null
+++ b/plugins/dynamic-plugins-info/src/api/DynamicPluginsInfoClient.ts
@@ -0,0 +1,30 @@
+import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api';
+
+import { DynamicPluginInfo, DynamicPluginsInfoApi } from './types';
+
+export interface DynamicPluginsInfoClientOptions {
+ discoveryApi: DiscoveryApi;
+ fetchApi: FetchApi;
+}
+
+const loadedPluginsEndpoint = '/loaded-plugins';
+
+export class DynamicPluginsInfoClient implements DynamicPluginsInfoApi {
+ private readonly discoveryApi: DiscoveryApi;
+ private readonly fetchApi: FetchApi;
+
+ constructor(options: DynamicPluginsInfoClientOptions) {
+ this.discoveryApi = options.discoveryApi;
+ this.fetchApi = options.fetchApi;
+ }
+ async listLoadedPlugins(): Promise {
+ const baseUrl = await this.discoveryApi.getBaseUrl('dynamic-plugins-info');
+ const targetUrl = `${baseUrl}${loadedPluginsEndpoint}`;
+ const response = await this.fetchApi.fetch(targetUrl);
+ const data = await response.json();
+ if (!response.ok) {
+ throw new Error(`${data.message}`);
+ }
+ return data;
+ }
+}
diff --git a/plugins/dynamic-plugins-info/src/api/types.ts b/plugins/dynamic-plugins-info/src/api/types.ts
new file mode 100644
index 0000000000..af6b4d908c
--- /dev/null
+++ b/plugins/dynamic-plugins-info/src/api/types.ts
@@ -0,0 +1,16 @@
+import { createApiRef } from '@backstage/core-plugin-api';
+
+export type DynamicPluginInfo = {
+ name: string;
+ version: string;
+ role: string;
+ platform: string;
+};
+
+export interface DynamicPluginsInfoApi {
+ listLoadedPlugins(): Promise;
+}
+
+export const dynamicPluginsInfoApiRef = createApiRef({
+ id: 'plugin.dynamic-plugins-info',
+});
diff --git a/plugins/dynamic-plugins-info/src/components/DynamicPluginsInfoContent/DynamicPluginsInfoContent.tsx b/plugins/dynamic-plugins-info/src/components/DynamicPluginsInfoContent/DynamicPluginsInfoContent.tsx
new file mode 100644
index 0000000000..ad4760dddb
--- /dev/null
+++ b/plugins/dynamic-plugins-info/src/components/DynamicPluginsInfoContent/DynamicPluginsInfoContent.tsx
@@ -0,0 +1,14 @@
+import React from 'react';
+
+import { ContentHeader, SupportButton } from '@backstage/core-components';
+
+import { DynamicPluginsTable } from '../DynamicPluginsTable/DynamicPluginsTable';
+
+export const DynamicPluginsInfoContent = () => (
+ <>
+
+ Some placeholder text
+
+
+ >
+);
diff --git a/plugins/dynamic-plugins-info/src/components/DynamicPluginsTable/DynamicPluginsTable.tsx b/plugins/dynamic-plugins-info/src/components/DynamicPluginsTable/DynamicPluginsTable.tsx
new file mode 100644
index 0000000000..f79b7855cd
--- /dev/null
+++ b/plugins/dynamic-plugins-info/src/components/DynamicPluginsTable/DynamicPluginsTable.tsx
@@ -0,0 +1,95 @@
+import React, { useState } from 'react';
+
+import {
+ ResponseErrorPanel,
+ Table,
+ TableColumn,
+} from '@backstage/core-components';
+import { useApi } from '@backstage/core-plugin-api';
+
+import { Query, QueryResult } from '@material-table/core';
+
+import { DynamicPluginInfo, dynamicPluginsInfoApiRef } from '../../api/types';
+
+export const DynamicPluginsTable = () => {
+ const [error, setError] = useState(undefined);
+ const [count, setCount] = useState(0);
+ const dynamicPluginInfo = useApi(dynamicPluginsInfoApiRef);
+ const columns: TableColumn[] = [
+ {
+ title: 'Name',
+ field: 'name',
+ defaultSort: 'asc',
+ },
+ {
+ title: 'Version',
+ field: 'version',
+ width: '30%',
+ },
+ {
+ title: 'Role',
+ render: ({ platform, role }) => <>{`${role} (${platform})`}>,
+ sorting: false,
+ },
+ ];
+ const fetchData = async (
+ query: Query,
+ ): Promise> => {
+ const {
+ orderBy = { field: 'name' },
+ orderDirection = 'asc',
+ page = 0,
+ pageSize = 5,
+ search = '',
+ } = query || {};
+ try {
+ // for now sorting/searching/pagination is handled client-side
+ const data = (await dynamicPluginInfo.listLoadedPlugins())
+ .sort((a: Record, b: Record) => {
+ const field = orderBy.field!;
+ if (!a[field] || !b[field]) {
+ return 0;
+ }
+ return (
+ a[field].localeCompare(b[field]) *
+ (orderDirection === 'desc' ? -1 : 1)
+ );
+ })
+ .filter(
+ value =>
+ search.trim() === '' ||
+ JSON.stringify(value).indexOf(search.trim()) > 0,
+ );
+ const totalCount = data.length;
+ let start = 0;
+ let end = totalCount;
+ if (totalCount > pageSize) {
+ start = page * pageSize;
+ end = start + pageSize;
+ }
+ setCount(totalCount);
+ return { data: data.slice(start, end), page, totalCount };
+ } catch (loadingError) {
+ setError(loadingError as Error);
+ return { data: [], totalCount: 0, page: 0 };
+ }
+ };
+ if (error) {
+ return ;
+ }
+ return (
+
+ );
+};
diff --git a/plugins/dynamic-plugins-info/src/index.ts b/plugins/dynamic-plugins-info/src/index.ts
new file mode 100644
index 0000000000..46440887c3
--- /dev/null
+++ b/plugins/dynamic-plugins-info/src/index.ts
@@ -0,0 +1 @@
+export { dynamicPluginsInfoPlugin, DynamicPluginsInfo } from './plugin';
diff --git a/plugins/dynamic-plugins-info/src/plugin.test.ts b/plugins/dynamic-plugins-info/src/plugin.test.ts
new file mode 100644
index 0000000000..1b311ce7b4
--- /dev/null
+++ b/plugins/dynamic-plugins-info/src/plugin.test.ts
@@ -0,0 +1,7 @@
+import { dynamicPluginsInfoPlugin } from './plugin';
+
+describe('dynamic-plugins-info', () => {
+ it('should export plugin', () => {
+ expect(dynamicPluginsInfoPlugin).toBeDefined();
+ });
+});
diff --git a/plugins/dynamic-plugins-info/src/plugin.ts b/plugins/dynamic-plugins-info/src/plugin.ts
new file mode 100644
index 0000000000..f603e06ef8
--- /dev/null
+++ b/plugins/dynamic-plugins-info/src/plugin.ts
@@ -0,0 +1,40 @@
+import {
+ createApiFactory,
+ createPlugin,
+ createRoutableExtension,
+ discoveryApiRef,
+ fetchApiRef,
+} from '@backstage/core-plugin-api';
+
+import { DynamicPluginsInfoClient } from './api/DynamicPluginsInfoClient';
+import { dynamicPluginsInfoApiRef } from './api/types';
+import { dynamicPluginsInfoRouteRef } from './routes';
+
+export const dynamicPluginsInfoPlugin = createPlugin({
+ id: 'dynamic-plugins-info',
+ routes: {
+ root: dynamicPluginsInfoRouteRef,
+ },
+ apis: [
+ createApiFactory({
+ api: dynamicPluginsInfoApiRef,
+ deps: {
+ discoveryApi: discoveryApiRef,
+ fetchApi: fetchApiRef,
+ },
+ factory: ({ discoveryApi, fetchApi }) =>
+ new DynamicPluginsInfoClient({ discoveryApi, fetchApi }),
+ }),
+ ],
+});
+
+export const DynamicPluginsInfo = dynamicPluginsInfoPlugin.provide(
+ createRoutableExtension({
+ name: 'DynamicPluginsInfo',
+ component: () =>
+ import(
+ './components/DynamicPluginsInfoContent/DynamicPluginsInfoContent'
+ ).then(m => m.DynamicPluginsInfoContent),
+ mountPoint: dynamicPluginsInfoRouteRef,
+ }),
+);
diff --git a/plugins/dynamic-plugins-info/src/routes.ts b/plugins/dynamic-plugins-info/src/routes.ts
new file mode 100644
index 0000000000..478de64255
--- /dev/null
+++ b/plugins/dynamic-plugins-info/src/routes.ts
@@ -0,0 +1,5 @@
+import { createRouteRef } from '@backstage/core-plugin-api';
+
+export const dynamicPluginsInfoRouteRef = createRouteRef({
+ id: 'dynamic-plugins-info',
+});
diff --git a/plugins/dynamic-plugins-info/src/setupTests.ts b/plugins/dynamic-plugins-info/src/setupTests.ts
new file mode 100644
index 0000000000..7b0828bfa8
--- /dev/null
+++ b/plugins/dynamic-plugins-info/src/setupTests.ts
@@ -0,0 +1 @@
+import '@testing-library/jest-dom';
diff --git a/plugins/dynamic-plugins-info/tsconfig.json b/plugins/dynamic-plugins-info/tsconfig.json
new file mode 100644
index 0000000000..c81a299b6e
--- /dev/null
+++ b/plugins/dynamic-plugins-info/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@backstage/cli/config/tsconfig.json",
+ "include": ["src", "dev", "migrations"],
+ "exclude": ["node_modules"],
+ "compilerOptions": {
+ "outDir": "../../dist-types/plugins/dynamic-plugins-info",
+ "rootDir": "."
+ }
+}
diff --git a/plugins/dynamic-plugins-info/turbo.json b/plugins/dynamic-plugins-info/turbo.json
new file mode 100644
index 0000000000..aad6de81a6
--- /dev/null
+++ b/plugins/dynamic-plugins-info/turbo.json
@@ -0,0 +1,9 @@
+{
+ "extends": ["//"],
+ "pipeline": {
+ "tsc": {
+ "outputs": ["../../dist-types/plugins/dynamic-plugins-info/**"],
+ "dependsOn": ["^tsc"]
+ }
+ }
+}
diff --git a/yarn.lock b/yarn.lock
index 0c4b0d69db..e0edf8765a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -249,15 +249,6 @@
"@aws-sdk/types" "^3.222.0"
tslib "^1.11.1"
-"@aws-crypto/sha256-js@^5.0.0":
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042"
- integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==
- dependencies:
- "@aws-crypto/util" "^5.2.0"
- "@aws-sdk/types" "^3.222.0"
- tslib "^2.6.2"
-
"@aws-crypto/supports-web-crypto@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2"
@@ -274,15 +265,6 @@
"@aws-sdk/util-utf8-browser" "^3.0.0"
tslib "^1.11.1"
-"@aws-crypto/util@^5.2.0":
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da"
- integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==
- dependencies:
- "@aws-sdk/types" "^3.222.0"
- "@smithy/util-utf8" "^2.0.0"
- tslib "^2.6.2"
-
"@aws-sdk/abort-controller@^3.347.0":
version "3.374.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.374.0.tgz#f57ec7e02cdd7f66432e4e71af9e0ac224d6e9b3"
@@ -775,14 +757,6 @@
"@smithy/types" "^2.3.5"
tslib "^2.5.0"
-"@aws-sdk/signature-v4@^3.347.0":
- version "3.374.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.374.0.tgz#bd727f4c392acb81bc667aa4cfceeba608250771"
- integrity sha512-2xLJvSdzcZZAg0lsDLUAuSQuihzK0dcxIK7WmfuJeF7DGKJFmp9czQmz5f3qiDz6IDQzvgK1M9vtJSVCslJbyQ==
- dependencies:
- "@smithy/signature-v4" "^1.0.1"
- tslib "^2.5.0"
-
"@aws-sdk/token-providers@3.430.0":
version "3.430.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.430.0.tgz#f5d20454c62ff65e5981d35b5a9b7660263bcc06"
@@ -4934,6 +4908,10 @@
version "1.0.18"
resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.18.tgz#c60bc17ac6cf7c112713c9adc2a9eca6c08e0a09"
integrity sha512-k8EQHv7x6ZmJlkyrC3cQByyiUh/mBxM83LbZcGDVR0WZw2+yP23rV3+NGMYuFW6P9c8jL47YuRFoqQ8FkmDs0Q==
+ dependencies:
+ "@backstage/catalog-model" "^1.4.3"
+ "@backstage/plugin-permission-common" "^0.7.10"
+ "@backstage/plugin-search-common" "^1.2.8"
"@backstage/plugin-catalog-common@^1.0.20":
version "1.0.20"
@@ -5005,20 +4983,6 @@
"@backstage/plugin-catalog-common" "^1.0.17"
"@backstage/types" "^1.1.1"
-"@backstage/plugin-catalog-node@^1.6.1":
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-node/-/plugin-catalog-node-1.6.1.tgz#9a872dfdc562f79cb1e3a5873028abaf5ae0b4f9"
- integrity sha512-mYNzcCUy9s28/SymS0p1mPmjtRQBfICAS2lFUKfKFT6pXQ7sqnC0Cxcn9ln1XjS3+ikxFC7jfYs4EOrv2DVm7w==
- dependencies:
- "@backstage/backend-plugin-api" "^0.6.9"
- "@backstage/catalog-client" "^1.5.2"
- "@backstage/catalog-model" "^1.4.3"
- "@backstage/errors" "^1.2.3"
- "@backstage/plugin-catalog-common" "^1.0.20"
- "@backstage/plugin-permission-common" "^0.7.12"
- "@backstage/plugin-permission-node" "^0.7.20"
- "@backstage/types" "^1.1.1"
-
"@backstage/plugin-catalog-react@^1.8.5":
version "1.8.5"
resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.8.5.tgz#de0632947147378f74139b59e136049b178c81ab"
@@ -5293,50 +5257,6 @@
react-use "^17.2.4"
zod "^3.21.4"
-"@backstage/plugin-kubernetes-backend@^0.14.0":
- version "0.14.1"
- resolved "https://registry.yarnpkg.com/@backstage/plugin-kubernetes-backend/-/plugin-kubernetes-backend-0.14.1.tgz#452a55589a9026ed3a1b93274fbf671b68011c51"
- integrity sha512-iZqUP0/516SS1HvyJsP/Frf0fR8Q9VN26RQDWB6uz09AS2EUJaUa53xdU8k8JqjdGhgi9V9uzqUbl93TT20DgQ==
- dependencies:
- "@aws-crypto/sha256-js" "^5.0.0"
- "@aws-sdk/credential-providers" "^3.350.0"
- "@aws-sdk/signature-v4" "^3.347.0"
- "@azure/identity" "^4.0.0"
- "@backstage/backend-common" "^0.20.1"
- "@backstage/backend-plugin-api" "^0.6.9"
- "@backstage/catalog-client" "^1.5.2"
- "@backstage/catalog-model" "^1.4.3"
- "@backstage/config" "^1.1.1"
- "@backstage/errors" "^1.2.3"
- "@backstage/integration-aws-node" "^0.1.8"
- "@backstage/plugin-auth-node" "^0.4.3"
- "@backstage/plugin-catalog-node" "^1.6.1"
- "@backstage/plugin-kubernetes-common" "^0.7.3"
- "@backstage/plugin-kubernetes-node" "^0.1.3"
- "@backstage/plugin-permission-common" "^0.7.12"
- "@backstage/plugin-permission-node" "^0.7.20"
- "@backstage/types" "^1.1.1"
- "@google-cloud/container" "^5.0.0"
- "@jest-mock/express" "^2.0.1"
- "@kubernetes/client-node" "0.20.0"
- "@types/express" "^4.17.6"
- "@types/http-proxy-middleware" "^0.19.3"
- "@types/luxon" "^3.0.0"
- compression "^1.7.4"
- cors "^2.8.5"
- express "^4.17.1"
- express-promise-router "^4.1.0"
- fs-extra "10.1.0"
- helmet "^6.0.0"
- http-proxy-middleware "^2.0.6"
- lodash "^4.17.21"
- luxon "^3.0.0"
- morgan "^1.10.0"
- node-fetch "^2.6.7"
- stream-buffers "^3.0.2"
- winston "^3.2.1"
- yn "^4.0.0"
-
"@backstage/plugin-kubernetes-common@^0.7.0":
version "0.7.0"
resolved "https://registry.yarnpkg.com/@backstage/plugin-kubernetes-common/-/plugin-kubernetes-common-0.7.0.tgz#9a76ca60f74d8bf76def9c22b8d0815b09b3b562"
@@ -5352,29 +5272,6 @@
lodash "^4.17.21"
luxon "^3.0.0"
-"@backstage/plugin-kubernetes-common@^0.7.3":
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/@backstage/plugin-kubernetes-common/-/plugin-kubernetes-common-0.7.3.tgz#d9421387109e9bfc510b0e2de3857b78ba5181ef"
- integrity sha512-5p9Tj8HjBs06cdofzkGZm4fncUGyhsKboodzK/RF47sHY8G+sAC4vUMoTlcOJczU16tC0tOeXOgkKjhVYIMWDQ==
- dependencies:
- "@backstage/catalog-model" "^1.4.3"
- "@backstage/plugin-permission-common" "^0.7.12"
- "@backstage/types" "^1.1.1"
- "@kubernetes/client-node" "0.20.0"
- kubernetes-models "^4.3.1"
- lodash "^4.17.21"
- luxon "^3.0.0"
-
-"@backstage/plugin-kubernetes-node@^0.1.3":
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/@backstage/plugin-kubernetes-node/-/plugin-kubernetes-node-0.1.3.tgz#b3478b58fddd6a6931122cf377eeef2275f93d2b"
- integrity sha512-MWnGmzv6swwg3kWtP8k0nIYlOCOsfDkMW/Rk8Vy5RVLy/TkDjJilSXl8nHR1h9z3XFTwXMMtR7X7UmhwK6wxxQ==
- dependencies:
- "@backstage/backend-plugin-api" "^0.6.9"
- "@backstage/catalog-model" "^1.4.3"
- "@backstage/plugin-kubernetes-common" "^0.7.3"
- "@backstage/types" "^1.1.1"
-
"@backstage/plugin-kubernetes-react@^0.1.0":
version "0.1.0"
resolved "https://registry.yarnpkg.com/@backstage/plugin-kubernetes-react/-/plugin-kubernetes-react-0.1.0.tgz#2e7f185e8fb14e9e6afa792fe17630705e01d240"
@@ -5403,34 +5300,6 @@
xterm-addon-attach "^0.9.0"
xterm-addon-fit "^0.8.0"
-"@backstage/plugin-kubernetes-react@^0.2.1":
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/@backstage/plugin-kubernetes-react/-/plugin-kubernetes-react-0.2.1.tgz#cd62a15639f36b0e1ac3bc03cb34d901a885bb14"
- integrity sha512-f5tNbBzfn5/DHavPW3pj/zuqsnIyDFGjZhxf9sCvakPiq18eh9P6FH8CMlsr9I5WzHeE+sbtPjLuHySFZbnVVg==
- dependencies:
- "@backstage/catalog-model" "^1.4.3"
- "@backstage/core-components" "^0.13.10"
- "@backstage/core-plugin-api" "^1.8.2"
- "@backstage/errors" "^1.2.3"
- "@backstage/plugin-kubernetes-common" "^0.7.3"
- "@backstage/types" "^1.1.1"
- "@kubernetes-models/apimachinery" "^1.1.0"
- "@kubernetes-models/base" "^4.0.1"
- "@kubernetes/client-node" "^0.20.0"
- "@material-ui/core" "^4.9.13"
- "@material-ui/icons" "^4.11.3"
- "@material-ui/lab" "^4.0.0-alpha.61"
- "@types/react" "^16.13.1 || ^17.0.0"
- cronstrue "^2.32.0"
- js-yaml "^4.1.0"
- kubernetes-models "^4.3.1"
- lodash "^4.17.21"
- luxon "^3.0.0"
- react-use "^17.4.0"
- xterm "^5.3.0"
- xterm-addon-attach "^0.9.0"
- xterm-addon-fit "^0.8.0"
-
"@backstage/plugin-kubernetes@^0.11.0":
version "0.11.0"
resolved "https://registry.yarnpkg.com/@backstage/plugin-kubernetes/-/plugin-kubernetes-0.11.0.tgz#4849c8ea6c3981a5738030cc823935b582f66124"
@@ -5463,31 +5332,6 @@
xterm-addon-attach "^0.9.0"
xterm-addon-fit "^0.8.0"
-"@backstage/plugin-kubernetes@^0.11.2":
- version "0.11.4"
- resolved "https://registry.yarnpkg.com/@backstage/plugin-kubernetes/-/plugin-kubernetes-0.11.4.tgz#7c8fca7219df57b35b1cfc94d0c1bc16d24c275f"
- integrity sha512-I/86dpa1sVH472huUt+PpJXEMRtTEqKZLJj+vYFs2a+aXOU9hWBF0fqBC+CoIaX1GLw8dCsy83jpIIzUa0PEww==
- dependencies:
- "@backstage/catalog-model" "^1.4.3"
- "@backstage/core-components" "^0.13.10"
- "@backstage/core-plugin-api" "^1.8.2"
- "@backstage/plugin-catalog-react" "^1.9.3"
- "@backstage/plugin-kubernetes-common" "^0.7.3"
- "@backstage/plugin-kubernetes-react" "^0.2.1"
- "@kubernetes-models/apimachinery" "^1.1.0"
- "@kubernetes-models/base" "^4.0.1"
- "@kubernetes/client-node" "0.20.0"
- "@material-ui/core" "^4.12.2"
- "@types/react" "^16.13.1 || ^17.0.0"
- cronstrue "^2.2.0"
- js-yaml "^4.0.0"
- kubernetes-models "^4.1.0"
- lodash "^4.17.21"
- luxon "^3.0.0"
- xterm "^5.2.1"
- xterm-addon-attach "^0.9.0"
- xterm-addon-fit "^0.8.0"
-
"@backstage/plugin-org@^0.6.15":
version "0.6.15"
resolved "https://registry.yarnpkg.com/@backstage/plugin-org/-/plugin-org-0.6.15.tgz#196c49d7c8e6747a896d7658b5bd3de67abb6172"
@@ -7183,13 +7027,6 @@
qs "^6.10.1"
xcase "^2.0.1"
-"@google-cloud/container@^5.0.0":
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/@google-cloud/container/-/container-5.4.1.tgz#1e2010c98c68d54d3f5faf1b07663bdeb330c328"
- integrity sha512-O5g6YHqN4gQHdNwORiqodAIJRuBCHiXPBVJ4bYfPnyRwGcStxEIF4YCdTawbvOhoqlzqHWoLMDTPFE+ytSE91A==
- dependencies:
- google-gax "^4.0.3"
-
"@google-cloud/firestore@^6.0.0":
version "6.8.0"
resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-6.8.0.tgz#d8c852844c381afaf62592796606c10e178400b5"
@@ -7313,15 +7150,7 @@
"@grpc/proto-loader" "^0.7.0"
"@types/node" ">=12.12.47"
-"@grpc/grpc-js@~1.9.6":
- version "1.9.14"
- resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.14.tgz#236378822876cbf7903f9d61a0330410e8dcc5a1"
- integrity sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw==
- dependencies:
- "@grpc/proto-loader" "^0.7.8"
- "@types/node" ">=12.12.47"
-
-"@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.8":
+"@grpc/proto-loader@^0.7.0":
version "0.7.10"
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720"
integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==
@@ -7417,76 +7246,6 @@
"@backstage/config" "^1.1.1"
deep-freeze "^0.0.1"
-"@janus-idp/cli@1.4.7":
- version "1.4.7"
- resolved "https://registry.yarnpkg.com/@janus-idp/cli/-/cli-1.4.7.tgz#2f013d68f768bc3d5b930c9527e032a1dd90c379"
- integrity sha512-7lnmkTvcxT/iFXE3or5exgQ3CXd+VR9gJtCAXzjcFfpf8LfTQ4SgS7xRiijaQSZJacg/JSpRoIxuIH0sOHAvvw==
- dependencies:
- "@backstage/cli-common" "^0.1.13"
- "@backstage/cli-node" "^0.1.5"
- "@backstage/config" "^1.1.1"
- "@backstage/config-loader" "^1.5.1"
- "@backstage/errors" "^1.2.3"
- "@backstage/eslint-plugin" "^0.1.3"
- "@backstage/types" "^1.1.1"
- "@manypkg/get-packages" "^1.1.3"
- "@openshift/dynamic-plugin-sdk-webpack" "^3.0.0"
- "@pmmmwh/react-refresh-webpack-plugin" "^0.5.7"
- "@rollup/plugin-commonjs" "^25.0.4"
- "@rollup/plugin-json" "^6.0.0"
- "@rollup/plugin-node-resolve" "^15.2.1"
- "@rollup/plugin-yaml" "^4.0.0"
- "@svgr/rollup" "^8.1.0"
- "@svgr/webpack" "^6.5.1"
- "@yarnpkg/lockfile" "^1.1.0"
- "@yarnpkg/parsers" "^3.0.0-rc.4"
- bfj "^7.0.2"
- chalk "^4.0.0"
- chokidar "^3.3.1"
- commander "^9.1.0"
- css-loader "^6.5.1"
- esbuild "^0.19.0"
- esbuild-loader "^2.18.0"
- eslint "^8.49.0"
- eslint-config-prettier "^8.10.0"
- eslint-webpack-plugin "^3.2.0"
- express "^4.18.2"
- fork-ts-checker-webpack-plugin "^7.0.0-alpha.8"
- fs-extra "^10.1.0"
- handlebars "^4.7.7"
- html-webpack-plugin "^5.3.1"
- inquirer "^8.2.0"
- lodash "^4.17.21"
- mini-css-extract-plugin "^2.4.2"
- node-libs-browser "^2.2.1"
- npm-packlist "^5.0.0"
- ora "^5.3.0"
- postcss "^8.2.13"
- process "^0.11.10"
- react-dev-utils "^12.0.0-next.60"
- react-refresh "^0.14.0"
- recursive-readdir "^2.2.2"
- rollup "^2.78.0"
- rollup-plugin-dts "^4.0.1"
- rollup-plugin-esbuild "^4.7.2"
- rollup-plugin-postcss "^4.0.0"
- rollup-pluginutils "^2.8.2"
- semver "^7.5.4"
- style-loader "^3.3.1"
- swc-loader "^0.2.3"
- typescript-json-schema "^0.62.0"
- webpack "^5.89.0"
- webpack-dev-server "^4.15.1"
- yml-loader "^2.1.0"
- yn "^4.0.0"
-
-"@jest-mock/express@^2.0.1":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@jest-mock/express/-/express-2.0.2.tgz#e4f61c30b45e517c14b35ea5d67d89a7e52908f7"
- integrity sha512-B1mjh5Tgm/HDd3BLC9s2jZNqRIxiJJD5rMWm48gEeK0K2hfUE66QZ+AxHxHlb/uaqL9H+PFJzCSjJPl46oNzDg==
- dependencies:
- "@types/express" "^4.17.17"
-
"@jest/console@^29.7.0":
version "29.7.0"
resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
@@ -8156,7 +7915,7 @@
optionalDependencies:
openid-client "^5.3.0"
-"@kubernetes/client-node@0.20.0", "@kubernetes/client-node@^0.20.0":
+"@kubernetes/client-node@0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@kubernetes/client-node/-/client-node-0.20.0.tgz#4447ae27fd6eef3d4830a5a039f3b84ffd5c5913"
integrity sha512-xxlv5GLX4FVR/dDKEsmi4SPeuB49aRc35stndyxcC73XnUEEwF39vXbROpHOirmDse8WE9vxOjABnSVS+jb7EA==
@@ -10840,16 +10599,6 @@
"@smithy/url-parser" "^2.0.11"
tslib "^2.5.0"
-"@smithy/eventstream-codec@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-1.1.0.tgz#bfe1308ba84ff3db3e79dc1ced8231c52ac0fc36"
- integrity sha512-3tEbUb8t8an226jKB6V/Q2XU/J53lCwCzULuBPEaF4JjSh+FlCMp7TmogE/Aij5J9DwlsZ4VAD/IRDuQ/0ZtMw==
- dependencies:
- "@aws-crypto/crc32" "3.0.0"
- "@smithy/types" "^1.2.0"
- "@smithy/util-hex-encoding" "^1.1.0"
- tslib "^2.5.0"
-
"@smithy/eventstream-codec@^2.0.11":
version "2.0.11"
resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.0.11.tgz#1ba090ea5dbf956e32d3d0d0986ffb0d0af8c57d"
@@ -10943,13 +10692,6 @@
"@smithy/types" "^2.3.5"
tslib "^2.5.0"
-"@smithy/is-array-buffer@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-1.1.0.tgz#29948072da2b57575aa9898cda863932e842ab11"
- integrity sha512-twpQ/n+3OWZJ7Z+xu43MJErmhB/WO/mMTnqR6PwWQShvSJ/emx5d1N59LQZk6ZpTAeuRWrc+eHhkzTp9NFjNRQ==
- dependencies:
- tslib "^2.5.0"
-
"@smithy/is-array-buffer@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz#8fa9b8040651e7ba0b2f6106e636a91354ff7d34"
@@ -11115,20 +10857,6 @@
"@smithy/types" "^2.3.5"
tslib "^2.5.0"
-"@smithy/signature-v4@^1.0.1":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-1.1.0.tgz#e85309995c2475d39598a4f56e68b7ed856bdfa6"
- integrity sha512-fDo3m7YqXBs7neciOePPd/X9LPm5QLlDMdIC4m1H6dgNLnXfLMFNIxEfPyohGA8VW9Wn4X8lygnPSGxDZSmp0Q==
- dependencies:
- "@smithy/eventstream-codec" "^1.1.0"
- "@smithy/is-array-buffer" "^1.1.0"
- "@smithy/types" "^1.2.0"
- "@smithy/util-hex-encoding" "^1.1.0"
- "@smithy/util-middleware" "^1.1.0"
- "@smithy/util-uri-escape" "^1.1.0"
- "@smithy/util-utf8" "^1.1.0"
- tslib "^2.5.0"
-
"@smithy/signature-v4@^2.0.0":
version "2.0.11"
resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.0.11.tgz#e6d9065c7a73fc6f518f0cbc94039aed49307a1c"
@@ -11198,14 +10926,6 @@
dependencies:
tslib "^2.5.0"
-"@smithy/util-buffer-from@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-1.1.0.tgz#a000bd9f95c0e8d5b0edb0112f2a586daa5bed49"
- integrity sha512-9m6NXE0ww+ra5HKHCHig20T+FAwxBAm7DIdwc/767uGWbRcY720ybgPacQNB96JMOI7xVr/CDa3oMzKmW4a+kw==
- dependencies:
- "@smithy/is-array-buffer" "^1.1.0"
- tslib "^2.5.0"
-
"@smithy/util-buffer-from@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz#7eb75d72288b6b3001bc5f75b48b711513091deb"
@@ -11245,13 +10965,6 @@
"@smithy/types" "^2.3.5"
tslib "^2.5.0"
-"@smithy/util-hex-encoding@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-1.1.0.tgz#b5ba919aa076a3fd5e93e368e34ae2b732fa2090"
- integrity sha512-7UtIE9eH0u41zpB60Jzr0oNCQ3hMJUabMcKRUVjmyHTXiWDE4vjSqN6qlih7rCNeKGbioS7f/y2Jgym4QZcKFg==
- dependencies:
- tslib "^2.5.0"
-
"@smithy/util-hex-encoding@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz#0aa3515acd2b005c6d55675e377080a7c513b59e"
@@ -11259,13 +10972,6 @@
dependencies:
tslib "^2.5.0"
-"@smithy/util-middleware@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-1.1.0.tgz#9f186489437ca2ef753c5e1de2930f76fd1edc14"
- integrity sha512-6hhckcBqVgjWAqLy2vqlPZ3rfxLDhFWEmM7oLh2POGvsi7j0tHkbN7w4DFhuBExVJAbJ/qqxqZdRY6Fu7/OezQ==
- dependencies:
- tslib "^2.5.0"
-
"@smithy/util-middleware@^2.0.4":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.0.4.tgz#2c406efac04e341c3df6435d71fd9c73e03feb46"
@@ -11311,14 +11017,6 @@
dependencies:
tslib "^2.5.0"
-"@smithy/util-utf8@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-1.1.0.tgz#b791ab1e3f694374edfe22811e39dd8424a1be69"
- integrity sha512-p/MYV+JmqmPyjdgyN2UxAeYDj9cBqCjp0C/NsTWnnjoZUVqoeZ6IrW915L9CAKWVECgv9lVQGc4u/yz26/bI1A==
- dependencies:
- "@smithy/util-buffer-from" "^1.1.0"
- tslib "^2.5.0"
-
"@smithy/util-utf8@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.0.0.tgz#b4da87566ea7757435e153799df9da717262ad42"
@@ -14316,7 +14014,7 @@
"@types/qs" "*"
"@types/serve-static" "*"
-"@types/express@^4.17.17", "@types/express@^4.7.0":
+"@types/express@^4.7.0":
version "4.17.21"
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d"
integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==
@@ -14419,22 +14117,6 @@
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.3.tgz#c54e61f79b3947d040f150abd58f71efb422ff62"
integrity sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==
-"@types/http-proxy-middleware@^0.19.3":
- version "0.19.3"
- resolved "https://registry.yarnpkg.com/@types/http-proxy-middleware/-/http-proxy-middleware-0.19.3.tgz#b2eb96fbc0f9ac7250b5d9c4c53aade049497d03"
- integrity sha512-lnBTx6HCOUeIJMLbI/LaL5EmdKLhczJY5oeXZpX/cXE4rRqb3RmV7VcMpiEfYkmTjipv3h7IAyIINe4plEv7cA==
- dependencies:
- "@types/connect" "*"
- "@types/http-proxy" "*"
- "@types/node" "*"
-
-"@types/http-proxy@*":
- version "1.17.14"
- resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec"
- integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==
- dependencies:
- "@types/node" "*"
-
"@types/http-proxy@^1.17.8":
version "1.17.13"
resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.13.tgz#dd3a4da550580eb0557d4c7128a2ff1d1a38d465"
@@ -22297,24 +21979,6 @@ google-gax@^3.5.7:
protobufjs-cli "1.1.1"
retry-request "^5.0.0"
-google-gax@^4.0.3:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.2.1.tgz#4b3a269b543655ef25f04537b5494a4bb5656934"
- integrity sha512-Yal4oh2GMHBsFX8zunxwaRuD2bP7rrA7Oz/ooXK8uOMGnP71jNVRl6fUv8chYLkPTqEzBSij9TZw49B86SDVTg==
- dependencies:
- "@grpc/grpc-js" "~1.9.6"
- "@grpc/proto-loader" "^0.7.0"
- "@types/long" "^4.0.0"
- abort-controller "^3.0.0"
- duplexify "^4.0.0"
- google-auth-library "^9.0.0"
- node-fetch "^2.6.1"
- object-hash "^3.0.0"
- proto3-json-serializer "^2.0.0"
- protobufjs "7.2.6"
- retry-request "^7.0.0"
- uuid "^9.0.1"
-
google-p12-pem@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a"
@@ -30256,13 +29920,6 @@ proto3-json-serializer@^1.0.0:
dependencies:
protobufjs "^7.0.0"
-proto3-json-serializer@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.1.tgz#da0b510f6d6e584b1b5c271f045c26728abe71e0"
- integrity sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA==
- dependencies:
- protobufjs "^7.2.5"
-
protobufjs-cli@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/protobufjs-cli/-/protobufjs-cli-1.1.1.tgz#f531201b1c8c7772066aa822bf9a08318b24a704"
@@ -30297,24 +29954,6 @@ protobufjs@7.2.4:
"@types/node" ">=13.7.0"
long "^5.0.0"
-protobufjs@7.2.6:
- version "7.2.6"
- resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215"
- integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==
- dependencies:
- "@protobufjs/aspromise" "^1.1.2"
- "@protobufjs/base64" "^1.1.2"
- "@protobufjs/codegen" "^2.0.4"
- "@protobufjs/eventemitter" "^1.1.0"
- "@protobufjs/fetch" "^1.1.0"
- "@protobufjs/float" "^1.0.2"
- "@protobufjs/inquire" "^1.1.0"
- "@protobufjs/path" "^1.1.2"
- "@protobufjs/pool" "^1.1.0"
- "@protobufjs/utf8" "^1.1.0"
- "@types/node" ">=13.7.0"
- long "^5.0.0"
-
protobufjs@^7.0.0, protobufjs@^7.2.4, protobufjs@^7.2.5:
version "7.2.5"
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d"
@@ -30968,6 +30607,11 @@ react-refresh@^0.14.0:
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e"
integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==
+react-relative-time@^0.0.9:
+ version "0.0.9"
+ resolved "https://registry.yarnpkg.com/react-relative-time/-/react-relative-time-0.0.9.tgz#2fcbd7e9a74ee82ff0eac24bfbd26a7dc2998ccc"
+ integrity sha512-Vf59erCwSaJaYp/IhoEtq7dtt1y4YNDqNegmOY8sK2P6oHHe3sLOXjz9VTCr0yvL2Y7W6uwufrxU4jOX8fS/dA==
+
react-remove-scroll-bar@^2.3.3:
version "2.3.4"
resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9"