@backstage/plugin-scaffolder-react 1.10.0-next.0 → 1.10.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/alpha/package.json +1 -1
- package/dist/next/components/Form/Form.esm.js +3 -1
- package/dist/next/components/Form/Form.esm.js.map +1 -1
- package/dist/next/components/Stepper/ErrorListTemplate/errorListTemplate.esm.js +16 -2
- package/dist/next/components/Stepper/ErrorListTemplate/errorListTemplate.esm.js.map +1 -1
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @backstage/plugin-scaffolder-react
|
|
2
2
|
|
|
3
|
+
## 1.10.0-next.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @backstage/core-components@0.14.9-next.1
|
|
9
|
+
- @backstage/plugin-catalog-react@1.12.2-next.2
|
|
10
|
+
|
|
11
|
+
## 1.10.0-next.1
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- 354e68c: Improve validation error display text in scaffolder
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- cc81579: Updated dependency `@rjsf/utils` to `5.18.5`.
|
|
20
|
+
Updated dependency `@rjsf/core` to `5.18.5`.
|
|
21
|
+
Updated dependency `@rjsf/material-ui` to `5.18.5`.
|
|
22
|
+
Updated dependency `@rjsf/validator-ajv8` to `5.18.5`.
|
|
23
|
+
- Updated dependencies
|
|
24
|
+
- @backstage/plugin-catalog-react@1.12.2-next.1
|
|
25
|
+
- @backstage/core-components@0.14.9-next.0
|
|
26
|
+
- @backstage/core-plugin-api@1.9.3
|
|
27
|
+
- @backstage/catalog-client@1.6.5
|
|
28
|
+
- @backstage/catalog-model@1.5.0
|
|
29
|
+
- @backstage/theme@0.5.6
|
|
30
|
+
- @backstage/types@1.1.1
|
|
31
|
+
- @backstage/version-bridge@1.0.8
|
|
32
|
+
- @backstage/plugin-permission-react@0.4.23
|
|
33
|
+
- @backstage/plugin-scaffolder-common@1.5.3
|
|
34
|
+
|
|
3
35
|
## 1.10.0-next.0
|
|
4
36
|
|
|
5
37
|
### Minor Changes
|
package/alpha/package.json
CHANGED
|
@@ -17,7 +17,9 @@ const Form = (props) => {
|
|
|
17
17
|
...wrapperProps,
|
|
18
18
|
uiSchema: wrapperProps.uiSchema ?? {},
|
|
19
19
|
formData: wrapperProps.formData,
|
|
20
|
-
rawErrors: wrapperProps.rawErrors ?? []
|
|
20
|
+
rawErrors: wrapperProps.rawErrors ?? [],
|
|
21
|
+
disabled: wrapperProps.disabled ?? false,
|
|
22
|
+
readonly: wrapperProps.readonly ?? false
|
|
21
23
|
}
|
|
22
24
|
);
|
|
23
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.esm.js","sources":["../../../../src/next/components/Form/Form.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { withTheme } from '@rjsf/core';\nimport React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { FieldTemplate } from './FieldTemplate';\nimport { DescriptionFieldTemplate } from './DescriptionFieldTemplate';\nimport { FieldProps } from '@rjsf/utils';\nimport { ScaffolderRJSFFormProps } from '@backstage/plugin-scaffolder-react';\nimport { Theme as MuiTheme } from '@rjsf/material-ui';\n\nconst WrappedForm = withTheme(MuiTheme);\n\n/**\n * The Form component\n * @alpha\n */\nexport const Form = (props: PropsWithChildren<ScaffolderRJSFFormProps>) => {\n // This is where we unbreak the changes from RJSF, and make it work with our custom fields so we don't pass on this\n // breaking change to our users. We will look more into a better API for this in scaffolderv2.\n const wrappedFields = React.useMemo(\n () =>\n Object.fromEntries(\n Object.entries(props.fields ?? {}).map(([key, Component]) => [\n key,\n (wrapperProps: FieldProps) => {\n return (\n <Component\n {...wrapperProps}\n uiSchema={wrapperProps.uiSchema ?? {}}\n formData={wrapperProps.formData}\n rawErrors={wrapperProps.rawErrors ?? []}\n />\n );\n },\n ]),\n ),\n [props.fields],\n );\n\n const templates = React.useMemo(\n () => ({\n FieldTemplate,\n DescriptionFieldTemplate,\n ...props.templates,\n }),\n [props.templates],\n );\n\n return (\n <WrappedForm {...props} templates={templates} fields={wrappedFields} />\n );\n};\n"],"names":["MuiTheme"],"mappings":";;;;;;AAyBA,MAAM,WAAA,GAAc,UAAUA,KAAQ,CAAA,CAAA;AAMzB,MAAA,IAAA,GAAO,CAAC,KAAsD,KAAA;AAGzE,EAAA,MAAM,gBAAgB,KAAM,CAAA,OAAA;AAAA,IAC1B,MACE,MAAO,CAAA,WAAA;AAAA,MACL,MAAO,CAAA,OAAA,CAAQ,KAAM,CAAA,MAAA,IAAU,EAAE,CAAE,CAAA,GAAA,CAAI,CAAC,CAAC,GAAK,EAAA,SAAS,CAAM,KAAA;AAAA,QAC3D,GAAA;AAAA,QACA,CAAC,YAA6B,KAAA;AAC5B,UACE,uBAAA,KAAA,CAAA,aAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACE,GAAG,YAAA;AAAA,cACJ,QAAA,EAAU,YAAa,CAAA,QAAA,IAAY,EAAC;AAAA,cACpC,UAAU,YAAa,CAAA,QAAA;AAAA,cACvB,SAAA,EAAW,YAAa,CAAA,SAAA,IAAa,EAAC;AAAA,aAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"Form.esm.js","sources":["../../../../src/next/components/Form/Form.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { withTheme } from '@rjsf/core';\nimport React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { FieldTemplate } from './FieldTemplate';\nimport { DescriptionFieldTemplate } from './DescriptionFieldTemplate';\nimport { FieldProps } from '@rjsf/utils';\nimport { ScaffolderRJSFFormProps } from '@backstage/plugin-scaffolder-react';\nimport { Theme as MuiTheme } from '@rjsf/material-ui';\n\nconst WrappedForm = withTheme(MuiTheme);\n\n/**\n * The Form component\n * @alpha\n */\nexport const Form = (props: PropsWithChildren<ScaffolderRJSFFormProps>) => {\n // This is where we unbreak the changes from RJSF, and make it work with our custom fields so we don't pass on this\n // breaking change to our users. We will look more into a better API for this in scaffolderv2.\n const wrappedFields = React.useMemo(\n () =>\n Object.fromEntries(\n Object.entries(props.fields ?? {}).map(([key, Component]) => [\n key,\n (wrapperProps: FieldProps) => {\n return (\n <Component\n {...wrapperProps}\n uiSchema={wrapperProps.uiSchema ?? {}}\n formData={wrapperProps.formData}\n rawErrors={wrapperProps.rawErrors ?? []}\n disabled={wrapperProps.disabled ?? false}\n readonly={wrapperProps.readonly ?? false}\n />\n );\n },\n ]),\n ),\n [props.fields],\n );\n\n const templates = React.useMemo(\n () => ({\n FieldTemplate,\n DescriptionFieldTemplate,\n ...props.templates,\n }),\n [props.templates],\n );\n\n return (\n <WrappedForm {...props} templates={templates} fields={wrappedFields} />\n );\n};\n"],"names":["MuiTheme"],"mappings":";;;;;;AAyBA,MAAM,WAAA,GAAc,UAAUA,KAAQ,CAAA,CAAA;AAMzB,MAAA,IAAA,GAAO,CAAC,KAAsD,KAAA;AAGzE,EAAA,MAAM,gBAAgB,KAAM,CAAA,OAAA;AAAA,IAC1B,MACE,MAAO,CAAA,WAAA;AAAA,MACL,MAAO,CAAA,OAAA,CAAQ,KAAM,CAAA,MAAA,IAAU,EAAE,CAAE,CAAA,GAAA,CAAI,CAAC,CAAC,GAAK,EAAA,SAAS,CAAM,KAAA;AAAA,QAC3D,GAAA;AAAA,QACA,CAAC,YAA6B,KAAA;AAC5B,UACE,uBAAA,KAAA,CAAA,aAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACE,GAAG,YAAA;AAAA,cACJ,QAAA,EAAU,YAAa,CAAA,QAAA,IAAY,EAAC;AAAA,cACpC,UAAU,YAAa,CAAA,QAAA;AAAA,cACvB,SAAA,EAAW,YAAa,CAAA,SAAA,IAAa,EAAC;AAAA,cACtC,QAAA,EAAU,aAAa,QAAY,IAAA,KAAA;AAAA,cACnC,QAAA,EAAU,aAAa,QAAY,IAAA,KAAA;AAAA,aAAA;AAAA,WACrC,CAAA;AAAA,SAEJ;AAAA,OACD,CAAA;AAAA,KACH;AAAA,IACF,CAAC,MAAM,MAAM,CAAA;AAAA,GACf,CAAA;AAEA,EAAA,MAAM,YAAY,KAAM,CAAA,OAAA;AAAA,IACtB,OAAO;AAAA,MACL,aAAA;AAAA,MACA,wBAAA;AAAA,MACA,GAAG,KAAM,CAAA,SAAA;AAAA,KACX,CAAA;AAAA,IACA,CAAC,MAAM,SAAS,CAAA;AAAA,GAClB,CAAA;AAEA,EAAA,2CACG,WAAa,EAAA,EAAA,GAAG,KAAO,EAAA,SAAA,EAAsB,QAAQ,aAAe,EAAA,CAAA,CAAA;AAEzE;;;;"}
|
|
@@ -6,6 +6,7 @@ import ListItemText from '@material-ui/core/ListItemText';
|
|
|
6
6
|
import Paper from '@material-ui/core/Paper';
|
|
7
7
|
import { makeStyles, createStyles } from '@material-ui/core/styles';
|
|
8
8
|
import ErrorIcon from '@material-ui/icons/Error';
|
|
9
|
+
import startCase from 'lodash/startCase';
|
|
9
10
|
|
|
10
11
|
const useStyles = makeStyles(
|
|
11
12
|
(_theme) => createStyles({
|
|
@@ -17,13 +18,26 @@ const useStyles = makeStyles(
|
|
|
17
18
|
}
|
|
18
19
|
})
|
|
19
20
|
);
|
|
20
|
-
const ErrorListTemplate = ({ errors }) => {
|
|
21
|
+
const ErrorListTemplate = ({ errors, schema }) => {
|
|
21
22
|
const classes = useStyles();
|
|
23
|
+
function formatErrorMessage(error) {
|
|
24
|
+
if (error.property && error.message) {
|
|
25
|
+
const propertyName = error.property.startsWith(".") ? error.property.substring(1) : error.property;
|
|
26
|
+
if (schema.properties && propertyName in schema.properties) {
|
|
27
|
+
const property = schema.properties[propertyName];
|
|
28
|
+
if (typeof property === "object" && "title" in property) {
|
|
29
|
+
return `'${property.title}' ${error.message}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return `'${startCase(propertyName)}' ${error.message}`;
|
|
33
|
+
}
|
|
34
|
+
return error.stack;
|
|
35
|
+
}
|
|
22
36
|
return /* @__PURE__ */ React.createElement(Paper, null, /* @__PURE__ */ React.createElement(List, { dense: true, className: classes.list }, errors.map((error, index) => /* @__PURE__ */ React.createElement(ListItem, { key: index }, /* @__PURE__ */ React.createElement(ListItemIcon, null, /* @__PURE__ */ React.createElement(ErrorIcon, { color: "error" })), /* @__PURE__ */ React.createElement(
|
|
23
37
|
ListItemText,
|
|
24
38
|
{
|
|
25
39
|
classes: { primary: classes.text },
|
|
26
|
-
primary: error
|
|
40
|
+
primary: formatErrorMessage(error)
|
|
27
41
|
}
|
|
28
42
|
)))));
|
|
29
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorListTemplate.esm.js","sources":["../../../../../src/next/components/Stepper/ErrorListTemplate/errorListTemplate.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React from 'react';\nimport { ErrorListProps } from '@rjsf/utils';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Paper from '@material-ui/core/Paper';\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles';\nimport ErrorIcon from '@material-ui/icons/Error';\n\nconst useStyles = makeStyles((_theme: Theme) =>\n createStyles({\n list: {\n width: '100%',\n },\n text: {\n textWrap: 'wrap',\n },\n }),\n);\n\n/**\n * Shows a list of errors found in the form\n *\n * @public\n */\nexport const ErrorListTemplate = ({ errors }: ErrorListProps) => {\n const classes = useStyles();\n\n return (\n <Paper>\n <List dense className={classes.list}>\n {errors.map((error, index) => (\n <ListItem key={index}>\n <ListItemIcon>\n <ErrorIcon color=\"error\" />\n </ListItemIcon>\n <ListItemText\n classes={{ primary: classes.text }}\n primary={error
|
|
1
|
+
{"version":3,"file":"errorListTemplate.esm.js","sources":["../../../../../src/next/components/Stepper/ErrorListTemplate/errorListTemplate.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React from 'react';\nimport { ErrorListProps, RJSFValidationError } from '@rjsf/utils';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Paper from '@material-ui/core/Paper';\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles';\nimport ErrorIcon from '@material-ui/icons/Error';\nimport startCase from 'lodash/startCase';\n\nconst useStyles = makeStyles((_theme: Theme) =>\n createStyles({\n list: {\n width: '100%',\n },\n text: {\n textWrap: 'wrap',\n },\n }),\n);\n\n/**\n * Shows a list of errors found in the form\n *\n * @public\n */\nexport const ErrorListTemplate = ({ errors, schema }: ErrorListProps) => {\n const classes = useStyles();\n\n function formatErrorMessage(error: RJSFValidationError) {\n if (error.property && error.message) {\n const propertyName = error.property.startsWith('.')\n ? error.property.substring(1)\n : error.property;\n if (schema.properties && propertyName in schema.properties) {\n const property = schema.properties[propertyName];\n\n if (typeof property === 'object' && 'title' in property) {\n return `'${property.title}' ${error.message}`;\n }\n }\n // fall back to property name\n return `'${startCase(propertyName)}' ${error.message}`;\n }\n // fall back if property does not exist\n return error.stack;\n }\n\n return (\n <Paper>\n <List dense className={classes.list}>\n {errors.map((error, index) => (\n <ListItem key={index}>\n <ListItemIcon>\n <ErrorIcon color=\"error\" />\n </ListItemIcon>\n <ListItemText\n classes={{ primary: classes.text }}\n primary={formatErrorMessage(error)}\n />\n </ListItem>\n ))}\n </List>\n </Paper>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AA0BA,MAAM,SAAY,GAAA,UAAA;AAAA,EAAW,CAAC,WAC5B,YAAa,CAAA;AAAA,IACX,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,MAAA;AAAA,KACT;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,QAAU,EAAA,MAAA;AAAA,KACZ;AAAA,GACD,CAAA;AACH,CAAA,CAAA;AAOO,MAAM,iBAAoB,GAAA,CAAC,EAAE,MAAA,EAAQ,QAA6B,KAAA;AACvE,EAAA,MAAM,UAAU,SAAU,EAAA,CAAA;AAE1B,EAAA,SAAS,mBAAmB,KAA4B,EAAA;AACtD,IAAI,IAAA,KAAA,CAAM,QAAY,IAAA,KAAA,CAAM,OAAS,EAAA;AACnC,MAAM,MAAA,YAAA,GAAe,KAAM,CAAA,QAAA,CAAS,UAAW,CAAA,GAAG,CAC9C,GAAA,KAAA,CAAM,QAAS,CAAA,SAAA,CAAU,CAAC,CAAA,GAC1B,KAAM,CAAA,QAAA,CAAA;AACV,MAAA,IAAI,MAAO,CAAA,UAAA,IAAc,YAAgB,IAAA,MAAA,CAAO,UAAY,EAAA;AAC1D,QAAM,MAAA,QAAA,GAAW,MAAO,CAAA,UAAA,CAAW,YAAY,CAAA,CAAA;AAE/C,QAAA,IAAI,OAAO,QAAA,KAAa,QAAY,IAAA,OAAA,IAAW,QAAU,EAAA;AACvD,UAAA,OAAO,CAAI,CAAA,EAAA,QAAA,CAAS,KAAK,CAAA,EAAA,EAAK,MAAM,OAAO,CAAA,CAAA,CAAA;AAAA,SAC7C;AAAA,OACF;AAEA,MAAA,OAAO,IAAI,SAAU,CAAA,YAAY,CAAC,CAAA,EAAA,EAAK,MAAM,OAAO,CAAA,CAAA,CAAA;AAAA,KACtD;AAEA,IAAA,OAAO,KAAM,CAAA,KAAA,CAAA;AAAA,GACf;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,KACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAK,MAAC,SAAW,EAAA,OAAA,CAAQ,IAC5B,EAAA,EAAA,MAAA,CAAO,GAAI,CAAA,CAAC,OAAO,KAClB,qBAAA,KAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,GAAA,EAAK,KACb,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,YACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,SAAU,EAAA,EAAA,KAAA,EAAM,OAAQ,EAAA,CAC3B,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,OAAS,EAAA,EAAE,OAAS,EAAA,OAAA,CAAQ,IAAK,EAAA;AAAA,MACjC,OAAA,EAAS,mBAAmB,KAAK,CAAA;AAAA,KAAA;AAAA,GAErC,CACD,CACH,CACF,CAAA,CAAA;AAEJ;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-scaffolder-react",
|
|
3
|
-
"version": "1.10.0-next.
|
|
3
|
+
"version": "1.10.0-next.2",
|
|
4
4
|
"description": "A frontend library that helps other Backstage plugins interact with the Scaffolder",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "web-library",
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"@backstage/catalog-client": "^1.6.5",
|
|
61
61
|
"@backstage/catalog-model": "^1.5.0",
|
|
62
|
-
"@backstage/core-components": "^0.14.9-next.
|
|
62
|
+
"@backstage/core-components": "^0.14.9-next.1",
|
|
63
63
|
"@backstage/core-plugin-api": "^1.9.3",
|
|
64
|
-
"@backstage/plugin-catalog-react": "^1.12.2-next.
|
|
64
|
+
"@backstage/plugin-catalog-react": "^1.12.2-next.2",
|
|
65
65
|
"@backstage/plugin-permission-react": "^0.4.23",
|
|
66
66
|
"@backstage/plugin-scaffolder-common": "^1.5.3",
|
|
67
67
|
"@backstage/theme": "^0.5.6",
|
|
@@ -71,10 +71,10 @@
|
|
|
71
71
|
"@material-ui/icons": "^4.9.1",
|
|
72
72
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
73
73
|
"@react-hookz/web": "^24.0.0",
|
|
74
|
-
"@rjsf/core": "5.18.
|
|
75
|
-
"@rjsf/material-ui": "5.18.
|
|
76
|
-
"@rjsf/utils": "5.18.
|
|
77
|
-
"@rjsf/validator-ajv8": "5.18.
|
|
74
|
+
"@rjsf/core": "5.18.5",
|
|
75
|
+
"@rjsf/material-ui": "5.18.5",
|
|
76
|
+
"@rjsf/utils": "5.18.5",
|
|
77
|
+
"@rjsf/validator-ajv8": "5.18.5",
|
|
78
78
|
"@types/json-schema": "^7.0.9",
|
|
79
79
|
"@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
|
|
80
80
|
"classnames": "^2.2.6",
|
|
@@ -92,12 +92,12 @@
|
|
|
92
92
|
"zod-to-json-schema": "^3.20.4"
|
|
93
93
|
},
|
|
94
94
|
"devDependencies": {
|
|
95
|
-
"@backstage/cli": "^0.26.
|
|
96
|
-
"@backstage/core-app-api": "^1.13.
|
|
97
|
-
"@backstage/plugin-catalog": "^1.21.1-next.
|
|
95
|
+
"@backstage/cli": "^0.26.11-next.1",
|
|
96
|
+
"@backstage/core-app-api": "^1.13.1-next.1",
|
|
97
|
+
"@backstage/plugin-catalog": "^1.21.1-next.2",
|
|
98
98
|
"@backstage/plugin-catalog-common": "^1.0.24",
|
|
99
99
|
"@backstage/plugin-permission-common": "^0.7.14",
|
|
100
|
-
"@backstage/test-utils": "^1.5.
|
|
100
|
+
"@backstage/test-utils": "^1.5.8-next.1",
|
|
101
101
|
"@testing-library/dom": "^10.0.0",
|
|
102
102
|
"@testing-library/jest-dom": "^6.0.0",
|
|
103
103
|
"@testing-library/react": "^15.0.0",
|