@openshift-assisted/ui-lib 2.54.2 → 2.55.1
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/build/@types/cim/components/modals/CimConfiguration/CimStorageMissingAlert.d.ts.map +1 -1
- package/build/@types/cim/components/modals/CimConfiguration/constants.d.ts +1 -1
- package/build/@types/common/api/assisted-service/ClustersAPI.d.ts +2 -1
- package/build/@types/common/api/assisted-service/ClustersAPI.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/utils.d.ts +9 -1
- package/build/@types/common/components/clusterConfiguration/utils.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.d.ts.map +1 -1
- package/build/@types/common/components/operators/operatorSpecs.d.ts.map +1 -1
- package/build/@types/common/components/ui/formik/PullSecretField.d.ts +1 -0
- package/build/@types/common/components/ui/formik/PullSecretField.d.ts.map +1 -1
- package/build/@types/common/config/docs_links.d.ts.map +1 -1
- package/build/@types/common/types/clusters.d.ts +1 -1
- package/build/@types/common/types/clusters.d.ts.map +1 -1
- package/build/@types/ocm/components/Routes.d.ts +1 -1
- package/build/@types/ocm/components/Routes.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.d.ts +10 -2
- package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/utils.d.ts +1 -1
- package/build/@types/ocm/components/clusterConfiguration/review/utils.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterDetail/AssistedInstallerDetailCard.d.ts +1 -1
- package/build/@types/ocm/components/clusterDetail/AssistedInstallerDetailCard.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts +5 -0
- package/build/@types/ocm/components/clusterWizard/ClusterWizardContext.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/ClusterWizardContextProvider.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/NewClusterWizard.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/constants.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/disconnected/BasicStep.d.ts +1 -0
- package/build/@types/ocm/components/clusterWizard/disconnected/BasicStep.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.d.ts +4 -0
- package/build/@types/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterWizard/disconnected/ReviewStep.d.ts.map +1 -1
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +1 -1
- package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
- package/build/@types/ocm/components/ui/Buttons/BackButton.d.ts +1 -1
- package/build/@types/ocm/components/ui/Buttons/BackButton.d.ts.map +1 -1
- package/build/@types/ocm/services/ClustersService.d.ts +2 -1
- package/build/@types/ocm/services/ClustersService.d.ts.map +1 -1
- package/build/@types/ocm/store/hooks.d.ts +1 -1
- package/build/@types/ocm/store/slices/clusters/selectors.d.ts +5 -61
- package/build/@types/ocm/store/slices/clusters/selectors.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/feature-flags/selectors.d.ts +2 -20
- package/build/@types/ocm/store/slices/feature-flags/selectors.d.ts.map +1 -1
- package/build/@types/ocm/store/slices/infra-envs/selectors.d.ts +4 -21
- package/build/@types/ocm/store/slices/infra-envs/selectors.d.ts.map +1 -1
- package/build/cjs/cim/components/Agent/NoAgentsAlert.js +2 -2
- package/build/cjs/cim/components/Agent/NoAgentsAlert.js.map +1 -1
- package/build/cjs/cim/components/Agent/tableColumns.js +3 -3
- package/build/cjs/cim/components/Agent/tableColumns.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/DetailsPage/NodePoolsTable.js +2 -2
- package/build/cjs/cim/components/Hypershift/DetailsPage/NodePoolsTable.js.map +1 -1
- package/build/cjs/cim/components/InfraEnv/AddHostDropdown.js +2 -2
- package/build/cjs/cim/components/InfraEnv/AddHostDropdown.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigProgressAlert.js +3 -3
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigProgressAlert.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationFormFields.js +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationFormFields.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js +2 -2
- package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/CimStorageMissingAlert.js +3 -3
- package/build/cjs/cim/components/modals/CimConfiguration/CimStorageMissingAlert.js.map +1 -1
- package/build/cjs/cim/components/modals/CimConfiguration/constants.js +1 -1
- package/build/cjs/cim/components/modals/MassDeleteAgentModal.js +2 -2
- package/build/cjs/cim/components/modals/MassDeleteAgentModal.js.map +1 -1
- package/build/cjs/common/api/assisted-service/ClustersAPI.js +3 -0
- package/build/cjs/common/api/assisted-service/ClustersAPI.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/utils.js +13 -1
- package/build/cjs/common/components/clusterConfiguration/utils.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/utils.test.js +36 -0
- package/build/cjs/common/components/clusterConfiguration/utils.test.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.js +29 -31
- package/build/cjs/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.js +19 -30
- package/build/cjs/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.js.map +1 -1
- package/build/cjs/common/components/operators/operatorSpecs.js +0 -3
- package/build/cjs/common/components/operators/operatorSpecs.js.map +1 -1
- package/build/cjs/common/components/ui/formik/PullSecretField.js +2 -2
- package/build/cjs/common/components/ui/formik/PullSecretField.js.map +1 -1
- package/build/cjs/common/config/docs_links.js +2 -2
- package/build/cjs/common/config/docs_links.js.map +1 -1
- package/build/cjs/common/validationSchemas/addressValidation.js +1 -1
- package/build/cjs/common/validationSchemas/addressValidation.js.map +1 -1
- package/build/cjs/ocm/components/Routes.js +8 -8
- package/build/cjs/ocm/components/Routes.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js +68 -17
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +50 -13
- package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js +4 -2
- package/build/cjs/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/utils.js +7 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/utils.js.map +1 -1
- package/build/cjs/ocm/components/clusterConfiguration/review/utils.test.js +35 -0
- package/build/cjs/ocm/components/clusterConfiguration/review/utils.test.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js +4 -4
- package/build/cjs/ocm/components/clusterDetail/AssistedInstallerDetailCard.js.map +1 -1
- package/build/cjs/ocm/components/clusterDetail/ClusterDetail.js +4 -4
- package/build/cjs/ocm/components/clusterDetail/ClusterDetail.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +4 -4
- package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js +2 -2
- package/build/cjs/ocm/components/clusterWizard/ClusterDetailsForm.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardContext.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js +11 -2
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardFooter.js +2 -2
- package/build/cjs/ocm/components/clusterWizard/ClusterWizardFooter.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js +3 -0
- package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/Operators.js +4 -4
- package/build/cjs/ocm/components/clusterWizard/Operators.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/constants.js +1 -0
- package/build/cjs/ocm/components/clusterWizard/constants.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/disconnected/BasicStep.js +16 -22
- package/build/cjs/ocm/components/clusterWizard/disconnected/BasicStep.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js +102 -0
- package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js.map +1 -0
- package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js +10 -8
- package/build/cjs/ocm/components/clusterWizard/disconnected/ReviewStep.js.map +1 -1
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +3 -0
- package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClusterBreadcrumbs.js +2 -2
- package/build/cjs/ocm/components/clusters/ClusterBreadcrumbs.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClusterPage.js +4 -4
- package/build/cjs/ocm/components/clusters/ClusterPage.js.map +1 -1
- package/build/cjs/ocm/components/clusters/Clusters.js +3 -3
- package/build/cjs/ocm/components/clusters/Clusters.js.map +1 -1
- package/build/cjs/ocm/components/clusters/ClustersListToolbar.js +3 -3
- package/build/cjs/ocm/components/clusters/ClustersListToolbar.js.map +1 -1
- package/build/cjs/ocm/components/ui/Buttons/BackButton.js +2 -2
- package/build/cjs/ocm/components/ui/Buttons/BackButton.js.map +1 -1
- package/build/cjs/ocm/services/ClustersService.js +3 -0
- package/build/cjs/ocm/services/ClustersService.js.map +1 -1
- package/build/cjs/ocm/store/slices/clusters/selectors.js +2 -2
- package/build/cjs/ocm/store/slices/clusters/selectors.js.map +1 -1
- package/build/cjs/ocm/store/slices/feature-flags/selectors.js.map +1 -1
- package/build/cjs/ocm/store/slices/infra-envs/selectors.js.map +1 -1
- package/lib/cim/components/Agent/NoAgentsAlert.tsx +1 -1
- package/lib/cim/components/Agent/tableColumns.tsx +1 -1
- package/lib/cim/components/Hypershift/DetailsPage/NodePoolsTable.tsx +1 -1
- package/lib/cim/components/InfraEnv/AddHostDropdown.tsx +1 -1
- package/lib/cim/components/modals/CimConfiguration/CimConfigProgressAlert.tsx +2 -2
- package/lib/cim/components/modals/CimConfiguration/CimConfigurationFormFields.tsx +1 -1
- package/lib/cim/components/modals/CimConfiguration/CimConfigurationModal.tsx +2 -2
- package/lib/cim/components/modals/CimConfiguration/CimStorageMissingAlert.tsx +5 -2
- package/lib/cim/components/modals/CimConfiguration/constants.ts +1 -1
- package/lib/cim/components/modals/MassDeleteAgentModal.tsx +1 -1
- package/lib/common/api/assisted-service/ClustersAPI.ts +8 -0
- package/lib/common/components/clusterConfiguration/utils.test.ts +43 -1
- package/lib/common/components/clusterConfiguration/utils.ts +13 -0
- package/lib/common/components/clusterWizard/networkingSteps/AvailableSubnetsControl.tsx +31 -57
- package/lib/common/components/clusterWizard/networkingSteps/StackTypeControlGroup.tsx +33 -38
- package/lib/common/components/operators/operatorSpecs.tsx +0 -16
- package/lib/common/components/ui/formik/PullSecretField.tsx +5 -2
- package/lib/common/config/docs_links.ts +2 -2
- package/lib/common/types/clusters.ts +1 -1
- package/lib/common/validationSchemas/addressValidation.tsx +2 -2
- package/lib/ocm/components/Routes.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfiguration.tsx +86 -22
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +2 -2
- package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +57 -20
- package/lib/ocm/components/clusterConfiguration/review/ReviewNetworkingTable.tsx +4 -2
- package/lib/ocm/components/clusterConfiguration/review/utils.test.ts +41 -0
- package/lib/ocm/components/clusterConfiguration/review/utils.tsx +5 -2
- package/lib/ocm/components/clusterDetail/AssistedInstallerDetailCard.tsx +1 -1
- package/lib/ocm/components/clusterDetail/ClusterDetail.tsx +3 -3
- package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +2 -2
- package/lib/ocm/components/clusterWizard/ClusterDetailsForm.tsx +1 -1
- package/lib/ocm/components/clusterWizard/ClusterWizardContext.tsx +5 -0
- package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +10 -1
- package/lib/ocm/components/clusterWizard/ClusterWizardFooter.tsx +1 -1
- package/lib/ocm/components/clusterWizard/NewClusterWizard.tsx +3 -0
- package/lib/ocm/components/clusterWizard/Operators.tsx +2 -2
- package/lib/ocm/components/clusterWizard/constants.ts +1 -0
- package/lib/ocm/components/clusterWizard/disconnected/BasicStep.tsx +31 -52
- package/lib/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.tsx +173 -0
- package/lib/ocm/components/clusterWizard/disconnected/ReviewStep.tsx +11 -9
- package/lib/ocm/components/clusterWizard/wizardTransition.ts +4 -0
- package/lib/ocm/components/clusters/ClusterBreadcrumbs.tsx +1 -1
- package/lib/ocm/components/clusters/ClusterPage.tsx +1 -1
- package/lib/ocm/components/clusters/Clusters.tsx +2 -2
- package/lib/ocm/components/clusters/ClustersListToolbar.tsx +2 -2
- package/lib/ocm/components/ui/Buttons/BackButton.tsx +1 -1
- package/lib/ocm/services/ClustersService.ts +5 -0
- package/lib/ocm/store/slices/clusters/selectors.tsx +7 -5
- package/lib/ocm/store/slices/feature-flags/selectors.ts +5 -2
- package/lib/ocm/store/slices/infra-envs/selectors.ts +4 -2
- package/package.json +8 -8
|
@@ -1,68 +1,47 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
ClusterWizardStep,
|
|
4
|
-
TechnologyPreview,
|
|
5
|
-
ExternalLink,
|
|
6
|
-
OCP_RELEASES_PAGE,
|
|
7
|
-
StaticTextField,
|
|
8
|
-
useTranslation,
|
|
9
|
-
} from '../../../../common';
|
|
2
|
+
import { ClusterWizardStep, TechnologyPreview, StaticTextField } from '../../../../common';
|
|
10
3
|
import { Flex, Grid, GridItem, Form, Content } from '@patternfly/react-core';
|
|
11
|
-
import OcmOpenShiftVersion from '../../clusterConfiguration/OcmOpenShiftVersion';
|
|
12
4
|
import { useClusterWizardContext } from '../ClusterWizardContext';
|
|
13
5
|
import ClusterWizardFooter from '../ClusterWizardFooter';
|
|
14
6
|
import ClusterWizardNavigation from '../ClusterWizardNavigation';
|
|
15
7
|
import { WithErrorBoundary } from '../../../../common/components/ErrorHandling/WithErrorBoundary';
|
|
16
8
|
import InstallDisconnectedSwitch from './InstallDisconnectedSwitch';
|
|
17
|
-
|
|
9
|
+
|
|
10
|
+
export const DISCONNECTED_OPENSHIFT_VERSION = '4.21';
|
|
18
11
|
|
|
19
12
|
const BasicStep = () => {
|
|
20
|
-
const { t } = useTranslation();
|
|
21
13
|
const { moveNext } = useClusterWizardContext();
|
|
22
14
|
|
|
23
15
|
return (
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// nothing to do
|
|
28
|
-
}}
|
|
16
|
+
<ClusterWizardStep
|
|
17
|
+
navigation={<ClusterWizardNavigation />}
|
|
18
|
+
footer={<ClusterWizardFooter onNext={moveNext} />}
|
|
29
19
|
>
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<
|
|
36
|
-
<
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
</
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
</ExternalLink>
|
|
56
|
-
</OcmOpenShiftVersion>
|
|
57
|
-
<StaticTextField name="cpuArchitecture" label="CPU architecture" isRequired>
|
|
58
|
-
x86_64
|
|
59
|
-
</StaticTextField>
|
|
60
|
-
</Form>
|
|
61
|
-
</GridItem>
|
|
62
|
-
</Grid>
|
|
63
|
-
</WithErrorBoundary>
|
|
64
|
-
</ClusterWizardStep>
|
|
65
|
-
</Formik>
|
|
20
|
+
<WithErrorBoundary title="Failed to load Basic step">
|
|
21
|
+
<Grid hasGutter>
|
|
22
|
+
<GridItem>
|
|
23
|
+
<Content component="h2">Basic information</Content>
|
|
24
|
+
</GridItem>
|
|
25
|
+
<GridItem>
|
|
26
|
+
<Flex alignItems={{ default: 'alignItemsCenter' }} gap={{ default: 'gapSm' }}>
|
|
27
|
+
<TechnologyPreview />
|
|
28
|
+
<InstallDisconnectedSwitch />
|
|
29
|
+
<span>I'm installing on a disconnected/air-gapped/secured environment</span>
|
|
30
|
+
</Flex>
|
|
31
|
+
</GridItem>
|
|
32
|
+
<GridItem>
|
|
33
|
+
<Form id="wizard-cluster-basic-info__form">
|
|
34
|
+
<StaticTextField name="openshiftVersion" label="OpenShift version">
|
|
35
|
+
{DISCONNECTED_OPENSHIFT_VERSION}
|
|
36
|
+
</StaticTextField>
|
|
37
|
+
<StaticTextField name="cpuArchitecture" label="CPU architecture">
|
|
38
|
+
x86_64
|
|
39
|
+
</StaticTextField>
|
|
40
|
+
</Form>
|
|
41
|
+
</GridItem>
|
|
42
|
+
</Grid>
|
|
43
|
+
</WithErrorBoundary>
|
|
44
|
+
</ClusterWizardStep>
|
|
66
45
|
);
|
|
67
46
|
};
|
|
68
47
|
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Formik, useFormikContext } from 'formik';
|
|
3
|
+
import * as Yup from 'yup';
|
|
4
|
+
import { AlertVariant } from '@patternfly/react-core';
|
|
5
|
+
import { Form, Grid, GridItem, Content } from '@patternfly/react-core';
|
|
6
|
+
import {
|
|
7
|
+
ClusterWizardStep,
|
|
8
|
+
PullSecret,
|
|
9
|
+
UploadSSH,
|
|
10
|
+
handleApiError,
|
|
11
|
+
getApiErrorMessage,
|
|
12
|
+
isInOcm,
|
|
13
|
+
pullSecretValidationSchema,
|
|
14
|
+
sshPublicKeyValidationSchema,
|
|
15
|
+
useAlerts,
|
|
16
|
+
useTranslation,
|
|
17
|
+
} from '../../../../common';
|
|
18
|
+
import { WithErrorBoundary } from '../../../../common/components/ErrorHandling/WithErrorBoundary';
|
|
19
|
+
import { useClusterWizardContext } from '../ClusterWizardContext';
|
|
20
|
+
import ClusterWizardFooter from '../ClusterWizardFooter';
|
|
21
|
+
import ClusterWizardNavigation from '../ClusterWizardNavigation';
|
|
22
|
+
import { InfraEnvsAPI, ClustersAPI } from '../../../services/apis';
|
|
23
|
+
import { ImageType } from '@openshift-assisted/types/assisted-installer-service';
|
|
24
|
+
import usePullSecret from '../../../hooks/usePullSecret';
|
|
25
|
+
import { DISCONNECTED_OPENSHIFT_VERSION } from './BasicStep';
|
|
26
|
+
|
|
27
|
+
const DISCONNECTED_IMAGE_TYPE: ImageType = 'disconnected-iso';
|
|
28
|
+
const DISCONNECTED_CLUSTER_NAME = 'disconnected-cluster';
|
|
29
|
+
|
|
30
|
+
type OptionalConfigurationsValues = {
|
|
31
|
+
sshPublicKey: string;
|
|
32
|
+
pullSecret: string;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
type OptionalConfigurationsFormProps = {
|
|
36
|
+
defaultPullSecret?: string;
|
|
37
|
+
isSubmitting: boolean;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const OptionalConfigurationsForm: React.FC<OptionalConfigurationsFormProps> = ({
|
|
41
|
+
defaultPullSecret,
|
|
42
|
+
isSubmitting,
|
|
43
|
+
}) => {
|
|
44
|
+
const { moveBack } = useClusterWizardContext();
|
|
45
|
+
const { isValid, submitForm } = useFormikContext<OptionalConfigurationsValues>();
|
|
46
|
+
|
|
47
|
+
return (
|
|
48
|
+
<ClusterWizardStep
|
|
49
|
+
navigation={<ClusterWizardNavigation />}
|
|
50
|
+
footer={
|
|
51
|
+
<ClusterWizardFooter
|
|
52
|
+
onNext={() => void submitForm()}
|
|
53
|
+
onBack={moveBack}
|
|
54
|
+
isSubmitting={isSubmitting}
|
|
55
|
+
isNextDisabled={!isValid}
|
|
56
|
+
/>
|
|
57
|
+
}
|
|
58
|
+
>
|
|
59
|
+
<WithErrorBoundary title="Failed to load Optional configurations step">
|
|
60
|
+
<Grid hasGutter>
|
|
61
|
+
<GridItem>
|
|
62
|
+
<Content component="h2">Optional configurations</Content>
|
|
63
|
+
</GridItem>
|
|
64
|
+
<GridItem>
|
|
65
|
+
<Form id="wizard-cluster-optional-config__form">
|
|
66
|
+
<UploadSSH />
|
|
67
|
+
{!isInOcm && <PullSecret isOcm={false} defaultPullSecret={defaultPullSecret} />}
|
|
68
|
+
</Form>
|
|
69
|
+
</GridItem>
|
|
70
|
+
</Grid>
|
|
71
|
+
</WithErrorBoundary>
|
|
72
|
+
</ClusterWizardStep>
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const OptionalConfigurationsStep = () => {
|
|
77
|
+
const { t } = useTranslation();
|
|
78
|
+
const {
|
|
79
|
+
moveNext,
|
|
80
|
+
disconnectedCluster,
|
|
81
|
+
setDisconnectedCluster,
|
|
82
|
+
disconnectedInfraEnv,
|
|
83
|
+
setDisconnectedInfraEnv,
|
|
84
|
+
} = useClusterWizardContext();
|
|
85
|
+
const { addAlert, clearAlerts } = useAlerts();
|
|
86
|
+
const [isSubmitting, setIsSubmitting] = React.useState(false);
|
|
87
|
+
const defaultPullSecret = usePullSecret();
|
|
88
|
+
|
|
89
|
+
const validationSchema = React.useMemo(
|
|
90
|
+
() =>
|
|
91
|
+
Yup.object({
|
|
92
|
+
sshPublicKey: sshPublicKeyValidationSchema(t),
|
|
93
|
+
pullSecret: isInOcm ? Yup.string() : pullSecretValidationSchema(t),
|
|
94
|
+
}),
|
|
95
|
+
[t],
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
const initialValues: OptionalConfigurationsValues = {
|
|
99
|
+
sshPublicKey: disconnectedInfraEnv?.sshAuthorizedKey ?? '',
|
|
100
|
+
pullSecret: defaultPullSecret ?? '',
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
const handleNext = React.useCallback(
|
|
104
|
+
async (values: OptionalConfigurationsValues) => {
|
|
105
|
+
clearAlerts();
|
|
106
|
+
setIsSubmitting(true);
|
|
107
|
+
try {
|
|
108
|
+
const pullSecretToUse = isInOcm ? defaultPullSecret ?? '' : values.pullSecret;
|
|
109
|
+
|
|
110
|
+
if (disconnectedCluster?.id && disconnectedInfraEnv?.id) {
|
|
111
|
+
const { data: updatedInfraEnv } = await InfraEnvsAPI.update(disconnectedInfraEnv.id, {
|
|
112
|
+
sshAuthorizedKey: values.sshPublicKey,
|
|
113
|
+
});
|
|
114
|
+
setDisconnectedInfraEnv(updatedInfraEnv);
|
|
115
|
+
} else {
|
|
116
|
+
const { data: cluster } = await ClustersAPI.registerDisconnected({
|
|
117
|
+
name: DISCONNECTED_CLUSTER_NAME,
|
|
118
|
+
openshiftVersion: DISCONNECTED_OPENSHIFT_VERSION,
|
|
119
|
+
});
|
|
120
|
+
setDisconnectedCluster(cluster);
|
|
121
|
+
|
|
122
|
+
const { data: createdInfraEnv } = await InfraEnvsAPI.register({
|
|
123
|
+
name: 'disconnected-infra-env',
|
|
124
|
+
pullSecret: pullSecretToUse,
|
|
125
|
+
clusterId: cluster.id,
|
|
126
|
+
imageType: DISCONNECTED_IMAGE_TYPE,
|
|
127
|
+
openshiftVersion: DISCONNECTED_OPENSHIFT_VERSION,
|
|
128
|
+
sshAuthorizedKey: values.sshPublicKey || undefined,
|
|
129
|
+
});
|
|
130
|
+
setDisconnectedInfraEnv(createdInfraEnv);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
moveNext();
|
|
134
|
+
} catch (error) {
|
|
135
|
+
handleApiError(error, () => {
|
|
136
|
+
addAlert({
|
|
137
|
+
title: 'Failed to save optional configurations',
|
|
138
|
+
message: getApiErrorMessage(error),
|
|
139
|
+
variant: AlertVariant.danger,
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
} finally {
|
|
143
|
+
setIsSubmitting(false);
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
[
|
|
147
|
+
clearAlerts,
|
|
148
|
+
defaultPullSecret,
|
|
149
|
+
disconnectedCluster,
|
|
150
|
+
disconnectedInfraEnv,
|
|
151
|
+
setDisconnectedCluster,
|
|
152
|
+
setDisconnectedInfraEnv,
|
|
153
|
+
addAlert,
|
|
154
|
+
moveNext,
|
|
155
|
+
],
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
return (
|
|
159
|
+
<Formik<OptionalConfigurationsValues>
|
|
160
|
+
initialValues={initialValues}
|
|
161
|
+
enableReinitialize
|
|
162
|
+
validationSchema={validationSchema}
|
|
163
|
+
onSubmit={(values) => void handleNext(values)}
|
|
164
|
+
>
|
|
165
|
+
<OptionalConfigurationsForm
|
|
166
|
+
defaultPullSecret={defaultPullSecret}
|
|
167
|
+
isSubmitting={isSubmitting}
|
|
168
|
+
/>
|
|
169
|
+
</Formik>
|
|
170
|
+
);
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
export default OptionalConfigurationsStep;
|
|
@@ -26,15 +26,13 @@ import {
|
|
|
26
26
|
} from '@patternfly/react-core';
|
|
27
27
|
import { Formik } from 'formik';
|
|
28
28
|
import { saveAs } from 'file-saver';
|
|
29
|
-
import { useNavigate } from 'react-router
|
|
29
|
+
import { useNavigate } from 'react-router';
|
|
30
30
|
|
|
31
31
|
import { getOperatorSpecs } from '../../../../common/components/operators/operatorSpecs';
|
|
32
|
-
|
|
33
|
-
const downloadUrl =
|
|
34
|
-
'https://mirror.openshift.com/pub/cgw/assisted-installer-disconnected/latest/agent-ove.x86_64.iso';
|
|
32
|
+
import { DISCONNECTED_OPENSHIFT_VERSION } from './BasicStep';
|
|
35
33
|
|
|
36
34
|
const ReviewStep = () => {
|
|
37
|
-
const { moveBack } = useClusterWizardContext();
|
|
35
|
+
const { moveBack, disconnectedInfraEnv } = useClusterWizardContext();
|
|
38
36
|
const opSpecs = getOperatorSpecs(() => undefined);
|
|
39
37
|
const navigate = useNavigate();
|
|
40
38
|
|
|
@@ -50,8 +48,8 @@ const ReviewStep = () => {
|
|
|
50
48
|
footer={
|
|
51
49
|
<ClusterWizardFooter
|
|
52
50
|
onNext={() => {
|
|
53
|
-
downloadUrl
|
|
54
|
-
navigate('/cluster-list');
|
|
51
|
+
saveAs(disconnectedInfraEnv?.downloadUrl ?? '');
|
|
52
|
+
void navigate('/cluster-list');
|
|
55
53
|
}}
|
|
56
54
|
onBack={moveBack}
|
|
57
55
|
nextButtonText="Download ISO"
|
|
@@ -98,11 +96,15 @@ const ReviewStep = () => {
|
|
|
98
96
|
<DescriptionList isHorizontal>
|
|
99
97
|
<DescriptionListGroup>
|
|
100
98
|
<DescriptionListTerm>OpenShift version</DescriptionListTerm>
|
|
101
|
-
<DescriptionListDescription>
|
|
99
|
+
<DescriptionListDescription>
|
|
100
|
+
{disconnectedInfraEnv?.openshiftVersion ?? DISCONNECTED_OPENSHIFT_VERSION}
|
|
101
|
+
</DescriptionListDescription>
|
|
102
102
|
</DescriptionListGroup>
|
|
103
103
|
<DescriptionListGroup>
|
|
104
104
|
<DescriptionListTerm>CPU architecture</DescriptionListTerm>
|
|
105
|
-
<DescriptionListDescription>
|
|
105
|
+
<DescriptionListDescription>
|
|
106
|
+
{disconnectedInfraEnv?.cpuArchitecture ?? 'x86_64'}
|
|
107
|
+
</DescriptionListDescription>
|
|
106
108
|
</DescriptionListGroup>
|
|
107
109
|
<DescriptionListGroup>
|
|
108
110
|
<DescriptionListTerm>ISO size</DescriptionListTerm>
|
|
@@ -34,6 +34,7 @@ export type ClusterWizardStepsType =
|
|
|
34
34
|
| 'custom-manifests'
|
|
35
35
|
| 'credentials-download'
|
|
36
36
|
| 'disconnected-basic'
|
|
37
|
+
| 'disconnected-optional-configurations'
|
|
37
38
|
| 'disconnected-review';
|
|
38
39
|
|
|
39
40
|
const wizardStepsOrder: ClusterWizardStepsType[] = [
|
|
@@ -52,6 +53,7 @@ const wizardStepsOrder: ClusterWizardStepsType[] = [
|
|
|
52
53
|
|
|
53
54
|
export const disconnectedSteps: ClusterWizardStepsType[] = [
|
|
54
55
|
'disconnected-basic',
|
|
56
|
+
'disconnected-optional-configurations',
|
|
55
57
|
'disconnected-review',
|
|
56
58
|
];
|
|
57
59
|
|
|
@@ -323,6 +325,7 @@ const credentialsValidationMap = buildEmptyValidationsMap();
|
|
|
323
325
|
|
|
324
326
|
const disconnectedReviewValidationsMap = buildEmptyValidationsMap();
|
|
325
327
|
const disconnectedBasicValidationsMap = buildEmptyValidationsMap();
|
|
328
|
+
const disconnectedOptionalConfigurationsValidationsMap = buildEmptyValidationsMap();
|
|
326
329
|
|
|
327
330
|
export const wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType> = {
|
|
328
331
|
'cluster-details': clusterDetailsStepValidationsMap,
|
|
@@ -338,6 +341,7 @@ export const wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardSt
|
|
|
338
341
|
review: reviewStepValidationsMap,
|
|
339
342
|
'disconnected-review': disconnectedReviewValidationsMap,
|
|
340
343
|
'disconnected-basic': disconnectedBasicValidationsMap,
|
|
344
|
+
'disconnected-optional-configurations': disconnectedOptionalConfigurationsValidationsMap,
|
|
341
345
|
};
|
|
342
346
|
|
|
343
347
|
export const allClusterWizardSoftValidationIds =
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Breadcrumb, BreadcrumbItem, PageSection } from '@patternfly/react-core';
|
|
3
|
-
import { Link } from 'react-router
|
|
3
|
+
import { Link } from 'react-router';
|
|
4
4
|
import { isInOcm } from '../../../common/api';
|
|
5
5
|
|
|
6
6
|
const ClusterBreadcrumbs = ({ clusterName }: { clusterName?: string }) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { useNavigate } from 'react-router
|
|
2
|
+
import { useNavigate } from 'react-router';
|
|
3
3
|
import { Button, ButtonVariant, Content, PageSection } from '@patternfly/react-core';
|
|
4
4
|
import { AddCircleOIcon } from '@patternfly/react-icons/dist/js/icons/add-circle-o-icon';
|
|
5
5
|
import {
|
|
@@ -85,7 +85,7 @@ const Clusters = () => {
|
|
|
85
85
|
primaryAction={
|
|
86
86
|
<Button
|
|
87
87
|
variant={ButtonVariant.primary}
|
|
88
|
-
onClick={() => navigate(`~new`)}
|
|
88
|
+
onClick={() => void navigate(`~new`)}
|
|
89
89
|
id="empty-state-new-cluster-button"
|
|
90
90
|
data-ouia-id="button-create-new-cluster"
|
|
91
91
|
>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { useNavigate } from 'react-router
|
|
2
|
+
import { useNavigate } from 'react-router';
|
|
3
3
|
import {
|
|
4
4
|
Toolbar,
|
|
5
5
|
ToolbarItem,
|
|
@@ -172,7 +172,7 @@ const ClustersListToolbar: React.FC<ClustersListToolbarProps> = ({
|
|
|
172
172
|
</CustomToolbarFilter>
|
|
173
173
|
<ToolbarButton
|
|
174
174
|
variant={ButtonVariant.primary}
|
|
175
|
-
onClick={() => navigate(`~new`)}
|
|
175
|
+
onClick={() => void navigate(`~new`)}
|
|
176
176
|
id="button-create-new-cluster"
|
|
177
177
|
data-ouia-id="button-create-new-cluster"
|
|
178
178
|
>
|
|
@@ -5,6 +5,7 @@ import type {
|
|
|
5
5
|
} from '../components/clusterConfiguration/manifestsConfiguration/data/dataTypes';
|
|
6
6
|
import type {
|
|
7
7
|
Cluster,
|
|
8
|
+
DisconnectedClusterCreateParams,
|
|
8
9
|
Host,
|
|
9
10
|
InfraEnvCreateParams,
|
|
10
11
|
UpdateManifestParams,
|
|
@@ -122,6 +123,10 @@ const ClustersService = {
|
|
|
122
123
|
return cluster;
|
|
123
124
|
},
|
|
124
125
|
|
|
126
|
+
registerDisconnected(params: DisconnectedClusterCreateParams) {
|
|
127
|
+
return ClustersAPI.registerDisconnected(params);
|
|
128
|
+
},
|
|
129
|
+
|
|
125
130
|
transformFormViewManifest(manifest: CustomManifestValues) {
|
|
126
131
|
return {
|
|
127
132
|
folder: manifest.folder,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { createSelector } from '@reduxjs/toolkit';
|
|
3
|
+
import type { Selector } from 'reselect';
|
|
3
4
|
import type { IRow, IRowData } from '@patternfly/react-table';
|
|
4
|
-
import { Link } from 'react-router
|
|
5
|
+
import { Link } from 'react-router';
|
|
5
6
|
import type { TFunction } from 'i18next';
|
|
6
7
|
import {
|
|
7
8
|
DASH,
|
|
@@ -22,7 +23,7 @@ const selectClusters = (state: RootStateDay1) =>
|
|
|
22
23
|
state.clusters.data.filter((c) => c.kind !== 'DisconnectedCluster');
|
|
23
24
|
const clustersUIState = (state: RootStateDay1) => state.clusters.uiState;
|
|
24
25
|
|
|
25
|
-
export const selectClustersUIState = createSelector(
|
|
26
|
+
export const selectClustersUIState: (state: RootStateDay1) => ResourceUIState = createSelector(
|
|
26
27
|
[selectClusters, clustersUIState],
|
|
27
28
|
(clusters, uiState): ResourceUIState => {
|
|
28
29
|
const { LOADED, EMPTY } = ResourceUIState;
|
|
@@ -95,13 +96,14 @@ const clusterToClusterTableRow = (cluster: Cluster, t: TFunction): IRow => {
|
|
|
95
96
|
export const getClusterTableStatusCell = (rowData: IRowData) =>
|
|
96
97
|
rowData?.cells?.[3] as HumanizedSortable;
|
|
97
98
|
|
|
98
|
-
export const selectClusterTableRows = (t: TFunction) => {
|
|
99
|
+
export const selectClusterTableRows = (t: TFunction): Selector<RootStateDay1, ClusterTableRows> => {
|
|
99
100
|
return createSelector(
|
|
100
101
|
selectClusters,
|
|
101
102
|
(clusters): ClusterTableRows => clusters.map((c) => clusterToClusterTableRow(c, t)),
|
|
102
103
|
);
|
|
103
104
|
};
|
|
104
105
|
|
|
105
|
-
export const selectClusterNames
|
|
106
|
-
|
|
106
|
+
export const selectClusterNames: Selector<RootStateDay1, (string | undefined)[]> = createSelector(
|
|
107
|
+
selectClusters,
|
|
108
|
+
(clusters) => clusters.map((c) => c.name),
|
|
107
109
|
);
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { FeatureListType } from '../../../../common/features/featureGate';
|
|
2
2
|
import type { RootStateDay1 } from '../../store-day1';
|
|
3
3
|
import { createSelector } from '@reduxjs/toolkit';
|
|
4
|
+
import type { Selector } from 'reselect';
|
|
4
5
|
|
|
5
6
|
export const selectFeatureFlagsSlice = (state: RootStateDay1) => state.featureFlags;
|
|
6
7
|
|
|
7
|
-
export const isFeatureEnabled = (
|
|
8
|
+
export const isFeatureEnabled = (
|
|
9
|
+
featureId: keyof FeatureListType,
|
|
10
|
+
): Selector<RootStateDay1, boolean> =>
|
|
8
11
|
createSelector(
|
|
9
12
|
selectFeatureFlagsSlice,
|
|
10
|
-
(featureFlags: ReturnType<typeof selectFeatureFlagsSlice>) =>
|
|
13
|
+
(featureFlags: ReturnType<typeof selectFeatureFlagsSlice>): boolean =>
|
|
11
14
|
featureFlags.data[featureId] ?? false,
|
|
12
15
|
);
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { createSelector } from '@reduxjs/toolkit';
|
|
2
|
+
import type { Selector } from 'reselect';
|
|
2
3
|
import type { RootStateDay1 } from '../../store-day1';
|
|
3
4
|
import type { CpuArchitecture } from '../../../../common';
|
|
5
|
+
import type { InfraEnv } from '@openshift-assisted/types/assisted-installer-service';
|
|
4
6
|
|
|
5
7
|
export const selectInfraEnvsSlice = (state: RootStateDay1) => state.infraEnvs;
|
|
6
8
|
export const selectInfraEnvByCpuArchitecture = createSelector(
|
|
7
9
|
[selectInfraEnvsSlice, (_: RootStateDay1, cpuArchitecture: CpuArchitecture) => cpuArchitecture],
|
|
8
|
-
(infraEnvs, cpuArchitecture) =>
|
|
10
|
+
(infraEnvs, cpuArchitecture): InfraEnv | undefined =>
|
|
9
11
|
infraEnvs.find((infraEnv) => infraEnv.cpuArchitecture === cpuArchitecture),
|
|
10
|
-
)
|
|
12
|
+
) as Selector<RootStateDay1, InfraEnv | undefined, [CpuArchitecture]>;
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@openshift-assisted/locales": "2.
|
|
4
|
-
"@openshift-assisted/types": "2.
|
|
5
|
-
"@openshift-console/dynamic-plugin-sdk": "^4.
|
|
3
|
+
"@openshift-assisted/locales": "2.55.1",
|
|
4
|
+
"@openshift-assisted/types": "2.55.1",
|
|
5
|
+
"@openshift-console/dynamic-plugin-sdk": "^4.22.0",
|
|
6
6
|
"@patternfly/patternfly": "6.4.0",
|
|
7
7
|
"@patternfly/react-code-editor": "6.4.1",
|
|
8
8
|
"@patternfly/react-core": "6.4.1",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"@react-hook/resize-observer": "^2.0.2",
|
|
14
14
|
"axios-case-converter": "^0.11.1",
|
|
15
15
|
"camel-case": "^4.1.2",
|
|
16
|
-
"cidr-tools": "^
|
|
16
|
+
"cidr-tools": "^12.1.1",
|
|
17
17
|
"classnames": "^2.3.1",
|
|
18
18
|
"file-saver": "^2.0.2",
|
|
19
19
|
"filesize.js": "^2.0.0",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@types/humanize-plus": "^1.8.2",
|
|
42
42
|
"@types/js-yaml": "^4.0.9",
|
|
43
43
|
"@types/lodash-es": "^4.17.12",
|
|
44
|
-
"@types/node": "^24.
|
|
44
|
+
"@types/node": "^24.13.3",
|
|
45
45
|
"@types/react": "18.2.37",
|
|
46
46
|
"@types/react-autosuggest": "^10.1.5",
|
|
47
47
|
"@types/react-dom": "18.2.15",
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"peerDependencies": {
|
|
92
92
|
"@reduxjs/toolkit": "^1.9.7",
|
|
93
93
|
"@sentry/browser": "^5.9 || ^6",
|
|
94
|
-
"axios": "^1.
|
|
94
|
+
"axios": "^1.18.1",
|
|
95
95
|
"i18next": "^20.4 || ^21",
|
|
96
96
|
"monaco-editor": "^0.44.0 || ^0.55.0",
|
|
97
97
|
"react": "^18",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"react-i18next": ">11.7.3",
|
|
100
100
|
"react-monaco-editor": "^0.55.0 || ^0.59.0",
|
|
101
101
|
"react-redux": "^8.0.5",
|
|
102
|
-
"react-router
|
|
102
|
+
"react-router": "^7.17.0",
|
|
103
103
|
"redux": "^4.2.1",
|
|
104
104
|
"uuid": "^8.1",
|
|
105
105
|
"yup": "^1.4.0"
|
|
@@ -136,5 +136,5 @@
|
|
|
136
136
|
]
|
|
137
137
|
}
|
|
138
138
|
},
|
|
139
|
-
"version": "2.
|
|
139
|
+
"version": "2.55.1"
|
|
140
140
|
}
|