diff --git a/package.json b/package.json
index 267fccc029..1013b2a049 100644
--- a/package.json
+++ b/package.json
@@ -37,8 +37,7 @@
"workspaces": {
"packages": [
"packages/*",
- "plugins/*",
- "../react-jsonschema-form/packages/*"
+ "plugins/*"
]
},
"resolutions": {
diff --git a/packages/app/package.json b/packages/app/package.json
index 76e099bace..fa8bb5c5ee 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -83,7 +83,6 @@
},
"devDependencies": {
"@backstage/test-utils": "workspace:^",
- "@rjsf/core": "^3.2.1",
"@testing-library/cypress": "^8.0.2",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
diff --git a/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx b/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx
index 2a4dedf080..3f6bd33d89 100644
--- a/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx
+++ b/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import React from 'react';
-import type { FieldValidation } from '@rjsf/core';
+import type { FieldValidation } from '@rjsf/utils';
import {
createScaffolderFieldExtension,
FieldExtensionComponentProps,
diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json
index b778f9d31f..cf28227e8e 100644
--- a/plugins/scaffolder/package.json
+++ b/plugins/scaffolder/package.json
@@ -56,6 +56,7 @@
"@react-hookz/web": "^15.0.0",
"@rjsf/core": "^5.0.0-beta.2",
"@rjsf/material-ui": "^5.0.0-beta.2",
+ "@rjsf/utils": "^5.0.0-beta.2",
"@rjsf/validator-ajv6": "^5.0.0-beta.2",
"@types/json-schema": "^7.0.9",
"@uiw/react-codemirror": "^4.9.3",
diff --git a/plugins/scaffolder/src/components/MultistepJsonForm/FieldOverrides/DescriptionField.tsx b/plugins/scaffolder/src/components/MultistepJsonForm/FieldOverrides/DescriptionField.tsx
index 3c592860ef..eded38beee 100644
--- a/plugins/scaffolder/src/components/MultistepJsonForm/FieldOverrides/DescriptionField.tsx
+++ b/plugins/scaffolder/src/components/MultistepJsonForm/FieldOverrides/DescriptionField.tsx
@@ -16,7 +16,7 @@
import React from 'react';
import { MarkdownContent } from '@backstage/core-components';
-import { FieldProps } from '@rjsf/core';
+import { FieldProps } from '@rjsf/utils';
export const DescriptionField = ({ description }: FieldProps) =>
description && ;
diff --git a/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx b/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx
index 60d242e0a1..064299f667 100644
--- a/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx
+++ b/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx
@@ -29,7 +29,8 @@ import {
useApi,
featureFlagsApiRef,
} from '@backstage/core-plugin-api';
-import { FormProps, IChangeEvent, UiSchema, withTheme } from '@rjsf/core';
+import { UiSchema } from '@rjsf/utils';
+import { FormProps, IChangeEvent, withTheme } from '@rjsf/core';
import { Theme } from '@rjsf/material-ui';
import validator from '@rjsf/validator-ajv6';
import React, { useState } from 'react';
@@ -215,7 +216,7 @@ export const MultistepJsonForm = (props: Props) => {
formData={formData}
formContext={{ formData }}
onChange={onChange}
- onSubmit={e => {
+ onSubmit={(e: any) => {
if (e.errors.length === 0) handleNext();
}}
{...formProps}
diff --git a/plugins/scaffolder/src/components/TemplatePage/createValidator.test.ts b/plugins/scaffolder/src/components/TemplatePage/createValidator.test.ts
index f549c9e7f2..c17b72148e 100644
--- a/plugins/scaffolder/src/components/TemplatePage/createValidator.test.ts
+++ b/plugins/scaffolder/src/components/TemplatePage/createValidator.test.ts
@@ -17,7 +17,7 @@
import { createValidator } from './createValidator';
import { CustomFieldValidator } from '../../extensions';
import { ApiHolder } from '@backstage/core-plugin-api';
-import { FormValidation } from '@rjsf/core';
+import { FormValidation } from '@rjsf/utils';
describe('createValidator', () => {
const validators: Record> =
diff --git a/plugins/scaffolder/src/components/TemplatePage/createValidator.ts b/plugins/scaffolder/src/components/TemplatePage/createValidator.ts
index 9cd1489a02..2769b899df 100644
--- a/plugins/scaffolder/src/components/TemplatePage/createValidator.ts
+++ b/plugins/scaffolder/src/components/TemplatePage/createValidator.ts
@@ -15,7 +15,7 @@
*/
import { CustomFieldValidator } from '../../extensions';
-import { FormValidation } from '@rjsf/core';
+import { FormValidation } from '@rjsf/utils';
import { JsonObject, JsonValue } from '@backstage/types';
import { ApiHolder } from '@backstage/core-plugin-api';
diff --git a/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.test.ts b/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.test.ts
index 290650387e..7201c9c4b3 100644
--- a/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.test.ts
+++ b/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.test.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { FieldValidation } from '@rjsf/core';
+import { FieldValidation } from '@rjsf/utils';
import { KubernetesValidatorFunctions } from '@backstage/catalog-model';
import { entityNamePickerValidation } from './validation';
diff --git a/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.ts b/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.ts
index 7a40a460ba..1533b0cdc3 100644
--- a/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.ts
+++ b/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { FieldValidation } from '@rjsf/core';
+import { FieldValidation } from '@rjsf/utils';
import { KubernetesValidatorFunctions } from '@backstage/catalog-model';
export const entityNamePickerValidation = (
diff --git a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.test.tsx b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.test.tsx
index 942eef9d82..f4eefb26d5 100644
--- a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.test.tsx
+++ b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.test.tsx
@@ -17,7 +17,7 @@
import { Entity } from '@backstage/catalog-model';
import { CatalogApi, catalogApiRef } from '@backstage/plugin-catalog-react';
import { renderInTestApp, TestApiProvider } from '@backstage/test-utils';
-import { FieldProps } from '@rjsf/core';
+import { FieldProps } from '@rjsf/utils';
import { fireEvent } from '@testing-library/react';
import React from 'react';
import { EntityPicker } from './EntityPicker';
diff --git a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.test.tsx b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.test.tsx
index b78d3add9e..68c9723974 100644
--- a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.test.tsx
+++ b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.test.tsx
@@ -17,7 +17,7 @@
import { Entity } from '@backstage/catalog-model';
import { CatalogApi, catalogApiRef } from '@backstage/plugin-catalog-react';
import { renderInTestApp, TestApiProvider } from '@backstage/test-utils';
-import { FieldProps } from '@rjsf/core';
+import { FieldProps } from '@rjsf/utils';
import React from 'react';
import { OwnerPicker } from './OwnerPicker';
diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx
index 7fac9f7840..be7c05155c 100644
--- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx
+++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx
@@ -15,7 +15,8 @@
*/
import React, { useContext } from 'react';
import { RepoUrlPicker } from './RepoUrlPicker';
-import Form from '@rjsf/core';
+import { withTheme } from '@rjsf/core';
+import { Theme } from '@rjsf/material-ui';
import { renderInTestApp, TestApiProvider } from '@backstage/test-utils';
import {
scmIntegrationsApiRef,
@@ -50,6 +51,8 @@ describe('RepoUrlPicker', () => {
getCredentials: jest.fn().mockResolvedValue({ token: 'abc123' }),
};
+ const Form = withTheme(Theme);
+
describe('happy path rendering', () => {
it('should render the repo url picker with minimal props', async () => {
const onSubmit = jest.fn();
diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.test.ts b/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.test.ts
index 45e44b4072..b9c481957c 100644
--- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.test.ts
+++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.test.ts
@@ -15,7 +15,7 @@
*/
import { repoPickerValidation } from './validation';
-import { FieldValidation } from '@rjsf/core';
+import { FieldValidation } from '@rjsf/utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/core-app-api';
import { ApiHolder } from '@backstage/core-plugin-api';
diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.ts b/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.ts
index 99847f9e3b..55ba92abdc 100644
--- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.ts
+++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/validation.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { FieldValidation } from '@rjsf/core';
+import { FieldValidation } from '@rjsf/utils';
import { ApiHolder } from '@backstage/core-plugin-api';
import { scmIntegrationsApiRef } from '@backstage/integration-react';
diff --git a/plugins/scaffolder/src/extensions/types.ts b/plugins/scaffolder/src/extensions/types.ts
index 9b42ba478b..c3d99a6b37 100644
--- a/plugins/scaffolder/src/extensions/types.ts
+++ b/plugins/scaffolder/src/extensions/types.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { ApiHolder } from '@backstage/core-plugin-api';
-import { FieldValidation, FieldProps } from '@rjsf/core';
+import { FieldValidation, FieldProps } from '@rjsf/utils';
/**
* Field validation type for Custom Field Extensions.
diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx
index 8ae26ebf4a..ccdf32542a 100644
--- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx
+++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx
@@ -22,7 +22,8 @@ import {
Button,
makeStyles,
} from '@material-ui/core';
-import { FieldValidation, withTheme } from '@rjsf/core';
+import { withTheme } from '@rjsf/core';
+import { FieldValidation } from '@rjsf/utils';
import { Theme as MuiTheme } from '@rjsf/material-ui';
import React, { useMemo, useState } from 'react';
import { FieldExtensionOptions } from '../../../extensions';
diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts
index d89f0d4e5f..60eed0f364 100644
--- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts
+++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { FieldValidation } from '@rjsf/core';
+import { FieldValidation } from '@rjsf/utils';
import { JsonObject } from '@backstage/types';
import { ApiHolder } from '@backstage/core-plugin-api';
import { CustomFieldValidator } from '../../../extensions';
diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts
index e2d5e89932..355bfde45d 100644
--- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts
+++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { JsonObject } from '@backstage/types';
-import { FieldValidation, UiSchema } from '@rjsf/core';
+import { FieldValidation, UiSchema } from '@rjsf/utils';
function isObject(value: unknown): value is JsonObject {
return typeof value === 'object' && value !== null && !Array.isArray(value);
diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts
index d0d8590a7b..6aad6baa96 100644
--- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts
+++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts
@@ -15,7 +15,7 @@
*/
import { featureFlagsApiRef, useApi } from '@backstage/core-plugin-api';
import { JsonObject } from '@backstage/types';
-import { UiSchema } from '@rjsf/core';
+import { UiSchema } from '@rjsf/utils';
import { TemplateParameterSchema } from '../../../types';
import { extractSchemaFromStep } from './schema';