@openshift-assisted/ui-lib 2.17.1-cim → 2.17.3-cim

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.
Files changed (208) hide show
  1. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.d.ts.map +1 -1
  2. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.d.ts +0 -1
  3. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.d.ts.map +1 -1
  4. package/build/@types/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.d.ts.map +1 -1
  5. package/build/@types/cim/components/ClusterDeployment/use-networking-formik.d.ts.map +1 -1
  6. package/build/@types/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsStep.d.ts.map +1 -1
  7. package/build/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts.map +1 -1
  8. package/build/@types/cim/components/helpers/versions.d.ts +1 -1
  9. package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
  10. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationModal.d.ts.map +1 -1
  11. package/build/@types/cim/components/modals/EditProxyModal.d.ts.map +1 -1
  12. package/build/@types/cim/components/modals/EditSSHKeyModal.d.ts.map +1 -1
  13. package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
  14. package/build/@types/common/components/clusterWizard/clusterDetailsValidation.d.ts.map +1 -1
  15. package/build/@types/common/components/hosts/AdditionalNTPSourcesDialog.d.ts.map +1 -1
  16. package/build/@types/common/components/hosts/EditHostForm.d.ts.map +1 -1
  17. package/build/@types/common/components/hosts/MassChangeHostnameModal.d.ts.map +1 -1
  18. package/build/@types/common/components/ui/formik/index.d.ts +0 -2
  19. package/build/@types/common/components/ui/formik/index.d.ts.map +1 -1
  20. package/build/@types/common/index.d.ts +1 -0
  21. package/build/@types/common/index.d.ts.map +1 -1
  22. package/build/@types/common/utils.d.ts +2 -2
  23. package/build/@types/common/utils.d.ts.map +1 -1
  24. package/build/@types/common/validationSchemas/addressValidation.d.ts +18 -0
  25. package/build/@types/common/validationSchemas/addressValidation.d.ts.map +1 -0
  26. package/build/@types/common/validationSchemas/clusterDetailsValidation.d.ts +8 -0
  27. package/build/@types/common/validationSchemas/clusterDetailsValidation.d.ts.map +1 -0
  28. package/build/@types/common/{components/ui/formik → validationSchemas}/constants.d.ts +1 -3
  29. package/build/@types/common/validationSchemas/constants.d.ts.map +1 -0
  30. package/build/@types/common/validationSchemas/hostnameValidation.d.ts +4 -0
  31. package/build/@types/common/validationSchemas/hostnameValidation.d.ts.map +1 -0
  32. package/build/@types/common/validationSchemas/index.d.ts +11 -0
  33. package/build/@types/common/validationSchemas/index.d.ts.map +1 -0
  34. package/build/@types/common/validationSchemas/networkingValidation.d.ts +18 -0
  35. package/build/@types/common/validationSchemas/networkingValidation.d.ts.map +1 -0
  36. package/build/@types/common/validationSchemas/ntpValidation.d.ts +4 -0
  37. package/build/@types/common/validationSchemas/ntpValidation.d.ts.map +1 -0
  38. package/build/@types/common/validationSchemas/proxyValidation.d.ts +11 -0
  39. package/build/@types/common/validationSchemas/proxyValidation.d.ts.map +1 -0
  40. package/build/@types/common/validationSchemas/pullSecretValidation.d.ts +4 -0
  41. package/build/@types/common/validationSchemas/pullSecretValidation.d.ts.map +1 -0
  42. package/build/@types/common/validationSchemas/regexes.d.ts +14 -0
  43. package/build/@types/common/validationSchemas/regexes.d.ts.map +1 -0
  44. package/build/@types/common/validationSchemas/sshValidation.d.ts +5 -0
  45. package/build/@types/common/validationSchemas/sshValidation.d.ts.map +1 -0
  46. package/build/@types/common/validationSchemas/utils.d.ts +7 -0
  47. package/build/@types/common/validationSchemas/utils.d.ts.map +1 -0
  48. package/build/@types/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.d.ts.map +1 -1
  49. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.d.ts.map +1 -1
  50. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.d.ts +2 -1
  51. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.d.ts.map +1 -1
  52. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.d.ts.map +1 -1
  53. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts +2 -1
  54. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts.map +1 -1
  55. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHosts.d.ts.map +1 -1
  56. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.d.ts +2 -1
  57. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.d.ts.map +1 -1
  58. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/YamlView/YamlView.d.ts.map +1 -1
  59. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.d.ts +2 -1
  60. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.d.ts.map +1 -1
  61. package/build/@types/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.d.ts.map +1 -1
  62. package/build/@types/ocm/components/hosts/UpdateDay2ApiVipForm.d.ts.map +1 -1
  63. package/build/cjs/cim/components/Agent/BMCForm.js +3 -3
  64. package/build/cjs/cim/components/Agent/BMCForm.js.map +1 -1
  65. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.js +9 -15
  66. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.js.map +1 -1
  67. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js +8 -6
  68. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js.map +1 -1
  69. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.js +1 -3
  70. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.js.map +1 -1
  71. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js +16 -15
  72. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js.map +1 -1
  73. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.js +2 -2
  74. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.js.map +1 -1
  75. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsStep.js +2 -11
  76. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsStep.js.map +1 -1
  77. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkStep.js +8 -8
  78. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkStep.js.map +1 -1
  79. package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js +8 -6
  80. package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js.map +1 -1
  81. package/build/cjs/cim/components/helpers/versions.js +42 -27
  82. package/build/cjs/cim/components/helpers/versions.js.map +1 -1
  83. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js +9 -3
  84. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js.map +1 -1
  85. package/build/cjs/cim/components/modals/EditProxyModal.js +5 -3
  86. package/build/cjs/cim/components/modals/EditProxyModal.js.map +1 -1
  87. package/build/cjs/cim/components/modals/EditPullSecretModal.js +1 -1
  88. package/build/cjs/cim/components/modals/EditPullSecretModal.js.map +1 -1
  89. package/build/cjs/cim/components/modals/EditSSHKeyModal.js +3 -3
  90. package/build/cjs/cim/components/modals/EditSSHKeyModal.js.map +1 -1
  91. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +7 -6
  92. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
  93. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +8 -8
  94. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
  95. package/build/cjs/common/components/hosts/AdditionalNTPSourcesDialog.js +2 -1
  96. package/build/cjs/common/components/hosts/AdditionalNTPSourcesDialog.js.map +1 -1
  97. package/build/cjs/common/components/hosts/EditHostForm.js +3 -2
  98. package/build/cjs/common/components/hosts/EditHostForm.js.map +1 -1
  99. package/build/cjs/common/components/hosts/MassChangeHostnameModal.js +6 -5
  100. package/build/cjs/common/components/hosts/MassChangeHostnameModal.js.map +1 -1
  101. package/build/cjs/common/components/ui/formik/index.js +0 -2
  102. package/build/cjs/common/components/ui/formik/index.js.map +1 -1
  103. package/build/cjs/common/config/docs_links.js +1 -1
  104. package/build/cjs/common/index.js +1 -0
  105. package/build/cjs/common/index.js.map +1 -1
  106. package/build/cjs/common/utils.js +5 -3
  107. package/build/cjs/common/utils.js.map +1 -1
  108. package/build/cjs/common/validationSchemas/addressValidation.js +246 -0
  109. package/build/cjs/common/validationSchemas/addressValidation.js.map +1 -0
  110. package/build/cjs/common/validationSchemas/clusterDetailsValidation.js +104 -0
  111. package/build/cjs/common/validationSchemas/clusterDetailsValidation.js.map +1 -0
  112. package/build/cjs/common/{components/ui/formik → validationSchemas}/constants.js +3 -5
  113. package/build/cjs/common/validationSchemas/constants.js.map +1 -0
  114. package/build/cjs/common/validationSchemas/hostnameValidation.js +36 -0
  115. package/build/cjs/common/validationSchemas/hostnameValidation.js.map +1 -0
  116. package/build/cjs/common/validationSchemas/index.js +17 -0
  117. package/build/cjs/common/validationSchemas/index.js.map +1 -0
  118. package/build/cjs/common/validationSchemas/networkingValidation.js +74 -0
  119. package/build/cjs/common/validationSchemas/networkingValidation.js.map +1 -0
  120. package/build/cjs/common/validationSchemas/ntpValidation.js +25 -0
  121. package/build/cjs/common/validationSchemas/ntpValidation.js.map +1 -0
  122. package/build/cjs/common/validationSchemas/proxyValidation.js +43 -0
  123. package/build/cjs/common/validationSchemas/proxyValidation.js.map +1 -0
  124. package/build/cjs/common/validationSchemas/pullSecretValidation.js +21 -0
  125. package/build/cjs/common/validationSchemas/pullSecretValidation.js.map +1 -0
  126. package/build/cjs/common/validationSchemas/regexes.js +17 -0
  127. package/build/cjs/common/validationSchemas/regexes.js.map +1 -0
  128. package/build/cjs/common/validationSchemas/sshValidation.js +32 -0
  129. package/build/cjs/common/validationSchemas/sshValidation.js.map +1 -0
  130. package/build/cjs/common/validationSchemas/utils.js +40 -0
  131. package/build/cjs/common/validationSchemas/utils.js.map +1 -0
  132. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js +7 -6
  133. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js.map +1 -1
  134. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js +4 -2
  135. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js.map +1 -1
  136. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.js +7 -6
  137. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.js.map +1 -1
  138. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +2 -1
  139. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
  140. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +11 -11
  141. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
  142. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHosts.js +3 -1
  143. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHosts.js.map +1 -1
  144. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.js +6 -6
  145. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.js.map +1 -1
  146. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/YamlView/YamlView.js +3 -1
  147. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/YamlView/YamlView.js.map +1 -1
  148. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.js +12 -12
  149. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.js.map +1 -1
  150. package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js +4 -3
  151. package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js.map +1 -1
  152. package/build/cjs/ocm/components/hosts/UpdateDay2ApiVipForm.js +2 -1
  153. package/build/cjs/ocm/components/hosts/UpdateDay2ApiVipForm.js.map +1 -1
  154. package/lib/cim/components/Agent/BMCForm.tsx +3 -3
  155. package/lib/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.tsx +8 -18
  156. package/lib/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.tsx +7 -10
  157. package/lib/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.tsx +1 -3
  158. package/lib/cim/components/ClusterDeployment/use-networking-formik.ts +19 -15
  159. package/lib/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.tsx +2 -2
  160. package/lib/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsStep.tsx +2 -13
  161. package/lib/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkStep.tsx +8 -8
  162. package/lib/cim/components/InfraEnv/InfraEnvFormPage.tsx +8 -6
  163. package/lib/cim/components/helpers/versions.ts +51 -34
  164. package/lib/cim/components/modals/CimConfiguration/CimConfigurationModal.tsx +9 -3
  165. package/lib/cim/components/modals/EditProxyModal.tsx +6 -3
  166. package/lib/cim/components/modals/EditPullSecretModal.tsx +1 -1
  167. package/lib/cim/components/modals/EditSSHKeyModal.tsx +8 -6
  168. package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +9 -8
  169. package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +21 -11
  170. package/lib/common/components/hosts/AdditionalNTPSourcesDialog.tsx +3 -6
  171. package/lib/common/components/hosts/EditHostForm.tsx +2 -8
  172. package/lib/common/components/hosts/MassChangeHostnameModal.tsx +4 -6
  173. package/lib/common/components/ui/formik/index.tsx +0 -2
  174. package/lib/common/config/docs_links.ts +1 -1
  175. package/lib/common/index.ts +2 -0
  176. package/lib/common/utils.ts +5 -7
  177. package/lib/common/{components/ui/formik → validationSchemas}/_validationSchemas.test.ts +51 -39
  178. package/lib/common/validationSchemas/addressValidation.tsx +349 -0
  179. package/lib/common/validationSchemas/clusterDetailsValidation.tsx +168 -0
  180. package/lib/common/{components/ui/formik → validationSchemas}/constants.tsx +3 -6
  181. package/lib/common/validationSchemas/hostnameValidation.tsx +46 -0
  182. package/lib/common/validationSchemas/index.tsx +11 -0
  183. package/lib/common/validationSchemas/networkingValidation.tsx +113 -0
  184. package/lib/common/validationSchemas/ntpValidation.tsx +30 -0
  185. package/lib/common/validationSchemas/proxyValidation.tsx +67 -0
  186. package/lib/common/validationSchemas/pullSecretValidation.tsx +24 -0
  187. package/lib/common/validationSchemas/regexes.tsx +22 -0
  188. package/lib/common/validationSchemas/sshValidation.tsx +46 -0
  189. package/lib/common/validationSchemas/utils.tsx +36 -0
  190. package/lib/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.tsx +17 -15
  191. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.tsx +4 -2
  192. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.tsx +31 -31
  193. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +9 -2
  194. package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +14 -16
  195. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHosts.tsx +3 -1
  196. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.tsx +11 -6
  197. package/lib/ocm/components/clusterConfiguration/staticIp/components/YamlView/YamlView.tsx +5 -1
  198. package/lib/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.tsx +33 -28
  199. package/lib/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.tsx +5 -3
  200. package/lib/ocm/components/hosts/UpdateDay2ApiVipForm.tsx +3 -7
  201. package/package.json +3 -3
  202. package/build/@types/common/components/ui/formik/constants.d.ts.map +0 -1
  203. package/build/@types/common/components/ui/formik/validationSchemas.d.ts +0 -50
  204. package/build/@types/common/components/ui/formik/validationSchemas.d.ts.map +0 -1
  205. package/build/cjs/common/components/ui/formik/constants.js.map +0 -1
  206. package/build/cjs/common/components/ui/formik/validationSchemas.js +0 -553
  207. package/build/cjs/common/components/ui/formik/validationSchemas.js.map +0 -1
  208. package/lib/common/components/ui/formik/validationSchemas.ts +0 -803
@@ -1,553 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IPv4ValidationSchema = exports.dualStackValidationSchema = exports.serviceNetworkValidationSchema = exports.clusterNetworksValidationSchema = exports.machineNetworksValidationSchema = exports.locationValidationSchema = exports.bmcAddressValidationSchema = exports.day2ApiVipValidationSchema = exports.ntpSourceValidationSchema = exports.noProxyValidationSchema = exports.httpProxyValidationSchema = exports.richHostnameValidationSchema = exports.richNameValidationSchema = exports.hostPrefixValidationSchema = exports.baseDomainValidationSchema = exports.dnsNameValidationSchema = exports.ipBlockValidationSchema = exports.vipArrayValidationSchema = exports.vipNoSuffixValidationSchema = exports.hostSubnetValidationSchema = exports.vipRangeValidationSchema = exports.macAddressValidationSchema = exports.ipNoSuffixValidationSchema = exports.ipValidationSchema = exports.pullSecretValidationSchema = exports.sshPublicKeyListValidationSchema = exports.sshPublicKeyValidationSchema = exports.nameValidationSchema = void 0;
4
- const tslib_1 = require("tslib");
5
- const cidr_tools_1 = require("cidr-tools");
6
- const ip_address_1 = require("ip-address");
7
- const is_cidr_1 = tslib_1.__importDefault(require("is-cidr"));
8
- const is_in_subnet_1 = require("is-in-subnet");
9
- const Yup = tslib_1.__importStar(require("yup"));
10
- const parse_url_1 = tslib_1.__importDefault(require("parse-url"));
11
- const constants_1 = require("../../../config/constants");
12
- const utils_1 = require("../../clusterConfiguration/utils");
13
- const constants_2 = require("./constants");
14
- const utils_2 = require("./utils");
15
- const utils_3 = require("../../../utils");
16
- const ALPHANUMERIC_REGEX = /^[a-zA-Z0-9]+$/;
17
- const NAME_START_END_REGEX = /^[a-z0-9](.*[a-z0-9])?$/;
18
- const NAME_CHARS_REGEX = /^[a-z0-9-.]*$/;
19
- const CLUSTER_NAME_START_END_REGEX = /^[a-z0-9](.*[a-z0-9])?$/;
20
- const CLUSTER_NAME_VALID_CHARS_REGEX = /^[a-z0-9-]*$/;
21
- const SSH_PUBLIC_KEY_REGEX = /^(ssh-rsa AAAAB3NzaC1yc2|ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNT|ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzOD|ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1Mj|ssh-ed25519 AAAAC3NzaC1lZDI1NTE5|ssh-dss AAAAB3NzaC1kc3)[0-9A-Za-z+/]+[=]{0,3}( .*)?$/;
22
- const DNS_NAME_REGEX = /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/;
23
- const PROXY_DNS_REGEX = /(^\.?([a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62}){1}(\.[a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62})*$)/;
24
- const IP_V4_ZERO = '0.0.0.0';
25
- const IP_V6_ZERO = '0000:0000:0000:0000:0000:0000:0000:0000';
26
- const MAC_REGEX = /^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$/;
27
- const HOST_NAME_REGEX = /^[^.]{1,63}(?:[.][^.]{1,63})*$/;
28
- const LOCATION_CHARS_REGEX = /^[a-zA-Z0-9-._]*$/;
29
- const nameValidationSchema = (t, usedClusterNames, baseDnsDomain = '', validateUniqueName, isOcm = false) => {
30
- const clusterNameValidationMessagesList = (0, constants_2.clusterNameValidationMessages)(t);
31
- return Yup.string()
32
- .required(t('ai:Required field'))
33
- .matches(CLUSTER_NAME_VALID_CHARS_REGEX, {
34
- message: clusterNameValidationMessagesList.INVALID_VALUE,
35
- excludeEmptyString: true,
36
- })
37
- .matches(CLUSTER_NAME_START_END_REGEX, {
38
- message: clusterNameValidationMessagesList.INVALID_START_END,
39
- excludeEmptyString: true,
40
- })
41
- .min(isOcm ? 1 : 2, isOcm
42
- ? clusterNameValidationMessagesList.INVALID_LENGTH_OCM
43
- : clusterNameValidationMessagesList.INVALID_LENGTH_ACM)
44
- .max(constants_2.CLUSTER_NAME_MAX_LENGTH, isOcm
45
- ? clusterNameValidationMessagesList.INVALID_LENGTH_OCM
46
- : clusterNameValidationMessagesList.INVALID_LENGTH_ACM)
47
- .when('useRedHatDnsService', {
48
- is: (useRedHatDnsService) => useRedHatDnsService === true,
49
- then: (schema) => schema.test('is-name-unique', clusterNameValidationMessagesList.NOT_UNIQUE, (value) => {
50
- const clusterFullName = `${value || ''}.${baseDnsDomain}`;
51
- return !value || !usedClusterNames.includes(clusterFullName);
52
- }),
53
- otherwise: (schema) => schema.test('is-name-unique', clusterNameValidationMessagesList.NOT_UNIQUE, (value) => {
54
- // in CIM cluster name is ClusterDeployment CR name which must be unique
55
- return validateUniqueName ? !value || !usedClusterNames.includes(value) : true;
56
- }),
57
- });
58
- };
59
- exports.nameValidationSchema = nameValidationSchema;
60
- exports.sshPublicKeyValidationSchema = Yup.string().test('ssh-public-key', 'SSH public key must consist of "[TYPE] key [[EMAIL]]", supported types are: ssh-rsa, ssh-ed25519, ecdsa-[VARIANT]. A single key can be provided only.', (value) => {
61
- if (!value) {
62
- return true;
63
- }
64
- return !!(0, utils_2.trimSshPublicKey)(value).match(SSH_PUBLIC_KEY_REGEX);
65
- });
66
- exports.sshPublicKeyListValidationSchema = Yup.string()
67
- .test('ssh-public-keys', 'SSH public key must consist of "[TYPE] key [[EMAIL]]", supported types are: ssh-rsa, ssh-ed25519, ecdsa-[VARIANT].', (value) => {
68
- if (!value) {
69
- return true;
70
- }
71
- return ((0, utils_2.trimSshPublicKey)(value)
72
- .split('\n')
73
- .find((line) => !line.match(SSH_PUBLIC_KEY_REGEX)) === undefined);
74
- })
75
- .test('ssh-public-keys-unique', 'SSH public keys must be unique.', (value) => {
76
- if (!value) {
77
- return true;
78
- }
79
- const keyList = (0, utils_2.trimSshPublicKey)(value).split('\n');
80
- return new Set(keyList).size === keyList.length;
81
- });
82
- exports.pullSecretValidationSchema = Yup.string().test('is-well-formed-json', "Invalid pull secret format. You must use your Red Hat account's pull secret.", (value) => {
83
- const isValid = true;
84
- if (!value)
85
- return isValid;
86
- try {
87
- const pullSecret = JSON.parse(value);
88
- return (pullSecret.constructor.name === 'Object' &&
89
- !!(pullSecret === null || pullSecret === void 0 ? void 0 : pullSecret.auths) &&
90
- pullSecret.auths.constructor.name === 'Object');
91
- }
92
- catch (_a) {
93
- return !isValid;
94
- }
95
- });
96
- const isValidIpWithoutSuffix = (addr) => {
97
- const address = (0, utils_2.getAddress)(addr);
98
- return !!address && address.address === address.addressMinusSuffix;
99
- };
100
- exports.ipValidationSchema = Yup.string().test('ip-validation', 'Not a valid IP address', (value) => ip_address_1.Address4.isValid(value || '') || ip_address_1.Address6.isValid(value || ''));
101
- // Helpers to classify literal IPs more robustly
102
- const isIPv4Address = (ip) => {
103
- if (!ip)
104
- return false;
105
- return ip.includes('.') && ip_address_1.Address4.isValid(ip);
106
- };
107
- const isIPv6Address = (ip) => {
108
- if (!ip)
109
- return false;
110
- return ip.includes(':') && ip_address_1.Address6.isValid(ip);
111
- };
112
- exports.ipNoSuffixValidationSchema = Yup.string().test('ip-validation-no-suffix', 'Not a valid IP address', (value) => {
113
- return isValidIpWithoutSuffix(value || '');
114
- });
115
- exports.macAddressValidationSchema = Yup.string().matches(MAC_REGEX, {
116
- message: 'Value "${value}" is not valid MAC address.',
117
- excludeEmptyString: true,
118
- });
119
- const vipRangeValidationSchema = (hostSubnets, { machineNetworks }, allowSuffix) => Yup.string().test('vip-validation', 'IP Address is outside of selected subnet', (value) => {
120
- var _a;
121
- if (!value) {
122
- return true;
123
- }
124
- try {
125
- const validator = allowSuffix ? exports.ipValidationSchema : exports.ipNoSuffixValidationSchema;
126
- validator.validateSync(value);
127
- }
128
- catch (err) {
129
- return true;
130
- }
131
- // Find host subnets that match the selected machine networks
132
- const cidrs = (_a = machineNetworks === null || machineNetworks === void 0 ? void 0 : machineNetworks.map((network) => network.cidr)) !== null && _a !== void 0 ? _a : [];
133
- const matchingSubnets = hostSubnets.filter((hostSubnet) => cidrs.includes(hostSubnet.subnet));
134
- for (const hostSubnet of matchingSubnets) {
135
- if (hostSubnet === null || hostSubnet === void 0 ? void 0 : hostSubnet.subnet) {
136
- // Workaround for bug in CIM backend. hostIDs are empty
137
- if (!hostSubnet.hostIDs.length) {
138
- return true;
139
- }
140
- else if ((0, is_in_subnet_1.isInSubnet)(value, hostSubnet.subnet)) {
141
- return true;
142
- }
143
- }
144
- }
145
- return false;
146
- });
147
- exports.vipRangeValidationSchema = vipRangeValidationSchema;
148
- const vipBroadcastValidationSchema = ({ machineNetworks }) => Yup.string().test('vip-no-broadcast', 'The IP address cannot be a network or broadcast address', function (value) {
149
- var _a, _b, _c, _d, _e;
150
- if (!value) {
151
- return true;
152
- }
153
- const vipAddress = (_a = (0, utils_2.getAddress)(value)) === null || _a === void 0 ? void 0 : _a.address;
154
- if (!vipAddress) {
155
- return true;
156
- }
157
- const index = getArrayIndexFromPath(this.path || '');
158
- const machineNetworkCidr = (_e = (_c = (_b = machineNetworks === null || machineNetworks === void 0 ? void 0 : machineNetworks[index]) === null || _b === void 0 ? void 0 : _b.cidr) !== null && _c !== void 0 ? _c : (_d = machineNetworks === null || machineNetworks === void 0 ? void 0 : machineNetworks[0]) === null || _d === void 0 ? void 0 : _d.cidr) !== null && _e !== void 0 ? _e : '';
159
- if (!machineNetworkCidr) {
160
- return true;
161
- }
162
- const machineNetwork = (0, utils_2.getAddress)(machineNetworkCidr);
163
- if (!machineNetwork) {
164
- return true;
165
- }
166
- const machineNetworkBroadcast = machineNetwork.endAddress().address;
167
- const machineNetworkAddress = machineNetwork.startAddress().address;
168
- return vipAddress !== machineNetworkBroadcast && vipAddress !== machineNetworkAddress;
169
- });
170
- const alwaysRequired = (message) => Yup.string().test('always-required', message || 'The value is required.', (value) => !!value);
171
- const getArrayIndexFromPath = (path) => {
172
- const match = path.match(/\[(\d+)\][^\[]*$/); // Prefer the last [...] occurrence for nested array paths like "foo[0].bar[1].ip"
173
- return match ? parseInt(match[1], 10) : NaN;
174
- };
175
- exports.hostSubnetValidationSchema = Yup.string().when(['managedNetworkingType'], {
176
- is: (managedNetworkingType) => managedNetworkingType === 'clusterManaged',
177
- then: () => Yup.string().notOneOf([constants_1.NO_SUBNET_SET], 'Host subnet must be selected.'),
178
- });
179
- const vipNoSuffixValidationSchema = (hostSubnets, values) => Yup.mixed().when(['vipDhcpAllocation', 'managedNetworkingType'], {
180
- is: (vipDhcpAllocation, managedNetworkingType) => !vipDhcpAllocation && managedNetworkingType !== 'userManaged',
181
- then: () => {
182
- // Per-item schema for VIPs (apiVips[*].ip / ingressVips[*].ip)
183
- // 1) Require value once set
184
- // 2) Validate IP without suffix
185
- // 3) Ensure VIP family matches machineNetworks[idx] family
186
- // 4) Validate range vs selected subnets
187
- // 5) No broadcast/network address
188
- // 6) Uniqueness across API/Ingress
189
- const vipFamilyMatchSchema = Yup.string().test('vip-family-match-machine-network', 'IP family must match the corresponding machine network family.', function (value) {
190
- var _a, _b;
191
- if (!value) {
192
- return true;
193
- }
194
- const index = getArrayIndexFromPath(this.path || '');
195
- if (Number.isNaN(index)) {
196
- return true;
197
- }
198
- const cidr = ((_b = (_a = values.machineNetworks) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.cidr) || '';
199
- const mnIsV4 = is_cidr_1.default.v4(cidr);
200
- const mnIsV6 = is_cidr_1.default.v6(cidr);
201
- // If machine network at index is not selected/valid, don't block validation here
202
- if (!mnIsV4 && !mnIsV6) {
203
- return true;
204
- }
205
- const ipIsV4 = isIPv4Address(value);
206
- const ipIsV6 = isIPv6Address(value);
207
- if (!ipIsV4 && !ipIsV6) {
208
- return true;
209
- }
210
- return mnIsV4 ? ipIsV4 : ipIsV6;
211
- });
212
- // Ensure API and Ingress VIPs at the same index are not the same
213
- const vipUniqueSchema = Yup.string().test('vip-uniqueness', function (value) {
214
- var _a, _b, _c, _d;
215
- if (!value) {
216
- return true;
217
- }
218
- const index = getArrayIndexFromPath(this.path || '');
219
- if (Number.isNaN(index)) {
220
- return true;
221
- }
222
- const apiVip = (_b = (_a = values.apiVips) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.ip;
223
- const ingressVip = (_d = (_c = values.ingressVips) === null || _c === void 0 ? void 0 : _c[index]) === null || _d === void 0 ? void 0 : _d.ip;
224
- if (!apiVip || !ingressVip) {
225
- return true;
226
- }
227
- if (apiVip === ingressVip) {
228
- const label = index === 0 ? 'primary' : 'secondary';
229
- return this.createError({
230
- message: `The ${label} Ingress and API IP addresses cannot be the same.`,
231
- });
232
- }
233
- return true;
234
- });
235
- return alwaysRequired('Required. Please provide an IP address')
236
- .concat(exports.ipNoSuffixValidationSchema)
237
- .concat(vipFamilyMatchSchema)
238
- .concat((0, exports.vipRangeValidationSchema)(hostSubnets, values, false))
239
- .concat(vipBroadcastValidationSchema(values))
240
- .concat(vipUniqueSchema);
241
- },
242
- });
243
- exports.vipNoSuffixValidationSchema = vipNoSuffixValidationSchema;
244
- const vipArrayValidationSchema = (hostSubnets, values) => values.managedNetworkingType === 'clusterManaged'
245
- ? Yup.array().of(Yup.object({
246
- clusterId: Yup.string(),
247
- ip: (0, exports.vipNoSuffixValidationSchema)(hostSubnets, values),
248
- }))
249
- : Yup.array();
250
- exports.vipArrayValidationSchema = vipArrayValidationSchema;
251
- const ipBlockValidationSchema = (reservedCidrs) => Yup.string()
252
- .required('A value is required.')
253
- .test('valid-ip-address', 'Invalid IP address block. Expected value is a network expressed in CIDR notation (IP/netmask). For example: 123.123.123.0/24, 2055:d7a::/116', (value) => !!value && (is_cidr_1.default.v4(value) || is_cidr_1.default.v6(value)))
254
- .test('valid-netmask', 'IPv4 netmask must be between 1-25 and include at least 128 addresses.\nIPv6 netmask must be between 8-128 and include at least 256 addresses.', (value) => {
255
- const suffix = parseInt((value || '').split('/')[1]);
256
- return ((is_cidr_1.default.v4(value || '') && 0 < suffix && suffix < 26) ||
257
- (is_cidr_1.default.v6(value || '') && 7 < suffix && suffix < 129));
258
- })
259
- .test('cidr-is-not-unspecified', 'The specified CIDR is invalid because its resulting routing prefix matches the unspecified address.', (cidr) => {
260
- const ip = (0, utils_1.getSubnet)(cidr);
261
- if (ip === null) {
262
- return false;
263
- }
264
- // The first address is used to represent the network
265
- const startAddress = ip.startAddress().address;
266
- return startAddress !== IP_V4_ZERO && startAddress !== IP_V6_ZERO;
267
- })
268
- .test('valid-cidr-base-address', ({ value }) => `${value} is not a valid CIDR`, (cidr) => {
269
- const ip = (0, utils_1.getSubnet)(cidr);
270
- if (ip === null) {
271
- return false;
272
- }
273
- const networkAddress = ip.startAddress().parsedAddress;
274
- const ipAddress = ip.parsedAddress;
275
- const result = ipAddress.every((part, idx) => part === networkAddress[idx]);
276
- return result;
277
- })
278
- .test('cidrs-can-not-overlap', 'Provided CIDRs can not overlap.', (cidr) => {
279
- try {
280
- if (cidr && reservedCidrs && reservedCidrs.length > 0) {
281
- return !(0, cidr_tools_1.overlap)(cidr, reservedCidrs);
282
- }
283
- }
284
- catch (_a) {
285
- return false;
286
- }
287
- // passing by default
288
- return true;
289
- });
290
- exports.ipBlockValidationSchema = ipBlockValidationSchema;
291
- exports.dnsNameValidationSchema = Yup.string()
292
- .test('dns-name-label-length', 'Single label of the DNS name can not be longer than 63 characters.', (value) => (value || '').split('.').every((label) => label.length <= 63))
293
- .matches(DNS_NAME_REGEX, {
294
- message: 'Value "${value}" is not valid DNS name. Example: basedomain.example.com',
295
- excludeEmptyString: true,
296
- });
297
- exports.baseDomainValidationSchema = Yup.string().test('dns-name-label-length', 'Every single host component in the base domain name cannot contain more than 63 characters and must not contain spaces.', (value) => {
298
- // Check if the value contains any spaces
299
- if (/\s/.test(value)) {
300
- return false; // Value contains spaces, validation fails
301
- }
302
- // Check the label lengths
303
- const labels = (value || '').split('.');
304
- return labels.every((label) => label.length <= 63);
305
- });
306
- const hostPrefixValidationSchema = (clusterNetworkCidr) => {
307
- const requiredText = 'The host prefix is required.';
308
- const minMaxText = 'The host prefix is a number between 1 and 32 for IPv4 and between 8 and 128 for IPv6.';
309
- const netBlock = (clusterNetworkCidr || '').split('/')[1];
310
- if (!netBlock) {
311
- return Yup.number().required(requiredText).min(1, minMaxText).max(32, minMaxText);
312
- }
313
- let netBlockNumber = parseInt(netBlock);
314
- if (isNaN(netBlockNumber)) {
315
- netBlockNumber = 1;
316
- }
317
- const errorMsgPrefix = 'The host prefix is a number between size of the cluster network CIDR range';
318
- const errorMsgIPv4 = `${errorMsgPrefix} (${netBlockNumber}) and 25.`;
319
- const errorMsgIPv6 = `${errorMsgPrefix} (8) and 128.`;
320
- if (is_cidr_1.default.v6(clusterNetworkCidr || '')) {
321
- return Yup.number().required(requiredText).min(8, errorMsgIPv6).max(128, errorMsgIPv6);
322
- }
323
- if (is_cidr_1.default.v4(clusterNetworkCidr || '')) {
324
- return Yup.number()
325
- .required(requiredText)
326
- .min(netBlockNumber, errorMsgIPv4)
327
- .max(25, errorMsgIPv4);
328
- }
329
- return Yup.number().required(requiredText);
330
- };
331
- exports.hostPrefixValidationSchema = hostPrefixValidationSchema;
332
- const richNameValidationSchema = (t, usedNames, origName) => {
333
- const nameValidationMessagesList = (0, constants_2.nameValidationMessages)(t);
334
- return Yup.string()
335
- .min(1, nameValidationMessagesList.INVALID_LENGTH)
336
- .max(253, nameValidationMessagesList.INVALID_LENGTH)
337
- .test(nameValidationMessagesList.INVALID_START_END, nameValidationMessagesList.INVALID_START_END, (value) => {
338
- const trimmed = value === null || value === void 0 ? void 0 : value.trim();
339
- if (!trimmed) {
340
- return true;
341
- }
342
- return (!!trimmed[0].match(NAME_START_END_REGEX) &&
343
- (trimmed[trimmed.length - 1]
344
- ? !!trimmed[trimmed.length - 1].match(NAME_START_END_REGEX)
345
- : true));
346
- })
347
- .matches(HOST_NAME_REGEX, nameValidationMessagesList.INVALID_FORMAT)
348
- .matches(NAME_CHARS_REGEX, {
349
- message: nameValidationMessagesList.INVALID_VALUE,
350
- excludeEmptyString: true,
351
- })
352
- .test(nameValidationMessagesList.NOT_UNIQUE, nameValidationMessagesList.NOT_UNIQUE, (value) => {
353
- if (!value || value === origName) {
354
- return true;
355
- }
356
- return !usedNames.find((n) => n === value);
357
- })
358
- .notOneOf(constants_2.FORBIDDEN_HOSTNAMES, (0, constants_2.hostnameValidationMessages)(t).LOCALHOST_ERR);
359
- };
360
- exports.richNameValidationSchema = richNameValidationSchema;
361
- const richHostnameValidationSchema = (t, usedNames, origName) => {
362
- const hostnameValidationMessagesList = (0, constants_2.hostnameValidationMessages)(t);
363
- return Yup.string()
364
- .min(1, hostnameValidationMessagesList.INVALID_LENGTH)
365
- .max(63, hostnameValidationMessagesList.INVALID_LENGTH)
366
- .test(hostnameValidationMessagesList.INVALID_START_END, hostnameValidationMessagesList.INVALID_START_END, (value) => {
367
- const trimmed = value === null || value === void 0 ? void 0 : value.trim();
368
- if (!trimmed) {
369
- return true;
370
- }
371
- return (!!trimmed[0].match(NAME_START_END_REGEX) &&
372
- (trimmed[trimmed.length - 1]
373
- ? !!trimmed[trimmed.length - 1].match(NAME_START_END_REGEX)
374
- : true));
375
- })
376
- .matches(NAME_CHARS_REGEX, {
377
- message: hostnameValidationMessagesList.INVALID_VALUE,
378
- excludeEmptyString: true,
379
- })
380
- .test(hostnameValidationMessagesList.NOT_UNIQUE, hostnameValidationMessagesList.NOT_UNIQUE, (value) => {
381
- if (!value || value === origName) {
382
- return true;
383
- }
384
- return !usedNames.find((n) => n === value);
385
- })
386
- .notOneOf(constants_2.FORBIDDEN_HOSTNAMES, hostnameValidationMessagesList.LOCALHOST_ERR);
387
- };
388
- exports.richHostnameValidationSchema = richHostnameValidationSchema;
389
- const httpProxyValidationMessage = 'Provide a valid HTTP URL.';
390
- const httpProxyValidationSchema = ({ values, pairValueName, allowEmpty, }) => {
391
- const validation = Yup.string().test('http-proxy-validation', httpProxyValidationMessage, (value) => {
392
- if (!value) {
393
- return true;
394
- }
395
- if (!value.startsWith('http://')) {
396
- return false;
397
- }
398
- try {
399
- new URL(value);
400
- }
401
- catch (_a) {
402
- return false;
403
- }
404
- return true;
405
- });
406
- if (allowEmpty) {
407
- return validation;
408
- }
409
- return validation.test('http-proxy-no-empty-validation', 'At least one of the HTTP or HTTPS proxy URLs is required.', (value) => !values.enableProxy || !!value || !!values[pairValueName]);
410
- };
411
- exports.httpProxyValidationSchema = httpProxyValidationSchema;
412
- const isIPorDN = (value, dnsRegex = DNS_NAME_REGEX) => {
413
- if (value.match(dnsRegex)) {
414
- return true;
415
- }
416
- try {
417
- exports.ipValidationSchema.validateSync(value);
418
- return true;
419
- }
420
- catch (err) {
421
- return false;
422
- }
423
- };
424
- exports.noProxyValidationSchema = Yup.string().test('no-proxy-validation', 'Provide a comma separated list of valid DNS names or IP addresses.', (value) => {
425
- if (!value || value === '*') {
426
- return true;
427
- }
428
- // https://docs.openshift.com/container-platform/4.5/installing/installing_bare_metal/installing-restricted-networks-bare-metal.html#installation-configure-proxy_installing-restricted-networks-bare-metal
429
- // A comma-separated list of destination domain names, domains, IP addresses, or other network CIDRs to exclude proxying.
430
- // Preface a domain with . to match subdomains only. For example, .y.com matches x.y.com, but not y.com.
431
- // Use * to bypass proxy for all destinations.
432
- const noProxyList = (0, utils_2.trimCommaSeparatedList)(value).split(',');
433
- return noProxyList.every((p) => isIPorDN(p, PROXY_DNS_REGEX));
434
- });
435
- exports.ntpSourceValidationSchema = Yup.string()
436
- .test('ntp-source-validation', 'Provide a comma separated list of valid DNS names or IP addresses.', (value) => {
437
- if (!value || value === '') {
438
- return true;
439
- }
440
- return (0, utils_2.trimCommaSeparatedList)(value)
441
- .split(',')
442
- .every((v) => isIPorDN(v));
443
- })
444
- .test('ntp-source-validation-unique', 'DNS names and IP addresses must be unique.', (value) => {
445
- if (!value || value === '') {
446
- return true;
447
- }
448
- const arr = (0, utils_2.trimCommaSeparatedList)(value).split(',');
449
- return arr.length === new Set(arr).size;
450
- });
451
- exports.day2ApiVipValidationSchema = Yup.string().test('day2-api-vip', 'Provide a valid DNS name or IP Address', (value) => {
452
- if (!value) {
453
- return true;
454
- }
455
- return isIPorDN(value);
456
- });
457
- const bmcAddressValidationSchema = (t) => {
458
- const bmcAddressValidationMessagesList = (0, constants_2.bmcAddressValidationMessages)(t);
459
- return Yup.string()
460
- .required()
461
- .test('valid-bmc-address', bmcAddressValidationMessagesList.INVALID_VALUE, (val) => {
462
- try {
463
- const url = (0, parse_url_1.default)(val);
464
- return ['redfish-virtualmedia', 'idrac-virtualmedia'].includes(url.protocol);
465
- }
466
- catch (error) {
467
- return false;
468
- }
469
- });
470
- };
471
- exports.bmcAddressValidationSchema = bmcAddressValidationSchema;
472
- const locationValidationSchema = (t) => {
473
- const locationValidationMessagesList = (0, constants_2.locationValidationMessages)(t);
474
- return Yup.string()
475
- .min(1, locationValidationMessagesList.INVALID_LENGTH)
476
- .max(63, locationValidationMessagesList.INVALID_LENGTH)
477
- .test(locationValidationMessagesList.INVALID_START_END, locationValidationMessagesList.INVALID_START_END, (value) => {
478
- const trimmed = value === null || value === void 0 ? void 0 : value.trim();
479
- if (!trimmed) {
480
- return true;
481
- }
482
- return (!!trimmed[0].match(ALPHANUMERIC_REGEX) &&
483
- (trimmed[trimmed.length - 1]
484
- ? !!trimmed[trimmed.length - 1].match(ALPHANUMERIC_REGEX)
485
- : true));
486
- })
487
- .matches(LOCATION_CHARS_REGEX, {
488
- message: locationValidationMessagesList.INVALID_VALUE,
489
- excludeEmptyString: true,
490
- });
491
- };
492
- exports.locationValidationSchema = locationValidationSchema;
493
- exports.machineNetworksValidationSchema = Yup.array().of(Yup.object({ cidr: exports.hostSubnetValidationSchema, clusterId: Yup.string() }));
494
- exports.clusterNetworksValidationSchema = Yup.array().of(Yup.lazy((values) => Yup.object({
495
- cidr: (0, exports.ipBlockValidationSchema)(undefined /* So far used in OCM only and so validated by backend */),
496
- hostPrefix: (0, exports.hostPrefixValidationSchema)(values.cidr),
497
- clusterId: Yup.string(),
498
- })));
499
- exports.serviceNetworkValidationSchema = Yup.array().of(Yup.object({
500
- cidr: (0, exports.ipBlockValidationSchema)(undefined /* So far used in OCM only and so validated by backend */),
501
- clusterId: Yup.string(),
502
- }));
503
- const dualStackValidationSchema = (field, openshiftVersion) => Yup.array()
504
- .max(2, `Maximum number of ${field} subnets in dual stack is 2.`)
505
- .test('dual-stack-ipv4', openshiftVersion && (0, utils_3.isMajorMinorVersionEqualOrGreater)(openshiftVersion, '4.12')
506
- ? 'First network has to be a valid IPv4 or IPv6 subnet.'
507
- : 'First network has to be IPv4 subnet.', (values) => {
508
- // For OCP versions > 4.11, allow IPv6 as primary network
509
- if (openshiftVersion && (0, utils_3.isMajorMinorVersionEqualOrGreater)(openshiftVersion, '4.12')) {
510
- return !!(values === null || values === void 0 ? void 0 : values[0].cidr) && (is_cidr_1.default.v4(values[0].cidr) || is_cidr_1.default.v6(values[0].cidr));
511
- }
512
- // For older versions, require IPv4 as primary network
513
- return !!(values === null || values === void 0 ? void 0 : values[0].cidr) && is_cidr_1.default.v4(values[0].cidr);
514
- })
515
- .test('dual-stack-unique-cidrs', `Provided ${field} subnets must be unique.`, (values) => {
516
- var _a, _b;
517
- if (!values || values.length < 2) {
518
- return true;
519
- }
520
- const first = ((_a = values[0]) === null || _a === void 0 ? void 0 : _a.cidr) || '';
521
- const second = ((_b = values[1]) === null || _b === void 0 ? void 0 : _b.cidr) || '';
522
- if (!first || !second) {
523
- return true;
524
- }
525
- const firstIsCidr = is_cidr_1.default.v4(first) || is_cidr_1.default.v6(first);
526
- const secondIsCidr = is_cidr_1.default.v4(second) || is_cidr_1.default.v6(second);
527
- if (!firstIsCidr || !secondIsCidr) {
528
- return true;
529
- }
530
- return first !== second;
531
- })
532
- .test('dual-stack-opposite-families', `When two ${field} are provided, one must be IPv4 and the other IPv6.`, (values) => {
533
- var _a, _b;
534
- if (!values || values.length < 2) {
535
- return true;
536
- }
537
- const a = ((_a = values[0]) === null || _a === void 0 ? void 0 : _a.cidr) || '';
538
- const b = ((_b = values[1]) === null || _b === void 0 ? void 0 : _b.cidr) || '';
539
- if (!a || !b) {
540
- return true;
541
- }
542
- const a4 = is_cidr_1.default.v4(a);
543
- const a6 = is_cidr_1.default.v6(a);
544
- const b4 = is_cidr_1.default.v4(b);
545
- const b6 = is_cidr_1.default.v6(b);
546
- if (!((a4 || a6) && (b4 || b6))) {
547
- return true;
548
- }
549
- return (a4 && b6) || (a6 && b4);
550
- });
551
- exports.dualStackValidationSchema = dualStackValidationSchema;
552
- exports.IPv4ValidationSchema = Yup.array().test('single-stack', `All network subnets must be IPv4.`, (values) => (0, utils_2.allSubnetsIPv4)(values));
553
- //# sourceMappingURL=validationSchemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validationSchemas.js","sourceRoot":"","sources":["../../../../../../lib/common/components/ui/formik/validationSchemas.ts"],"names":[],"mappings":"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"}