{t('templateEditorPage.templateEditorIntro.title')}
-
- {supportsLoad && cardLoadLocal}
- {supportsLoad && cardCreateLocal}
- {cardFormEditor}
- {!supportsLoad && cardLoadLocal}
- {cardFieldExplorer}
+
+
+
props.onSelect?.('local')}
+ />
+ props.onSelect?.('create-template')}
+ Icon={CreateNewFolderIcon}
+ />
+
+ props.onSelect?.('form')}
+ />
+
+ props.onSelect?.('field-explorer')}
+ />
+
);
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorLayout.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorLayout.tsx
new file mode 100644
index 0000000000..f77881e79a
--- /dev/null
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorLayout.tsx
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2024 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import React, { PropsWithChildren } from 'react';
+import { WithStyles, withStyles } from '@material-ui/core/styles';
+
+export const TemplateEditorLayout = withStyles(
+ theme => ({
+ root: {
+ height: '100%',
+ gridArea: 'pageContent',
+ display: 'grid',
+ gridTemplateAreas: `
+ "toolbar"
+ "browser"
+ "editor"
+ "preview"
+ "results"
+ `,
+ [theme.breakpoints.up('md')]: {
+ gridTemplateAreas: `
+ "toolbar toolbar toolbar"
+ "browser editor preview"
+ "results results results"
+ `,
+ gridTemplateColumns: '1fr 3fr 2fr',
+ gridTemplateRows: 'auto 1fr auto',
+ },
+ },
+ }),
+ { name: 'ScaffolderTemplateEditorLayout' },
+)(({ children, classes }: PropsWithChildren
) => (
+ {children}
+));
+
+export const TemplateEditorLayoutToolbar = withStyles(
+ {
+ root: {
+ gridArea: 'toolbar',
+ },
+ },
+ { name: 'ScaffolderTemplateEditorLayoutToolbar' },
+)(({ children, classes }: PropsWithChildren) => (
+
+));
+
+export const TemplateEditorLayoutBrowser = withStyles(
+ theme => ({
+ root: {
+ gridArea: 'browser',
+ overflow: 'auto',
+ [theme.breakpoints.up('md')]: {
+ borderRight: `1px solid ${theme.palette.divider}`,
+ },
+ },
+ }),
+ { name: 'ScaffolderTemplateEditorLayoutBrowser' },
+)(({ children, classes }: PropsWithChildren) => (
+
+));
+
+export const TemplateEditorLayoutFiles = withStyles(
+ {
+ root: {
+ gridArea: 'editor',
+ overflow: 'auto',
+ },
+ },
+ { name: 'ScaffolderTemplateEditorLayoutFiles' },
+)(({ children, classes }: PropsWithChildren) => (
+
+));
+
+export const TemplateEditorLayoutPreview = withStyles(
+ theme => ({
+ root: {
+ gridArea: 'preview',
+ position: 'relative',
+ backgroundColor: theme.palette.background.default,
+ [theme.breakpoints.up('md')]: {
+ borderLeft: `1px solid ${theme.palette.divider}`,
+ },
+ },
+ scroll: {
+ height: '100%',
+ padding: theme.spacing(1),
+ [theme.breakpoints.up('md')]: {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ overflow: 'auto',
+ },
+ },
+ }),
+ { name: 'ScaffolderTemplateEditorLayoutPreview' },
+)(({ children, classes }: PropsWithChildren) => (
+
+));
+
+export const TemplateEditorLayoutConsole = withStyles(
+ {
+ root: {
+ gridArea: 'results',
+ },
+ },
+ { name: 'ScaffolderTemplateEditorLayoutConsole' },
+)(({ children, classes }: PropsWithChildren) => (
+
+));
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorPage.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorPage.tsx
index 8d71db2551..b17cc403f1 100644
--- a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorPage.tsx
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorPage.tsx
@@ -1,5 +1,5 @@
/*
- * Copyright 2022 The Backstage Authors
+ * Copyright 2024 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,75 +14,53 @@
* limitations under the License.
*/
import React from 'react';
+import { makeStyles } from '@material-ui/core/styles';
import { Content, Header, Page } from '@backstage/core-components';
-
-import { WebFileSystemAccess } from '../../../lib/filesystem';
-
-import { TemplateEditorIntro } from './TemplateEditorIntro';
-import { ScaffolderPageContextMenu } from '@backstage/plugin-scaffolder-react/alpha';
-import { useNavigate } from 'react-router-dom';
import { useRouteRef } from '@backstage/core-plugin-api';
-import {
- actionsRouteRef,
- editorRouteRef,
- customFieldsRouteRef,
- rootRouteRef,
- scaffolderListTaskRouteRef,
- templateFormRouteRef,
-} from '../../../routes';
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
+import {
+ FormProps,
+ FieldExtensionOptions,
+ type LayoutOptions,
+} from '@backstage/plugin-scaffolder-react';
import { scaffolderTranslationRef } from '../../../translation';
-import { WebFileSystemStore } from '../../../lib/filesystem/WebFileSystemAccess';
-import { createExampleTemplate } from '../../../lib/filesystem/createExampleTemplate';
+import { editRouteRef } from '../../../routes';
+import { TemplateEditor } from './TemplateEditor';
-export function TemplateEditorPage() {
- const navigate = useNavigate();
- const actionsLink = useRouteRef(actionsRouteRef);
- const tasksLink = useRouteRef(scaffolderListTaskRouteRef);
- const createLink = useRouteRef(rootRouteRef);
- const editorLink = useRouteRef(editorRouteRef);
- const customFieldsLink = useRouteRef(customFieldsRouteRef);
- const templateFormLink = useRouteRef(templateFormRouteRef);
+const useStyles = makeStyles(
+ {
+ content: {
+ padding: 0,
+ },
+ },
+ { name: 'ScaffolderTemplateEditorToolbar' },
+);
+
+interface TemplatePageProps {
+ defaultPreviewTemplate?: string;
+ fieldExtensions?: FieldExtensionOptions[];
+ layouts?: LayoutOptions[];
+ formProps?: FormProps;
+}
+
+export function TemplateEditorPage(props: TemplatePageProps) {
+ const classes = useStyles();
+ const editLink = useRouteRef(editRouteRef);
const { t } = useTranslationRef(scaffolderTranslationRef);
- const scaffolderPageContextMenuProps = {
- onEditorClicked: undefined,
- onActionsClicked: () => navigate(actionsLink()),
- onTasksClicked: () => navigate(tasksLink()),
- onCreateClicked: () => navigate(createLink()),
- };
-
return (
-
- {
- if (option === 'local') {
- WebFileSystemAccess.requestDirectoryAccess()
- .then(directory => WebFileSystemStore.setDirectory(directory))
- .then(() => navigate(editorLink()))
- .catch(() => {});
- } else if (option === 'create-template') {
- WebFileSystemAccess.requestDirectoryAccess()
- .then(directory => {
- createExampleTemplate(directory).then(() => {
- WebFileSystemStore.setDirectory(directory);
- navigate(editorLink());
- });
- })
- .catch(() => {});
- } else if (option === 'form') {
- navigate(templateFormLink());
- } else if (option === 'field-explorer') {
- navigate(customFieldsLink());
- }
- }}
+ type={t('templateIntroPage.title')}
+ typeLink={editLink()}
+ />
+
+
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorTextArea.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorTextArea.tsx
index 34788f6cb1..1cca87ca4b 100644
--- a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorTextArea.tsx
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorTextArea.tsx
@@ -20,7 +20,6 @@ import { showPanel } from '@codemirror/view';
import IconButton from '@material-ui/core/IconButton';
import Paper from '@material-ui/core/Paper';
import Tooltip from '@material-ui/core/Tooltip';
-import Link from '@material-ui/core/Link';
import Typography from '@material-ui/core/Typography';
import { makeStyles } from '@material-ui/core/styles';
import RefreshIcon from '@material-ui/icons/Refresh';
@@ -45,11 +44,14 @@ const useStyles = makeStyles(theme => ({
verticalAlign: 'top',
},
codeMirror: {
- position: 'absolute',
- top: 0,
- bottom: 0,
- left: 0,
- right: 0,
+ height: '100%',
+ [theme.breakpoints.up('md')]: {
+ position: 'absolute',
+ top: 0,
+ bottom: 0,
+ left: 0,
+ right: 0,
+ },
},
errorPanel: {
color: theme.palette.error.main,
@@ -150,10 +152,10 @@ export function TemplateEditorTextArea(props: {
/** A version of the TemplateEditorTextArea that is connected to the DirectoryEditor context */
export function TemplateEditorDirectoryEditorTextArea(props: {
errorText?: string;
- onLoad?: () => void;
}) {
const classes = useStyles();
const directoryEditor = useDirectoryEditor();
+ const { t } = useTranslationRef(scaffolderTranslationRef);
if (!directoryEditor) {
return (
@@ -162,16 +164,7 @@ export function TemplateEditorDirectoryEditorTextArea(props: {
color="textSecondary"
align="center"
>
- Please{' '}
-
- load
- {' '}
- a template directory.
+ {t('templateEditorPage.templateEditorTextArea.emptyStateParagraph')}
);
}
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbar.test.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbar.test.tsx
new file mode 100644
index 0000000000..d1445d8698
--- /dev/null
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbar.test.tsx
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2024 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import React from 'react';
+import { screen } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
+import { renderInTestApp, TestApiRegistry } from '@backstage/test-utils';
+import {
+ ScaffolderApi,
+ scaffolderApiRef,
+} from '@backstage/plugin-scaffolder-react';
+import { ApiProvider } from '@backstage/core-app-api';
+import { DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS } from '../../../extensions/default';
+import { TemplateEditorToolbar } from './TemplateEditorToolbar';
+
+describe('TemplateEditorToolbar', () => {
+ const fieldExtensions = DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS;
+
+ const scaffolderApiMock: jest.Mocked = {
+ scaffold: jest.fn(),
+ cancelTask: jest.fn(),
+ getTemplateParameterSchema: jest.fn(),
+ getIntegrationsList: jest.fn(),
+ getTask: jest.fn(),
+ streamLogs: jest.fn(),
+ listActions: jest.fn(),
+ listTasks: jest.fn(),
+ autocomplete: jest.fn(),
+ };
+
+ scaffolderApiMock.listActions.mockResolvedValue([
+ {
+ id: 'action:example',
+ description: 'Example description',
+ schema: {
+ input: {
+ type: 'object',
+ required: ['title'],
+ properties: {
+ title: {
+ title: 'Inform the title',
+ type: 'string',
+ },
+ },
+ },
+ },
+ },
+ ]);
+
+ const apis = TestApiRegistry.from([scaffolderApiRef, scaffolderApiMock]);
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ });
+
+ it('should show instructions for publishing changes', async () => {
+ await renderInTestApp( );
+ await userEvent.click(screen.getByRole('button', { name: 'Publish' }));
+ expect(
+ screen.getByRole('heading', { name: 'Publish changes' }),
+ ).toBeInTheDocument();
+ expect(
+ screen.getByText(
+ 'Follow the instructions below to create or update a template:',
+ ),
+ ).toBeInTheDocument();
+ });
+
+ it('should open the custom fields explorer', async () => {
+ await renderInTestApp(
+ ,
+ );
+ await userEvent.click(
+ screen.getByRole('button', { name: 'Custom Fields Explorer' }),
+ );
+ expect(
+ screen.getByPlaceholderText('Choose Custom Field Extension'),
+ ).toHaveValue('EntityPicker');
+ expect(
+ screen.getByRole('heading', { name: 'Template Spec' }),
+ ).toBeInTheDocument();
+ expect(
+ screen.getByRole('heading', { name: 'Field Preview' }),
+ ).toBeInTheDocument();
+ expect(
+ screen.getByRole('heading', { name: 'Field Options' }),
+ ).toBeInTheDocument();
+ });
+
+ it('should open the installed actions documentation', async () => {
+ await renderInTestApp(
+
+
+ ,
+ );
+ await userEvent.click(
+ screen.getByRole('button', { name: 'Installed Actions Documentation' }),
+ );
+
+ expect(screen.getByLabelText('Search for an action')).toBeInTheDocument();
+ expect(screen.getByText('action:example')).toBeInTheDocument();
+ expect(screen.getByText('Example description')).toBeInTheDocument();
+ expect(screen.getByText('Inform the title')).toBeInTheDocument();
+ });
+
+ it('should accept custom toolbar actions', async () => {
+ await renderInTestApp(
+
+ Custom action
+ ,
+ );
+
+ expect(
+ screen.getByRole('button', { name: 'Custom action' }),
+ ).toBeInTheDocument();
+ });
+});
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbar.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbar.tsx
index a33915ae01..b09b4d861c 100644
--- a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbar.tsx
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbar.tsx
@@ -31,18 +31,25 @@ import DialogActions from '@material-ui/core/DialogActions';
import ExtensionIcon from '@material-ui/icons/Extension';
import DescriptionIcon from '@material-ui/icons/Description';
-import { Link } from '@backstage/core-components';
+import { useTranslationRef } from '@backstage/frontend-plugin-api';
import { FieldExtensionOptions } from '@backstage/plugin-scaffolder-react';
import { ActionPageContent } from '../../../components/ActionsPage/ActionsPage';
+import { scaffolderTranslationRef } from '../../../translation';
import { CustomFieldPlaygroud } from './CustomFieldPlaygroud';
const useStyles = makeStyles(
theme => ({
paper: {
- width: '40%',
+ width: '90%',
padding: theme.spacing(2),
backgroundColor: theme.palette.background.default,
+ [theme.breakpoints.up('sm')]: {
+ width: '70%',
+ },
+ [theme.breakpoints.up('md')]: {
+ width: '50%',
+ },
},
appbar: {
zIndex: 1,
@@ -73,6 +80,7 @@ export function TemplateEditorToolbar(props: {
}) {
const { children, fieldExtensions } = props;
const classes = useStyles();
+ const { t } = useTranslationRef(scaffolderTranslationRef);
const [showFieldsDrawer, setShowFieldsDrawer] = useState(false);
const [showActionsDrawer, setShowActionsDrawer] = useState(false);
const [showPublishModal, setShowPublishModal] = useState(false);
@@ -81,22 +89,26 @@ export function TemplateEditorToolbar(props: {
{children}
-
-
+
+
setShowFieldsDrawer(true)}>
-
+
setShowActionsDrawer(true)}>
- setShowPublishModal(true)}>Publish
+ setShowPublishModal(true)}>
+ {t('templateEditorToolbar.addToCatalogButton')}
+
- Publish changes
+
+ {t('templateEditorToolbar.addToCatalogDialogTitle')}
+
- Follow the instructions below to create or update a template:
-
- Save the template files in a local directory
-
- Create a pull request to a new or existing git repository
-
-
- If the template already exists, the changes will be reflected
- in the software catalog once the pull request gets merged
-
-
- But if you are creating a new template, follow this{' '}
-
- documentation
- {' '}
- to register the new template repository in software catalog
-
-
+ {t(
+ 'templateEditorToolbar.addToCatalogDialogContent.stepsIntroduction',
+ )}
+
+ {t(
+ 'templateEditorToolbar.addToCatalogDialogContent.stepsListItems',
+ )
+ .split('\n')
+ .map((step, index) => (
+ {step}
+ ))}
+
- setShowPublishModal(false)}>
- Close
+
+ {t(
+ 'templateEditorToolbar.addToCatalogDialogActions.documentationButton',
+ )}
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.tsx
new file mode 100644
index 0000000000..9b8eee6162
--- /dev/null
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbarFileMenu.tsx
@@ -0,0 +1,109 @@
+/*
+ * Copyright 2024 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import React, { MouseEvent, useCallback, useState } from 'react';
+import { useNavigate } from 'react-router-dom';
+
+import Button from '@material-ui/core/Button';
+import Menu from '@material-ui/core/Menu';
+import MenuItem from '@material-ui/core/MenuItem';
+
+import { useRouteRef } from '@backstage/core-plugin-api';
+import { useTranslationRef } from '@backstage/frontend-plugin-api';
+
+import { editRouteRef } from '../../../routes';
+import { scaffolderTranslationRef } from '../../../translation';
+
+export function TemplateEditorToolbarFileMenu(props: {
+ onOpenDirectory?: () => void;
+ onCreateDirectory?: () => void;
+ onCloseDirectory?: () => void;
+}) {
+ const { onOpenDirectory, onCreateDirectory, onCloseDirectory } = props;
+ const navigate = useNavigate();
+ const editLink = useRouteRef(editRouteRef);
+ const { t } = useTranslationRef(scaffolderTranslationRef);
+ const [anchorEl, setAnchorEl] = useState(null);
+
+ const handleOpenMenu = useCallback(
+ (event: MouseEvent) => {
+ setAnchorEl(event.currentTarget);
+ },
+ [setAnchorEl],
+ );
+
+ const handleCloseMenu = useCallback(() => {
+ setAnchorEl(null);
+ }, [setAnchorEl]);
+
+ const handleOpenDirectory = useCallback(() => {
+ handleCloseMenu();
+ onOpenDirectory?.();
+ }, [handleCloseMenu, onOpenDirectory]);
+
+ const handleCreateDirectory = useCallback(() => {
+ handleCloseMenu();
+ onCreateDirectory?.();
+ }, [handleCloseMenu, onCreateDirectory]);
+
+ const handleCloseEditor = useCallback(() => {
+ handleCloseMenu();
+ onCloseDirectory?.();
+ navigate(editLink());
+ }, [handleCloseMenu, onCloseDirectory, navigate, editLink]);
+
+ return (
+ <>
+
+ {t('templateEditorToolbarFileMenu.button')}
+
+
+ >
+ );
+}
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbarTemplatesMenu.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbarTemplatesMenu.tsx
new file mode 100644
index 0000000000..81ffac2c04
--- /dev/null
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateEditorToolbarTemplatesMenu.tsx
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2024 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import React, { MouseEvent, useCallback, useState } from 'react';
+
+import { makeStyles } from '@material-ui/core/styles';
+import Button from '@material-ui/core/Button';
+import Menu from '@material-ui/core/Menu';
+import MenuItem from '@material-ui/core/MenuItem';
+
+import { Entity } from '@backstage/catalog-model';
+import { useTranslationRef } from '@backstage/frontend-plugin-api';
+import { scaffolderTranslationRef } from '../../../translation';
+
+const ITEM_HEIGHT = 48;
+
+const useStyles = makeStyles({
+ menu: {
+ maxHeight: ITEM_HEIGHT * 5,
+ },
+});
+
+export type TemplateOption = {
+ label: string;
+ value: Entity;
+};
+
+export function TemplateEditorToolbarTemplatesMenu(props: {
+ options: TemplateOption[];
+ selectedOption?: TemplateOption;
+ onSelectOption: (option: TemplateOption) => void;
+}) {
+ const { options, selectedOption, onSelectOption } = props;
+ const classes = useStyles();
+ const [anchorEl, setAnchorEl] = useState(null);
+ const { t } = useTranslationRef(scaffolderTranslationRef);
+
+ const handleOpenMenu = useCallback(
+ (event: MouseEvent) => {
+ setAnchorEl(event.currentTarget);
+ },
+ [setAnchorEl],
+ );
+
+ const handleCloseMenu = useCallback(() => {
+ setAnchorEl(null);
+ }, [setAnchorEl]);
+
+ const handleSelectOption = useCallback(
+ (option: TemplateOption) => {
+ handleCloseMenu();
+ onSelectOption(option);
+ },
+ [handleCloseMenu, onSelectOption],
+ );
+
+ return (
+ <>
+
+ {t('templateEditorToolbarTemplatesMenu.button')}
+
+
+ >
+ );
+}
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateFormPage.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateFormPage.tsx
index b1f98878ad..7558276721 100644
--- a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateFormPage.tsx
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateFormPage.tsx
@@ -61,6 +61,8 @@ export function TemplateFormPage(props: TemplateFormPageProps) {
{
const classes = useStyles();
- const { t } = useTranslationRef(scaffolderTranslationRef);
const alertApi = useApi(alertApiRef);
const catalogApi = useApi(catalogApiRef);
const [errorText, setErrorText] = useState();
- const [selectedTemplate, setSelectedTemplate] =
- useState(null);
+ const [selectedTemplate, setSelectedTemplate] = useState();
const [templateOptions, setTemplateOptions] = useState([]);
const [templateYaml, setTemplateYaml] = useState(defaultPreviewTemplate);
- const { loading } = useAsync(
+ useAsync(
() =>
catalogApi
.getEntities({
@@ -196,76 +173,42 @@ export const TemplateFormPreviewer = ({
const handleSelectChange = useCallback(
// TODO(Rugvip): Afaik this should be Entity, but didn't want to make runtime changes while fixing types
- (selected: any) => {
+ (selected: TemplateOption) => {
setSelectedTemplate(selected);
- setTemplateYaml(yaml.stringify(selected.spec));
+ setTemplateYaml(yaml.stringify(selected.value.spec));
},
- [setTemplateYaml],
+ [setSelectedTemplate, setTemplateYaml],
);
return (
- <>
- {loading && }
-
-
-
-
-
-
-
-
-
- handleSelectChange(e.target.value)}
- input={ }
- renderValue={selected => {
- if (!selected) {
- return t('templateEditorPage.templateFormPreviewer.title');
- }
- return (selected as Entity).metadata.title;
- }}
- inputProps={{
- 'aria-label': t(
- 'templateEditorPage.templateFormPreviewer.title',
- ),
- }}
- >
- {templateOptions.map((option, index) => (
-
- {option.label}
-
- ))}
-
-
-
-
-
-
+
+
+
+
-
-
-
- >
+
+
+
+
+
+
+
+
+
);
};
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateIntroPage.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateIntroPage.tsx
new file mode 100644
index 0000000000..b9825bc056
--- /dev/null
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplateIntroPage.tsx
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2022 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import React from 'react';
+import { Content, Header, Page } from '@backstage/core-components';
+
+import { WebFileSystemAccess } from '../../../lib/filesystem';
+
+import { TemplateEditorIntro } from './TemplateEditorIntro';
+import { useNavigate } from 'react-router-dom';
+import { useRouteRef } from '@backstage/core-plugin-api';
+import {
+ rootRouteRef,
+ editorRouteRef,
+ templateFormRouteRef,
+ customFieldsRouteRef,
+} from '../../../routes';
+import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
+import { scaffolderTranslationRef } from '../../../translation';
+import { WebFileSystemStore } from '../../../lib/filesystem/WebFileSystemAccess';
+import { createExampleTemplate } from '../../../lib/filesystem/createExampleTemplate';
+
+export function TemplateIntroPage() {
+ const navigate = useNavigate();
+ const createLink = useRouteRef(rootRouteRef);
+ const editorLink = useRouteRef(editorRouteRef);
+ const templateFormLink = useRouteRef(templateFormRouteRef);
+ const customFieldsLink = useRouteRef(customFieldsRouteRef);
+ const { t } = useTranslationRef(scaffolderTranslationRef);
+
+ return (
+
+
+
+ {
+ if (option === 'local') {
+ WebFileSystemAccess.requestDirectoryAccess()
+ .then(directory => WebFileSystemStore.setDirectory(directory))
+ .then(() => navigate(editorLink()))
+ .catch(() => {});
+ } else if (option === 'create-template') {
+ WebFileSystemAccess.requestDirectoryAccess()
+ .then(directory => {
+ createExampleTemplate(directory).then(() => {
+ WebFileSystemStore.setDirectory(directory);
+ navigate(editorLink());
+ });
+ })
+ .catch(() => {});
+ } else if (option === 'form') {
+ navigate(templateFormLink());
+ } else if (option === 'field-explorer') {
+ navigate(customFieldsLink());
+ }
+ }}
+ />
+
+
+ );
+}
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplatePage.tsx b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplatePage.tsx
deleted file mode 100644
index b70ceba163..0000000000
--- a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/TemplatePage.tsx
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2024 The Backstage Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import React, { useCallback } from 'react';
-import useAsyncRetry from 'react-use/esm/useAsyncRetry';
-
-import { Page, Header, Content, Progress } from '@backstage/core-components';
-import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
-import {
- FormProps,
- FieldExtensionOptions,
- type LayoutOptions,
-} from '@backstage/plugin-scaffolder-react';
-
-import { scaffolderTranslationRef } from '../../../translation';
-import {
- WebFileSystemAccess,
- WebFileSystemStore,
-} from '../../../lib/filesystem';
-import { TemplateEditor } from './TemplateEditor';
-
-import { makeStyles } from '@material-ui/core/styles';
-
-const useStyles = makeStyles(
- {
- content: {
- padding: 0,
- },
- },
- { name: 'ScaffolderTemplateEditorToolbar' },
-);
-
-interface TemplatePageProps {
- defaultPreviewTemplate?: string;
- fieldExtensions?: FieldExtensionOptions[];
- layouts?: LayoutOptions[];
- formProps?: FormProps;
-}
-
-export function TemplatePage(props: TemplatePageProps) {
- const classes = useStyles();
- const { t } = useTranslationRef(scaffolderTranslationRef);
-
- const { value, loading, retry } = useAsyncRetry(async () => {
- const directory = await WebFileSystemStore.getDirectory();
- if (!directory) return undefined;
- return WebFileSystemAccess.fromHandle(directory);
- }, []);
-
- const handleLoadDirectory = useCallback(() => {
- WebFileSystemAccess.requestDirectoryAccess()
- .then(WebFileSystemStore.setDirectory)
- .then(retry);
- }, [retry]);
-
- const handleCloseDirectory = useCallback(() => {
- WebFileSystemStore.setDirectory(undefined).then(retry);
- }, [retry]);
-
- return (
-
-
-
- {loading ? (
-
- ) : (
-
- )}
-
-
- );
-}
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/index.ts b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/index.ts
index 84ab74da98..f16f2426d7 100644
--- a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/index.ts
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/index.ts
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-export { TemplatePage } from './TemplatePage';
-export { TemplateFormPage } from './TemplateFormPage';
export { TemplateEditorPage } from './TemplateEditorPage';
+export { TemplateFormPage } from './TemplateFormPage';
+export { TemplateIntroPage } from './TemplateIntroPage';
export { CustomFieldsPage } from './CustomFieldsPage';
export type { ScaffolderCustomFieldExplorerClassKey } from './CustomFieldExplorer';
export type { ScaffolderTemplateEditorClassKey } from './TemplateEditor';
diff --git a/plugins/scaffolder/src/alpha/components/TemplateEditorPage/useTemplateDirectory.ts b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/useTemplateDirectory.ts
new file mode 100644
index 0000000000..812a21e437
--- /dev/null
+++ b/plugins/scaffolder/src/alpha/components/TemplateEditorPage/useTemplateDirectory.ts
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2024 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { useCallback } from 'react';
+import useAsyncRetry from 'react-use/esm/useAsyncRetry';
+
+import {
+ WebFileSystemAccess,
+ WebFileSystemStore,
+ WebDirectoryAccess,
+} from '../../../lib/filesystem';
+import { createExampleTemplate } from '../../../lib/filesystem/createExampleTemplate';
+
+export function useTemplateDirectory(): {
+ directory?: WebDirectoryAccess;
+ loading: boolean;
+ error?: Error;
+ handleOpenDirectory: () => void;
+ handleCreateDirectory: () => void;
+ handleCloseDirectory: () => void;
+} {
+ const { value, loading, error, retry } = useAsyncRetry(async () => {
+ const directory = await WebFileSystemStore.getDirectory();
+ if (!directory) return undefined;
+ return WebFileSystemAccess.fromHandle(directory);
+ }, []);
+
+ const handleOpenDirectory = useCallback(() => {
+ WebFileSystemAccess.requestDirectoryAccess()
+ .then(WebFileSystemStore.setDirectory)
+ .then(retry);
+ }, [retry]);
+
+ const handleCreateDirectory = useCallback(() => {
+ WebFileSystemAccess.requestDirectoryAccess()
+ .then(createExampleTemplate)
+ .then(WebFileSystemStore.setDirectory)
+ .then(retry);
+ }, [retry]);
+
+ const handleCloseDirectory = useCallback(() => {
+ WebFileSystemStore.setDirectory(undefined).then(retry);
+ }, [retry]);
+
+ return {
+ directory: value,
+ loading,
+ error,
+ handleOpenDirectory,
+ handleCreateDirectory,
+ handleCloseDirectory,
+ };
+}
diff --git a/plugins/scaffolder/src/alpha/components/TemplateListPage/RegisterExistingButton.tsx b/plugins/scaffolder/src/alpha/components/TemplateListPage/RegisterExistingButton.tsx
index abec7c47e1..126f00dde5 100644
--- a/plugins/scaffolder/src/alpha/components/TemplateListPage/RegisterExistingButton.tsx
+++ b/plugins/scaffolder/src/alpha/components/TemplateListPage/RegisterExistingButton.tsx
@@ -61,7 +61,7 @@ export const RegisterExistingButton = (props: RegisterExistingButtonProps) => {
) : (
-
+
{title}
);
diff --git a/plugins/scaffolder/src/api.test.ts b/plugins/scaffolder/src/api.test.ts
index 805828a9fe..1df2dacb17 100644
--- a/plugins/scaffolder/src/api.test.ts
+++ b/plugins/scaffolder/src/api.test.ts
@@ -356,6 +356,34 @@ describe('api', () => {
const result = await apiClient.listTasks({ filterByOwnership: 'all' });
expect(result).toHaveLength(2);
});
+
+ it('should list tasks with limit and offset', async () => {
+ server.use(
+ rest.get(
+ `${mockBaseUrl}/v2/tasks?limit=5&offset=0`,
+ (_req, res, ctx) => {
+ return res(
+ ctx.json([
+ {
+ createdBy: null,
+ },
+ {
+ createdBy: null,
+ },
+ ]),
+ );
+ },
+ ),
+ );
+
+ const result = await apiClient.listTasks({
+ filterByOwnership: 'all',
+ limit: 5,
+ offset: 0,
+ });
+ expect(result).toHaveLength(2);
+ });
+
it('should list task using the current user as owner', async () => {
server.use(
rest.get(`${mockBaseUrl}/v2/tasks`, (req, res, ctx) => {
diff --git a/plugins/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts
index 93db7386f3..df032b536d 100644
--- a/plugins/scaffolder/src/api.ts
+++ b/plugins/scaffolder/src/api.ts
@@ -24,23 +24,22 @@ import { ResponseError } from '@backstage/errors';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { Observable } from '@backstage/types';
import qs from 'qs';
+import queryString from 'qs';
import ObservableImpl from 'zen-observable';
import {
ListActionsResponse,
LogEvent,
ScaffolderApi,
+ ScaffolderDryRunOptions,
+ ScaffolderDryRunResponse,
+ ScaffolderGetIntegrationsListOptions,
+ ScaffolderGetIntegrationsListResponse,
ScaffolderScaffoldOptions,
ScaffolderScaffoldResponse,
ScaffolderStreamLogsOptions,
- ScaffolderGetIntegrationsListOptions,
- ScaffolderGetIntegrationsListResponse,
ScaffolderTask,
- ScaffolderDryRunOptions,
- ScaffolderDryRunResponse,
TemplateParameterSchema,
} from '@backstage/plugin-scaffolder-react';
-
-import queryString from 'qs';
import {
EventSourceMessage,
fetchEventSource,
@@ -74,7 +73,9 @@ export class ScaffolderClient implements ScaffolderApi {
async listTasks(options: {
filterByOwnership: 'owned' | 'all';
- }): Promise<{ tasks: ScaffolderTask[] }> {
+ limit?: number;
+ offset?: number;
+ }): Promise<{ tasks: ScaffolderTask[]; totalTasks?: number }> {
if (!this.identityApi) {
throw new Error(
'IdentityApi is not available in the ScaffolderClient, please pass through the IdentityApi to the ScaffolderClient constructor in order to use the listTasks method',
@@ -83,9 +84,12 @@ export class ScaffolderClient implements ScaffolderApi {
const baseUrl = await this.discoveryApi.getBaseUrl('scaffolder');
const { userEntityRef } = await this.identityApi.getBackstageIdentity();
- const query = queryString.stringify(
- options.filterByOwnership === 'owned' ? { createdBy: userEntityRef } : {},
- );
+ const query = queryString.stringify({
+ createdBy:
+ options.filterByOwnership === 'owned' ? userEntityRef : undefined,
+ limit: options.limit,
+ offset: options.offset,
+ });
const response = await this.fetchApi.fetch(`${baseUrl}/v2/tasks?${query}`);
if (!response.ok) {
diff --git a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx
index b548bcbad4..bf056dd3b3 100644
--- a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx
+++ b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx
@@ -509,4 +509,81 @@ describe('TemplatePage', () => {
expect(rendered.getByText('array(unknown)')).toBeInTheDocument();
});
+
+ it('should filter an action', async () => {
+ scaffolderApiMock.listActions.mockResolvedValue([
+ {
+ id: 'githut:repo:create',
+ description: 'Create a new Github repository',
+ schema: {
+ input: {
+ type: 'object',
+ required: ['name'],
+ properties: {
+ name: {
+ title: 'Repository name',
+ type: 'string',
+ },
+ },
+ },
+ },
+ },
+ {
+ id: 'githut:repo:push',
+ description: 'Push to a Github repository',
+ schema: {
+ input: {
+ type: 'object',
+ required: ['url'],
+ properties: {
+ url: {
+ title: 'Repository url',
+ type: 'string',
+ },
+ },
+ },
+ },
+ },
+ ]);
+
+ const rendered = await renderInTestApp(
+
+
+ ,
+ {
+ mountedRoutes: {
+ '/create/actions': rootRouteRef,
+ },
+ },
+ );
+
+ expect(
+ rendered.getByRole('heading', { name: 'githut:repo:create' }),
+ ).toBeInTheDocument();
+ expect(
+ rendered.getByRole('heading', { name: 'githut:repo:push' }),
+ ).toBeInTheDocument();
+
+ // should filter actions when searching
+ await userEvent.type(
+ rendered.getByPlaceholderText('Search for an action'),
+ 'create',
+ );
+ await userEvent.keyboard('[ArrowDown][Enter]');
+ expect(
+ rendered.getByRole('heading', { name: 'githut:repo:create' }),
+ ).toBeInTheDocument();
+ expect(
+ rendered.queryByRole('heading', { name: 'githut:repo:push' }),
+ ).not.toBeInTheDocument();
+
+ // should show all actions when clearing the search
+ await userEvent.click(rendered.getByTitle('Clear'));
+ expect(
+ rendered.getByRole('heading', { name: 'githut:repo:create' }),
+ ).toBeInTheDocument();
+ expect(
+ rendered.getByRole('heading', { name: 'githut:repo:push' }),
+ ).toBeInTheDocument();
+ });
});
diff --git a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.tsx b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.tsx
index 0949d948fc..539a5697d3 100644
--- a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.tsx
+++ b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.tsx
@@ -16,6 +16,7 @@
import React, { Fragment, useEffect, useState } from 'react';
import useAsync from 'react-use/esm/useAsync';
import {
+ Action,
ActionExample,
scaffolderApiRef,
} from '@backstage/plugin-scaffolder-react';
@@ -39,6 +40,10 @@ import classNames from 'classnames';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ExpandLessIcon from '@material-ui/icons/ExpandLess';
import LinkIcon from '@material-ui/icons/Link';
+import Autocomplete from '@material-ui/lab/Autocomplete';
+import TextField from '@material-ui/core/TextField';
+import InputAdornment from '@material-ui/core/InputAdornment';
+import SearchIcon from '@material-ui/icons/Search';
import { useApi, useRouteRef } from '@backstage/core-plugin-api';
import {
@@ -125,14 +130,19 @@ export const ActionPageContent = () => {
const { t } = useTranslationRef(scaffolderTranslationRef);
const classes = useStyles();
- const { loading, value, error } = useAsync(async () => {
+ const {
+ loading,
+ value = [],
+ error,
+ } = useAsync(async () => {
return api.listActions();
}, [api]);
+ const [selectedAction, setSelectedAction] = useState(null);
const [isExpanded, setIsExpanded] = useState<{ [key: string]: boolean }>({});
useEffect(() => {
- if (value && window.location.hash) {
+ if (value.length && window.location.hash) {
document.querySelector(window.location.hash)?.scrollIntoView();
}
}, [value]);
@@ -295,71 +305,107 @@ export const ActionPageContent = () => {
);
};
- return value?.map(action => {
- if (action.id.startsWith('legacy:')) {
- return undefined;
- }
-
- const oneOf = renderTables(
- 'oneOf',
- `${action.id}.input`,
- action.schema?.input?.oneOf,
- );
- return (
-
-
- {action.id}
-
-
-
-
- {action.description && }
- {action.schema?.input && (
-
-
- {t('actionsPage.action.input')}
-
- {renderTable(
- formatRows(`${action.id}.input`, action?.schema?.input),
- )}
- {oneOf}
-
- )}
- {action.schema?.output && (
-
-
- {t('actionsPage.action.output')}
-
- {renderTable(
- formatRows(`${action.id}.output`, action?.schema?.output),
- )}
-
- )}
- {action.examples && (
-
- }>
-
- {t('actionsPage.action.examples')}
-
-
-
-
-
-
-
-
- )}
+ return (
+ <>
+
+ option.id}
+ renderInput={params => (
+
+
+
+ ),
+ }}
+ />
+ )}
+ onChange={(_event, option) => {
+ setSelectedAction(option);
+ }}
+ fullWidth
+ />
- );
- });
+ {(selectedAction ? [selectedAction] : value).map(action => {
+ if (action.id.startsWith('legacy:')) {
+ return undefined;
+ }
+
+ const oneOf = renderTables(
+ 'oneOf',
+ `${action.id}.input`,
+ action.schema?.input?.oneOf,
+ );
+ return (
+
+
+
+ {action.id}
+
+
+
+
+
+ {action.description && (
+
+ )}
+ {action.schema?.input && (
+
+
+ {t('actionsPage.action.input')}
+
+ {renderTable(
+ formatRows(`${action.id}.input`, action?.schema?.input),
+ )}
+ {oneOf}
+
+ )}
+ {action.schema?.output && (
+
+
+ {t('actionsPage.action.output')}
+
+ {renderTable(
+ formatRows(`${action.id}.output`, action?.schema?.output),
+ )}
+
+ )}
+ {action.examples && (
+
+ }>
+
+ {t('actionsPage.action.examples')}
+
+
+
+
+
+
+
+
+ )}
+
+ );
+ })}
+ >
+ );
};
export const ActionsPage = () => {
const navigate = useNavigate();
diff --git a/plugins/scaffolder/src/components/ListTasksPage/ListTaskPage.test.tsx b/plugins/scaffolder/src/components/ListTasksPage/ListTaskPage.test.tsx
index b9c5a84da3..f7f75bc3e8 100644
--- a/plugins/scaffolder/src/components/ListTasksPage/ListTaskPage.test.tsx
+++ b/plugins/scaffolder/src/components/ListTasksPage/ListTaskPage.test.tsx
@@ -25,8 +25,8 @@ import React from 'react';
import { identityApiRef } from '@backstage/core-plugin-api';
import { ListTasksPage } from './ListTasksPage';
import {
- scaffolderApiRef,
ScaffolderApi,
+ scaffolderApiRef,
} from '@backstage/plugin-scaffolder-react';
import { act, fireEvent } from '@testing-library/react';
import { rootRouteRef } from '../../routes';
@@ -64,7 +64,7 @@ describe(' ', () => {
};
catalogApi.getEntityByRef.mockResolvedValue(entity);
- scaffolderApiMock.listTasks.mockResolvedValue({ tasks: [] });
+ scaffolderApiMock.listTasks.mockResolvedValue({ tasks: [], totalTasks: 0 });
const { getByText } = await renderInTestApp(
', () => {
lastHeartbeatAt: '',
},
],
+ totalTasks: 1,
});
scaffolderApiMock.getTemplateParameterSchema.mockResolvedValue({
@@ -145,6 +146,8 @@ describe(' ', () => {
expect(scaffolderApiMock.listTasks).toHaveBeenCalledWith({
filterByOwnership: 'owned',
+ limit: 5,
+ offset: 0,
});
expect(getByText('List template tasks')).toBeInTheDocument();
expect(getByText('All tasks that have been started')).toBeInTheDocument();
@@ -194,6 +197,7 @@ describe(' ', () => {
lastHeartbeatAt: '',
},
],
+ totalTasks: 1,
})
.mockResolvedValue({
tasks: [
@@ -212,6 +216,7 @@ describe(' ', () => {
lastHeartbeatAt: '',
},
],
+ totalTasks: 1,
});
scaffolderApiMock.getTemplateParameterSchema.mockResolvedValue({
@@ -244,6 +249,8 @@ describe(' ', () => {
expect(scaffolderApiMock.listTasks).toHaveBeenCalledWith({
filterByOwnership: 'all',
+ limit: 5,
+ offset: 0,
});
expect(await findByText('One Template')).toBeInTheDocument();
expect(await findByText('OtherUser')).toBeInTheDocument();
diff --git a/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx b/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx
index 7bc34662ef..b07d7c7fd3 100644
--- a/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx
+++ b/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx
@@ -28,8 +28,8 @@ import { CatalogFilterLayout } from '@backstage/plugin-catalog-react';
import useAsync from 'react-use/esm/useAsync';
import React, { useState } from 'react';
import {
- ScaffolderTask,
scaffolderApiRef,
+ ScaffolderTask,
} from '@backstage/plugin-scaffolder-react';
import { OwnerListPicker } from './OwnerListPicker';
import {
@@ -51,6 +51,8 @@ export interface MyTaskPageProps {
const ListTaskPageContent = (props: MyTaskPageProps) => {
const { initiallySelectedFilter = 'owned' } = props;
const { t } = useTranslationRef(scaffolderTranslationRef);
+ const [limit, setLimit] = useState(5);
+ const [page, setPage] = useState(0);
const scaffolderApi = useApi(scaffolderApiRef);
const rootLink = useRouteRef(rootRouteRef);
@@ -58,7 +60,11 @@ const ListTaskPageContent = (props: MyTaskPageProps) => {
const [ownerFilter, setOwnerFilter] = useState(initiallySelectedFilter);
const { value, loading, error } = useAsync(() => {
if (scaffolderApi.listTasks) {
- return scaffolderApi.listTasks?.({ filterByOwnership: ownerFilter });
+ return scaffolderApi.listTasks?.({
+ filterByOwnership: ownerFilter,
+ limit,
+ offset: page * limit,
+ });
}
// eslint-disable-next-line no-console
@@ -66,8 +72,8 @@ const ListTaskPageContent = (props: MyTaskPageProps) => {
'listTasks is not implemented in the scaffolderApi, please make sure to implement this method.',
);
- return Promise.resolve({ tasks: [] });
- }, [scaffolderApi, ownerFilter]);
+ return Promise.resolve({ tasks: [], totalTasks: 0 });
+ }, [scaffolderApi, ownerFilter, limit, page]);
if (loading) {
return ;
@@ -96,7 +102,15 @@ const ListTaskPageContent = (props: MyTaskPageProps) => {
+ onRowsPerPageChange={pageSize => {
+ setPage(0);
+ setLimit(pageSize);
+ }}
+ onPageChange={newPage => setPage(newPage)}
+ options={{ pageSize: limit, emptyRowsWhenPaging: false }}
data={value?.tasks ?? []}
+ page={page}
+ totalCount={value?.totalTasks ?? 0}
title={t('listTaskPage.content.tableTitle')}
columns={[
{
diff --git a/plugins/scaffolder/src/components/Router/Router.tsx b/plugins/scaffolder/src/components/Router/Router.tsx
index e79d930795..5766e3d043 100644
--- a/plugins/scaffolder/src/components/Router/Router.tsx
+++ b/plugins/scaffolder/src/components/Router/Router.tsx
@@ -54,8 +54,8 @@ import {
import { TemplateListPage, TemplateWizardPage } from '../../alpha/components';
import { OngoingTask } from '../OngoingTask';
import {
- TemplatePage,
TemplateFormPage,
+ TemplateIntroPage,
TemplateEditorPage,
CustomFieldsPage,
} from '../../alpha/components/TemplateEditorPage';
@@ -171,7 +171,7 @@ export const Router = (props: PropsWithChildren) => {
path={editRouteRef.path}
element={
-
+
}
/>
@@ -205,7 +205,7 @@ export const Router = (props: PropsWithChildren) => {
path={editorRouteRef.path}
element={
- {
typeof option === 'string'
? option
: entities?.entityRefToPresentation.get(stringifyEntityRef(option))
- ?.entityRef!
+ ?.primaryTitle!
}
autoSelect
freeSolo={allowArbitraryValues}
diff --git a/plugins/scaffolder/src/lib/filesystem/WebFileSystemAccess.ts b/plugins/scaffolder/src/lib/filesystem/WebFileSystemAccess.ts
index fe5c69b452..cfb0a6c771 100644
--- a/plugins/scaffolder/src/lib/filesystem/WebFileSystemAccess.ts
+++ b/plugins/scaffolder/src/lib/filesystem/WebFileSystemAccess.ts
@@ -53,7 +53,8 @@ class WebFileAccess implements TemplateFileAccess {
}
}
-class WebDirectoryAccess implements TemplateDirectoryAccess {
+/** @internal */
+export class WebDirectoryAccess implements TemplateDirectoryAccess {
constructor(private readonly handle: IterableDirectoryHandle) {}
async listFiles(): Promise {
diff --git a/plugins/scaffolder/src/lib/filesystem/createExampleTemplate.ts b/plugins/scaffolder/src/lib/filesystem/createExampleTemplate.ts
index b93d678d5e..e3d0053d69 100644
--- a/plugins/scaffolder/src/lib/filesystem/createExampleTemplate.ts
+++ b/plugins/scaffolder/src/lib/filesystem/createExampleTemplate.ts
@@ -91,4 +91,5 @@ export async function createExampleTemplate(
for (const [name, data] of Object.entries(files)) {
await directory.createFile({ name, data });
}
+ return directory;
}
diff --git a/plugins/scaffolder/src/lib/filesystem/index.ts b/plugins/scaffolder/src/lib/filesystem/index.ts
index 29f72294ea..4f5c9ff08c 100644
--- a/plugins/scaffolder/src/lib/filesystem/index.ts
+++ b/plugins/scaffolder/src/lib/filesystem/index.ts
@@ -16,4 +16,8 @@
export type { TemplateFileAccess, TemplateDirectoryAccess } from './types';
export { blobToBase64 } from './helpers';
-export { WebFileSystemAccess, WebFileSystemStore } from './WebFileSystemAccess';
+export {
+ WebDirectoryAccess,
+ WebFileSystemAccess,
+ WebFileSystemStore,
+} from './WebFileSystemAccess';
diff --git a/plugins/scaffolder/src/translation.ts b/plugins/scaffolder/src/translation.ts
index ba39c80b7c..7299d3245a 100644
--- a/plugins/scaffolder/src/translation.ts
+++ b/plugins/scaffolder/src/translation.ts
@@ -29,6 +29,7 @@ export const scaffolderTranslationRef = createTranslationRef({
description:
'There are no actions installed or there was an issue communicating with backend.',
},
+ searchFieldPlaceholder: 'Search for an action',
tableCell: {
name: 'Name',
title: 'Title',
@@ -194,9 +195,18 @@ export const scaffolderTranslationRef = createTranslationRef({
templateTypePicker: {
title: 'Categories',
},
+ templateIntroPage: {
+ title: 'Manage Templates',
+ subtitle:
+ 'Edit, preview, and try out templates, forms, and custom fields',
+ },
templateFormPage: {
- title: 'Template Form Playground',
- subtitle: 'Edit, preview, and try out templates and template forms',
+ title: 'Template Editor',
+ subtitle: 'Edit, preview, and try out templates forms',
+ },
+ templateCustomFieldPage: {
+ title: 'Custom Field Explorer',
+ subtitle: 'Edit, preview, and try out custom fields',
},
templateEditorPage: {
title: 'Template Editor',
@@ -253,7 +263,7 @@ export const scaffolderTranslationRef = createTranslationRef({
unsupportedTooltip: 'Only supported in some Chromium-based browsers',
},
formEditor: {
- title: 'Edit Template Form',
+ title: 'Template Form Playground',
description:
'Preview and edit a template form, either using a sample template or by loading a template from the catalog.',
},
@@ -266,6 +276,7 @@ export const scaffolderTranslationRef = createTranslationRef({
templateEditorTextArea: {
saveIconTooltip: 'Save file',
refreshIconTooltip: 'Reload file',
+ emptyStateParagraph: 'Please select an action on the file menu.',
},
templateFormPreviewer: {
title: 'Load Existing Template',
@@ -298,5 +309,33 @@ export const scaffolderTranslationRef = createTranslationRef({
editConfigurationTitle: 'Edit Configuration',
},
},
+ templateEditorToolbar: {
+ customFieldExplorerTooltip: 'Custom Fields Explorer',
+ installedActionsDocumentationTooltip: 'Installed Actions Documentation',
+ addToCatalogButton: 'Publish',
+ addToCatalogDialogTitle: 'Publish changes',
+ addToCatalogDialogContent: {
+ stepsIntroduction:
+ 'Follow the instructions below to create or update a template:',
+ stepsListItems:
+ 'Save the template files in a local directory\nCreate a pull request to a new or existing git repository\nIf the template already exists, the changes will be reflected in the software catalog once the pull request gets merged\nBut if you are creating a new template, follow the documentation linked below to register the new template repository in software catalog',
+ },
+ addToCatalogDialogActions: {
+ documentationButton: 'Go to the documentation',
+ documentationUrl:
+ 'https://backstage.io/docs/features/software-templates/adding-templates/',
+ },
+ },
+ templateEditorToolbarFileMenu: {
+ button: 'File',
+ options: {
+ openDirectory: 'Open template directory',
+ createDirectory: 'Create template directory',
+ closeEditor: 'Close template editor',
+ },
+ },
+ templateEditorToolbarTemplatesMenu: {
+ button: 'Templates',
+ },
},
});
diff --git a/plugins/search-backend-module-catalog/CHANGELOG.md b/plugins/search-backend-module-catalog/CHANGELOG.md
index d00e1d9335..45aed99219 100644
--- a/plugins/search-backend-module-catalog/CHANGELOG.md
+++ b/plugins/search-backend-module-catalog/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-search-backend-module-catalog
+## 0.2.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/catalog-client@1.7.0
+ - @backstage/catalog-model@1.7.0
+ - @backstage/config@1.2.0
+ - @backstage/errors@1.2.4
+ - @backstage/plugin-catalog-common@1.1.0
+ - @backstage/plugin-catalog-node@1.13.1-next.0
+ - @backstage/plugin-permission-common@0.8.1
+ - @backstage/plugin-search-backend-node@1.3.3-next.1
+ - @backstage/plugin-search-common@1.2.14
+
## 0.2.3-next.0
### Patch Changes
diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json
index ff6fed6987..1909760bfc 100644
--- a/plugins/search-backend-module-catalog/package.json
+++ b/plugins/search-backend-module-catalog/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-backend-module-catalog",
- "version": "0.2.3-next.0",
+ "version": "0.2.3-next.1",
"description": "A module for the search backend that exports catalog modules",
"backstage": {
"role": "backend-plugin-module",
diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md
index 5c360d54d3..392f16c6f3 100644
--- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md
+++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-search-backend-module-elasticsearch
+## 1.5.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/config@1.2.0
+ - @backstage/integration-aws-node@0.1.12
+ - @backstage/plugin-search-backend-node@1.3.3-next.1
+ - @backstage/plugin-search-common@1.2.14
+
## 1.5.7-next.0
### Patch Changes
diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json
index a54779d766..45d2b9e2f0 100644
--- a/plugins/search-backend-module-elasticsearch/package.json
+++ b/plugins/search-backend-module-elasticsearch/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-backend-module-elasticsearch",
- "version": "1.5.7-next.0",
+ "version": "1.5.7-next.1",
"description": "A module for the search backend that implements search using ElasticSearch",
"backstage": {
"role": "backend-plugin-module",
diff --git a/plugins/search-backend-module-explore/CHANGELOG.md b/plugins/search-backend-module-explore/CHANGELOG.md
index 5abe14369a..7eb3293914 100644
--- a/plugins/search-backend-module-explore/CHANGELOG.md
+++ b/plugins/search-backend-module-explore/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-search-backend-module-explore
+## 0.2.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/config@1.2.0
+ - @backstage/plugin-search-backend-node@1.3.3-next.1
+ - @backstage/plugin-search-common@1.2.14
+
## 0.2.3-next.0
### Patch Changes
diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json
index 695d86a688..937d8db489 100644
--- a/plugins/search-backend-module-explore/package.json
+++ b/plugins/search-backend-module-explore/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-backend-module-explore",
- "version": "0.2.3-next.0",
+ "version": "0.2.3-next.1",
"description": "A module for the search backend that exports explore modules",
"backstage": {
"role": "backend-plugin-module",
diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md
index 25f1cd1430..72e290b251 100644
--- a/plugins/search-backend-module-pg/CHANGELOG.md
+++ b/plugins/search-backend-module-pg/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-search-backend-module-pg
+## 0.5.36-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/config@1.2.0
+ - @backstage/plugin-search-backend-node@1.3.3-next.1
+ - @backstage/plugin-search-common@1.2.14
+
## 0.5.36-next.0
### Patch Changes
diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json
index 4665bda3d4..d7c6e13699 100644
--- a/plugins/search-backend-module-pg/package.json
+++ b/plugins/search-backend-module-pg/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-backend-module-pg",
- "version": "0.5.36-next.0",
+ "version": "0.5.36-next.1",
"description": "A module for the search backend that implements search using PostgreSQL",
"backstage": {
"role": "backend-plugin-module",
diff --git a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md
index 781292337b..4925b66a7c 100644
--- a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md
+++ b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-search-backend-module-stack-overflow-collator
+## 0.3.1-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/config@1.2.0
+ - @backstage/plugin-search-backend-node@1.3.3-next.1
+ - @backstage/plugin-search-common@1.2.14
+
## 0.3.1-next.0
### Patch Changes
diff --git a/plugins/search-backend-module-stack-overflow-collator/package.json b/plugins/search-backend-module-stack-overflow-collator/package.json
index f164f9f391..3a17add368 100644
--- a/plugins/search-backend-module-stack-overflow-collator/package.json
+++ b/plugins/search-backend-module-stack-overflow-collator/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-backend-module-stack-overflow-collator",
- "version": "0.3.1-next.0",
+ "version": "0.3.1-next.1",
"description": "A module for the search backend that exports stack overflow modules",
"backstage": {
"role": "backend-plugin-module",
diff --git a/plugins/search-backend-module-techdocs/CHANGELOG.md b/plugins/search-backend-module-techdocs/CHANGELOG.md
index 3ceae39057..869aabb60b 100644
--- a/plugins/search-backend-module-techdocs/CHANGELOG.md
+++ b/plugins/search-backend-module-techdocs/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-search-backend-module-techdocs
+## 0.2.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/catalog-client@1.7.0
+ - @backstage/catalog-model@1.7.0
+ - @backstage/config@1.2.0
+ - @backstage/plugin-catalog-common@1.1.0
+ - @backstage/plugin-catalog-node@1.13.1-next.0
+ - @backstage/plugin-permission-common@0.8.1
+ - @backstage/plugin-search-backend-node@1.3.3-next.1
+ - @backstage/plugin-search-common@1.2.14
+ - @backstage/plugin-techdocs-node@1.12.12-next.1
+
## 0.2.3-next.0
### Patch Changes
diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json
index 078ab1e11f..2a2f36acb1 100644
--- a/plugins/search-backend-module-techdocs/package.json
+++ b/plugins/search-backend-module-techdocs/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-backend-module-techdocs",
- "version": "0.2.3-next.0",
+ "version": "0.2.3-next.1",
"description": "A module for the search backend that exports techdocs modules",
"backstage": {
"role": "backend-plugin-module",
diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md
index a27e703815..5f60cfbc96 100644
--- a/plugins/search-backend-node/CHANGELOG.md
+++ b/plugins/search-backend-node/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-search-backend-node
+## 1.3.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-defaults@0.5.1-next.1
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/config@1.2.0
+ - @backstage/errors@1.2.4
+ - @backstage/plugin-permission-common@0.8.1
+ - @backstage/plugin-search-common@1.2.14
+
## 1.3.3-next.0
### Patch Changes
diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json
index e6ecdf1f4e..d1f3103f1f 100644
--- a/plugins/search-backend-node/package.json
+++ b/plugins/search-backend-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-backend-node",
- "version": "1.3.3-next.0",
+ "version": "1.3.3-next.1",
"description": "A library for Backstage backend plugins that want to interact with the search backend plugin",
"backstage": {
"role": "node-library",
diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md
index deb3409a23..91fa3998b9 100644
--- a/plugins/search-backend/CHANGELOG.md
+++ b/plugins/search-backend/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-search-backend
+## 1.5.18-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-defaults@0.5.1-next.1
+ - @backstage/backend-openapi-utils@0.1.19-next.0
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/config@1.2.0
+ - @backstage/errors@1.2.4
+ - @backstage/types@1.1.1
+ - @backstage/plugin-permission-common@0.8.1
+ - @backstage/plugin-permission-node@0.8.4-next.0
+ - @backstage/plugin-search-backend-node@1.3.3-next.1
+ - @backstage/plugin-search-common@1.2.14
+
## 1.5.18-next.0
### Patch Changes
diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json
index d4c2e51da6..ce9fe235cd 100644
--- a/plugins/search-backend/package.json
+++ b/plugins/search-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-backend",
- "version": "1.5.18-next.0",
+ "version": "1.5.18-next.1",
"description": "The Backstage backend plugin that provides your backstage app with search",
"backstage": {
"role": "backend-plugin",
diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md
index 76e2c40e8f..06342cf847 100644
--- a/plugins/search-react/CHANGELOG.md
+++ b/plugins/search-react/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-search-react
+## 1.8.1-next.1
+
+### Patch Changes
+
+- e969dc7: Move `@types/react` to a peer dependency.
+- Updated dependencies
+ - @backstage/core-components@0.15.1-next.1
+ - @backstage/frontend-plugin-api@0.9.0-next.1
+ - @backstage/core-plugin-api@1.10.0-next.1
+ - @backstage/version-bridge@1.0.10-next.0
+ - @backstage/theme@0.5.8-next.0
+ - @backstage/types@1.1.1
+ - @backstage/plugin-search-common@1.2.14
+
## 1.8.1-next.0
### Patch Changes
diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json
index 2b4f5de145..2bd237537c 100644
--- a/plugins/search-react/package.json
+++ b/plugins/search-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-react",
- "version": "1.8.1-next.0",
+ "version": "1.8.1-next.1",
"backstage": {
"role": "web-library",
"pluginId": "search",
@@ -66,7 +66,6 @@
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.61",
- "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"lodash": "^4.17.21",
"qs": "^6.9.4",
"react-use": "^17.3.2"
@@ -80,11 +79,21 @@
"@testing-library/dom": "^10.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^16.0.0",
- "@testing-library/user-event": "^14.0.0"
+ "@testing-library/user-event": "^14.0.0",
+ "@types/react": "^18.0.0",
+ "react": "^18.0.2",
+ "react-dom": "^18.0.2",
+ "react-router-dom": "^6.3.0"
},
"peerDependencies": {
+ "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
}
diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md
index b0e9c1f9d6..f2caf39be2 100644
--- a/plugins/search/CHANGELOG.md
+++ b/plugins/search/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/plugin-search
+## 1.4.18-next.1
+
+### Patch Changes
+
+- e969dc7: Move `@types/react` to a peer dependency.
+- Updated dependencies
+ - @backstage/core-components@0.15.1-next.1
+ - @backstage/frontend-plugin-api@0.9.0-next.1
+ - @backstage/core-compat-api@0.3.1-next.1
+ - @backstage/core-plugin-api@1.10.0-next.1
+ - @backstage/version-bridge@1.0.10-next.0
+ - @backstage/plugin-catalog-react@1.14.0-next.1
+ - @backstage/plugin-search-react@1.8.1-next.1
+ - @backstage/errors@1.2.4
+ - @backstage/types@1.1.1
+ - @backstage/plugin-search-common@1.2.14
+
## 1.4.17-next.0
### Patch Changes
diff --git a/plugins/search/package.json b/plugins/search/package.json
index cc9e8df9b7..cd5a6c4d8d 100644
--- a/plugins/search/package.json
+++ b/plugins/search/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search",
- "version": "1.4.17-next.0",
+ "version": "1.4.18-next.1",
"description": "The Backstage plugin that provides your backstage app with search",
"backstage": {
"role": "frontend-plugin",
@@ -70,7 +70,6 @@
"@backstage/version-bridge": "workspace:^",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
- "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"qs": "^6.9.4",
"react-use": "^17.2.4"
},
@@ -83,12 +82,22 @@
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^16.0.0",
"@testing-library/user-event": "^14.0.0",
- "history": "^5.0.0"
+ "@types/react": "^18.0.0",
+ "history": "^5.0.0",
+ "react": "^18.0.2",
+ "react-dom": "^18.0.2",
+ "react-router-dom": "^6.3.0"
},
"peerDependencies": {
+ "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
},
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ },
"configSchema": "config.d.ts"
}
diff --git a/plugins/search/src/components/SearchType/SearchType.Accordion.test.tsx b/plugins/search/src/components/SearchType/SearchType.Accordion.test.tsx
index 556a9550a0..453b766791 100644
--- a/plugins/search/src/components/SearchType/SearchType.Accordion.test.tsx
+++ b/plugins/search/src/components/SearchType/SearchType.Accordion.test.tsx
@@ -140,18 +140,6 @@ describe('SearchType.Accordion', () => {
expect(setPageCursorMock).toHaveBeenCalledWith(undefined);
});
- it('should collapse when a new type is selected', async () => {
- const { getByText, queryByText } = render(
-
-
- ,
- );
-
- await user.click(getByText(expectedType.name));
-
- expect(queryByText('Collapse')).not.toBeInTheDocument();
- });
-
it('should show result counts if enabled', async () => {
const { getAllByText } = render(
diff --git a/plugins/search/src/components/SearchType/SearchType.Accordion.tsx b/plugins/search/src/components/SearchType/SearchType.Accordion.tsx
index f9a07b6dcd..bdd13f2fb2 100644
--- a/plugins/search/src/components/SearchType/SearchType.Accordion.tsx
+++ b/plugins/search/src/components/SearchType/SearchType.Accordion.tsx
@@ -96,7 +96,6 @@ export const SearchTypeAccordion = (props: SearchTypeAccordionProps) => {
return () => {
setTypes(type !== '' ? [type] : []);
setPageCursor(undefined);
- setExpanded(false);
};
};
diff --git a/plugins/signals-react/CHANGELOG.md b/plugins/signals-react/CHANGELOG.md
index 3cb505e301..005bc89b9b 100644
--- a/plugins/signals-react/CHANGELOG.md
+++ b/plugins/signals-react/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-signals-react
+## 0.0.6-next.1
+
+### Patch Changes
+
+- e969dc7: Move `@types/react` to a peer dependency.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.10.0-next.1
+ - @backstage/types@1.1.1
+
## 0.0.6-next.0
### Patch Changes
diff --git a/plugins/signals-react/package.json b/plugins/signals-react/package.json
index 96a54b3fed..94eaad39b5 100644
--- a/plugins/signals-react/package.json
+++ b/plugins/signals-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-signals-react",
- "version": "0.0.6-next.0",
+ "version": "0.0.6-next.1",
"description": "Web library for the signals plugin",
"backstage": {
"role": "web-library",
@@ -47,9 +47,21 @@
"@backstage/cli": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/jest-dom": "^6.0.0",
- "@testing-library/react": "^16.0.0"
+ "@testing-library/react": "^16.0.0",
+ "@types/react": "^18.0.0",
+ "react": "^18.0.2",
+ "react-dom": "^18.0.2",
+ "react-router-dom": "^6.3.0"
},
"peerDependencies": {
- "react": "^16.13.1 || ^17.0.0"
+ "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
+ "react": "^16.13.1 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
+ "react-router-dom": "6.0.0-beta.0 || ^6.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
}
diff --git a/plugins/signals/CHANGELOG.md b/plugins/signals/CHANGELOG.md
index 1e7578288d..170d241df3 100644
--- a/plugins/signals/CHANGELOG.md
+++ b/plugins/signals/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-signals
+## 0.0.11-next.1
+
+### Patch Changes
+
+- e969dc7: Move `@types/react` to a peer dependency.
+- Updated dependencies
+ - @backstage/core-components@0.15.1-next.1
+ - @backstage/plugin-signals-react@0.0.6-next.1
+ - @backstage/core-plugin-api@1.10.0-next.1
+ - @backstage/theme@0.5.8-next.0
+ - @backstage/types@1.1.1
+
## 0.0.11-next.0
### Patch Changes
diff --git a/plugins/signals/package.json b/plugins/signals/package.json
index 471aecc4eb..1cb2f08675 100644
--- a/plugins/signals/package.json
+++ b/plugins/signals/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-signals",
- "version": "0.0.11-next.0",
+ "version": "0.0.11-next.1",
"backstage": {
"role": "frontend-plugin",
"pluginId": "signals",
@@ -57,10 +57,22 @@
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^16.0.0",
"@testing-library/user-event": "^14.0.0",
+ "@types/react": "^18.0.0",
"jest-websocket-mock": "^2.5.0",
- "msw": "^1.0.0"
+ "msw": "^1.0.0",
+ "react": "^18.0.2",
+ "react-dom": "^18.0.2",
+ "react-router-dom": "^6.3.0"
},
"peerDependencies": {
- "react": "^16.13.1 || ^17.0.0"
+ "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
+ "react": "^16.13.1 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
+ "react-router-dom": "6.0.0-beta.0 || ^6.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
}
diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md
index 94323cea16..7dc37d4268 100644
--- a/plugins/techdocs-addons-test-utils/CHANGELOG.md
+++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-techdocs-addons-test-utils
+## 1.0.40-next.1
+
+### Patch Changes
+
+- e969dc7: Move `@types/react` to a peer dependency.
+- Updated dependencies
+ - @backstage/integration-react@1.2.0-next.1
+ - @backstage/core-plugin-api@1.10.0-next.1
+ - @backstage/plugin-techdocs-react@1.2.9-next.1
+ - @backstage/core-app-api@1.15.1-next.1
+ - @backstage/plugin-catalog-react@1.14.0-next.1
+ - @backstage/plugin-search-react@1.8.1-next.1
+ - @backstage/test-utils@1.6.1-next.1
+ - @backstage/plugin-techdocs@1.10.11-next.1
+ - @backstage/plugin-catalog@1.24.0-next.1
+
## 1.0.39-next.0
### Patch Changes
diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json
index ea61f6d6d4..d1ad8e1aa4 100644
--- a/plugins/techdocs-addons-test-utils/package.json
+++ b/plugins/techdocs-addons-test-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-techdocs-addons-test-utils",
- "version": "1.0.39-next.0",
+ "version": "1.0.40-next.1",
"backstage": {
"role": "web-library",
"pluginId": "techdocs-addons",
@@ -49,18 +49,27 @@
"@backstage/plugin-techdocs": "workspace:^",
"@backstage/plugin-techdocs-react": "workspace:^",
"@backstage/test-utils": "workspace:^",
- "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"testing-library__dom": "^7.29.4-beta.1"
},
"devDependencies": {
"@backstage/cli": "workspace:^",
"@testing-library/dom": "^10.0.0",
- "@testing-library/jest-dom": "^6.0.0"
+ "@testing-library/jest-dom": "^6.0.0",
+ "@types/react": "^18.0.0",
+ "react": "^18.0.2",
+ "react-dom": "^18.0.2",
+ "react-router-dom": "^6.3.0"
},
"peerDependencies": {
"@testing-library/react": "^16.0.0",
+ "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
}
diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md
index 53b4e27a5e..1877e692d1 100644
--- a/plugins/techdocs-backend/CHANGELOG.md
+++ b/plugins/techdocs-backend/CHANGELOG.md
@@ -1,5 +1,23 @@
# @backstage/plugin-techdocs-backend
+## 1.10.14-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/integration@1.15.1-next.0
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/catalog-client@1.7.0
+ - @backstage/catalog-model@1.7.0
+ - @backstage/config@1.2.0
+ - @backstage/errors@1.2.4
+ - @backstage/plugin-catalog-common@1.1.0
+ - @backstage/plugin-catalog-node@1.13.1-next.0
+ - @backstage/plugin-permission-common@0.8.1
+ - @backstage/plugin-search-backend-module-techdocs@0.2.3-next.1
+ - @backstage/plugin-techdocs-common@0.1.0
+ - @backstage/plugin-techdocs-node@1.12.12-next.1
+
## 1.10.14-next.0
### Patch Changes
diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json
index d941f84e2d..8ada345404 100644
--- a/plugins/techdocs-backend/package.json
+++ b/plugins/techdocs-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-techdocs-backend",
- "version": "1.10.14-next.0",
+ "version": "1.10.14-next.1",
"description": "The Backstage backend plugin that renders technical documentation for your components",
"backstage": {
"role": "backend-plugin",
diff --git a/plugins/techdocs-backend/src/plugin.ts b/plugins/techdocs-backend/src/plugin.ts
index 0f3def79b1..9b5ae21a52 100644
--- a/plugins/techdocs-backend/src/plugin.ts
+++ b/plugins/techdocs-backend/src/plugin.ts
@@ -29,6 +29,7 @@ import {
Preparers,
Publisher,
PublisherBase,
+ PublisherSettings,
PublisherType,
RemoteProtocol,
techdocsBuildsExtensionPoint,
@@ -89,6 +90,7 @@ export const techdocsPlugin = createBackendPlugin({
});
let customTechdocsPublisher: PublisherBase | undefined;
+ const publisherSettings: PublisherSettings = {};
env.registerExtensionPoint(techdocsPublisherExtensionPoint, {
registerPublisher(type: PublisherType, publisher: PublisherBase) {
if (customTechdocsPublisher) {
@@ -96,6 +98,12 @@ export const techdocsPlugin = createBackendPlugin({
}
customTechdocsPublisher = publisher;
},
+ registerPublisherSettings(
+ publisher: T,
+ settings: PublisherSettings[T],
+ ) {
+ publisherSettings[publisher] = settings;
+ },
});
env.registerInit({
@@ -144,6 +152,7 @@ export const techdocsPlugin = createBackendPlugin({
logger: winstonLogger,
discovery: discovery,
customPublisher: customTechdocsPublisher,
+ publisherSettings,
});
// checks if the publisher is working and logs the result
diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md
index 603a91278e..cfea67be77 100644
--- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md
+++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-techdocs-module-addons-contrib
+## 1.1.16-next.1
+
+### Patch Changes
+
+- e969dc7: Move `@types/react` to a peer dependency.
+- Updated dependencies
+ - @backstage/core-components@0.15.1-next.1
+ - @backstage/integration-react@1.2.0-next.1
+ - @backstage/core-plugin-api@1.10.0-next.1
+ - @backstage/plugin-techdocs-react@1.2.9-next.1
+ - @backstage/integration@1.15.1-next.0
+
## 1.1.15-next.0
### Patch Changes
diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json
index a4a58184d5..2d239014dc 100644
--- a/plugins/techdocs-module-addons-contrib/package.json
+++ b/plugins/techdocs-module-addons-contrib/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-techdocs-module-addons-contrib",
- "version": "1.1.15-next.0",
+ "version": "1.1.16-next.1",
"description": "Plugin module for contributed TechDocs Addons",
"backstage": {
"role": "frontend-plugin-module",
@@ -57,11 +57,20 @@
"@testing-library/dom": "^10.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^16.0.0",
- "@types/react": "^16.13.1 || ^17.0.0"
+ "@types/react": "^18.0.0",
+ "react": "^18.0.2",
+ "react-dom": "^18.0.2",
+ "react-router-dom": "^6.3.0"
},
"peerDependencies": {
+ "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
}
diff --git a/plugins/techdocs-module-addons-contrib/src/ExpandableNavigation/ExpandableNavigation.tsx b/plugins/techdocs-module-addons-contrib/src/ExpandableNavigation/ExpandableNavigation.tsx
index 802e377f42..6cdf87a49f 100644
--- a/plugins/techdocs-module-addons-contrib/src/ExpandableNavigation/ExpandableNavigation.tsx
+++ b/plugins/techdocs-module-addons-contrib/src/ExpandableNavigation/ExpandableNavigation.tsx
@@ -30,8 +30,9 @@ const EXPANDABLE_NAVIGATION_LOCAL_STORAGE =
const StyledButton = withStyles({
root: {
position: 'absolute',
- left: '220px',
+ left: '13.7rem', // Sidebar inner width (15.1em) minus the different margins/paddings
top: '19px',
+ zIndex: 2,
padding: 0,
minWidth: 0,
},
diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md
index 4f68e735f8..a6a928f533 100644
--- a/plugins/techdocs-node/CHANGELOG.md
+++ b/plugins/techdocs-node/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-techdocs-node
+## 1.12.12-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/integration@1.15.1-next.0
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/catalog-model@1.7.0
+ - @backstage/config@1.2.0
+ - @backstage/errors@1.2.4
+ - @backstage/integration-aws-node@0.1.12
+ - @backstage/plugin-search-common@1.2.14
+ - @backstage/plugin-techdocs-common@0.1.0
+
## 1.12.12-next.0
### Patch Changes
diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json
index e807b7abb0..b72894a6d3 100644
--- a/plugins/techdocs-node/package.json
+++ b/plugins/techdocs-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-techdocs-node",
- "version": "1.12.12-next.0",
+ "version": "1.12.12-next.1",
"description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli",
"backstage": {
"role": "node-library",
@@ -62,7 +62,7 @@
"@backstage/plugin-search-common": "workspace:^",
"@backstage/plugin-techdocs-common": "workspace:^",
"@google-cloud/storage": "^7.0.0",
- "@smithy/node-http-handler": "^2.1.7",
+ "@smithy/node-http-handler": "^3.0.0",
"@trendyol-js/openstack-swift-sdk": "^0.0.7",
"@types/express": "^4.17.6",
"dockerode": "^4.0.0",
diff --git a/plugins/techdocs-node/report.api.md b/plugins/techdocs-node/report.api.md
index ad6e01636f..1bd93d1b57 100644
--- a/plugins/techdocs-node/report.api.md
+++ b/plugins/techdocs-node/report.api.md
@@ -15,6 +15,7 @@ import { IndexableDocument } from '@backstage/plugin-search-common';
import { Logger } from 'winston';
import { LoggerService } from '@backstage/backend-plugin-api';
import { ScmIntegrationRegistry } from '@backstage/integration';
+import { StorageOptions } from '@google-cloud/storage';
import { UrlReaderService } from '@backstage/backend-plugin-api';
import * as winston from 'winston';
import { Writable } from 'stream';
@@ -217,8 +218,15 @@ export type PublisherFactory = {
logger: LoggerService;
discovery: DiscoveryService;
customPublisher?: PublisherBase | undefined;
+ publisherSettings?: PublisherSettings;
};
+// @public
+export interface PublisherSettings {
+ // (undocumented)
+ googleGcs?: StorageOptions;
+}
+
// @public
export type PublisherType =
| 'local'
@@ -344,6 +352,11 @@ export const techdocsPreparerExtensionPoint: ExtensionPoint(
+ publisher: T,
+ settings: PublisherSettings[T],
+ ): void;
}
// @public
@@ -368,13 +381,15 @@ export class UrlPreparer implements PreparerBase {
// Warnings were encountered during analysis:
//
-// src/extensions.d.ts:10:5 - (ae-undocumented) Missing documentation for "setBuildStrategy".
-// src/extensions.d.ts:11:5 - (ae-undocumented) Missing documentation for "setBuildLogTransport".
-// src/extensions.d.ts:25:5 - (ae-undocumented) Missing documentation for "setTechdocsGenerator".
-// src/extensions.d.ts:39:5 - (ae-undocumented) Missing documentation for "registerPreparer".
-// src/extensions.d.ts:53:5 - (ae-undocumented) Missing documentation for "registerPublisher".
+// src/extensions.d.ts:11:5 - (ae-undocumented) Missing documentation for "setBuildStrategy".
+// src/extensions.d.ts:12:5 - (ae-undocumented) Missing documentation for "setBuildLogTransport".
+// src/extensions.d.ts:26:5 - (ae-undocumented) Missing documentation for "setTechdocsGenerator".
+// src/extensions.d.ts:40:5 - (ae-undocumented) Missing documentation for "registerPreparer".
+// src/extensions.d.ts:54:5 - (ae-undocumented) Missing documentation for "registerPublisher".
+// src/extensions.d.ts:55:5 - (ae-undocumented) Missing documentation for "registerPublisherSettings".
// src/stages/generate/index.d.ts:10:22 - (ae-undocumented) Missing documentation for "getMkDocsYml".
// src/stages/publish/publish.d.ts:10:5 - (ae-undocumented) Missing documentation for "register".
// src/stages/publish/publish.d.ts:11:5 - (ae-undocumented) Missing documentation for "get".
+// src/stages/publish/types.d.ts:21:5 - (ae-undocumented) Missing documentation for "googleGcs".
// src/techdocsTypes.d.ts:39:5 - (ae-undocumented) Missing documentation for "shouldBuild".
```
diff --git a/plugins/techdocs-node/src/extensions.ts b/plugins/techdocs-node/src/extensions.ts
index e9a9b1d731..60498746ad 100644
--- a/plugins/techdocs-node/src/extensions.ts
+++ b/plugins/techdocs-node/src/extensions.ts
@@ -23,6 +23,7 @@ import {
TechdocsGenerator,
} from './stages';
import * as winston from 'winston';
+import { PublisherSettings } from './stages/publish/types';
/**
* Extension point type for configuring TechDocs builds.
@@ -89,6 +90,10 @@ export const techdocsPreparerExtensionPoint =
*/
export interface TechdocsPublisherExtensionPoint {
registerPublisher(type: PublisherType, publisher: PublisherBase): void;
+ registerPublisherSettings(
+ publisher: T,
+ settings: PublisherSettings[T],
+ ): void;
}
/**
diff --git a/plugins/techdocs-node/src/stages/publish/googleStorage.test.ts b/plugins/techdocs-node/src/stages/publish/googleStorage.test.ts
index f09ba160d9..322149660e 100644
--- a/plugins/techdocs-node/src/stages/publish/googleStorage.test.ts
+++ b/plugins/techdocs-node/src/stages/publish/googleStorage.test.ts
@@ -26,9 +26,12 @@ import {
createMockDirectory,
mockServices,
} from '@backstage/backend-test-utils';
+import { StorageOptions } from '@google-cloud/storage';
const mockDir = createMockDirectory();
+let createdStorageOptions: Array = [];
+
jest.mock('@google-cloud/storage', () => {
class GCSFile {
constructor(private readonly filePath: string) {}
@@ -118,6 +121,10 @@ jest.mock('@google-cloud/storage', () => {
}
class Storage {
+ constructor(readonly options?: StorageOptions) {
+ createdStorageOptions.push(options);
+ }
+
bucket(bucketName: string) {
return new Bucket(bucketName);
}
@@ -144,10 +151,12 @@ const createPublisherFromConfig = ({
bucketName = 'bucketName',
bucketRootPath = '/',
legacyUseCaseSensitiveTripletPaths = false,
+ storageOptions = {},
}: {
bucketName?: string;
bucketRootPath?: string;
legacyUseCaseSensitiveTripletPaths?: boolean;
+ storageOptions?: StorageOptions;
} = {}) => {
const config = new ConfigReader({
techdocs: {
@@ -162,7 +171,7 @@ const createPublisherFromConfig = ({
legacyUseCaseSensitiveTripletPaths,
},
});
- return GoogleGCSPublish.fromConfig(config, logger);
+ return GoogleGCSPublish.fromConfig(config, logger, storageOptions);
};
describe('GoogleGCSPublish', () => {
@@ -211,11 +220,24 @@ describe('GoogleGCSPublish', () => {
};
beforeEach(() => {
+ createdStorageOptions = [];
mockDir.setContent({
[directory]: files,
});
});
+ it('should pass options to storage', () => {
+ createPublisherFromConfig({
+ storageOptions: {
+ userAgent: 'Test-UA',
+ },
+ });
+
+ expect(createdStorageOptions.map(opt => opt?.userAgent)).toContain(
+ 'Test-UA',
+ );
+ });
+
describe('getReadiness', () => {
it('should validate correct config', async () => {
const publisher = createPublisherFromConfig();
diff --git a/plugins/techdocs-node/src/stages/publish/googleStorage.ts b/plugins/techdocs-node/src/stages/publish/googleStorage.ts
index 519b0f8c6b..3eac9834d2 100644
--- a/plugins/techdocs-node/src/stages/publish/googleStorage.ts
+++ b/plugins/techdocs-node/src/stages/publish/googleStorage.ts
@@ -68,7 +68,11 @@ export class GoogleGCSPublish implements PublisherBase {
this.bucketRootPath = options.bucketRootPath;
}
- static fromConfig(config: Config, logger: LoggerService): PublisherBase {
+ static fromConfig(
+ config: Config,
+ logger: LoggerService,
+ options?: StorageOptions,
+ ): PublisherBase {
let bucketName = '';
try {
bucketName = config.getString('techdocs.publisher.googleGcs.bucketName');
@@ -103,7 +107,7 @@ export class GoogleGCSPublish implements PublisherBase {
}
}
- const clientOpts: StorageOptions = {};
+ const clientOpts: StorageOptions = options ?? {};
if (projectId) {
clientOpts.projectId = projectId;
}
diff --git a/plugins/techdocs-node/src/stages/publish/index.ts b/plugins/techdocs-node/src/stages/publish/index.ts
index 7f6859367f..8d528b4db6 100644
--- a/plugins/techdocs-node/src/stages/publish/index.ts
+++ b/plugins/techdocs-node/src/stages/publish/index.ts
@@ -24,4 +24,5 @@ export type {
MigrateRequest,
ReadinessResponse,
TechDocsMetadata,
+ PublisherSettings,
} from './types';
diff --git a/plugins/techdocs-node/src/stages/publish/publish.ts b/plugins/techdocs-node/src/stages/publish/publish.ts
index 09a6d9b375..67315165a9 100644
--- a/plugins/techdocs-node/src/stages/publish/publish.ts
+++ b/plugins/techdocs-node/src/stages/publish/publish.ts
@@ -86,7 +86,11 @@ export class Publisher implements PublisherBuilder {
logger.info('Creating Google Storage Bucket publisher for TechDocs');
publishers.register(
publisherType,
- GoogleGCSPublish.fromConfig(config, logger),
+ GoogleGCSPublish.fromConfig(
+ config,
+ logger,
+ options.publisherSettings?.googleGcs,
+ ),
);
break;
case 'awsS3':
diff --git a/plugins/techdocs-node/src/stages/publish/types.ts b/plugins/techdocs-node/src/stages/publish/types.ts
index 720f1b218a..b5b65c8e08 100644
--- a/plugins/techdocs-node/src/stages/publish/types.ts
+++ b/plugins/techdocs-node/src/stages/publish/types.ts
@@ -17,6 +17,7 @@ import express from 'express';
import { Config } from '@backstage/config';
import { DiscoveryService, LoggerService } from '@backstage/backend-plugin-api';
import { Entity, CompoundEntityRef } from '@backstage/catalog-model';
+import { StorageOptions } from '@google-cloud/storage';
/**
* Options for building publishers
@@ -26,8 +27,17 @@ export type PublisherFactory = {
logger: LoggerService;
discovery: DiscoveryService;
customPublisher?: PublisherBase | undefined;
+ publisherSettings?: PublisherSettings;
};
+/**
+ * Additional configurations for publishers.
+ * @public
+ */
+export interface PublisherSettings {
+ googleGcs?: StorageOptions;
+}
+
/**
* Key for all the different types of TechDocs publishers that are supported.
* @public
diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md
index 88e73fd070..b82b929f5b 100644
--- a/plugins/techdocs-react/CHANGELOG.md
+++ b/plugins/techdocs-react/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-techdocs-react
+## 1.2.9-next.1
+
+### Patch Changes
+
+- e969dc7: Move `@types/react` to a peer dependency.
+- Updated dependencies
+ - @backstage/core-components@0.15.1-next.1
+ - @backstage/core-plugin-api@1.10.0-next.1
+ - @backstage/version-bridge@1.0.10-next.0
+ - @backstage/catalog-model@1.7.0
+ - @backstage/config@1.2.0
+
## 1.2.9-next.0
### Patch Changes
diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json
index 0c196707f0..2f4e7ea31b 100644
--- a/plugins/techdocs-react/package.json
+++ b/plugins/techdocs-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-techdocs-react",
- "version": "1.2.9-next.0",
+ "version": "1.2.9-next.1",
"description": "Shared frontend utilities for TechDocs and Addons",
"backstage": {
"role": "web-library",
@@ -52,7 +52,6 @@
"@backstage/version-bridge": "workspace:^",
"@material-ui/core": "^4.12.2",
"@material-ui/styles": "^4.11.0",
- "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"jss": "~10.10.0",
"lodash": "^4.17.21",
"react-helmet": "6.1.0",
@@ -63,11 +62,21 @@
"@backstage/test-utils": "workspace:^",
"@backstage/theme": "workspace:^",
"@testing-library/jest-dom": "^6.0.0",
- "@testing-library/react": "^16.0.0"
+ "@testing-library/react": "^16.0.0",
+ "@types/react": "^18.0.0",
+ "react": "^18.0.2",
+ "react-dom": "^18.0.2",
+ "react-router-dom": "^6.3.0"
},
"peerDependencies": {
+ "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
}
diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md
index 044ede047d..e828503443 100644
--- a/plugins/techdocs/CHANGELOG.md
+++ b/plugins/techdocs/CHANGELOG.md
@@ -1,5 +1,28 @@
# @backstage/plugin-techdocs
+## 1.10.11-next.1
+
+### Patch Changes
+
+- e969dc7: Move `@types/react` to a peer dependency.
+- Updated dependencies
+ - @backstage/core-components@0.15.1-next.1
+ - @backstage/frontend-plugin-api@0.9.0-next.1
+ - @backstage/integration-react@1.2.0-next.1
+ - @backstage/core-compat-api@0.3.1-next.1
+ - @backstage/core-plugin-api@1.10.0-next.1
+ - @backstage/plugin-techdocs-react@1.2.9-next.1
+ - @backstage/plugin-catalog-react@1.14.0-next.1
+ - @backstage/plugin-search-react@1.8.1-next.1
+ - @backstage/plugin-auth-react@0.1.7-next.1
+ - @backstage/theme@0.5.8-next.0
+ - @backstage/integration@1.15.1-next.0
+ - @backstage/catalog-model@1.7.0
+ - @backstage/config@1.2.0
+ - @backstage/errors@1.2.4
+ - @backstage/plugin-search-common@1.2.14
+ - @backstage/plugin-techdocs-common@0.1.0
+
## 1.10.10-next.0
### Patch Changes
diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json
index a6e6179c87..64945f6796 100644
--- a/plugins/techdocs/package.json
+++ b/plugins/techdocs/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-techdocs",
- "version": "1.10.10-next.0",
+ "version": "1.10.11-next.1",
"description": "The Backstage plugin that renders technical documentation for your components",
"backstage": {
"role": "frontend-plugin",
@@ -80,7 +80,6 @@
"@material-ui/lab": "4.0.0-alpha.61",
"@material-ui/styles": "^4.10.0",
"@microsoft/fetch-event-source": "^2.0.1",
- "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"dompurify": "^3.0.0",
"git-url-parse": "^14.0.0",
"jss": "~10.10.0",
@@ -99,12 +98,22 @@
"@testing-library/react": "^16.0.0",
"@testing-library/user-event": "^14.0.0",
"@types/dompurify": "^3.0.0",
- "canvas": "^2.10.2"
+ "@types/react": "^18.0.0",
+ "canvas": "^2.10.2",
+ "react": "^18.0.2",
+ "react-dom": "^18.0.2",
+ "react-router-dom": "^6.3.0"
},
"peerDependencies": {
+ "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
},
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ },
"configSchema": "config.d.ts"
}
diff --git a/plugins/techdocs/src/reader/transformers/styles/rules/layout.ts b/plugins/techdocs/src/reader/transformers/styles/rules/layout.ts
index 590f2a114b..1a326c62b8 100644
--- a/plugins/techdocs/src/reader/transformers/styles/rules/layout.ts
+++ b/plugins/techdocs/src/reader/transformers/styles/rules/layout.ts
@@ -86,9 +86,14 @@ export default ({ theme, sidebar }: RuleOptions) => `
scrollbar-width: thin;
}
.md-sidebar .md-sidebar__scrollwrap {
- width: calc(12.1rem);
+ width: calc(16rem);
overflow-y: hidden;
}
+@supports selector(::-webkit-scrollbar) {
+ [dir=ltr] .md-sidebar__inner {
+ padding-right: calc(100% - 15.1rem);
+ }
+}
.md-sidebar--secondary {
right: ${theme.spacing(3)}px;
}
@@ -202,18 +207,22 @@ export default ({ theme, sidebar }: RuleOptions) => `
height: 100%;
}
.md-sidebar--primary {
- width: 12.1rem !important;
+ width: 16rem !important;
z-index: 200;
left: ${
sidebar.isPinned
- ? `calc(-12.1rem + ${SIDEBAR_WIDTH})`
- : 'calc(-12.1rem + 72px)'
+ ? `calc(-16rem + ${SIDEBAR_WIDTH})`
+ : 'calc(-16rem + 72px)'
} !important;
}
.md-sidebar--secondary:not([hidden]) {
display: none;
}
+ [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary {
+ transform: translateX(16rem);
+ }
+
.md-content {
max-width: 100%;
margin-left: 0;
@@ -241,8 +250,8 @@ export default ({ theme, sidebar }: RuleOptions) => `
@media screen and (max-width: 600px) {
.md-sidebar--primary {
- left: -12.1rem !important;
- width: 12.1rem;
+ left: -16rem !important;
+ width: 16rem;
}
}
diff --git a/plugins/techdocs/src/reader/transformers/styles/rules/palette.ts b/plugins/techdocs/src/reader/transformers/styles/rules/palette.ts
new file mode 100644
index 0000000000..fa1f69ac88
--- /dev/null
+++ b/plugins/techdocs/src/reader/transformers/styles/rules/palette.ts
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2024 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { RuleOptions } from './types';
+import { Theme } from '@material-ui/core/styles';
+
+const themeHashes: Record> = {
+ dark: ['#only-light', '#gh-light-mode-only'],
+ light: ['#only-dark', '#gh-dark-mode-only'],
+};
+
+export default ({ theme }: RuleOptions) => `
+/*================== Palette ==================*/
+/*
+ When color palette toggle is enabled in material theme for Mkdocs, there is a possibility to show conditionally
+ images by adding #only-dark or #only-light to resource hash. Backstage doesn't use mkdocs color palette mechanism,
+ so there is a need to add css rules from palette*.css manually.
+*/
+
+${themeHashes[theme.palette.type]
+ .map(hash => `img[src$="${hash}"]`)
+ .join(', ')} {
+ display: none;
+}
+`;
diff --git a/plugins/techdocs/src/reader/transformers/styles/rules/rules.ts b/plugins/techdocs/src/reader/transformers/styles/rules/rules.ts
index 917793733e..9341fd6e3e 100644
--- a/plugins/techdocs/src/reader/transformers/styles/rules/rules.ts
+++ b/plugins/techdocs/src/reader/transformers/styles/rules/rules.ts
@@ -20,6 +20,7 @@ import { default as layout } from './layout';
import { default as typeset } from './typeset';
import { default as animations } from './animations';
import { default as extensions } from './extensions';
+import palette from './palette';
/**
* A list of style rules that will be applied to an element in the order they were added.
@@ -35,4 +36,5 @@ export const rules = [
typeset,
animations,
extensions,
+ palette,
];
diff --git a/plugins/techdocs/src/reader/transformers/styles/transformer.test.tsx b/plugins/techdocs/src/reader/transformers/styles/transformer.test.tsx
index b55e372212..6cfde4f09d 100644
--- a/plugins/techdocs/src/reader/transformers/styles/transformer.test.tsx
+++ b/plugins/techdocs/src/reader/transformers/styles/transformer.test.tsx
@@ -47,6 +47,9 @@ describe('Transformers > Styles', () => {
expect(style).toHaveTextContent(
'/*================== Extensions ==================*/',
);
+ expect(style).toHaveTextContent(
+ '/*================== Palette ==================*/',
+ );
});
it('should use headers relative font-size value as the factor for the md-typeset variable', () => {
diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md
index 813b94a21a..611b67ad38 100644
--- a/plugins/user-settings-backend/CHANGELOG.md
+++ b/plugins/user-settings-backend/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-user-settings-backend
+## 0.2.25-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-defaults@0.5.1-next.1
+ - @backstage/backend-plugin-api@1.0.1-next.0
+ - @backstage/config@1.2.0
+ - @backstage/errors@1.2.4
+ - @backstage/types@1.1.1
+ - @backstage/plugin-auth-node@0.5.3-next.0
+ - @backstage/plugin-signals-node@0.1.12-next.0
+ - @backstage/plugin-user-settings-common@0.0.1
+
## 0.2.25-next.0
### Patch Changes
diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json
index 88c7533b11..595ec64f53 100644
--- a/plugins/user-settings-backend/package.json
+++ b/plugins/user-settings-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-user-settings-backend",
- "version": "0.2.25-next.0",
+ "version": "0.2.25-next.1",
"description": "The Backstage backend plugin to manage user settings",
"backstage": {
"role": "backend-plugin",
diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md
index de1d1b4210..43501258d2 100644
--- a/plugins/user-settings/CHANGELOG.md
+++ b/plugins/user-settings/CHANGELOG.md
@@ -1,5 +1,23 @@
# @backstage/plugin-user-settings
+## 0.8.14-next.1
+
+### Patch Changes
+
+- e969dc7: Move `@types/react` to a peer dependency.
+- Updated dependencies
+ - @backstage/core-components@0.15.1-next.1
+ - @backstage/plugin-signals-react@0.0.6-next.1
+ - @backstage/frontend-plugin-api@0.9.0-next.1
+ - @backstage/core-compat-api@0.3.1-next.1
+ - @backstage/core-plugin-api@1.10.0-next.1
+ - @backstage/core-app-api@1.15.1-next.1
+ - @backstage/plugin-catalog-react@1.14.0-next.1
+ - @backstage/theme@0.5.8-next.0
+ - @backstage/errors@1.2.4
+ - @backstage/types@1.1.1
+ - @backstage/plugin-user-settings-common@0.0.1
+
## 0.8.13-next.0
### Patch Changes
diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json
index 8c73defa89..516b34d5cc 100644
--- a/plugins/user-settings/package.json
+++ b/plugins/user-settings/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-user-settings",
- "version": "0.8.13-next.0",
+ "version": "0.8.14-next.1",
"description": "A Backstage plugin that provides a settings page",
"backstage": {
"role": "frontend-plugin",
@@ -70,7 +70,6 @@
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.61",
- "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-use": "^17.2.4",
"zen-observable": "^0.10.0"
},
@@ -83,13 +82,23 @@
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^16.0.0",
"@testing-library/user-event": "^14.0.0",
- "msw": "^1.0.0"
+ "@types/react": "^18.0.0",
+ "msw": "^1.0.0",
+ "react": "^18.0.2",
+ "react-dom": "^18.0.2",
+ "react-router-dom": "^6.3.0"
},
"peerDependencies": {
+ "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0",
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
},
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ },
"configSchema": {
"$schema": "https://backstage.io/schema/config-v1",
"title": "@backstage/user-settings",
diff --git a/scripts/pin-workspace-versions.js b/scripts/pin-workspace-versions.js
new file mode 100755
index 0000000000..cbfb0c720b
--- /dev/null
+++ b/scripts/pin-workspace-versions.js
@@ -0,0 +1,59 @@
+#!/usr/bin/env node
+/*
+ * Copyright 2024 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// This switches all `workspace:^` dependencies in the project to instead use `workspace:*`
+// This is used for next releases in order to avoid the `^` range that is otherwise likely to cause issues.
+// For example, a `^0.5.0-next.0` range will match `0.5.0-next.0`, `0.5.0-next.1`, and even `0.5.2`.
+// This can often lead to issues as there might be breaking changes across these versions, and in practice
+// it will only be possible to install the most recent release without a lot of hassle.
+
+const fs = require('fs-extra');
+const { getPackages } = require('@manypkg/get-packages');
+const { resolve } = require('path');
+
+const depTypes = ['dependencies', 'devDependencies', 'peerDependencies'];
+
+async function main() {
+ const rootPath = resolve(__dirname, '..');
+ const { packages } = await getPackages(rootPath);
+
+ for (const pkg of packages) {
+ let changed = false;
+ for (const depType of depTypes) {
+ const deps = pkg.packageJson[depType];
+ if (deps) {
+ for (const depName of Object.keys(deps)) {
+ if (deps[depName] === 'workspace:^') {
+ deps[depName] = 'workspace:*';
+ changed = true;
+ }
+ }
+ }
+ }
+
+ if (changed) {
+ await fs.writeJson(resolve(pkg.dir, 'package.json'), pkg.packageJson, {
+ spaces: 2,
+ });
+ }
+ }
+}
+
+main(process.argv.slice(2)).catch(error => {
+ console.error(error.stack || error);
+ process.exit(1);
+});
diff --git a/yarn.lock b/yarn.lock
index 231e84a976..428619bfc8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1891,7 +1891,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.19.6, @babel/core@npm:^7.24.5, @babel/core@npm:^7.24.7":
+"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.19.6, @babel/core@npm:^7.24.7, @babel/core@npm:^7.25.2":
version: 7.25.2
resolution: "@babel/core@npm:7.25.2"
dependencies:
@@ -2975,7 +2975,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-react-jsx-self@npm:^7.24.5":
+"@babel/plugin-transform-react-jsx-self@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.7"
dependencies:
@@ -2986,7 +2986,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-react-jsx-source@npm:^7.24.1":
+"@babel/plugin-transform-react-jsx-source@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.7"
dependencies:
@@ -3398,14 +3398,14 @@ __metadata:
linkType: hard
"@backstage-community/plugin-puppetdb@npm:^0.1.18":
- version: 0.1.20
- resolution: "@backstage-community/plugin-puppetdb@npm:0.1.20"
+ version: 0.1.21
+ resolution: "@backstage-community/plugin-puppetdb@npm:0.1.21"
dependencies:
- "@backstage/catalog-model": ^1.6.0
- "@backstage/core-components": ^0.14.10
- "@backstage/core-plugin-api": ^1.9.3
+ "@backstage/catalog-model": ^1.7.0
+ "@backstage/core-components": ^0.15.0
+ "@backstage/core-plugin-api": ^1.9.4
"@backstage/errors": ^1.2.4
- "@backstage/plugin-catalog-react": ^1.12.3
+ "@backstage/plugin-catalog-react": ^1.13.1
"@material-ui/core": ^4.12.2
"@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react-use: ^17.2.4
@@ -3413,16 +3413,16 @@ __metadata:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 231855a135575bdc6eb92890602589adcf82c5eabaec7dfaef456c598454d8d05e2484ee80c3684824a9b52f62ce313d5e780722ae0553c3742ec7a89ec558c7
+ checksum: 35ba13300ef26f705ebd7844bfb8e6dc9bda4db5a4d92d09a9d1dbff52c73a5c4175081fd6b3ef4612cb6018250eedd4e7e1db63b9f1339f723866813dae1595
languageName: node
linkType: hard
"@backstage-community/plugin-stackstorm@npm:^0.1.16":
- version: 0.1.18
- resolution: "@backstage-community/plugin-stackstorm@npm:0.1.18"
+ version: 0.1.19
+ resolution: "@backstage-community/plugin-stackstorm@npm:0.1.19"
dependencies:
- "@backstage/core-components": ^0.14.10
- "@backstage/core-plugin-api": ^1.9.3
+ "@backstage/core-components": ^0.15.0
+ "@backstage/core-plugin-api": ^1.9.4
"@backstage/errors": ^1.2.4
"@material-ui/core": ^4.12.2
"@material-ui/icons": ^4.9.1
@@ -3432,7 +3432,7 @@ __metadata:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 9a11e4ee8c6e28df83658b91efa27d41808664a19b71b874b7a3eaa1a6befa1733f92ed14902f291e8050cc78a879357ab2fd0b37042cad9f0953d78953fcfd5
+ checksum: 861f59dbdc65e8ed9cb0bbcf08761ce7ae4cc5e43b548e95e99d3411930e77ff946cf6498212d8e3347b1d95feeb2df2777c02f606e9fe224ed22e261e1e2a1d
languageName: node
linkType: hard
@@ -3451,11 +3451,18 @@ __metadata:
"@material-ui/icons": ^4.9.1
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -3839,7 +3846,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/catalog-model@^1.4.3, @backstage/catalog-model@^1.6.0, @backstage/catalog-model@^1.7.0, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model":
+"@backstage/catalog-model@^1.4.3, @backstage/catalog-model@^1.7.0, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model":
version: 0.0.0-use.local
resolution: "@backstage/catalog-model@workspace:packages/catalog-model"
dependencies:
@@ -3927,7 +3934,6 @@ __metadata:
"@swc/helpers": ^0.5.0
"@swc/jest": ^0.2.22
"@types/cross-spawn": ^6.0.2
- "@types/diff": ^5.0.0
"@types/ejs": ^3.1.3
"@types/express": ^4.17.6
"@types/fs-extra": ^11.0.0
@@ -3959,7 +3965,6 @@ __metadata:
css-loader: ^6.5.1
ctrlc-windows: ^2.1.0
del: ^7.0.0
- diff: ^5.0.0
esbuild: ^0.23.0
esbuild-loader: ^4.0.0
eslint: ^8.6.0
@@ -4121,14 +4126,17 @@ __metadata:
"@testing-library/react-hooks": ^8.0.0
"@testing-library/user-event": ^14.0.0
"@types/prop-types": ^15.7.3
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
"@types/zen-observable": ^0.8.0
history: ^5.0.0
i18next: ^22.4.15
lodash: ^4.17.21
msw: ^1.0.0
prop-types: ^15.7.2
+ react: ^18.0.2
+ react-dom: ^18.0.2
react-router-beta: "npm:react-router@6.0.0-beta.0"
+ react-router-dom: ^6.3.0
react-router-dom-beta: "npm:react-router-dom@6.0.0-beta.0"
react-router-dom-stable: "npm:react-router-dom@^6.3.0"
react-router-stable: "npm:react-router@^6.3.0"
@@ -4136,9 +4144,13 @@ __metadata:
zen-observable: ^0.10.0
zod: ^3.22.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4177,12 +4189,20 @@ __metadata:
"@oriflame/backstage-plugin-score-card": ^0.8.0
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
lodash: ^4.17.21
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
zod: ^3.22.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4237,55 +4257,6 @@ __metadata:
languageName: node
linkType: hard
-"@backstage/core-components@npm:^0.14.10":
- version: 0.14.10
- resolution: "@backstage/core-components@npm:0.14.10"
- dependencies:
- "@backstage/config": ^1.2.0
- "@backstage/core-plugin-api": ^1.9.3
- "@backstage/errors": ^1.2.4
- "@backstage/theme": ^0.5.6
- "@backstage/version-bridge": ^1.0.8
- "@date-io/core": ^1.3.13
- "@material-table/core": ^3.1.0
- "@material-ui/core": ^4.12.2
- "@material-ui/icons": ^4.9.1
- "@material-ui/lab": 4.0.0-alpha.61
- "@react-hookz/web": ^24.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
- "@types/react-sparklines": ^1.7.0
- ansi-regex: ^6.0.1
- classnames: ^2.2.6
- d3-selection: ^3.0.0
- d3-shape: ^3.0.0
- d3-zoom: ^3.0.0
- dagre: ^0.8.5
- linkify-react: 4.1.3
- linkifyjs: 4.1.3
- lodash: ^4.17.21
- pluralize: ^8.0.0
- qs: ^6.9.4
- rc-progress: 3.5.1
- react-helmet: 6.1.0
- react-hook-form: ^7.12.2
- react-idle-timer: 5.7.2
- react-markdown: ^8.0.0
- react-sparklines: ^1.7.0
- react-syntax-highlighter: ^15.4.5
- react-use: ^17.3.2
- react-virtualized-auto-sizer: ^1.0.11
- react-window: ^1.8.6
- remark-gfm: ^3.0.1
- zen-observable: ^0.10.0
- zod: ^3.22.4
- peerDependencies:
- react: ^16.13.1 || ^17.0.0 || ^18.0.0
- react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
- react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 303682d411b846a4892b27c1064d499dbd4eccb5a3cdc5acbb1d3247e1141f4704efc7bd286744c19818487e52a61891943156817f59e3bd6555926f7331f575
- languageName: node
- linkType: hard
-
"@backstage/core-components@npm:^0.15.0":
version: 0.15.0
resolution: "@backstage/core-components@npm:0.15.0"
@@ -4365,7 +4336,7 @@ __metadata:
"@types/d3-zoom": ^3.0.1
"@types/dagre": ^0.7.44
"@types/google-protobuf": ^3.7.2
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
"@types/react-helmet": ^6.1.0
"@types/react-sparklines": ^1.7.0
"@types/react-syntax-highlighter": ^15.0.0
@@ -4387,10 +4358,13 @@ __metadata:
pluralize: ^8.0.0
qs: ^6.9.4
rc-progress: 3.5.1
+ react: ^18.0.2
+ react-dom: ^18.0.2
react-helmet: 6.1.0
react-hook-form: ^7.12.2
react-idle-timer: 5.7.2
react-markdown: ^8.0.0
+ react-router-dom: ^6.3.0
react-sparklines: ^1.7.0
react-syntax-highlighter: ^15.4.5
react-use: ^17.3.2
@@ -4400,13 +4374,17 @@ __metadata:
zen-observable: ^0.10.0
zod: ^3.22.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
-"@backstage/core-plugin-api@npm:^1.8.2, @backstage/core-plugin-api@npm:^1.9.3, @backstage/core-plugin-api@npm:^1.9.4":
+"@backstage/core-plugin-api@npm:^1.8.2, @backstage/core-plugin-api@npm:^1.9.4":
version: 1.9.4
resolution: "@backstage/core-plugin-api@npm:1.9.4"
dependencies:
@@ -4439,12 +4417,19 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
history: ^5.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4495,13 +4480,20 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
zen-observable: ^0.10.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4561,12 +4553,20 @@ __metadata:
"@backstage/version-bridge": "workspace:^"
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
lodash: ^4.17.21
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
zod: ^3.22.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4585,9 +4585,18 @@ __metadata:
"@react-hookz/web": ^24.0.0
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4626,14 +4635,22 @@ __metadata:
"@material-ui/core": ^4.12.4
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
history: ^5.3.0
lodash: ^4.17.21
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
zod: ^3.22.4
zod-to-json-schema: ^3.21.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4650,12 +4667,20 @@ __metadata:
"@backstage/types": "workspace:^"
"@backstage/version-bridge": "workspace:^"
"@testing-library/jest-dom": ^6.0.0
- "@types/react": "*"
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
zod: ^3.22.4
peerDependencies:
"@testing-library/react": ^16.0.0
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4678,9 +4703,9 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/integration-react@npm:^1.1.31":
- version: 1.1.31
- resolution: "@backstage/integration-react@npm:1.1.31"
+"@backstage/integration-react@npm:^1.1.32":
+ version: 1.1.32
+ resolution: "@backstage/integration-react@npm:1.1.32"
dependencies:
"@backstage/config": ^1.2.0
"@backstage/core-plugin-api": ^1.9.4
@@ -4692,7 +4717,7 @@ __metadata:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: a31313bc3cd2189535eee6150ad49963f3172fa33d1c1f1c7f93e46b891c67ead9e0ea810bcfcbd6dc5ceabebb2036b0d562ec2088b0559d48c22e8b65e09bd1
+ checksum: d26362ad3a8a6c8ac41b3eadf9c6d5b01e3cef3ca3e38a86bbf7b1c5e1b6e8ba5e940e74d31006faf0640a366ba8c5deb0ca6cbc58099d5f51fae6a7484944d6
languageName: node
linkType: hard
@@ -4711,16 +4736,40 @@ __metadata:
"@material-ui/icons": ^4.9.1
"@testing-library/dom": ^10.0.0
"@testing-library/jest-dom": ^6.0.0
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
msw: ^1.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
-"@backstage/integration@^1.15.0, @backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration":
+"@backstage/integration@npm:^1.15.0":
+ version: 1.15.0
+ resolution: "@backstage/integration@npm:1.15.0"
+ dependencies:
+ "@azure/identity": ^4.0.0
+ "@backstage/config": ^1.2.0
+ "@backstage/errors": ^1.2.4
+ "@octokit/auth-app": ^4.0.0
+ "@octokit/rest": ^19.0.3
+ cross-fetch: ^4.0.0
+ git-url-parse: ^14.0.0
+ lodash: ^4.17.21
+ luxon: ^3.0.0
+ checksum: a2c5b51b1403341f56fe91bd53a1105875855642927b95277c3e8ea29d604b718c39984fd2b8cd298d6206d1f23718da10dbbb53f4ec6eb74b296e6621fc4b7e
+ languageName: node
+ linkType: hard
+
+"@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration":
version: 0.0.0-use.local
resolution: "@backstage/integration@workspace:packages/integration"
dependencies:
@@ -4746,12 +4795,19 @@ __metadata:
dependencies:
"@backstage/cli": "workspace:^"
"@testing-library/jest-dom": ^6.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
grpc-docs: ^1.1.2
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4782,18 +4838,25 @@ __metadata:
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
"@types/highlightjs": ^10.1.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
"@types/swagger-ui-react": ^4.18.0
graphiql: 3.1.1
graphql: ^16.0.0
graphql-config: ^5.0.2
graphql-ws: ^5.4.1
isomorphic-form-data: ^2.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
swagger-ui-react: ^5.0.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4852,11 +4915,18 @@ __metadata:
"@backstage/frontend-plugin-api": "workspace:^"
"@material-ui/core": ^4.12.2
"@material-ui/icons": ^4.9.1
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -4878,13 +4948,20 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
msw: ^1.0.0
- react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -5401,10 +5478,19 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
msw: ^1.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -5495,7 +5581,6 @@ __metadata:
version: 0.0.0-use.local
resolution: "@backstage/plugin-catalog-backend-module-bitbucket-cloud@workspace:plugins/catalog-backend-module-bitbucket-cloud"
dependencies:
- "@backstage/backend-common": ^0.25.0
"@backstage/backend-plugin-api": "workspace:^"
"@backstage/backend-test-utils": "workspace:^"
"@backstage/catalog-client": "workspace:^"
@@ -5907,16 +5992,23 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
classnames: ^2.3.1
lodash: ^4.17.15
p-limit: ^3.1.0
qs: ^6.9.4
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -5949,18 +6041,25 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
git-url-parse: ^14.0.0
js-base64: ^3.6.0
lodash: ^4.17.21
msw: ^1.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
react-hook-form: ^7.12.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
yaml: ^2.0.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -5981,9 +6080,9 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-catalog-react@npm:^1.12.3, @backstage/plugin-catalog-react@npm:^1.9.3":
- version: 1.13.0
- resolution: "@backstage/plugin-catalog-react@npm:1.13.0"
+"@backstage/plugin-catalog-react@npm:^1.13.1, @backstage/plugin-catalog-react@npm:^1.9.3":
+ version: 1.13.1
+ resolution: "@backstage/plugin-catalog-react@npm:1.13.1"
dependencies:
"@backstage/catalog-client": ^1.7.0
"@backstage/catalog-model": ^1.7.0
@@ -5992,7 +6091,7 @@ __metadata:
"@backstage/core-plugin-api": ^1.9.4
"@backstage/errors": ^1.2.4
"@backstage/frontend-plugin-api": ^0.8.0
- "@backstage/integration-react": ^1.1.31
+ "@backstage/integration-react": ^1.1.32
"@backstage/plugin-catalog-common": ^1.1.0
"@backstage/plugin-permission-common": ^0.8.1
"@backstage/plugin-permission-react": ^0.4.26
@@ -6014,7 +6113,7 @@ __metadata:
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: e86fdfdab9f2b0fcbc68b0521acbc3c2ba95ab4206aabb09f307021960776f0aca6335cdb47b27c506b4a32f88768716839fe1e09e156d8970414da94992f0b9
+ checksum: d41f4d3a72f17be6a9019a4d8acaeb9d3198e2b1d0e25bd28efb3b5617d301a5798e259d4bcc077351d76e1c130e565344564bf987f4079f4b4bc040ae7a9878
languageName: node
linkType: hard
@@ -6048,20 +6147,27 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
"@types/zen-observable": ^0.8.0
classnames: ^2.2.6
lodash: ^4.17.21
material-ui-popup-state: ^1.9.3
qs: ^6.9.4
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-test-renderer: ^16.13.1
react-use: ^17.2.4
yaml: ^2.0.0
zen-observable: ^0.10.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6089,13 +6195,20 @@ __metadata:
"@material-ui/lab": ^4.0.0-alpha.60
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
luxon: ^3.5.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6133,19 +6246,26 @@ __metadata:
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
"@types/pluralize": ^0.0.33
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
dataloader: ^2.0.0
expiry-map: ^2.0.0
history: ^5.0.0
lodash: ^4.17.21
pluralize: ^8.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
swr: ^2.2.5
zen-observable: ^0.10.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6165,14 +6285,21 @@ __metadata:
"@testing-library/dom": ^10.0.0
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
jsonschema: ^1.2.6
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
zen-observable: ^0.10.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6239,13 +6366,20 @@ __metadata:
"@material-ui/icons": ^4.9.1
"@material-ui/lab": ^4.0.0-alpha.57
"@testing-library/jest-dom": ^6.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
react-json-view: ^1.21.3
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
"@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6390,12 +6524,19 @@ __metadata:
"@material-ui/core": ^4.12.2
"@material-ui/icons": ^4.9.1
"@rjsf/utils": 5.21.1
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
"@types/react-grid-layout": ^1.3.2
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6428,18 +6569,25 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
"@types/react-grid-layout": ^1.3.2
lodash: ^4.17.21
luxon: ^3.4.3
+ react: ^18.0.2
+ react-dom: ^18.0.2
react-grid-layout: 1.3.4
react-resizable: ^3.0.4
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
zod: ^3.22.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6511,24 +6659,31 @@ __metadata:
"@backstage/plugin-kubernetes-react": "workspace:^"
"@backstage/test-utils": "workspace:^"
"@kubernetes-models/apimachinery": ^1.1.0
- "@kubernetes-models/base": ^4.0.1
+ "@kubernetes-models/base": ^5.0.0
"@material-ui/core": ^4.12.2
"@material-ui/lab": 4.0.0-alpha.61
"@testing-library/dom": ^10.0.0
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@types/node": ^16.11.26
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
cronstrue: ^2.2.0
js-yaml: ^4.0.0
kubernetes-models: ^4.1.0
lodash: ^4.17.21
luxon: ^3.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6583,14 +6738,14 @@ __metadata:
"@backstage/test-utils": "workspace:^"
"@backstage/types": "workspace:^"
"@kubernetes-models/apimachinery": ^1.1.0
- "@kubernetes-models/base": ^4.0.1
+ "@kubernetes-models/base": ^5.0.0
"@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
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
cronstrue: ^2.32.0
jest-websocket-mock: ^2.5.0
js-yaml: ^4.1.0
@@ -6598,12 +6753,21 @@ __metadata:
lodash: ^4.17.21
luxon: ^3.0.0
msw: ^1.3.1
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.4.0
xterm: ^5.3.0
xterm-addon-attach: ^0.9.0
xterm-addon-fit: ^0.8.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6623,25 +6787,32 @@ __metadata:
"@backstage/plugin-kubernetes-react": "workspace:^"
"@backstage/test-utils": "workspace:^"
"@kubernetes-models/apimachinery": ^1.1.0
- "@kubernetes-models/base": ^4.0.1
+ "@kubernetes-models/base": ^5.0.0
"@kubernetes/client-node": 0.20.0
"@material-ui/core": ^4.12.2
"@testing-library/dom": ^10.0.0
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
cronstrue: ^2.2.0
js-yaml: ^4.0.0
kubernetes-models: ^4.1.0
lodash: ^4.17.21
luxon: ^3.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
xterm: ^5.2.1
xterm-addon-attach: ^0.9.0
xterm-addon-fit: ^0.8.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6759,16 +6930,24 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
lodash: ^4.17.21
material-ui-confirm: ^3.0.12
msw: ^1.0.0
notistack: ^3.0.1
+ react: ^18.0.2
+ react-dom: ^18.0.2
react-relative-time: ^0.0.9
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
- react: ^16.13.1 || ^17.0.0
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6791,12 +6970,19 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6827,16 +7013,23 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
lodash: ^4.17.21
p-limit: ^3.1.0
pluralize: ^8.0.0
qs: ^6.10.1
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -6948,12 +7141,19 @@ __metadata:
"@backstage/test-utils": "workspace:^"
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
swr: ^2.0.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -7378,7 +7578,18 @@ __metadata:
"@backstage/cli": "workspace:^"
"@backstage/plugin-scaffolder-node": "workspace:^"
"@backstage/types": "workspace:^"
- "@types/react": "*"
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
+ peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -7445,7 +7656,7 @@ __metadata:
"@types/humanize-duration": ^3.18.1
"@types/json-schema": ^7.0.9
"@types/luxon": ^3.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
ajv-errors: ^3.0.0
classnames: ^2.2.6
flatted: 3.3.1
@@ -7455,6 +7666,9 @@ __metadata:
lodash: ^4.17.21
luxon: ^3.0.0
qs: ^6.9.4
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
swr: ^2.0.0
use-immer: ^0.10.0
@@ -7462,9 +7676,13 @@ __metadata:
zod: ^3.22.4
zod-to-json-schema: ^3.20.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -7511,7 +7729,7 @@ __metadata:
"@testing-library/user-event": ^14.0.0
"@types/humanize-duration": ^3.18.1
"@types/json-schema": ^7.0.9
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
"@types/react-resizable": ^3.0.8
"@types/react-window": ^1.8.8
"@uiw/react-codemirror": ^4.9.3
@@ -7526,7 +7744,10 @@ __metadata:
luxon: ^3.0.0
msw: ^1.0.0
qs: ^6.9.4
+ react: ^18.0.2
+ react-dom: ^18.0.2
react-resizable: ^3.0.5
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
react-window: ^1.8.10
swr: ^2.0.0
@@ -7535,9 +7756,13 @@ __metadata:
zod: ^3.22.4
zod-to-json-schema: ^3.20.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -7744,14 +7969,21 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
lodash: ^4.17.21
qs: ^6.9.4
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.3.2
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -7779,14 +8011,21 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
history: ^5.0.0
qs: ^6.9.4
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -7852,8 +8091,18 @@ __metadata:
"@material-ui/core": ^4.12.4
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
- react: ^16.13.1 || ^17.0.0
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -7876,12 +8125,22 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
+ "@types/react": ^18.0.0
jest-websocket-mock: ^2.5.0
msw: ^1.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
uuid: ^9.0.0
peerDependencies:
- react: ^16.13.1 || ^17.0.0
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -7901,13 +8160,20 @@ __metadata:
"@backstage/test-utils": "workspace:^"
"@testing-library/dom": ^10.0.0
"@testing-library/jest-dom": ^6.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
testing-library__dom: ^7.29.4-beta.1
peerDependencies:
"@testing-library/react": ^16.0.0
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -7971,13 +8237,20 @@ __metadata:
"@testing-library/dom": ^10.0.0
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
git-url-parse: ^14.0.0
photoswipe: ^5.3.7
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -8002,7 +8275,7 @@ __metadata:
"@backstage/plugin-search-common": "workspace:^"
"@backstage/plugin-techdocs-common": "workspace:^"
"@google-cloud/storage": ^7.0.0
- "@smithy/node-http-handler": ^2.1.7
+ "@smithy/node-http-handler": ^3.0.0
"@trendyol-js/openstack-swift-sdk": ^0.0.7
"@types/express": ^4.17.6
"@types/fs-extra": ^11.0.0
@@ -8042,15 +8315,22 @@ __metadata:
"@material-ui/styles": ^4.11.0
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
jss: ~10.10.0
lodash: ^4.17.21
+ react: ^18.0.2
+ react-dom: ^18.0.2
react-helmet: 6.1.0
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -8089,18 +8369,25 @@ __metadata:
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
"@types/dompurify": ^3.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
canvas: ^2.10.2
dompurify: ^3.0.0
git-url-parse: ^14.0.0
jss: ~10.10.0
lodash: ^4.17.21
+ react: ^18.0.2
+ react-dom: ^18.0.2
react-helmet: 6.1.0
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -8163,14 +8450,21 @@ __metadata:
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
"@testing-library/user-event": ^14.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
msw: ^1.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
zen-observable: ^0.10.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -8259,20 +8553,43 @@ __metadata:
"@material-ui/core": ^4.12.2
"@material-ui/icons": ^4.9.1
"@testing-library/jest-dom": ^6.0.0
- "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ "@types/react": ^18.0.0
cross-fetch: ^4.0.0
i18next: ^22.4.15
msw: ^1.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
zen-observable: ^0.10.0
peerDependencies:
"@testing-library/react": ^16.0.0
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
-"@backstage/theme@^0.5.0, @backstage/theme@^0.5.6, @backstage/theme@^0.5.7, @backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme":
+"@backstage/theme@npm:^0.5.0, @backstage/theme@npm:^0.5.7":
+ version: 0.5.7
+ resolution: "@backstage/theme@npm:0.5.7"
+ dependencies:
+ "@emotion/react": ^11.10.5
+ "@emotion/styled": ^11.10.5
+ "@mui/material": ^5.12.2
+ peerDependencies:
+ "@material-ui/core": ^4.12.2
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
+ react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ checksum: 5a315a198481f7b0c6f1a11bc102c36d2976cae25184ce6e28e6e44ce4a742e4d4416f19c71ac44f574a2745e30d13508a6c152f00e1facdef9c9d12dc3d0449
+ languageName: node
+ linkType: hard
+
+"@backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme":
version: 0.0.0-use.local
resolution: "@backstage/theme@workspace:packages/theme"
dependencies:
@@ -8283,12 +8600,19 @@ __metadata:
"@mui/styles": ^5.14.18
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
"@material-ui/core": ^4.12.2
"@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -8303,18 +8627,38 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/version-bridge@^1.0.7, @backstage/version-bridge@^1.0.8, @backstage/version-bridge@^1.0.9, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge":
+"@backstage/version-bridge@npm:^1.0.7, @backstage/version-bridge@npm:^1.0.9":
+ version: 1.0.9
+ resolution: "@backstage/version-bridge@npm:1.0.9"
+ dependencies:
+ "@types/react": ^16.13.1 || ^17.0.0
+ peerDependencies:
+ react: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
+ react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ checksum: eb805a747c66a9c78654109d6774d5a7c16175240fe9441c71800d7b2b9965e6e04960af902cbaf4fc9eb15e9c665888cf6e1b7c4e4f157c8617873999545c0f
+ languageName: node
+ linkType: hard
+
+"@backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge":
version: 0.0.0-use.local
resolution: "@backstage/version-bridge@workspace:packages/version-bridge"
dependencies:
"@backstage/cli": "workspace:^"
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -8633,8 +8977,8 @@ __metadata:
linkType: hard
"@codemirror/language@npm:^6.0.0":
- version: 6.10.2
- resolution: "@codemirror/language@npm:6.10.2"
+ version: 6.10.3
+ resolution: "@codemirror/language@npm:6.10.3"
dependencies:
"@codemirror/state": ^6.0.0
"@codemirror/view": ^6.23.0
@@ -8642,7 +8986,7 @@ __metadata:
"@lezer/highlight": ^1.0.0
"@lezer/lr": ^1.0.0
style-mod: ^4.0.0
- checksum: 4e60afb75fb56519f59d9d85e0aa03f0c8d017e0da0f3f8f321baf35a776801fcec9787f3d0c029eba12aa766fba98b0fe86fc3111b43e0812b554184c0e8d67
+ checksum: 53fb72299500f63706f78c888d6b5fd81043ea11ea2fa4c72c13c6d4794bb6f4ec29450208c56b4f40e839984b3dc73505262803fa61416baf588da389a7c577
languageName: node
linkType: hard
@@ -8697,13 +9041,13 @@ __metadata:
linkType: hard
"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.23.0":
- version: 6.33.0
- resolution: "@codemirror/view@npm:6.33.0"
+ version: 6.34.1
+ resolution: "@codemirror/view@npm:6.34.1"
dependencies:
"@codemirror/state": ^6.4.0
style-mod: ^4.1.0
w3c-keyname: ^2.2.4
- checksum: e28896a7fb40df8e7221fbebfc2cd92c10c6963948e20f3a4300e99c897fbddd091f4fc90cc30eeaf90d07c61dcf6170cd3c164810606fa07337ffb970ffdac2
+ checksum: 5c7bf199f0b45a3cc192f08c2ac89e5ab972f313cb4f2c979edf6e05b27bccd60c6cb42d5dacb6813ef3a928d75476eb0a00ffdeffd7431c8e9f44bab4f6e12e
languageName: node
linkType: hard
@@ -10159,12 +10503,19 @@ __metadata:
"@testing-library/dom": ^10.0.0
"@testing-library/jest-dom": ^6.0.0
"@testing-library/react": ^16.0.0
- "@types/react": ^16.13.1 || ^17.0.0
+ "@types/react": ^18.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
react-use: ^17.2.4
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -10615,7 +10966,7 @@ __metadata:
languageName: node
linkType: hard
-"@kubernetes-models/base@npm:^4.0.1, @kubernetes-models/base@npm:^4.0.4":
+"@kubernetes-models/base@npm:^4.0.4":
version: 4.0.4
resolution: "@kubernetes-models/base@npm:4.0.4"
dependencies:
@@ -11331,9 +11682,9 @@ __metadata:
languageName: node
linkType: hard
-"@mswjs/interceptors@npm:^0.35.6":
- version: 0.35.6
- resolution: "@mswjs/interceptors@npm:0.35.6"
+"@mswjs/interceptors@npm:^0.35.8":
+ version: 0.35.9
+ resolution: "@mswjs/interceptors@npm:0.35.9"
dependencies:
"@open-draft/deferred-promise": ^2.2.0
"@open-draft/logger": ^0.3.0
@@ -11341,7 +11692,7 @@ __metadata:
is-node-process: ^1.2.0
outvariant: ^1.4.3
strict-event-emitter: ^0.5.1
- checksum: aee024149ae5f034d628e8685a4e12ab4eca6706a5d1ba459987fcc7994f93c3598cf21099352a776657b92cbb410eab0d3231f3ab2317056c6a399e0dd3f118
+ checksum: 35b9382b94b7e3af962dc901db80bde99385645fb0b1f4cbaf64d58ff7181adb962430437db5b7d6db9db2e82399a3d1f319378d3c98e72c7ada8245180f0979
languageName: node
linkType: hard
@@ -11521,54 +11872,54 @@ __metadata:
languageName: node
linkType: hard
-"@nestjs/axios@npm:3.0.2":
- version: 3.0.2
- resolution: "@nestjs/axios@npm:3.0.2"
+"@nestjs/axios@npm:3.0.3":
+ version: 3.0.3
+ resolution: "@nestjs/axios@npm:3.0.3"
peerDependencies:
"@nestjs/common": ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0
axios: ^1.3.1
rxjs: ^6.0.0 || ^7.0.0
- checksum: 285a735fb5db602b63aa4a37e161f609b2cec05b69f4bffe983617c2136ac29c0a33bb96e6276d22a656907bed5d53460e740310bc05c043dcd39c37db7cda29
+ checksum: 4e4cd4a26dc53687cedcf360cf686839608ba80d7c9c7e449546299545ddad69fb2dd199f868f3de5d00bc3ab795fecda79971de1599c24f647f2c6c95a21bb9
languageName: node
linkType: hard
-"@nestjs/common@npm:10.3.0":
- version: 10.3.0
- resolution: "@nestjs/common@npm:10.3.0"
+"@nestjs/common@npm:10.4.3":
+ version: 10.4.3
+ resolution: "@nestjs/common@npm:10.4.3"
dependencies:
iterare: 1.2.1
- tslib: 2.6.2
+ tslib: 2.7.0
uid: 2.0.2
peerDependencies:
class-transformer: "*"
class-validator: "*"
- reflect-metadata: ^0.1.12
+ reflect-metadata: ^0.1.12 || ^0.2.0
rxjs: ^7.1.0
peerDependenciesMeta:
class-transformer:
optional: true
class-validator:
optional: true
- checksum: c5444cb46bd4f4a4d28b5031f7c28a0cf9863bc2d5518910bfed6a49734f59e1ea08dd4651e2117ae82df81c933ef84f0963c5cdeee5ef1608cf1bd36ee291c5
+ checksum: 980d545251c9310fb0680c07fe8a4de65033970e6db0d2bb9b9a82d54842c5e487ca94d1c147dbbdc959b745dabfa9a30a12915523cdb714c450130bc11f14b7
languageName: node
linkType: hard
-"@nestjs/core@npm:10.3.0":
- version: 10.3.0
- resolution: "@nestjs/core@npm:10.3.0"
+"@nestjs/core@npm:10.4.3":
+ version: 10.4.3
+ resolution: "@nestjs/core@npm:10.4.3"
dependencies:
"@nuxtjs/opencollective": 0.3.2
fast-safe-stringify: 2.1.1
iterare: 1.2.1
- path-to-regexp: 3.2.0
- tslib: 2.6.2
+ path-to-regexp: 3.3.0
+ tslib: 2.7.0
uid: 2.0.2
peerDependencies:
"@nestjs/common": ^10.0.0
"@nestjs/microservices": ^10.0.0
"@nestjs/platform-express": ^10.0.0
"@nestjs/websockets": ^10.0.0
- reflect-metadata: ^0.1.12
+ reflect-metadata: ^0.1.12 || ^0.2.0
rxjs: ^7.1.0
peerDependenciesMeta:
"@nestjs/microservices":
@@ -11577,7 +11928,7 @@ __metadata:
optional: true
"@nestjs/websockets":
optional: true
- checksum: 7677b9fb97c8dec512c2a736c273ef08698b377af8c046bc5aad442ba3d35acbc17d177e76bf44a66678cae2ced2d265183e85be4190c501a195f16496df6396
+ checksum: 55e2b96f9851d58e42c35d2057bca7b700ced22724e5b17745a88bf2e1f8d61d9d7a84f31b19106982c0cd3d913de165031451ff3b05da1f7c04b83988c499e5
languageName: node
linkType: hard
@@ -12602,14 +12953,14 @@ __metadata:
linkType: hard
"@openapitools/openapi-generator-cli@npm:^2.4.26, @openapitools/openapi-generator-cli@npm:^2.7.0":
- version: 2.13.5
- resolution: "@openapitools/openapi-generator-cli@npm:2.13.5"
+ version: 2.13.12
+ resolution: "@openapitools/openapi-generator-cli@npm:2.13.12"
dependencies:
- "@nestjs/axios": 3.0.2
- "@nestjs/common": 10.3.0
- "@nestjs/core": 10.3.0
+ "@nestjs/axios": 3.0.3
+ "@nestjs/common": 10.4.3
+ "@nestjs/core": 10.4.3
"@nuxtjs/opencollective": 0.3.2
- axios: 1.7.4
+ axios: 1.7.7
chalk: 4.1.2
commander: 8.3.0
compare-versions: 4.1.4
@@ -12617,15 +12968,15 @@ __metadata:
console.table: 0.10.0
fs-extra: 10.1.0
glob: 7.2.3
- https-proxy-agent: 7.0.4
+ https-proxy-agent: 7.0.5
inquirer: 8.2.6
lodash: 4.17.21
reflect-metadata: 0.1.13
rxjs: 7.8.1
- tslib: 2.6.2
+ tslib: 2.7.0
bin:
openapi-generator-cli: main.js
- checksum: 923fcdfe29c2d349aaae28a86dd5f63a4f441233549a4575bce6760177c6c48508180c57569bcc4deb63a40d8d36049c4a9060e2884248b1b5fbab2d28954a4e
+ checksum: c2487abfef5dbfc8619824222424c4ab9c0accfdc77f1d6099efa7d4a0b960894351219fe75b12b5663afe4cd2136c3986297e141bf4b380fbfc4aec40704ef2
languageName: node
linkType: hard
@@ -13683,13 +14034,13 @@ __metadata:
linkType: hard
"@playwright/test@npm:^1.32.3":
- version: 1.47.1
- resolution: "@playwright/test@npm:1.47.1"
+ version: 1.47.2
+ resolution: "@playwright/test@npm:1.47.2"
dependencies:
- playwright: 1.47.1
+ playwright: 1.47.2
bin:
playwright: cli.js
- checksum: 8596e03e2a05f3fa3c3dac2a591d2366275dd643f6d181adf6b006ed1cb202b25a9ef1d13a41346bdbd9117cfe5e660422a8e1197bff9e020e569b1737f5dee9
+ checksum: 4f149613c0fd4a40061425efdf5c7a257df09e1b6b797ad221597ddde52381edb69fce6645bf3b95a11eee74147a2025c1951041f29dbc717dab0cc46d9c3427
languageName: node
linkType: hard
@@ -14596,114 +14947,114 @@ __metadata:
languageName: node
linkType: hard
-"@rollup/rollup-android-arm-eabi@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4"
+"@rollup/rollup-android-arm-eabi@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.5"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
-"@rollup/rollup-android-arm64@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-android-arm64@npm:4.22.4"
+"@rollup/rollup-android-arm64@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-android-arm64@npm:4.22.5"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-darwin-arm64@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4"
+"@rollup/rollup-darwin-arm64@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-darwin-arm64@npm:4.22.5"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-darwin-x64@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-darwin-x64@npm:4.22.4"
+"@rollup/rollup-darwin-x64@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-darwin-x64@npm:4.22.5"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4"
+"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.5"
conditions: os=linux & cpu=arm & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm-musleabihf@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4"
+"@rollup/rollup-linux-arm-musleabihf@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.5"
conditions: os=linux & cpu=arm & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm64-gnu@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4"
+"@rollup/rollup-linux-arm64-gnu@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.5"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm64-musl@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4"
+"@rollup/rollup-linux-arm64-musl@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.5"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4"
+"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.5"
conditions: os=linux & cpu=ppc64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-riscv64-gnu@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4"
+"@rollup/rollup-linux-riscv64-gnu@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.5"
conditions: os=linux & cpu=riscv64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-s390x-gnu@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4"
+"@rollup/rollup-linux-s390x-gnu@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.5"
conditions: os=linux & cpu=s390x & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-x64-gnu@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4"
+"@rollup/rollup-linux-x64-gnu@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.5"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-x64-musl@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4"
+"@rollup/rollup-linux-x64-musl@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.5"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-win32-arm64-msvc@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4"
+"@rollup/rollup-win32-arm64-msvc@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.5"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-win32-ia32-msvc@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4"
+"@rollup/rollup-win32-ia32-msvc@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.5"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@rollup/rollup-win32-x64-msvc@npm:4.22.4":
- version: 4.22.4
- resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4"
+"@rollup/rollup-win32-x64-msvc@npm:4.22.5":
+ version: 4.22.5
+ resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.5"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -14940,16 +15291,6 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/abort-controller@npm:^2.2.0":
- version: 2.2.0
- resolution: "@smithy/abort-controller@npm:2.2.0"
- dependencies:
- "@smithy/types": ^2.12.0
- tslib: ^2.6.2
- checksum: d0d7fcaa7b67b04c9ad825017110cc294ff06af07f8054ac3b75d8de88ff5fbef1d08f5c1ae672db1839d14ce25f277c459d2b7b7263cbe9e6c3d4518a19230e
- languageName: node
- linkType: hard
-
"@smithy/abort-controller@npm:^3.1.2":
version: 3.1.2
resolution: "@smithy/abort-controller@npm:3.1.2"
@@ -15240,20 +15581,7 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/node-http-handler@npm:^2.1.7":
- version: 2.5.0
- resolution: "@smithy/node-http-handler@npm:2.5.0"
- dependencies:
- "@smithy/abort-controller": ^2.2.0
- "@smithy/protocol-http": ^3.3.0
- "@smithy/querystring-builder": ^2.2.0
- "@smithy/types": ^2.12.0
- tslib: ^2.6.2
- checksum: 2e63fafdac5bef62181994af2ec065b0f7f04eaed88fb2990a21a9925226fead5013cf4f232b527f3f4d9ffb68ccbe8cd263ad22a7351d36b0dc23e975929a0c
- languageName: node
- linkType: hard
-
-"@smithy/node-http-handler@npm:^3.2.0":
+"@smithy/node-http-handler@npm:^3.0.0, @smithy/node-http-handler@npm:^3.2.0":
version: 3.2.0
resolution: "@smithy/node-http-handler@npm:3.2.0"
dependencies:
@@ -15276,16 +15604,6 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/protocol-http@npm:^3.3.0":
- version: 3.3.0
- resolution: "@smithy/protocol-http@npm:3.3.0"
- dependencies:
- "@smithy/types": ^2.12.0
- tslib: ^2.6.2
- checksum: 6c1aaaee9f6ecfb841766938312268f30cbda253f172de7467463aae7d7bfea19a801ab570f3737334e992d2d0ee7446e6af6a6fd82b08533790c489289dff76
- languageName: node
- linkType: hard
-
"@smithy/protocol-http@npm:^4.1.1":
version: 4.1.1
resolution: "@smithy/protocol-http@npm:4.1.1"
@@ -15296,17 +15614,6 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/querystring-builder@npm:^2.2.0":
- version: 2.2.0
- resolution: "@smithy/querystring-builder@npm:2.2.0"
- dependencies:
- "@smithy/types": ^2.12.0
- "@smithy/util-uri-escape": ^2.2.0
- tslib: ^2.6.2
- checksum: db492903302a694a0e982c37b9a74314160c5ee485742f24f8b6d0da66f121e7ff8588742a3a1964f6b983c15cacd52b883c5efa714882a754f575da7a7e014d
- languageName: node
- linkType: hard
-
"@smithy/querystring-builder@npm:^3.0.4":
version: 3.0.4
resolution: "@smithy/querystring-builder@npm:3.0.4"
@@ -15386,15 +15693,6 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/types@npm:^2.12.0":
- version: 2.12.0
- resolution: "@smithy/types@npm:2.12.0"
- dependencies:
- tslib: ^2.6.2
- checksum: 2dd93746624d87afbf51c22116fc69f82e95004b78cf681c4a283d908155c22a2b7a3afbd64a3aff7deefb6619276f186e212422ad200df3b42c32ef5330374e
- languageName: node
- linkType: hard
-
"@smithy/types@npm:^3.4.0":
version: 3.4.0
resolution: "@smithy/types@npm:3.4.0"
@@ -15558,15 +15856,6 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/util-uri-escape@npm:^2.2.0":
- version: 2.2.0
- resolution: "@smithy/util-uri-escape@npm:2.2.0"
- dependencies:
- tslib: ^2.6.2
- checksum: bade35312d75d1c84226f2a81b70dfef91766c02ecb6c6854b6f920cddb423e01963f7d0c183d523b5991f8e7ca93bcf73f8b3c6923979152b8350c9f3c24fd6
- languageName: node
- linkType: hard
-
"@smithy/util-uri-escape@npm:^3.0.0":
version: 3.0.0
resolution: "@smithy/util-uri-escape@npm:3.0.0"
@@ -17356,13 +17645,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/diff@npm:^5.0.0":
- version: 5.2.2
- resolution: "@types/diff@npm:5.2.2"
- checksum: f64504a8528fa2b1d6a966363e304ef0626d2e5e71bdcf4666a02b586f045cf7e47151cb80be00dbc310f19fa81fb45d3c37a0647441abd6942a54883dc4c6dc
- languageName: node
- linkType: hard
-
"@types/docker-modem@npm:*":
version: 3.0.2
resolution: "@types/docker-modem@npm:3.0.2"
@@ -17435,10 +17717,10 @@ __metadata:
languageName: node
linkType: hard
-"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5":
- version: 1.0.5
- resolution: "@types/estree@npm:1.0.5"
- checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a
+"@types/estree@npm:*, @types/estree@npm:1.0.6, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5":
+ version: 1.0.6
+ resolution: "@types/estree@npm:1.0.6"
+ checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9
languageName: node
linkType: hard
@@ -17666,11 +17948,11 @@ __metadata:
linkType: hard
"@types/jquery@npm:^3.3.34":
- version: 3.5.30
- resolution: "@types/jquery@npm:3.5.30"
+ version: 3.5.31
+ resolution: "@types/jquery@npm:3.5.31"
dependencies:
"@types/sizzle": "*"
- checksum: 4594d10fa9b347062883d254a23c9259ae814ef5989ce1985f093dcc7ad4475e324ac3343aef10599c478ea4951726f0e7f79d8ed471ab04de394b7e724d6d13
+ checksum: 14a682a6a00e5b0bfe7afbb359ea2ada51b6fdbd962f8ba2b6077989935bd41f395b920581538d218d3ac81e6e3929acb86db9ccb8aa55a67066da9ed55db775
languageName: node
linkType: hard
@@ -17792,9 +18074,9 @@ __metadata:
linkType: hard
"@types/lodash@npm:^4.14.151":
- version: 4.17.7
- resolution: "@types/lodash@npm:4.17.7"
- checksum: 09e58a119cd8a70acfb33f8623dc2fc54f74cdce3b3429b879fc2daac4807fe376190a04b9e024dd300f9a3ee1876d6623979cefe619f70654ca0fe0c47679a7
+ version: 4.17.9
+ resolution: "@types/lodash@npm:4.17.9"
+ checksum: 6d1bf3e77f0a54d97532755a74260d402d8972259c5451b74612c16cb983b73e0760e5bfe4f9e68ab15051511c867812b40715a01f9805afe6bc36c7dd676378
languageName: node
linkType: hard
@@ -17966,11 +18248,11 @@ __metadata:
linkType: hard
"@types/node@npm:*, @types/node@npm:>=13.7.0":
- version: 22.5.4
- resolution: "@types/node@npm:22.5.4"
+ version: 22.7.4
+ resolution: "@types/node@npm:22.7.4"
dependencies:
undici-types: ~6.19.2
- checksum: 77ac225c38c428200036780036da0bc6764e2721cfa8f528c7e7da7cfefe01a32a5791e28a54efbeedbc977949058d7db902b2e00139298225d4686cee4ae6db
+ checksum: a3f4154147639369aed08fe6f8d62eff637cf87b187bb252d7bbccdc82884626007af424b08a653c53f2182adfa0340001b4888cb7cbb942cef351210fc742a5
languageName: node
linkType: hard
@@ -17989,9 +18271,9 @@ __metadata:
linkType: hard
"@types/node@npm:^16.11.26, @types/node@npm:^16.7.10":
- version: 16.18.108
- resolution: "@types/node@npm:16.18.108"
- checksum: 5029ce7b0d247690360f2698da4fe765ef5cd5e2409b63b3a45e90bbf7bbaaf3497e769336fb7725be04a221d6e934e3a4616ec7fc205812943def3ea9d70862
+ version: 16.18.112
+ resolution: "@types/node@npm:16.18.112"
+ checksum: d634729e60d2e7bd951843fddf5fb59ae786ca707f384e8f90881b011076962b4e3fee3393e3be4be4fb7d86943893e0bda9650aea24ac692bdf407bf1a5d84d
languageName: node
linkType: hard
@@ -18003,20 +18285,20 @@ __metadata:
linkType: hard
"@types/node@npm:^18.11.9, @types/node@npm:^18.17.15, @types/node@npm:^18.17.8":
- version: 18.19.50
- resolution: "@types/node@npm:18.19.50"
+ version: 18.19.54
+ resolution: "@types/node@npm:18.19.54"
dependencies:
undici-types: ~5.26.4
- checksum: 73bdd2b46fb96816a1f7309e1b609f0832a29739c87df7daa729ff497160be143e02cf18486a0112e1981b092358aed3ca0716b532aff93c7e05f7dbb4f7586a
+ checksum: d85bacc7430c2913bcd2cf293f312bc1f9108819707ac25b58404185c3b8f9ca9e3e93c396672f457c18e65f5ba86cc8363803f830207c6b7dd14fd74e1455b0
languageName: node
linkType: hard
"@types/node@npm:^20.1.1, @types/node@npm:^20.11.16":
- version: 20.16.5
- resolution: "@types/node@npm:20.16.5"
+ version: 20.16.10
+ resolution: "@types/node@npm:20.16.10"
dependencies:
undici-types: ~6.19.2
- checksum: f38b7bd8c4993dcf38943afa2ffdd7dfd18fc94f8f3f28d0c1045a10d39871a6cc1b8f8d3bf0c7ed848457d0e1d283482f6ca125579c13fed1b7575d23e8e8f5
+ checksum: 8b4d5a0af828871627e80da095df50ef8ae7ca458f39ccde1d060e3bf97b0bc76af9547bd5d75ce4ccb1dd80466804b2fe4f12553c11cb8691c6667effd9a9d7
languageName: node
linkType: hard
@@ -18341,12 +18623,12 @@ __metadata:
linkType: hard
"@types/react@npm:^18":
- version: 18.3.7
- resolution: "@types/react@npm:18.3.7"
+ version: 18.3.10
+ resolution: "@types/react@npm:18.3.10"
dependencies:
"@types/prop-types": "*"
csstype: ^3.0.2
- checksum: 027cf84d8309c4d0a9b16ec26f71de0950e2d748293bbc4dac42519f77d0bec099aeb5fb1c0bcb891725973e53085c1aedea5c3a16bca215c2fc2ecf68c7ec6e
+ checksum: 04261654b5f4bc9584e9d882c7dfd5b36dc58963f958f8c3efd24cb68c9d205bc2d57558a1479b86d7827f0e5116d5bd111791d1253583d1e1c165f0aeb48c48
languageName: node
linkType: hard
@@ -19334,17 +19616,17 @@ __metadata:
linkType: hard
"@vitejs/plugin-react@npm:^4.3.1":
- version: 4.3.1
- resolution: "@vitejs/plugin-react@npm:4.3.1"
+ version: 4.3.2
+ resolution: "@vitejs/plugin-react@npm:4.3.2"
dependencies:
- "@babel/core": ^7.24.5
- "@babel/plugin-transform-react-jsx-self": ^7.24.5
- "@babel/plugin-transform-react-jsx-source": ^7.24.1
+ "@babel/core": ^7.25.2
+ "@babel/plugin-transform-react-jsx-self": ^7.24.7
+ "@babel/plugin-transform-react-jsx-source": ^7.24.7
"@types/babel__core": ^7.20.5
react-refresh: ^0.14.2
peerDependencies:
vite: ^4.2.0 || ^5.0.0
- checksum: 57872e0193c7e545c5ef4852cbe1adf17a6b35406a2aba4b3acce06c173a9dabbf6ff4c72701abc11bb3cbe24a056f5054f39018f7034c9aa57133a3a7770237
+ checksum: 6bd3f8ec4a5c1f9f2970217d6a7291fafb41b7760f7761b982b6835c8f9cd3874cea9eb3b6659aa75c511954fcec7707116ea32042854b1be47902ebbb781794
languageName: node
linkType: hard
@@ -19626,19 +19908,19 @@ __metadata:
linkType: hard
"@yarnpkg/core@npm:^4.0.0, @yarnpkg/core@npm:^4.0.3":
- version: 4.0.3
- resolution: "@yarnpkg/core@npm:4.0.3"
+ version: 4.1.3
+ resolution: "@yarnpkg/core@npm:4.1.3"
dependencies:
"@arcanis/slice-ansi": ^1.1.1
"@types/semver": ^7.1.0
"@types/treeify": ^1.0.0
- "@yarnpkg/fslib": ^3.0.2
- "@yarnpkg/libzip": ^3.0.1
- "@yarnpkg/parsers": ^3.0.0
- "@yarnpkg/shell": ^4.0.0
+ "@yarnpkg/fslib": ^3.1.0
+ "@yarnpkg/libzip": ^3.1.0
+ "@yarnpkg/parsers": ^3.0.2
+ "@yarnpkg/shell": ^4.1.0
camelcase: ^5.3.1
chalk: ^3.0.0
- ci-info: ^3.2.0
+ ci-info: ^4.0.0
clipanion: ^4.0.0-rc.2
cross-spawn: 7.0.3
diff: ^5.1.0
@@ -19655,7 +19937,7 @@ __metadata:
treeify: ^1.1.0
tslib: ^2.4.0
tunnel: ^0.0.6
- checksum: 811956ab94e9f4b3601f304312baf816322df124cf85754ef3985110c90935b1b761c8266a06c2c5633f6edc39c8a4ceffeff50f08f036d7adf19612ce3761a3
+ checksum: 789bf7c1451d24e6405a42537a53382ec76387bf2696aadd3a189e8a343768d78377ff7b363f0c9271465f6a83c8e1e913d390ad3a233f7aa3d8ce9512e5147c
languageName: node
linkType: hard
@@ -19668,12 +19950,12 @@ __metadata:
languageName: node
linkType: hard
-"@yarnpkg/fslib@npm:^3.0.0, @yarnpkg/fslib@npm:^3.0.1, @yarnpkg/fslib@npm:^3.0.2":
- version: 3.0.2
- resolution: "@yarnpkg/fslib@npm:3.0.2"
+"@yarnpkg/fslib@npm:^3.0.0, @yarnpkg/fslib@npm:^3.0.1, @yarnpkg/fslib@npm:^3.0.2, @yarnpkg/fslib@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "@yarnpkg/fslib@npm:3.1.0"
dependencies:
tslib: ^2.4.0
- checksum: b0795df777e43eb1c2bd8aa1d6c45f88b8a1d3922ee8bf264cdca916cc6f9455551a9499761a9c1f585aa576350d84adcc315e497fc031cdbbbc1a5c71942e1b
+ checksum: 5274c63731cb30283a93e1446d6796b890fc56c55ed046156b2963a527465bc3add091a1e7f471b7533c8b1aa67b8532960e64589787014dee2cf3d97a9304f6
languageName: node
linkType: hard
@@ -19689,16 +19971,16 @@ __metadata:
languageName: node
linkType: hard
-"@yarnpkg/libzip@npm:^3.0.0, @yarnpkg/libzip@npm:^3.0.1":
- version: 3.0.1
- resolution: "@yarnpkg/libzip@npm:3.0.1"
+"@yarnpkg/libzip@npm:^3.0.0, @yarnpkg/libzip@npm:^3.0.1, @yarnpkg/libzip@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "@yarnpkg/libzip@npm:3.1.0"
dependencies:
"@types/emscripten": ^1.39.6
- "@yarnpkg/fslib": ^3.0.2
+ "@yarnpkg/fslib": ^3.1.0
tslib: ^2.4.0
peerDependencies:
- "@yarnpkg/fslib": ^3.0.2
- checksum: 932b1fc35bb60ca57d033aab7a940f7b1d7bf52a68bfff6c755fe26827c0f1b373fda33e373afabbae98de3ed31ae4f0e9ee2ef24588cd074b75fb814117827d
+ "@yarnpkg/fslib": ^3.1.0
+ checksum: 2bb7c10b41184a079906ec4ebdadda69e4cd3b101d11aae965c08934254dbd303e51e9869fd8d799c5f58d59214cd13d67d454ad96e1c76ce9384816d58da08c
languageName: node
linkType: hard
@@ -19720,13 +20002,13 @@ __metadata:
languageName: node
linkType: hard
-"@yarnpkg/parsers@npm:^3.0.0":
- version: 3.0.0
- resolution: "@yarnpkg/parsers@npm:3.0.0"
+"@yarnpkg/parsers@npm:^3.0.0, @yarnpkg/parsers@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "@yarnpkg/parsers@npm:3.0.2"
dependencies:
js-yaml: ^3.10.0
tslib: ^2.4.0
- checksum: fefe5ecafb5bfa2b678ac9ba9259810fdda40142afd9d0b7e0e5cc1cce1fd824dffc52217c5e429807481d8fd18ead074bd317e64fd626335d3c9f1a320bade2
+ checksum: fb40a87ae7c9f3fc0b2a6b7d84375d1c69ae8304daf598c089b52966bfb4ac94fbd2dcd87ed041970416e03d34359cb5ff16be5f5601f48d1f936213a8edaf4d
languageName: node
linkType: hard
@@ -20109,12 +20391,12 @@ __metadata:
languageName: node
linkType: hard
-"@yarnpkg/shell@npm:^4.0.0":
- version: 4.0.0
- resolution: "@yarnpkg/shell@npm:4.0.0"
+"@yarnpkg/shell@npm:^4.0.0, @yarnpkg/shell@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "@yarnpkg/shell@npm:4.1.0"
dependencies:
- "@yarnpkg/fslib": ^3.0.0
- "@yarnpkg/parsers": ^3.0.0
+ "@yarnpkg/fslib": ^3.1.0
+ "@yarnpkg/parsers": ^3.0.2
chalk: ^3.0.0
clipanion: ^4.0.0-rc.2
cross-spawn: 7.0.3
@@ -20123,7 +20405,7 @@ __metadata:
tslib: ^2.4.0
bin:
shell: ./lib/cli.js
- checksum: 8497e278b1d3d0ffe324a3b9c878ca7165bbbe4d182f5ecb02f1bfaaf4dd18c8aaa54c33ee17bb37eb09173816dc4617b70c3fe0925f5fb99749687e2650b7a2
+ checksum: d5ad721cadc6d6f1411ad98b5d8362c2c804be4e4e9ed9799debbaa96fd2413fc5beaf011e30e69f54ab66b66779ba916125dc40efcf104a4e99053b3a8c645b
languageName: node
linkType: hard
@@ -20655,12 +20937,20 @@ __metadata:
"@backstage/core-components": "workspace:^"
"@backstage/frontend-plugin-api": "workspace:^"
"@material-ui/icons": ^4.9.1
+ "@types/react": ^18.0.0
cross-fetch: ^4.0.0
msw: ^1.0.0
+ react: ^18.0.2
+ react-dom: ^18.0.2
+ react-router-dom: ^6.3.0
peerDependencies:
+ "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0
react: ^16.13.1 || ^17.0.0 || ^18.0.0
react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0
react-router-dom: 6.0.0-beta.0 || ^6.3.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
languageName: unknown
linkType: soft
@@ -21228,14 +21518,14 @@ __metadata:
languageName: node
linkType: hard
-"axios@npm:1.7.4":
- version: 1.7.4
- resolution: "axios@npm:1.7.4"
+"axios@npm:1.7.7, axios@npm:^1.0.0, axios@npm:^1.4.0, axios@npm:^1.6.0, axios@npm:^1.7.4":
+ version: 1.7.7
+ resolution: "axios@npm:1.7.7"
dependencies:
follow-redirects: ^1.15.6
form-data: ^4.0.0
proxy-from-env: ^1.1.0
- checksum: 0c17039a9acfe6a566fca8431ba5c1b455c83d30ea6157fec68a6722878fcd30f3bd32d172f6bee0c51fe75ca98e6414ddcd968a87b5606b573731629440bfaf
+ checksum: 882d4fe0ec694a07c7f5c1f68205eb6dc5a62aecdb632cc7a4a3d0985188ce3030e0b277e1a8260ac3f194d314ae342117660a151fabffdc5081ca0b5a8b47fe
languageName: node
linkType: hard
@@ -21249,17 +21539,6 @@ __metadata:
languageName: node
linkType: hard
-"axios@npm:^1.0.0, axios@npm:^1.4.0, axios@npm:^1.6.0, axios@npm:^1.7.4":
- version: 1.7.7
- resolution: "axios@npm:1.7.7"
- dependencies:
- follow-redirects: ^1.15.6
- form-data: ^4.0.0
- proxy-from-env: ^1.1.0
- checksum: 882d4fe0ec694a07c7f5c1f68205eb6dc5a62aecdb632cc7a4a3d0985188ce3030e0b277e1a8260ac3f194d314ae342117660a151fabffdc5081ca0b5a8b47fe
- languageName: node
- linkType: hard
-
"axobject-query@npm:^4.1.0":
version: 4.1.0
resolution: "axobject-query@npm:4.1.0"
@@ -22520,6 +22799,13 @@ __metadata:
languageName: node
linkType: hard
+"ci-info@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "ci-info@npm:4.0.0"
+ checksum: 122fe41c5eb8d0b5fa0ab6fd674c5ddcf2dc59766528b062a0144ff0d913cfb210ef925ec52110e7c2a7f4e603d5f0e8b91cfe68867e196e9212fa0b94d0a08a
+ languageName: node
+ linkType: hard
+
"cidr-regex@npm:^3.1.1":
version: 3.1.1
resolution: "cidr-regex@npm:3.1.1"
@@ -29183,13 +29469,13 @@ __metadata:
languageName: node
linkType: hard
-"https-proxy-agent@npm:7.0.4, https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2":
- version: 7.0.4
- resolution: "https-proxy-agent@npm:7.0.4"
+"https-proxy-agent@npm:7.0.5, https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2":
+ version: 7.0.5
+ resolution: "https-proxy-agent@npm:7.0.5"
dependencies:
agent-base: ^7.0.2
debug: 4
- checksum: daaab857a967a2519ddc724f91edbbd388d766ff141b9025b629f92b9408fc83cee8a27e11a907aede392938e9c398e240d643e178408a59e4073539cde8cfe9
+ checksum: 2e1a28960f13b041a50702ee74f240add8e75146a5c37fc98f1960f0496710f6918b3a9fe1e5aba41e50f58e6df48d107edd9c405c5f0d73ac260dabf2210857
languageName: node
linkType: hard
@@ -32053,8 +32339,8 @@ __metadata:
linkType: hard
"knip@npm:^5.0.0":
- version: 5.30.2
- resolution: "knip@npm:5.30.2"
+ version: 5.30.6
+ resolution: "knip@npm:5.30.6"
dependencies:
"@nodelib/fs.walk": 1.2.8
"@snyk/github-codeowners": 1.1.0
@@ -32067,7 +32353,7 @@ __metadata:
picocolors: ^1.0.0
picomatch: ^4.0.1
pretty-ms: ^9.0.0
- smol-toml: ^1.1.4
+ smol-toml: ^1.3.0
strip-json-comments: 5.0.1
summary: 2.1.0
zod: ^3.22.4
@@ -32078,7 +32364,7 @@ __metadata:
bin:
knip: bin/knip.js
knip-bun: bin/knip-bun.js
- checksum: fafb6ee078c1e9f24e83c08c6b97c7ad82ef78d043eff6a064639e08354a4b81cbb132d705acc53874d0f0d02dc690d960f75efe8783ac349fde491bcbf1b742
+ checksum: 9820761248882926789bdf3cf8014a32e695d94bdabc335b4b637bceaeec7922358b67027b46aa5f7f2af10460027d0d33be407d48db76e50c8d1dd8dfca95ce
languageName: node
linkType: hard
@@ -34391,14 +34677,14 @@ __metadata:
linkType: hard
"msw@npm:^2.0.0, msw@npm:^2.0.8":
- version: 2.4.8
- resolution: "msw@npm:2.4.8"
+ version: 2.4.9
+ resolution: "msw@npm:2.4.9"
dependencies:
"@bundled-es-modules/cookie": ^2.0.0
"@bundled-es-modules/statuses": ^1.0.1
"@bundled-es-modules/tough-cookie": ^0.1.6
"@inquirer/confirm": ^3.0.0
- "@mswjs/interceptors": ^0.35.6
+ "@mswjs/interceptors": ^0.35.8
"@open-draft/until": ^2.1.0
"@types/cookie": ^0.6.0
"@types/statuses": ^2.0.4
@@ -34418,7 +34704,7 @@ __metadata:
optional: true
bin:
msw: cli/index.js
- checksum: 3cfc2588715aa1a006032b6e255ce6dc899e51f6fea0b69bb0df8b635d9a332227b3463f5017577ca82076afb489dfd036fb9cc156c89f482fb5e8a44de97ad8
+ checksum: add5a614ce58f5e75c65afcb59b76d0d807b9103b7fb3aaf23efd6ebd82d79415ecd9bc55dd48bcc4c31ec7ce196a75ace46d94224f0a80567c89a190e367ba8
languageName: node
linkType: hard
@@ -34978,8 +35264,8 @@ __metadata:
linkType: hard
"nodemon@npm:^3.0.1":
- version: 3.1.5
- resolution: "nodemon@npm:3.1.5"
+ version: 3.1.7
+ resolution: "nodemon@npm:3.1.7"
dependencies:
chokidar: ^3.5.2
debug: ^4
@@ -34993,7 +35279,7 @@ __metadata:
undefsafe: ^2.0.5
bin:
nodemon: bin/nodemon.js
- checksum: 56a41473b4990efebe8341f1da360af49d3b9e62c164d76ef6ec7f81efeca56c990dd4f275f03ddd1afde83d27c1ed3abe9c73d712fbebe08406c459b9f030ab
+ checksum: c500ac2feb278ddb187049ac8ede6423c1fb074cc3dabf74882568d5e93401293c10039e184a9d1bfc617c983ddb432437d396b421926914d04ebba671a7d8b8
languageName: node
linkType: hard
@@ -36342,10 +36628,10 @@ __metadata:
languageName: node
linkType: hard
-"path-to-regexp@npm:3.2.0":
- version: 3.2.0
- resolution: "path-to-regexp@npm:3.2.0"
- checksum: c3d35cda3b26d9e604d789b9a1764bb9845f53ca8009d5809356b4677a3c064b0f01117a05a5b4b77bafd5ae002a82592e3f3495e885c22961f8b1dab8bd6ae7
+"path-to-regexp@npm:3.3.0":
+ version: 3.3.0
+ resolution: "path-to-regexp@npm:3.3.0"
+ checksum: bb249d08804f7961dd44fb175466c900b893c56e909db8e2a66ec12b9d9a964af269eb7a50892c933f52b47315953dfdb4279639fbce20977c3625a9ef3055fe
languageName: node
linkType: hard
@@ -36736,27 +37022,27 @@ __metadata:
languageName: node
linkType: hard
-"playwright-core@npm:1.47.1":
- version: 1.47.1
- resolution: "playwright-core@npm:1.47.1"
+"playwright-core@npm:1.47.2":
+ version: 1.47.2
+ resolution: "playwright-core@npm:1.47.2"
bin:
playwright-core: cli.js
- checksum: f61cee27a04df439b1e0df48e43bcd4f71cc41adcac3c35ac2df538d27be52cd1da91220295abb089c702ef40311af0dce12e1a71959ec15933bcdc1e6091563
+ checksum: c06109a08dd672a92eb048ce7c9a1451ed701e62ff78f0d67c67ee6b06c88f0dc5422c2a7bb26e5fca05840e2adba154a25ca988e56f76c233affe61f42453a3
languageName: node
linkType: hard
-"playwright@npm:1.47.1":
- version: 1.47.1
- resolution: "playwright@npm:1.47.1"
+"playwright@npm:1.47.2":
+ version: 1.47.2
+ resolution: "playwright@npm:1.47.2"
dependencies:
fsevents: 2.3.2
- playwright-core: 1.47.1
+ playwright-core: 1.47.2
dependenciesMeta:
fsevents:
optional: true
bin:
playwright: cli.js
- checksum: 90b9405b20946f1dd6bafc5b0248bb8a0217e850b1f740c672448cb0a284c57c7faef4c7207807d1a94cb45172fc5903478b12aef4f1bd03541630e8ab6267c1
+ checksum: 41ec99d62c9d7282a3d0dd2444892a379be2f4c61e9045a0b1cfc5897796747d220df5af11c6a7515c56c82df02a1025a46a5da7abc17485b4e981e133588261
languageName: node
linkType: hard
@@ -38723,7 +39009,7 @@ __metadata:
languageName: node
linkType: hard
-"react@npm:^16.13.1 || ^17.0.0 || ^18.0.0, react@npm:^18.0.2":
+"react@npm:^18.0.2":
version: 18.3.1
resolution: "react@npm:18.3.1"
dependencies:
@@ -39638,26 +39924,26 @@ __metadata:
linkType: hard
"rollup@npm:^4.0.0, rollup@npm:^4.20.0":
- version: 4.22.4
- resolution: "rollup@npm:4.22.4"
+ version: 4.22.5
+ resolution: "rollup@npm:4.22.5"
dependencies:
- "@rollup/rollup-android-arm-eabi": 4.22.4
- "@rollup/rollup-android-arm64": 4.22.4
- "@rollup/rollup-darwin-arm64": 4.22.4
- "@rollup/rollup-darwin-x64": 4.22.4
- "@rollup/rollup-linux-arm-gnueabihf": 4.22.4
- "@rollup/rollup-linux-arm-musleabihf": 4.22.4
- "@rollup/rollup-linux-arm64-gnu": 4.22.4
- "@rollup/rollup-linux-arm64-musl": 4.22.4
- "@rollup/rollup-linux-powerpc64le-gnu": 4.22.4
- "@rollup/rollup-linux-riscv64-gnu": 4.22.4
- "@rollup/rollup-linux-s390x-gnu": 4.22.4
- "@rollup/rollup-linux-x64-gnu": 4.22.4
- "@rollup/rollup-linux-x64-musl": 4.22.4
- "@rollup/rollup-win32-arm64-msvc": 4.22.4
- "@rollup/rollup-win32-ia32-msvc": 4.22.4
- "@rollup/rollup-win32-x64-msvc": 4.22.4
- "@types/estree": 1.0.5
+ "@rollup/rollup-android-arm-eabi": 4.22.5
+ "@rollup/rollup-android-arm64": 4.22.5
+ "@rollup/rollup-darwin-arm64": 4.22.5
+ "@rollup/rollup-darwin-x64": 4.22.5
+ "@rollup/rollup-linux-arm-gnueabihf": 4.22.5
+ "@rollup/rollup-linux-arm-musleabihf": 4.22.5
+ "@rollup/rollup-linux-arm64-gnu": 4.22.5
+ "@rollup/rollup-linux-arm64-musl": 4.22.5
+ "@rollup/rollup-linux-powerpc64le-gnu": 4.22.5
+ "@rollup/rollup-linux-riscv64-gnu": 4.22.5
+ "@rollup/rollup-linux-s390x-gnu": 4.22.5
+ "@rollup/rollup-linux-x64-gnu": 4.22.5
+ "@rollup/rollup-linux-x64-musl": 4.22.5
+ "@rollup/rollup-win32-arm64-msvc": 4.22.5
+ "@rollup/rollup-win32-ia32-msvc": 4.22.5
+ "@rollup/rollup-win32-x64-msvc": 4.22.5
+ "@types/estree": 1.0.6
fsevents: ~2.3.2
dependenciesMeta:
"@rollup/rollup-android-arm-eabi":
@@ -39696,7 +39982,7 @@ __metadata:
optional: true
bin:
rollup: dist/bin/rollup
- checksum: b093b518deb1fd0c0455eef746abe9efa3a2cd7e2b65a4ace9e8fa5d60b3d6da2406816de2c6c1d553609f22cf730f1c5839a05a1ff60003c504486172238d1a
+ checksum: 894b3d428b5a7f1db2245f50622ce65a3ad8f754265dd1da7dce133e39b315516dbcbac51e4fe100b44d59b168bac3f36ebaeb836fc9f7057d4972f44497d046
languageName: node
linkType: hard
@@ -40554,10 +40840,10 @@ __metadata:
languageName: node
linkType: hard
-"smol-toml@npm:^1.1.4":
- version: 1.2.1
- resolution: "smol-toml@npm:1.2.1"
- checksum: 12040dd8e38b6efb7a1572bfd803c6a7ac89b8d715d0614b024601165059ea3f4653dd5b87b601308dcefd20a26af8445e9be9888b52e0c4f24d1bfc6d2c4e84
+"smol-toml@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "smol-toml@npm:1.3.0"
+ checksum: 79e1db6b6cd32a13ad7602bfe1a02f20894fe599657a5cc2c8ffab7c3de4ba51f7426b701b513f9b859560918b36a63f7c73f7eaf6def8a1dc73db74ffd9b601
languageName: node
linkType: hard
@@ -42581,10 +42867,10 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:2.6.2, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.4.1 || ^1.9.3, tslib@npm:^2.5.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2":
- version: 2.6.2
- resolution: "tslib@npm:2.6.2"
- checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad
+"tslib@npm:2.7.0, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.4.1 || ^1.9.3, tslib@npm:^2.5.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2":
+ version: 2.7.0
+ resolution: "tslib@npm:2.7.0"
+ checksum: 1606d5c89f88d466889def78653f3aab0f88692e80bb2066d090ca6112ae250ec1cfa9dbfaab0d17b60da15a4186e8ec4d893801c67896b277c17374e36e1d28
languageName: node
linkType: hard
@@ -43818,8 +44104,8 @@ __metadata:
linkType: hard
"vite@npm:^5.0.0":
- version: 5.4.6
- resolution: "vite@npm:5.4.6"
+ version: 5.4.8
+ resolution: "vite@npm:5.4.8"
dependencies:
esbuild: ^0.21.3
fsevents: ~2.3.3
@@ -43856,7 +44142,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
- checksum: ea293748f624b3bb53e68d30ddc55e7addeaa38bbcde06d900e6d476bef3d0550de2a67f5316680dbeae483afedd3e735fb91b65004659f62bece537ed038a59
+ checksum: b5686ff76a60d53092dc13a5c1e5627165226b8e3da7736931adf87bbe58d383bca386383cea134750108c2d42750c916db3f2314ac90a9477d693950145f140
languageName: node
linkType: hard