diff --git a/webui/package-lock.json b/webui/package-lock.json index ca230c9e5..91b9da598 100644 --- a/webui/package-lock.json +++ b/webui/package-lock.json @@ -6,7 +6,7 @@ "": { "dependencies": { "@oracle/oraclejet": "^13.1.7", - "@oracle/wrc-jet-pack": "^2.4.2-develop.202303162018", + "@oracle/wrc-jet-pack": "~2.4.2", "ace-builds": "^1.15.0", "i18next": "^22.4.9", "jquery": "^3.6.3", @@ -921,9 +921,9 @@ "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" }, "node_modules/@oracle/wrc-jet-pack": { - "version": "2.4.2-develop.202303162018", - "resolved": "https://registry.npmjs.org/@oracle/wrc-jet-pack/-/wrc-jet-pack-2.4.2-develop.202303162018.tgz", - "integrity": "sha512-OjcG4RWb+zqa4CoC8TYJgYxUj3GKug5R3gKaLSuYxnHGUvqUx9nfBEDdOomsFXCZBA/f38R/iTA9ErbHCmhFHw==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@oracle/wrc-jet-pack/-/wrc-jet-pack-2.4.2.tgz", + "integrity": "sha512-JLuBr1ObbEkKpRfzPThHygHJ039tdvqk8TOaMVwtyQvqzqyfDnWLSYVbsaA6Dn/xDlDItk+QBed1dnjGu66SdA==", "engines": { "node": ">=4.0.0" } @@ -7818,9 +7818,9 @@ } }, "@oracle/wrc-jet-pack": { - "version": "2.4.2-develop.202303162018", - "resolved": "https://registry.npmjs.org/@oracle/wrc-jet-pack/-/wrc-jet-pack-2.4.2-develop.202303162018.tgz", - "integrity": "sha512-OjcG4RWb+zqa4CoC8TYJgYxUj3GKug5R3gKaLSuYxnHGUvqUx9nfBEDdOomsFXCZBA/f38R/iTA9ErbHCmhFHw==" + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@oracle/wrc-jet-pack/-/wrc-jet-pack-2.4.2.tgz", + "integrity": "sha512-JLuBr1ObbEkKpRfzPThHygHJ039tdvqk8TOaMVwtyQvqzqyfDnWLSYVbsaA6Dn/xDlDItk+QBed1dnjGu66SdA==" }, "@tootallnate/once": { "version": "2.0.0", diff --git a/webui/package.json b/webui/package.json index 493b03584..48ec292d7 100644 --- a/webui/package.json +++ b/webui/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@oracle/oraclejet": "^13.1.7", - "@oracle/wrc-jet-pack": "^2.4.2-develop.202303162018", + "@oracle/wrc-jet-pack": "~2.4.2", "ace-builds": "^1.15.0", "i18next": "^22.4.9", "jquery": "^3.6.3", diff --git a/webui/src/js/utils/validation-helper.js b/webui/src/js/utils/validation-helper.js index b56e16173..7b87c0d7d 100644 --- a/webui/src/js/utils/validation-helper.js +++ b/webui/src/js/utils/validation-helper.js @@ -12,24 +12,25 @@ function(i18n, Validator, ojvalidationError, RegExpValidator, LengthValidator, N const literalForwardSlash = '[\\/]'; - const nameComponentRegexText = '(?:(?:[a-z0-9]+)(?:(?:[._]|__|[-]?)(?:[a-z0-9]+))*)'; - const hostRegexText = '(?:(?:[a-zA-Z0-9]+|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])' + - '(?:(?:[.](?:[a-zA-Z0-9]+|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))+)?)'; + const compNameRegexText = '[a-z0-9]+'; + const compNameSeparatorRegexText = '(?:[.]|[_]{1,2}|[-]+)'; + const nameComponentRegexText = `${compNameRegexText}(?:${compNameSeparatorRegexText}${compNameRegexText})*`; + const hostRegexText = '[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:[.][a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)*'; const hostAndPortRegexText = `(?:${hostRegexText}(?:[:][0-9]{1,5})?)`; const tagRegexText = '[\\w][\\w.-]{0,127}'; const digestRegexText = '[A-Za-z][A-Za-z0-9]*(?:(?:[-_+.][A-Za-z][A-Za-z0-9]*)*)[:][0-9A-Fa-f]{32,}'; - const nameRegexText = `(?:(${hostAndPortRegexText})${literalForwardSlash})?${nameComponentRegexText}` + + const nameRegexText = `(?:(?:${hostAndPortRegexText})${literalForwardSlash})?${nameComponentRegexText}` + `(?:${literalForwardSlash}${nameComponentRegexText})*`; - const imageReferenceRegexText = `^(${nameRegexText})(?:(?:[:](${tagRegexText}))|(?:[@](${digestRegexText})))?$`; + const imageReferenceRegexText = `(?:${nameRegexText})(?:(?:[:](?:${tagRegexText}))|(?:[@](?:${digestRegexText})))?`; - const k8sNameRegexText = '^[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?$'; + const k8sNameRegexText = '[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?'; - const emailAddressRegexText = '^(?:[a-z0-9!#$%&\'*+\\/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&\'*+\\/=?^_`{|}~-]+)*|' + + const emailAddressRegexText = '(?:[a-z0-9!#$%&\'*+\\/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&\'*+\\/=?^_`{|}~-]+)*|' + '"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*")@' + '(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|' + '\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}' + '(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:' + - '(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$'; + '(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])'; const ingressPathRegexText = '^\\/\\S*$';