Merge branch 'backstage:master' into topic/improve-azure-devops-date-handling

This commit is contained in:
Andre Wanlin
2021-11-11 09:01:07 -06:00
committed by GitHub
199 changed files with 2003 additions and 1152 deletions
+6 -6
View File
@@ -23,10 +23,10 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -36,10 +36,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -22,9 +22,9 @@
},
"dependencies": {
"@backstage/config": "^0.1.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/theme": "^0.2.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -34,10 +34,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+13
View File
@@ -1,5 +1,18 @@
# @backstage/plugin-api-docs
## 0.6.13
### Patch Changes
- 044c38e739: Lazy load all API definition widgets. The widgets use libraries like
`swagger-ui`, `graphiql`, and `@asyncapi/react-component` which are quite heavy
weight. To improve initial load times, the widgets are only loaded once used.
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.6.12
### Patch Changes
+33 -11
View File
@@ -84,11 +84,19 @@ export const ApiTypeTitle: ({
apiEntity: ApiEntity;
}) => JSX.Element;
// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "AsyncApiDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const AsyncApiDefinitionWidget: ({ definition }: Props_5) => JSX.Element;
export const AsyncApiDefinitionWidget: (
props: AsyncApiDefinitionWidgetProps,
) => JSX.Element;
// Warning: (ae-missing-release-tag) "AsyncApiDefinitionWidgetProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type AsyncApiDefinitionWidgetProps = {
definition: string;
};
// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "ConsumedApisCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
@@ -100,7 +108,7 @@ export const ConsumedApisCard: ({ variant }: Props_2) => JSX.Element;
// Warning: (ae-missing-release-tag) "ConsumingComponentsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ConsumingComponentsCard: ({ variant }: Props_6) => JSX.Element;
export const ConsumingComponentsCard: ({ variant }: Props_5) => JSX.Element;
// Warning: (ae-missing-release-tag) "defaultDefinitionWidgets" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
@@ -169,20 +177,34 @@ export const EntityProvidingComponentsCard: ({
// @public (undocumented)
export const HasApisCard: ({ variant }: Props_3) => JSX.Element;
// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "OpenApiDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const OpenApiDefinitionWidget: ({ definition }: Props_8) => JSX.Element;
export const OpenApiDefinitionWidget: (
props: OpenApiDefinitionWidgetProps,
) => JSX.Element;
// Warning: (ae-missing-release-tag) "OpenApiDefinitionWidgetProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type OpenApiDefinitionWidgetProps = {
definition: string;
};
// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "PlainApiDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const PlainApiDefinitionWidget: ({
definition,
language,
}: Props_9) => JSX.Element;
export const PlainApiDefinitionWidget: (
props: PlainApiDefinitionWidgetProps,
) => JSX.Element;
// Warning: (ae-missing-release-tag) "PlainApiDefinitionWidgetProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type PlainApiDefinitionWidgetProps = {
definition: any;
language: string;
};
// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "ProvidedApisCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
@@ -194,5 +216,5 @@ export const ProvidedApisCard: ({ variant }: Props_4) => JSX.Element;
// Warning: (ae-missing-release-tag) "ProvidingComponentsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ProvidingComponentsCard: ({ variant }: Props_7) => JSX.Element;
export const ProvidingComponentsCard: ({ variant }: Props_6) => JSX.Element;
```
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-api-docs",
"description": "A Backstage plugin that helps represent API entities in the frontend",
"version": "0.6.12",
"version": "0.6.13",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,11 +32,11 @@
"dependencies": {
"@asyncapi/react-component": "^0.23.0",
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog": "^0.7.2",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -53,10 +53,10 @@
"swagger-ui-react": "^4.0.0-rc.3"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
@@ -16,9 +16,9 @@
import { renderInTestApp } from '@backstage/test-utils';
import React from 'react';
import { AsyncApiDefinitionWidget } from './AsyncApiDefinitionWidget';
import { AsyncApiDefinition } from './AsyncApiDefinition';
describe('<AsyncApiDefinitionWidget />', () => {
describe('<AsyncApiDefinition />', () => {
it('renders asyncapi spec', async () => {
const definition = `
asyncapi: 2.0.0
@@ -40,7 +40,7 @@ components:
type: string
`;
const { getByText, getAllByText } = await renderInTestApp(
<AsyncApiDefinitionWidget definition={definition} />,
<AsyncApiDefinition definition={definition} />,
);
expect(getByText(/Account Service/i)).toBeInTheDocument();
@@ -51,7 +51,7 @@ components:
it('renders error if definition is missing', async () => {
const { getByText } = await renderInTestApp(
<AsyncApiDefinitionWidget definition="" />,
<AsyncApiDefinition definition="" />,
);
expect(getByText(/Error/i)).toBeInTheDocument();
expect(getByText(/Document can't be null or falsey/i)).toBeInTheDocument();
@@ -0,0 +1,145 @@
/*
* Copyright 2020 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import AsyncApi from '@asyncapi/react-component';
import '@asyncapi/react-component/lib/styles/fiori.css';
import { alpha, makeStyles } from '@material-ui/core/styles';
import React from 'react';
const useStyles = makeStyles(theme => ({
root: {
'& .asyncapi': {
'font-family': 'inherit',
background: 'none',
},
'& h2': {
...theme.typography.h6,
},
'& .text-teal': {
color: theme.palette.primary.main,
},
'& button': {
...theme.typography.button,
background: 'none',
boxSizing: 'border-box',
minWidth: 64,
borderRadius: theme.shape.borderRadius,
transition: theme.transitions.create(
['background-color', 'box-shadow', 'border'],
{
duration: theme.transitions.duration.short,
},
),
padding: '5px 15px',
color: theme.palette.primary.main,
border: `1px solid ${alpha(theme.palette.primary.main, 0.5)}`,
'&:hover': {
textDecoration: 'none',
'&.Mui-disabled': {
backgroundColor: 'transparent',
},
border: `1px solid ${theme.palette.primary.main}`,
backgroundColor: alpha(
theme.palette.primary.main,
theme.palette.action.hoverOpacity,
),
// Reset on touch devices, it doesn't add specificity
'@media (hover: none)': {
backgroundColor: 'transparent',
},
},
'&.Mui-disabled': {
color: theme.palette.action.disabled,
},
},
'& .asyncapi__collapse-button:hover': {
color: theme.palette.primary.main,
},
'& button.asyncapi__toggle-button': {
'min-width': 'inherit',
},
'& .asyncapi__info-list li': {
'border-color': theme.palette.primary.main,
'&:hover': {
color: theme.palette.text.primary,
'border-color': theme.palette.primary.main,
'background-color': theme.palette.primary.main,
},
},
'& .asyncapi__info-list li a': {
color: theme.palette.primary.main,
'&:hover': {
color: theme.palette.getContrastText(theme.palette.primary.main),
},
},
'& .asyncapi__enum': {
color: theme.palette.secondary.main,
},
'& .asyncapi__info, .asyncapi__channel, .asyncapi__channels > div, .asyncapi__schema, .asyncapi__channel-operations-list .asyncapi__messages-list-item .asyncapi__message, .asyncapi__message, .asyncapi__server, .asyncapi__servers > div, .asyncapi__messages > div, .asyncapi__schemas > div':
{
'background-color': 'inherit',
},
'& .asyncapi__channel-parameters-header, .asyncapi__channel-operations-header, .asyncapi__channel-operation-oneOf-subscribe-header, .asyncapi__channel-operation-oneOf-publish-header, .asyncapi__channel-operation-message-header, .asyncapi__message-header, .asyncapi__message-header-title, .asyncapi__message-header-title > h3, .asyncapi__bindings, .asyncapi__bindings-header, .asyncapi__bindings-header > h4':
{
'background-color': 'inherit',
color: theme.palette.text.primary,
},
'& .asyncapi__additional-properties-notice': {
color: theme.palette.text.hint,
},
'& .asyncapi__code, .asyncapi__code-pre': {
background: theme.palette.background.default,
},
'& .asyncapi__schema-example-header-title': {
color: theme.palette.text.secondary,
},
'& .asyncapi__message-headers-header, .asyncapi__message-payload-header, .asyncapi__server-variables-header, .asyncapi__server-security-header':
{
'background-color': 'inherit',
color: theme.palette.text.secondary,
},
'& .asyncapi__table-header': {
background: theme.palette.background.default,
},
'& .asyncapi__table-body': {
color: theme.palette.text.primary,
},
'& .asyncapi__server-security-flow': {
background: theme.palette.background.default,
border: 'none',
},
'& .asyncapi__server-security-flows-list a': {
color: theme.palette.primary.main,
},
'& .asyncapi__table-row--nested': {
color: theme.palette.text.secondary,
},
},
}));
type Props = {
definition: string;
};
export const AsyncApiDefinition = ({ definition }: Props) => {
const classes = useStyles();
return (
<div className={classes.root}>
<AsyncApi schema={definition} />
</div>
);
};
@@ -14,132 +14,27 @@
* limitations under the License.
*/
import AsyncApi from '@asyncapi/react-component';
import '@asyncapi/react-component/lib/styles/fiori.css';
import { fade, makeStyles } from '@material-ui/core/styles';
import React from 'react';
import { Progress } from '@backstage/core-components';
import React, { Suspense } from 'react';
const useStyles = makeStyles(theme => ({
root: {
'& .asyncapi': {
'font-family': 'inherit',
background: 'none',
},
'& h2': {
...theme.typography.h6,
},
'& .text-teal': {
color: theme.palette.primary.main,
},
'& button': {
...theme.typography.button,
background: 'none',
boxSizing: 'border-box',
minWidth: 64,
borderRadius: theme.shape.borderRadius,
transition: theme.transitions.create(
['background-color', 'box-shadow', 'border'],
{
duration: theme.transitions.duration.short,
},
),
padding: '5px 15px',
color: theme.palette.primary.main,
border: `1px solid ${fade(theme.palette.primary.main, 0.5)}`,
'&:hover': {
textDecoration: 'none',
'&.Mui-disabled': {
backgroundColor: 'transparent',
},
border: `1px solid ${theme.palette.primary.main}`,
backgroundColor: fade(
theme.palette.primary.main,
theme.palette.action.hoverOpacity,
),
// Reset on touch devices, it doesn't add specificity
'@media (hover: none)': {
backgroundColor: 'transparent',
},
},
'&.Mui-disabled': {
color: theme.palette.action.disabled,
},
},
'& .asyncapi__collapse-button:hover': {
color: theme.palette.primary.main,
},
'& button.asyncapi__toggle-button': {
'min-width': 'inherit',
},
'& .asyncapi__info-list li': {
'border-color': theme.palette.primary.main,
'&:hover': {
color: theme.palette.text.primary,
'border-color': theme.palette.primary.main,
'background-color': theme.palette.primary.main,
},
},
'& .asyncapi__info-list li a': {
color: theme.palette.primary.main,
'&:hover': {
color: theme.palette.getContrastText(theme.palette.primary.main),
},
},
'& .asyncapi__enum': {
color: theme.palette.secondary.main,
},
'& .asyncapi__info, .asyncapi__channel, .asyncapi__channels > div, .asyncapi__schema, .asyncapi__channel-operations-list .asyncapi__messages-list-item .asyncapi__message, .asyncapi__message, .asyncapi__server, .asyncapi__servers > div, .asyncapi__messages > div, .asyncapi__schemas > div':
{
'background-color': 'inherit',
},
'& .asyncapi__channel-parameters-header, .asyncapi__channel-operations-header, .asyncapi__channel-operation-oneOf-subscribe-header, .asyncapi__channel-operation-oneOf-publish-header, .asyncapi__channel-operation-message-header, .asyncapi__message-header, .asyncapi__message-header-title, .asyncapi__message-header-title > h3, .asyncapi__bindings, .asyncapi__bindings-header, .asyncapi__bindings-header > h4':
{
'background-color': 'inherit',
color: theme.palette.text.primary,
},
'& .asyncapi__additional-properties-notice': {
color: theme.palette.text.hint,
},
'& .asyncapi__code, .asyncapi__code-pre': {
background: theme.palette.background.default,
},
'& .asyncapi__schema-example-header-title': {
color: theme.palette.text.secondary,
},
'& .asyncapi__message-headers-header, .asyncapi__message-payload-header, .asyncapi__server-variables-header, .asyncapi__server-security-header':
{
'background-color': 'inherit',
color: theme.palette.text.secondary,
},
'& .asyncapi__table-header': {
background: theme.palette.background.default,
},
'& .asyncapi__table-body': {
color: theme.palette.text.primary,
},
'& .asyncapi__server-security-flow': {
background: theme.palette.background.default,
border: 'none',
},
'& .asyncapi__server-security-flows-list a': {
color: theme.palette.primary.main,
},
'& .asyncapi__table-row--nested': {
color: theme.palette.text.secondary,
},
},
}));
// The asyncapi component and related CSS has a significant size, only load it
// if the element is actually used.
const LazyAsyncApiDefinition = React.lazy(() =>
import('./AsyncApiDefinition').then(m => ({
default: m.AsyncApiDefinition,
})),
);
type Props = {
export type AsyncApiDefinitionWidgetProps = {
definition: string;
};
export const AsyncApiDefinitionWidget = ({ definition }: Props) => {
const classes = useStyles();
export const AsyncApiDefinitionWidget = (
props: AsyncApiDefinitionWidgetProps,
) => {
return (
<div className={classes.root}>
<AsyncApi schema={definition} />
</div>
<Suspense fallback={<Progress />}>
<LazyAsyncApiDefinition {...props} />
</Suspense>
);
};
@@ -15,3 +15,4 @@
*/
export { AsyncApiDefinitionWidget } from './AsyncApiDefinitionWidget';
export type { AsyncApiDefinitionWidgetProps } from './AsyncApiDefinitionWidget';
@@ -16,9 +16,9 @@
import { renderInTestApp } from '@backstage/test-utils';
import React from 'react';
import { GraphQlDefinitionWidget } from './GraphQlDefinitionWidget';
import { GraphQlDefinition } from './GraphQlDefinition';
describe('<GraphQlDefinitionWidget />', () => {
describe('<GraphQlDefinition />', () => {
it('renders graphql schema', async () => {
const definition = `
"""Hello World!"""
@@ -53,7 +53,7 @@ type Film {
};
const { getByText } = await renderInTestApp(
<GraphQlDefinitionWidget definition={definition} />,
<GraphQlDefinition definition={definition} />,
);
expect(getByText(/Film/i)).toBeInTheDocument();
@@ -0,0 +1,63 @@
/*
* Copyright 2020 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { BackstageTheme } from '@backstage/theme';
import { makeStyles } from '@material-ui/core/styles';
import GraphiQL from 'graphiql';
import 'graphiql/graphiql.css';
import { buildSchema } from 'graphql';
import React from 'react';
const useStyles = makeStyles<BackstageTheme>(() => ({
root: {
height: '100%',
display: 'flex',
flexFlow: 'column nowrap',
},
graphiQlWrapper: {
flex: 1,
'@global': {
'.graphiql-container': {
boxSizing: 'initial',
height: '100%',
minHeight: '600px',
flex: '1 1 auto',
},
},
},
}));
type Props = {
definition: string;
};
export const GraphQlDefinition = ({ definition }: Props) => {
const classes = useStyles();
const schema = buildSchema(definition);
return (
<div className={classes.root}>
<div className={classes.graphiQlWrapper}>
<GraphiQL
fetcher={() => Promise.resolve(null) as any}
schema={schema}
docExplorerOpen
defaultSecondaryEditorOpen={false}
/>
</div>
</div>
);
};
@@ -14,54 +14,27 @@
* limitations under the License.
*/
import { BackstageTheme } from '@backstage/theme';
import { makeStyles } from '@material-ui/core/styles';
import 'graphiql/graphiql.css';
import { buildSchema } from 'graphql';
import React, { Suspense } from 'react';
import { Progress } from '@backstage/core-components';
import React, { Suspense } from 'react';
const GraphiQL = React.lazy(() => import('graphiql'));
// The graphql component, graphql and related CSS has a significant size, only
// load it if the element is actually used.
const LazyGraphQlDefinition = React.lazy(() =>
import('./GraphQlDefinition').then(m => ({
default: m.GraphQlDefinition,
})),
);
const useStyles = makeStyles<BackstageTheme>(() => ({
root: {
height: '100%',
display: 'flex',
flexFlow: 'column nowrap',
},
graphiQlWrapper: {
flex: 1,
'@global': {
'.graphiql-container': {
boxSizing: 'initial',
height: '100%',
minHeight: '600px',
flex: '1 1 auto',
},
},
},
}));
type Props = {
definition: any;
export type GraphQlDefinitionWidgetProps = {
definition: string;
};
export const GraphQlDefinitionWidget = ({ definition }: Props) => {
const classes = useStyles();
const schema = buildSchema(definition);
export const GraphQlDefinitionWidget = (
props: GraphQlDefinitionWidgetProps,
) => {
return (
<Suspense fallback={<Progress />}>
<div className={classes.root}>
<div className={classes.graphiQlWrapper}>
<GraphiQL
fetcher={() => Promise.resolve(null) as any}
schema={schema}
docExplorerOpen
defaultSecondaryEditorOpen={false}
/>
</div>
</div>
<LazyGraphQlDefinition {...props} />
</Suspense>
);
};
@@ -15,3 +15,4 @@
*/
export { GraphQlDefinitionWidget } from './GraphQlDefinitionWidget';
export type { GraphQlDefinitionWidgetProps } from './GraphQlDefinitionWidget';
@@ -17,9 +17,9 @@
import { renderInTestApp } from '@backstage/test-utils';
import { waitFor } from '@testing-library/react';
import React from 'react';
import { OpenApiDefinitionWidget } from './OpenApiDefinitionWidget';
import { OpenApiDefinition } from './OpenApiDefinition';
describe('<OpenApiDefinitionWidget />', () => {
describe('<OpenApiDefinition />', () => {
it('renders openapi spec', async () => {
const definition = `
openapi: "3.0.0"
@@ -39,7 +39,7 @@ paths:
description: Success
`;
const { getByText } = await renderInTestApp(
<OpenApiDefinitionWidget definition={definition} />,
<OpenApiDefinition definition={definition} />,
);
// swagger-ui loads the documentation asynchronously
@@ -51,7 +51,7 @@ paths:
it('renders error if definition is missing', async () => {
const { getByText } = await renderInTestApp(
<OpenApiDefinitionWidget definition="" />,
<OpenApiDefinition definition="" />,
);
expect(getByText(/No API definition provided/i)).toBeInTheDocument();
});
@@ -0,0 +1,132 @@
/*
* Copyright 2020 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { makeStyles } from '@material-ui/core/styles';
import React, { useEffect, useState } from 'react';
import SwaggerUI from 'swagger-ui-react';
import 'swagger-ui-react/swagger-ui.css';
const useStyles = makeStyles(theme => ({
root: {
'& .swagger-ui': {
fontFamily: 'inherit',
color: theme.palette.text.primary,
[`& .info h1,
.info h2,
.info h3,
.info h4,
.info h5,
.info h6`]: {
fontFamily: 'inherit',
color: theme.palette.text.primary,
},
[`& .scheme-container`]: {
backgroundColor: theme.palette.background.default,
},
[`& .opblock-tag,
.opblock-tag small,
table thead tr td,
table thead tr th`]: {
fontFamily: 'inherit',
color: theme.palette.text.primary,
borderColor: theme.palette.divider,
},
[`& section.models,
section.models.is-open h4`]: {
borderColor: theme.palette.divider,
},
[`& .opblock .opblock-summary-description,
.parameter__type,
table.headers td,
.model-title,
.model .property.primitive,
section h3`]: {
fontFamily: 'inherit',
color: theme.palette.text.secondary,
},
[`& .opblock .opblock-summary-operation-id,
.opblock .opblock-summary-path,
.opblock .opblock-summary-path__deprecated,
.opblock .opblock-section-header h4,
.parameter__name,
.response-col_status,
.response-col_links,
.responses-inner h4,
.responses-inner h5,
.opblock-section-header .btn,
.tab li,
.info li,
.info p,
.info table,
section.models h4,
.info .title,
table.model tr.description,
.property-row`]: {
fontFamily: 'inherit',
color: theme.palette.text.primary,
},
[`& .opblock .opblock-section-header,
.model-box,
section.models .model-container`]: {
background: theme.palette.background.default,
},
[`& .prop-format,
.parameter__in`]: {
color: theme.palette.text.disabled,
},
[`& .opblock-description-wrapper p,
.opblock-external-docs-wrapper p,
.opblock-title_normal p,
.response-control-media-type__accept-message,
.opblock .opblock-section-header>label,
.scheme-container .schemes>label,
.info .base-url,
.model`]: {
color: theme.palette.text.hint,
},
[`& .parameter__name.required:after`]: {
color: theme.palette.warning.dark,
},
[`& .prop-type`]: {
color: theme.palette.primary.main,
},
},
},
}));
export type OpenApiDefinitionProps = {
definition: string;
};
export const OpenApiDefinition = ({ definition }: OpenApiDefinitionProps) => {
const classes = useStyles();
// Due to a bug in the swagger-ui-react component, the component needs
// to be created without content first.
const [def, setDef] = useState('');
useEffect(() => {
const timer = setTimeout(() => setDef(definition), 0);
return () => clearTimeout(timer);
}, [definition, setDef]);
return (
<div className={classes.root}>
<SwaggerUI spec={def} deepLinking />
</div>
);
};
@@ -14,81 +14,27 @@
* limitations under the License.
*/
import { makeStyles } from '@material-ui/core/styles';
import React, { useEffect, useState } from 'react';
import SwaggerUI from 'swagger-ui-react';
import 'swagger-ui-react/swagger-ui.css';
import { Progress } from '@backstage/core-components';
import React, { Suspense } from 'react';
// TODO: Schemas
// The swagger-ui component and related CSS has a significant size, only load it
// if the element is actually used.
const LazyOpenApiDefinition = React.lazy(() =>
import('./OpenApiDefinition').then(m => ({
default: m.OpenApiDefinition,
})),
);
const useStyles = makeStyles(theme => ({
root: {
'& .swagger-ui, .info h1, .info h2, .info h3, .info h4, .info h': {
'font-family': 'inherit',
color: theme.palette.text.primary,
},
'& .scheme-container': {
'background-color': theme.palette.background.default,
},
'& .opblock-tag, .opblock-tag small, table thead tr td, table thead tr th':
{
color: theme.palette.text.primary,
'border-color': theme.palette.divider,
},
'& section.models, section.models.is-open h4': {
'border-color': theme.palette.divider,
},
'& .opblock .opblock-summary-description, .parameter__type, table.headers td, .model-title, .model .property.primitive, section h3':
{
color: theme.palette.text.secondary,
},
'& .opblock .opblock-summary-operation-id, .opblock .opblock-summary-path, .opblock .opblock-summary-path__deprecated, .opblock .opblock-section-header h4, .parameter__name, .response-col_status, .response-col_links, .responses-inner h4, .swagger-ui .responses-inner h5, .opblock-section-header .btn, .tab li, .info li, .info p, .info table, section.models h4, .info .title, table.model tr.description, .property-row':
{
color: theme.palette.text.primary,
},
'& .opblock .opblock-section-header, .model-box, section.models .model-container':
{
background: theme.palette.background.default,
},
'& .prop-format, .parameter__in': {
color: theme.palette.text.disabled,
},
'& ': {
color: theme.palette.text.primary,
'border-color': theme.palette.divider,
},
'& .opblock-description-wrapper p, .opblock-external-docs-wrapper p, .opblock-title_normal p, .response-control-media-type__accept-message, .opblock .opblock-section-header>label, .scheme-container .schemes>label, .info .base-url, .model':
{
color: theme.palette.text.hint,
},
'& .parameter__name.required:after': {
color: theme.palette.warning.dark,
},
'& .prop-type': {
color: theme.palette.primary.main,
},
},
}));
type Props = {
export type OpenApiDefinitionWidgetProps = {
definition: string;
};
export const OpenApiDefinitionWidget = ({ definition }: Props) => {
const classes = useStyles();
// Due to a bug in the swagger-ui-react component, the component needs
// to be created without content first.
const [def, setDef] = useState('');
useEffect(() => {
const timer = setTimeout(() => setDef(definition), 0);
return () => clearTimeout(timer);
}, [definition, setDef]);
export const OpenApiDefinitionWidget = (
props: OpenApiDefinitionWidgetProps,
) => {
return (
<div className={classes.root}>
<SwaggerUI spec={def} deepLinking />
</div>
<Suspense fallback={<Progress />}>
<LazyOpenApiDefinition {...props} />
</Suspense>
);
};
@@ -15,3 +15,4 @@
*/
export { OpenApiDefinitionWidget } from './OpenApiDefinitionWidget';
export type { OpenApiDefinitionWidgetProps } from './OpenApiDefinitionWidget';
@@ -17,13 +17,19 @@
import React from 'react';
import { CodeSnippet } from '@backstage/core-components';
type Props = {
export type PlainApiDefinitionWidgetProps = {
definition: any;
language: string;
};
export const PlainApiDefinitionWidget = ({ definition, language }: Props) => {
export const PlainApiDefinitionWidget = (
props: PlainApiDefinitionWidgetProps,
) => {
return (
<CodeSnippet text={definition} language={language} showCopyCodeButton />
<CodeSnippet
text={props.definition}
language={props.language}
showCopyCodeButton
/>
);
};
@@ -15,3 +15,4 @@
*/
export { PlainApiDefinitionWidget } from './PlainApiDefinitionWidget';
export type { PlainApiDefinitionWidgetProps } from './PlainApiDefinitionWidget';
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-auth-backend
## 0.4.7
### Patch Changes
- 5ee31f860b: Only use settings that have a value when creating a new FirestoreKeyStore instance
- 3e0e2f09d5: Added forwarding of the `audience` option for the SAML provider, making it possible to enable `audience` verification.
- Updated dependencies
- @backstage/backend-common@0.9.9
- @backstage/test-utils@0.1.21
- @backstage/catalog-client@0.5.1
## 0.4.6
### Patch Changes
+5 -5
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-auth-backend",
"description": "A Backstage backend plugin that handles authentication",
"version": "0.4.6",
"version": "0.4.7",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,12 +30,12 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.9.8",
"@backstage/catalog-client": "^0.5.0",
"@backstage/backend-common": "^0.9.9",
"@backstage/catalog-client": "^0.5.1",
"@backstage/catalog-model": "^0.9.6",
"@backstage/config": "^0.1.11",
"@backstage/errors": "^0.1.4",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@google-cloud/firestore": "^4.15.1",
"@types/express": "^4.17.6",
"@types/passport": "^1.0.3",
@@ -73,7 +73,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/cli": "^0.8.2",
"@types/body-parser": "^1.19.0",
"@types/cookie-parser": "^1.4.2",
"@types/express-session": "^1.17.2",
+14
View File
@@ -1,5 +1,19 @@
# @backstage/plugin-azure-devops-backend
## 0.2.0
### Minor Changes
- b85acc8c35: refactor(`@backstage/plugin-azure-devops`): Consume types from `@backstage/plugin-azure-devops-common`.
Stop re-exporting types from `@backstage/plugin-azure-devops-backend`.
Added new types to `@backstage/plugin-azure-devops-common`.
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.9.9
- @backstage/plugin-azure-devops-common@0.0.2
## 0.1.4
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops-backend",
"version": "0.1.4",
"version": "0.2.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -20,9 +20,9 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.9.8",
"@backstage/backend-common": "^0.9.9",
"@backstage/config": "^0.1.11",
"@backstage/plugin-azure-devops-common": "^0.0.1",
"@backstage/plugin-azure-devops-common": "^0.0.2",
"@types/express": "^4.17.6",
"azure-devops-node-api": "^11.0.1",
"express": "^4.17.1",
@@ -31,7 +31,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/cli": "^0.8.2",
"@types/supertest": "^2.0.8",
"supertest": "^4.0.2",
"msw": "^0.35.0"
+9
View File
@@ -0,0 +1,9 @@
# @backstage/plugin-azure-devops-common
## 0.0.2
### Patch Changes
- b85acc8c35: refactor(`@backstage/plugin-azure-devops`): Consume types from `@backstage/plugin-azure-devops-common`.
Stop re-exporting types from `@backstage/plugin-azure-devops-backend`.
Added new types to `@backstage/plugin-azure-devops-common`.
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops-common",
"version": "0.0.1",
"version": "0.0.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -29,7 +29,7 @@
"clean": "backstage-cli clean"
},
"devDependencies": {
"@backstage/cli": "^0.8.1"
"@backstage/cli": "^0.8.2"
},
"files": [
"dist"
+15
View File
@@ -1,5 +1,20 @@
# @backstage/plugin-azure-devops
## 0.1.3
### Patch Changes
- b85acc8c35: refactor(`@backstage/plugin-azure-devops`): Consume types from `@backstage/plugin-azure-devops-common`.
Stop re-exporting types from `@backstage/plugin-azure-devops-backend`.
Added new types to `@backstage/plugin-azure-devops-common`.
- 84ace9a29c: Simplified queue time calculation in `BuildTable`.
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/plugin-azure-devops-common@0.0.2
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.1.2
### Patch Changes
+9 -9
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops",
"version": "0.1.2",
"version": "0.1.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -28,12 +28,12 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.6",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.4",
"@backstage/plugin-azure-devops-common": "^0.0.1",
"@backstage/plugin-catalog-react": "^0.6.2",
"@backstage/theme": "^0.2.12",
"@backstage/plugin-azure-devops-common": "^0.0.2",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -44,10 +44,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -28,11 +28,11 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.3",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -42,10 +42,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-bazaar
## 0.1.3
### Patch Changes
- 4a336fd292: Name extension to remove deprecation warning
- Updated dependencies
- @backstage/cli@0.8.2
- @backstage/core-components@0.7.3
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.1.2
### Patch Changes
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-bazaar",
"version": "0.1.2",
"version": "0.1.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -22,11 +22,11 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/cli": "^0.8.0",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/cli": "^0.8.2",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog": "^0.7.2",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/plugin-catalog-react": "^0.6.3",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -39,7 +39,7 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/cli": "^0.8.2",
"@backstage/dev-utils": "^0.2.12",
"@testing-library/jest-dom": "^5.10.1",
"cross-fetch": "^3.0.6"
+1
View File
@@ -44,6 +44,7 @@ export const bazaarPlugin = createPlugin({
export const BazaarPage = bazaarPlugin.provide(
createRoutableExtension({
name: 'BazaarPage',
component: () => import('./components/HomePage').then(m => m.HomePage),
mountPoint: rootRouteRef,
}),
+6 -6
View File
@@ -22,10 +22,10 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -39,10 +39,10 @@
"recharts": "^1.8.5"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
@@ -1,5 +1,16 @@
# @backstage/plugin-catalog-backend-module-msgraph
## 0.2.9
### Patch Changes
- 779d7a2304: Tweak logic for msgraph catalog ingesting for display names with security groups
Previously security groups that weren't mail enabled were imported with UUIDs, now they use the display name.
- Updated dependencies
- @backstage/plugin-catalog-backend@0.17.3
## 0.2.8
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-msgraph",
"description": "A Backstage catalog backend modules that helps integrate towards Microsoft Graph",
"version": "0.2.8",
"version": "0.2.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
"@azure/msal-node": "^1.1.0",
"@backstage/catalog-model": "^0.9.5",
"@backstage/config": "^0.1.10",
"@backstage/plugin-catalog-backend": "^0.17.1",
"@backstage/plugin-catalog-backend": "^0.17.3",
"@microsoft/microsoft-graph-types": "^2.6.0",
"cross-fetch": "^3.0.6",
"lodash": "^4.17.21",
@@ -41,9 +41,9 @@
"qs": "^6.9.4"
},
"devDependencies": {
"@backstage/backend-common": "^0.9.7",
"@backstage/cli": "^0.8.0",
"@backstage/test-utils": "^0.1.19",
"@backstage/backend-common": "^0.9.9",
"@backstage/cli": "^0.8.2",
"@backstage/test-utils": "^0.1.21",
"@types/lodash": "^4.14.151",
"msw": "^0.35.0"
},
+9
View File
@@ -1,5 +1,14 @@
# @backstage/plugin-catalog-backend
## 0.17.3
### Patch Changes
- 86bef79ad1: Allow singleton and flexibly nested EntityFilters
- Updated dependencies
- @backstage/backend-common@0.9.9
- @backstage/catalog-client@0.5.1
## 0.17.2
### Patch Changes
+5 -5
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend",
"description": "The Backstage backend plugin that provides the Backstage catalog",
"version": "0.17.2",
"version": "0.17.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,8 +30,8 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.9.8",
"@backstage/catalog-client": "^0.5.0",
"@backstage/backend-common": "^0.9.9",
"@backstage/catalog-client": "^0.5.1",
"@backstage/catalog-model": "^0.9.6",
"@backstage/config": "^0.1.11",
"@backstage/errors": "^0.1.4",
@@ -63,8 +63,8 @@
},
"devDependencies": {
"@backstage/backend-test-utils": "^0.1.8",
"@backstage/cli": "^0.8.1",
"@backstage/test-utils": "^0.1.20",
"@backstage/cli": "^0.8.2",
"@backstage/test-utils": "^0.1.21",
"@types/core-js": "^2.5.4",
"@types/git-url-parse": "^9.0.0",
"@types/lodash": "^4.14.151",
+6 -6
View File
@@ -23,10 +23,10 @@
"dependencies": {
"@backstage/catalog-client": "^0.5.0",
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -41,10 +41,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
+5 -5
View File
@@ -33,8 +33,8 @@
"dependencies": {
"@backstage/catalog-client": "^0.5.0",
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.3",
"@backstage/integration": "^0.6.8",
"@backstage/integration-react": "^0.1.12",
@@ -55,10 +55,10 @@
"yaml": "^1.10.0"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-catalog-react
## 0.6.3
### Patch Changes
- 03b47a476d: export `loadIdentityOwnerRefs` and `loadCatalogOwnerRefs` all the way
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/catalog-client@0.5.1
- @backstage/core-plugin-api@0.1.13
- @backstage/core-app-api@0.1.20
## 0.6.2
### Patch Changes
+7 -7
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-react",
"description": "A frontend library that helps other Backstage plugins interact with the catalog",
"version": "0.6.2",
"version": "0.6.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -29,11 +29,11 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/catalog-client": "^0.5.0",
"@backstage/catalog-client": "^0.5.1",
"@backstage/catalog-model": "^0.9.6",
"@backstage/core-app-api": "^0.1.19",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-app-api": "^0.1.20",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.4",
"@backstage/integration": "^0.6.9",
"@backstage/types": "^0.1.1",
@@ -51,8 +51,8 @@
"zen-observable": "^0.8.15"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/test-utils": "^0.1.20",
"@backstage/cli": "^0.8.2",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
+6 -6
View File
@@ -33,12 +33,12 @@
"dependencies": {
"@backstage/catalog-client": "^0.5.0",
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.3",
"@backstage/integration-react": "^0.1.12",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -51,10 +51,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-circleci
## 0.2.28
### Patch Changes
- e849f9cc0a: Use `<Progress>` instead of `<LinearProgress />` in combination with `Suspense`.
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.2.27
### Patch Changes
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-circleci",
"description": "A Backstage plugin that integrates towards Circle CI",
"version": "0.2.27",
"version": "0.2.28",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,10 +33,10 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -52,10 +52,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
@@ -14,11 +14,11 @@
* limitations under the License.
*/
import { Progress } from '@backstage/core-components';
import {
Accordion,
AccordionDetails,
AccordionSummary,
LinearProgress,
Typography,
} from '@material-ui/core';
import { makeStyles } from '@material-ui/core/styles';
@@ -85,7 +85,7 @@ export const ActionOutput = ({
{messages.length === 0 ? (
'Nothing here...'
) : (
<Suspense fallback={<LinearProgress />}>
<Suspense fallback={<Progress />}>
<div style={{ height: '20vh', width: '100%' }}>
<LazyLog text={messages.join('\n')} extraLines={1} enableSearch />
</div>
+6 -6
View File
@@ -32,10 +32,10 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -49,10 +49,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+12
View File
@@ -1,5 +1,17 @@
# @backstage/plugin-code-coverage
## 0.1.17
### Patch Changes
- a5512851a0: Change represented test date from epoch to something more human friendly. Round test coverage to 2 decimal places.
- 5a85b802f3: Make dates in X-Axis sort in ascending order
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.1.16
### Patch Changes
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-code-coverage",
"description": "A Backstage plugin that helps you keep track of your code coverage",
"version": "0.1.16",
"version": "0.1.17",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -23,11 +23,11 @@
"dependencies": {
"@backstage/catalog-model": "^0.9.6",
"@backstage/config": "^0.1.11",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.4",
"@backstage/plugin-catalog-react": "^0.6.2",
"@backstage/theme": "^0.2.12",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -42,10 +42,10 @@
"recharts": "^1.8.5"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -22,10 +22,10 @@
},
"dependencies": {
"@backstage/config": "^0.1.11",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.4",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@backstage/types": "^0.1.1",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
@@ -37,10 +37,10 @@
"zen-observable": "^0.8.15"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -32,9 +32,9 @@
},
"dependencies": {
"@backstage/config": "^0.1.10",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/theme": "^0.2.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -55,10 +55,10 @@
"yup": "^0.32.9"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -32,11 +32,11 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/plugin-explore-react": "^0.0.6",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -49,10 +49,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -22,10 +22,10 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -35,10 +35,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -33,11 +33,11 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.3",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -49,10 +49,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -31,9 +31,9 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/theme": "^0.2.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -43,10 +43,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -21,10 +21,10 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/integration": "^0.6.8",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -39,10 +39,10 @@
"recharts": "^1.8.5"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-github-actions
## 0.4.23
### Patch Changes
- e849f9cc0a: Use `<Progress>` instead of `<LinearProgress />` in combination with `Suspense`.
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.4.22
### Patch Changes
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-github-actions",
"description": "A Backstage plugin that integrates towards GitHub Actions",
"version": "0.4.22",
"version": "0.4.23",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -34,11 +34,11 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/integration": "^0.6.8",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -52,10 +52,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
@@ -14,12 +14,15 @@
* limitations under the License.
*/
import { Entity } from '@backstage/catalog-model';
import { Progress } from '@backstage/core-components';
import { configApiRef, useApi } from '@backstage/core-plugin-api';
import { readGitHubIntegrationConfigs } from '@backstage/integration';
import {
Accordion,
AccordionSummary,
CircularProgress,
Fade,
LinearProgress,
makeStyles,
Modal,
Theme,
@@ -27,15 +30,11 @@ import {
Typography,
Zoom,
} from '@material-ui/core';
import React, { Suspense } from 'react';
import { useDownloadWorkflowRunLogs } from './useDownloadWorkflowRunLogs';
import { useProjectName } from '../useProjectName';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import DescriptionIcon from '@material-ui/icons/Description';
import { Entity } from '@backstage/catalog-model';
import { readGitHubIntegrationConfigs } from '@backstage/integration';
import { configApiRef, useApi } from '@backstage/core-plugin-api';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import React, { Suspense } from 'react';
import { useProjectName } from '../useProjectName';
import { useDownloadWorkflowRunLogs } from './useDownloadWorkflowRunLogs';
const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog'));
const LinePart = React.lazy(() => import('react-lazylog/build/LinePart'));
@@ -72,7 +71,7 @@ const DisplayLog = ({
className: string;
}) => {
return (
<Suspense fallback={<LinearProgress />}>
<Suspense fallback={<Progress />}>
<div className={className}>
<LazyLog
text={jobLogs ?? 'No Values Found'}
+6 -6
View File
@@ -22,13 +22,13 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.3",
"@backstage/integration": "^0.6.8",
"@backstage/integration-react": "^0.1.12",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -39,10 +39,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -32,9 +32,9 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/theme": "^0.2.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -44,10 +44,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -31,9 +31,9 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/theme": "^0.2.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -44,10 +44,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-home
## 0.4.5
### Patch Changes
- 4a336fd292: Add name option to `createCardExtension` to remove deprecation warnings for extensions without name. Name will be required for extensions in a future release of `core-plugin-api` and therefore also in `createCardExtension`.
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/core-plugin-api@0.1.13
## 0.4.4
### Patch Changes
+2
View File
@@ -71,9 +71,11 @@ export const ComponentTabs: ({
export function createCardExtension<T>({
title,
components,
name,
}: {
title: string;
components: () => Promise<ComponentParts>;
name?: string;
}): Extension<
({
Renderer,
+7 -7
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-home",
"description": "A Backstage plugin that helps you build a home page",
"version": "0.4.4",
"version": "0.4.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -21,9 +21,9 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/theme": "^0.2.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -35,10 +35,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+3
View File
@@ -37,11 +37,14 @@ type RendererProps = { title: string } & ComponentParts;
export function createCardExtension<T>({
title,
components,
name,
}: {
title: string;
components: () => Promise<ComponentParts>;
name?: string;
}) {
return createReactExtension({
name,
component: {
lazy: () =>
components().then(({ Content, Actions, Settings, ContextProvider }) => {
+2
View File
@@ -71,6 +71,7 @@ export const ComponentTab = homePlugin.provide(
*/
export const WelcomeTitle = homePlugin.provide(
createComponentExtension({
name: 'WelcomeTitle',
component: {
lazy: () =>
import('./homePageComponents/WelcomeTitle').then(m => m.WelcomeTitle),
@@ -80,6 +81,7 @@ export const WelcomeTitle = homePlugin.provide(
export const HomePageRandomJoke = homePlugin.provide(
createCardExtension<{ defaultCategory?: 'any' | 'programming' }>({
name: 'HomePageRandomJoke',
title: 'Random Joke',
components: () => import('./homePageComponents/RandomJoke'),
}),
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-ilert
## 0.1.16
### Patch Changes
- fa325fd89d: Change the version of `@date-io/luxon` from 2.x to 1.x to make it compatible with material-ui-pickers
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.1.15
### Patch Changes
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-ilert",
"description": "A Backstage plugin that integrates towards iLert",
"version": "0.1.15",
"version": "0.1.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -22,11 +22,11 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.3",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/theme": "^0.2.13",
"@date-io/luxon": "1.x",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
@@ -39,10 +39,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+9
View File
@@ -1,5 +1,14 @@
# @backstage/plugin-jenkins-backend
## 0.1.7
### Patch Changes
- e8a1c1afe2: Don't require a validation pattern for the Jenkins base URL.
- Updated dependencies
- @backstage/backend-common@0.9.9
- @backstage/catalog-client@0.5.1
## 0.1.6
### Patch Changes
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-jenkins-backend",
"description": "A Backstage backend plugin that integrates towards Jenkins",
"version": "0.1.6",
"version": "0.1.7",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -22,8 +22,8 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.9.7",
"@backstage/catalog-client": "^0.5.0",
"@backstage/backend-common": "^0.9.9",
"@backstage/catalog-client": "^0.5.1",
"@backstage/catalog-model": "^0.9.5",
"@backstage/config": "^0.1.10",
"@types/express": "^4.17.6",
@@ -35,7 +35,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.8.0",
"@backstage/cli": "^0.8.2",
"@types/jenkins": "^0.23.1",
"@types/supertest": "^2.0.8",
"msw": "^0.35.0",
+6 -6
View File
@@ -33,10 +33,10 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -48,10 +48,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-kafka
## 0.2.20
### Patch Changes
- 91f8644f17: Use IdentityApi to provide Auth Token for KafkaBackendClient Api calls
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.2.19
### Patch Changes
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kafka",
"description": "A Backstage plugin that integrates towards Kafka",
"version": "0.2.19",
"version": "0.2.20",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -22,10 +22,10 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -35,10 +35,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-kubernetes
## 0.4.19
### Patch Changes
- 9f3dd76bc7: fix: kubernetes plugin shall pass id token on get clusters request if possible
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.4.18
### Patch Changes
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kubernetes",
"description": "A Backstage plugin that integrates towards Kubernetes",
"version": "0.4.18",
"version": "0.4.19",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,11 +33,11 @@
"dependencies": {
"@backstage/catalog-model": "^0.9.6",
"@backstage/config": "^0.1.11",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/plugin-catalog-react": "^0.6.2",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/plugin-kubernetes-common": "^0.1.5",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@kubernetes/client-node": "^0.15.0",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
@@ -51,10 +51,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
+6 -6
View File
@@ -34,10 +34,10 @@
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/config": "^0.1.10",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -47,10 +47,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
+6 -6
View File
@@ -32,9 +32,9 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/theme": "^0.2.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -43,10 +43,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -22,10 +22,10 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -37,10 +37,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -32,10 +32,10 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -48,10 +48,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^13.1.8",
+6 -6
View File
@@ -33,10 +33,10 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.9.5",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -49,10 +49,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
@@ -1,5 +1,14 @@
# @backstage/plugin-scaffolder-backend-module-cookiecutter
## 0.1.4
### Patch Changes
- 290fbb3ec2: Add missing API docs to scaffolder action plugins
- Updated dependencies
- @backstage/backend-common@0.9.9
- @backstage/plugin-scaffolder-backend@0.15.12
## 0.1.3
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-cookiecutter",
"description": "A module for the scaffolder backend that lets you template projects using cookiecutter",
"version": "0.1.3",
"version": "0.1.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -20,10 +20,10 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.9.8",
"@backstage/backend-common": "^0.9.9",
"@backstage/errors": "^0.1.4",
"@backstage/integration": "^0.6.9",
"@backstage/plugin-scaffolder-backend": "^0.15.11",
"@backstage/plugin-scaffolder-backend": "^0.15.12",
"@backstage/config": "^0.1.11",
"@backstage/types": "^0.1.1",
"command-exists": "^1.2.9",
@@ -33,7 +33,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/cli": "^0.8.2",
"@types/fs-extra": "^9.0.1",
"@types/mock-fs": "^4.13.0",
"@types/jest": "^26.0.7",
@@ -1,5 +1,14 @@
# @backstage/plugin-scaffolder-backend-module-rails
## 0.1.7
### Patch Changes
- 290fbb3ec2: Add missing API docs to scaffolder action plugins
- Updated dependencies
- @backstage/backend-common@0.9.9
- @backstage/plugin-scaffolder-backend@0.15.12
## 0.1.6
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-rails",
"description": "A module for the scaffolder backend that lets you template projects using Rails",
"version": "0.1.6",
"version": "0.1.7",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -21,8 +21,8 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.9.8",
"@backstage/plugin-scaffolder-backend": "^0.15.11",
"@backstage/backend-common": "^0.9.9",
"@backstage/plugin-scaffolder-backend": "^0.15.12",
"@backstage/config": "^0.1.11",
"@backstage/errors": "^0.1.4",
"@backstage/integration": "^0.6.9",
@@ -31,7 +31,7 @@
"fs-extra": "^9.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/cli": "^0.8.2",
"@types/jest": "^26.0.7",
"@types/node": "^14.14.32",
"@types/command-exists": "^1.2.0",
@@ -1,5 +1,13 @@
# @backstage/plugin-scaffolder-backend-module-yeoman
## 0.1.2
### Patch Changes
- 290fbb3ec2: Add missing API docs to scaffolder action plugins
- Updated dependencies
- @backstage/plugin-scaffolder-backend@0.15.12
## 0.1.1
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-yeoman",
"version": "0.1.1",
"version": "0.1.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -21,13 +21,13 @@
},
"dependencies": {
"@backstage/config": "^0.1.11",
"@backstage/plugin-scaffolder-backend": "^0.15.11",
"@backstage/plugin-scaffolder-backend": "^0.15.12",
"@backstage/types": "^0.1.1",
"winston": "^3.2.1",
"yeoman-environment": "^3.6.0"
},
"devDependencies": {
"@backstage/backend-common": "^0.9.8",
"@backstage/backend-common": "^0.9.9",
"@types/jest": "^26.0.7"
},
"files": [
+50
View File
@@ -1,5 +1,55 @@
# @backstage/plugin-scaffolder-backend
## 0.15.12
### Patch Changes
- 9990df8a1f: Expose some classes and interfaces public so TaskWorkers can run externally from the scaffolder API.
- b45a34fb15: Adds a new endpoint for consuming logs from the Scaffolder that uses long polling instead of Server Sent Events.
This is useful if Backstage is accessed from an environment that doesn't support SSE correctly, which happens in combination with certain enterprise HTTP Proxy servers.
It is intended to switch the endpoint globally for the whole instance.
If you want to use it, you can provide a reconfigured API to the `scaffolderApiRef`:
```tsx
// packages/app/src/apis.ts
// ...
import {
scaffolderApiRef,
ScaffolderClient,
} from '@backstage/plugin-scaffolder';
export const apis: AnyApiFactory[] = [
// ...
createApiFactory({
api: scaffolderApiRef,
deps: {
discoveryApi: discoveryApiRef,
identityApi: identityApiRef,
scmIntegrationsApi: scmIntegrationsApiRef,
},
factory: ({ discoveryApi, identityApi, scmIntegrationsApi }) =>
new ScaffolderClient({
discoveryApi,
identityApi,
scmIntegrationsApi,
// use long polling instead of an eventsource
useLongPollingLogs: true,
}),
}),
];
```
- a794c341ca: Fix a bug where only file mode 775 is considered an executable
- Updated dependencies
- @backstage/backend-common@0.9.9
- @backstage/catalog-client@0.5.1
- @backstage/plugin-catalog-backend@0.17.3
- @backstage/plugin-scaffolder-backend-module-cookiecutter@0.1.4
## 0.15.11
### Patch Changes
+7 -7
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend",
"description": "The Backstage backend plugin that helps you create new things",
"version": "0.15.11",
"version": "0.15.12",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,15 +30,15 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/backend-common": "^0.9.8",
"@backstage/catalog-client": "^0.5.0",
"@backstage/backend-common": "^0.9.9",
"@backstage/catalog-client": "^0.5.1",
"@backstage/catalog-model": "^0.9.6",
"@backstage/config": "^0.1.11",
"@backstage/errors": "^0.1.4",
"@backstage/integration": "^0.6.9",
"@backstage/plugin-catalog-backend": "^0.17.2",
"@backstage/plugin-catalog-backend": "^0.17.3",
"@backstage/plugin-scaffolder-common": "^0.1.1",
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "^0.1.3",
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "^0.1.4",
"@backstage/types": "^0.1.1",
"@gitbeaker/core": "^30.2.0",
"@gitbeaker/node": "^30.2.0",
@@ -71,8 +71,8 @@
"yaml": "^1.10.0"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/test-utils": "^0.1.20",
"@backstage/cli": "^0.8.2",
"@backstage/test-utils": "^0.1.21",
"@types/command-exists": "^1.2.0",
"@types/fs-extra": "^9.0.1",
"@types/git-url-parse": "^9.0.0",
+50
View File
@@ -1,5 +1,55 @@
# @backstage/plugin-scaffolder
## 0.11.10
### Patch Changes
- fe5738fe1c: Lazy load `LazyLog` as it is rarely used.
- b45a34fb15: Adds a new endpoint for consuming logs from the Scaffolder that uses long polling instead of Server Sent Events.
This is useful if Backstage is accessed from an environment that doesn't support SSE correctly, which happens in combination with certain enterprise HTTP Proxy servers.
It is intended to switch the endpoint globally for the whole instance.
If you want to use it, you can provide a reconfigured API to the `scaffolderApiRef`:
```tsx
// packages/app/src/apis.ts
// ...
import {
scaffolderApiRef,
ScaffolderClient,
} from '@backstage/plugin-scaffolder';
export const apis: AnyApiFactory[] = [
// ...
createApiFactory({
api: scaffolderApiRef,
deps: {
discoveryApi: discoveryApiRef,
identityApi: identityApiRef,
scmIntegrationsApi: scmIntegrationsApiRef,
},
factory: ({ discoveryApi, identityApi, scmIntegrationsApi }) =>
new ScaffolderClient({
discoveryApi,
identityApi,
scmIntegrationsApi,
// use long polling instead of an eventsource
useLongPollingLogs: true,
}),
}),
];
```
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/catalog-client@0.5.1
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.11.9
### Patch Changes
+9 -9
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder",
"description": "The Backstage plugin that helps you create new things",
"version": "0.11.9",
"version": "0.11.10",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -31,16 +31,16 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/catalog-client": "^0.5.0",
"@backstage/catalog-client": "^0.5.1",
"@backstage/catalog-model": "^0.9.6",
"@backstage/config": "^0.1.11",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.4",
"@backstage/integration": "^0.6.9",
"@backstage/integration-react": "^0.1.13",
"@backstage/plugin-catalog-react": "^0.6.2",
"@backstage/theme": "^0.2.12",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/theme": "^0.2.13",
"@backstage/types": "^0.1.1",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
@@ -66,10 +66,10 @@
"zen-observable": "^0.8.15"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
@@ -14,38 +14,40 @@
* limitations under the License.
*/
import React, { useState, useEffect, memo, useMemo } from 'react';
import { makeStyles, Theme, createStyles } from '@material-ui/core/styles';
import Stepper from '@material-ui/core/Stepper';
import Step from '@material-ui/core/Step';
import StepLabel from '@material-ui/core/StepLabel';
import Grid from '@material-ui/core/Grid';
import Typography from '@material-ui/core/Typography';
import { useParams } from 'react-router';
import { useTaskEventStream } from '../hooks/useEventStream';
import LazyLog from 'react-lazylog/build/LazyLog';
import {
Content,
ErrorPage,
Header,
Lifecycle,
Page,
Progress,
} from '@backstage/core-components';
import { BackstageTheme } from '@backstage/theme';
import {
CircularProgress,
Paper,
StepButton,
StepIconProps,
} from '@material-ui/core';
import { Status, TaskOutput } from '../../types';
import { DateTime, Interval } from 'luxon';
import { useInterval } from 'react-use';
import Check from '@material-ui/icons/Check';
import Grid from '@material-ui/core/Grid';
import Step from '@material-ui/core/Step';
import StepLabel from '@material-ui/core/StepLabel';
import Stepper from '@material-ui/core/Stepper';
import { createStyles, makeStyles, Theme } from '@material-ui/core/styles';
import Typography from '@material-ui/core/Typography';
import Cancel from '@material-ui/icons/Cancel';
import Check from '@material-ui/icons/Check';
import FiberManualRecordIcon from '@material-ui/icons/FiberManualRecord';
import classNames from 'classnames';
import { BackstageTheme } from '@backstage/theme';
import { DateTime, Interval } from 'luxon';
import React, { memo, Suspense, useEffect, useMemo, useState } from 'react';
import { useParams } from 'react-router';
import { useInterval } from 'react-use';
import { Status, TaskOutput } from '../../types';
import { useTaskEventStream } from '../hooks/useEventStream';
import { TaskPageLinks } from './TaskPageLinks';
import {
Page,
Header,
Lifecycle,
Content,
ErrorPage,
} from '@backstage/core-components';
const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog'));
// typings are wrong for this library, so fallback to not parsing types.
const humanizeDuration = require('humanize-duration');
@@ -213,9 +215,17 @@ export const TaskStatusStepper = memo(
const TaskLogger = memo(({ log }: { log: string }) => {
return (
<div style={{ height: '80vh' }}>
<LazyLog text={log} extraLines={1} follow selectableLines enableSearch />
</div>
<Suspense fallback={<Progress />}>
<div style={{ height: '80vh' }}>
<LazyLog
text={log}
extraLines={1}
follow
selectableLines
enableSearch
/>
</div>
</Suspense>
);
});
@@ -1,5 +1,11 @@
# @backstage/plugin-search-backend-module-elasticsearch
## 0.0.5
### Patch Changes
- 36350bf8b3: Pinning version of elastic search client to 7.13.0 to prevent breaking change towards third party ElasticSearch clusters on 7.14.0.
## 0.0.4
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-module-elasticsearch",
"description": "A module for the search backend that implements search using ElasticSearch",
"version": "0.0.4",
"version": "0.0.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,8 +30,8 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/backend-common": "^0.9.7",
"@backstage/cli": "^0.8.0",
"@backstage/backend-common": "^0.9.9",
"@backstage/cli": "^0.8.2",
"@elastic/elasticsearch-mock": "^0.3.0"
},
"files": [
+24
View File
@@ -1,5 +1,29 @@
# @backstage/plugin-search
## 0.4.17
### Patch Changes
- 5dcea2586c: Added `SearchModal` component.
Now you can import `SearchModal` in your apps:
```js
import { SearchModal } from '@backstage/plugin-search';
```
You can also use the `SidebarSearchModal` component to integrate it into the sidebar of your sample apps:
```js
import { SidebarSearchModal } from '@backstage/plugin-search';
```
- Updated dependencies
- @backstage/core-components@0.7.3
- @backstage/theme@0.2.13
- @backstage/core-plugin-api@0.1.13
- @backstage/plugin-catalog-react@0.6.3
## 0.4.16
### Patch Changes
+23
View File
@@ -126,6 +126,24 @@ export const SearchFilterNext: {
Select(props: Omit<Props_2, 'component'> & Component): JSX.Element;
};
// Warning: (ae-missing-release-tag) "SearchModal" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SearchModal: ({
open,
toggleModal,
}: SearchModalProps) => JSX.Element;
// Warning: (ae-missing-release-tag) "SearchModalProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SearchModalProps {
// (undocumented)
open?: boolean;
// (undocumented)
toggleModal: () => void;
}
// Warning: (ae-missing-release-tag) "SearchPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
@@ -179,6 +197,11 @@ export const SearchType: ({
// @public (undocumented)
export const SidebarSearch: () => JSX.Element;
// Warning: (ae-missing-release-tag) "SidebarSearchModal" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SidebarSearchModal: () => JSX.Element;
// Warning: (ae-forgotten-export) The symbol "SearchContextValue" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "useSearch" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search",
"description": "The Backstage plugin that provides your backstage app with search",
"version": "0.4.16",
"version": "0.4.17",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,12 +32,12 @@
"dependencies": {
"@backstage/catalog-model": "^0.9.6",
"@backstage/config": "^0.1.11",
"@backstage/core-components": "^0.7.2",
"@backstage/core-plugin-api": "^0.1.12",
"@backstage/core-components": "^0.7.3",
"@backstage/core-plugin-api": "^0.1.13",
"@backstage/errors": "^0.1.4",
"@backstage/plugin-catalog-react": "^0.6.2",
"@backstage/plugin-catalog-react": "^0.6.3",
"@backstage/search-common": "^0.2.1",
"@backstage/theme": "^0.2.12",
"@backstage/theme": "^0.2.13",
"@backstage/types": "^0.1.1",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
@@ -51,10 +51,10 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.8.1",
"@backstage/core-app-api": "^0.1.19",
"@backstage/cli": "^0.8.2",
"@backstage/core-app-api": "^0.1.20",
"@backstage/dev-utils": "^0.2.12",
"@backstage/test-utils": "^0.1.20",
"@backstage/test-utils": "^0.1.21",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^11.2.5",
"@testing-library/react-hooks": "^7.0.2",
@@ -0,0 +1,77 @@
/*
* Copyright 2021 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { screen } from '@testing-library/react';
import { renderInTestApp } from '@backstage/test-utils';
import userEvent from '@testing-library/user-event';
import { configApiRef } from '@backstage/core-plugin-api';
import {
ApiProvider,
ApiRegistry,
ConfigReader,
} from '@backstage/core-app-api';
import { rootRouteRef } from '../../plugin';
import { searchApiRef } from '../../apis';
import { SearchModal } from './SearchModal';
jest.mock('../SearchContext', () => ({
...jest.requireActual('../SearchContext'),
useSearch: jest.fn().mockReturnValue({
result: {},
}),
}));
describe('SearchModal', () => {
const query = jest.fn().mockResolvedValue({});
const apiRegistry = ApiRegistry.from([
[configApiRef, new ConfigReader({ app: { title: 'Mock app' } })],
[searchApiRef, { query }],
]);
const toggleModal = jest.fn();
it('Should render the Modal correctly', async () => {
await renderInTestApp(
<ApiProvider apis={apiRegistry}>
<SearchModal open toggleModal={toggleModal} />
</ApiProvider>,
{
mountedRoutes: {
'/search': rootRouteRef,
},
},
);
expect(screen.getByRole('dialog')).toBeInTheDocument();
});
it('Calls toggleModal handler', async () => {
await renderInTestApp(
<ApiProvider apis={apiRegistry}>
<SearchModal open toggleModal={toggleModal} />
</ApiProvider>,
{
mountedRoutes: {
'/search': rootRouteRef,
},
},
);
userEvent.keyboard('{esc}');
expect(toggleModal).toHaveBeenCalledTimes(1);
});
});
@@ -0,0 +1,162 @@
/*
* Copyright 2021 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React, { useEffect, useState } from 'react';
import {
Dialog,
DialogActions,
DialogContent,
DialogTitle,
Divider,
Grid,
List,
Paper,
} from '@material-ui/core';
import { Launch } from '@material-ui/icons/';
import { makeStyles } from '@material-ui/core/styles';
import { SearchBarBase } from '../SearchBar';
import { DefaultResultListItem } from '../DefaultResultListItem';
import { SearchResult } from '../SearchResult';
import { SearchContextProvider, useSearch } from '../SearchContext';
import { SearchResultPager } from '../SearchResultPager';
import { useRouteRef } from '@backstage/core-plugin-api';
import { Link } from '@backstage/core-components';
import { rootRouteRef } from '../../plugin';
import { useDebounce } from 'react-use';
export interface SearchModalProps {
open?: boolean;
toggleModal: () => void;
}
const useStyles = makeStyles(theme => ({
container: {
borderRadius: 30,
display: 'flex',
height: '2.4em',
},
input: {
flex: 1,
},
// Reduces default height of the modal, keeping a gap of 128px between the top and bottom of the page.
paperFullWidth: { height: 'calc(100% - 128px)' },
dialogActionsContainer: { padding: theme.spacing(1, 3) },
viewResultsLink: { verticalAlign: '0.5em' },
}));
export const Modal = ({ open = true, toggleModal }: SearchModalProps) => {
const getSearchLink = useRouteRef(rootRouteRef);
const classes = useStyles();
const { term, setTerm } = useSearch();
const [value, setValue] = useState<string>(term);
useEffect(() => {
setValue(prevValue => (prevValue !== term ? term : prevValue));
}, [term]);
useDebounce(() => setTerm(value), 1000, [value]);
const handleQuery = (newValue: string) => {
setValue(newValue);
};
const handleClear = () => setValue('');
const handleResultClick = () => {
toggleModal();
handleClear();
};
const handleKeyPress = () => {
handleResultClick();
};
return (
<Dialog
classes={{
paperFullWidth: classes.paperFullWidth,
}}
onClose={toggleModal}
aria-labelledby="search-modal-title"
open={open}
fullWidth
maxWidth="lg"
>
<DialogTitle>
<Paper className={classes.container}>
<SearchBarBase
className={classes.input}
value={value}
onChange={handleQuery}
onClear={handleClear}
/>
</Paper>
</DialogTitle>
<DialogContent>
<Grid
container
direction="row-reverse"
justifyContent="flex-start"
alignItems="center"
>
<Grid item>
<Link to={`${getSearchLink()}?query=${value}`}>
<span className={classes.viewResultsLink}>View Full Results</span>
<Launch color="primary" />
</Link>
</Grid>
</Grid>
<Divider />
<SearchResult>
{({ results }) => (
<List>
{results.map(({ document }) => (
<div
role="button"
tabIndex={0}
key={`${document.location}-btn`}
onClick={handleResultClick}
onKeyPress={handleKeyPress}
>
<DefaultResultListItem
key={document.location}
result={document}
/>
</div>
))}
</List>
)}
</SearchResult>
</DialogContent>
<DialogActions className={classes.dialogActionsContainer}>
<Grid container direction="row">
<Grid item xs={12}>
<SearchResultPager />
</Grid>
</Grid>
</DialogActions>
</Dialog>
);
};
export const SearchModal = ({ open = true, toggleModal }: SearchModalProps) => {
return (
<SearchContextProvider>
<Modal open={open} toggleModal={toggleModal} />
</SearchContextProvider>
);
};
@@ -0,0 +1,17 @@
/*
* Copyright 2021 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export { SearchModal } from './SearchModal';
export type { SearchModalProps } from './SearchModal';
@@ -0,0 +1,36 @@
/*
* Copyright 2021 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React, { useState } from 'react';
import SearchIcon from '@material-ui/icons/Search';
import { SearchModal } from '../SearchModal';
import { SidebarItem } from '@backstage/core-components';
export const SidebarSearchModal = () => {
const [open, setOpen] = useState<boolean>(false);
const toggleModal = (): void => setOpen(prevState => !prevState);
return (
<>
<SidebarItem
className="search-icon"
icon={SearchIcon}
text="Search"
onClick={toggleModal}
/>
<SearchModal open={open} toggleModal={toggleModal} />
</>
);
};
@@ -0,0 +1,16 @@
/*
* Copyright 2021 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export { SidebarSearchModal } from './SidebarSearchModal';

Some files were not shown because too many files have changed in this diff Show More