diff --git a/package.json b/package.json index fc3a299051..d6780b7b5c 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "core-js": "^3.36.0", "dialog-polyfill": "^0.5.6", "dom-autoscroller": "^2.3.4", - "dompurify": "^3.0.9", + "dompurify": "^3.1.0", "downloadjs": "^1.4.7", "dragula": "^3.7.3", "eventemitter3": "^5.0.1", @@ -122,8 +122,8 @@ "vanilla-picker": "^2.12.3" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^7.3.0", - "@typescript-eslint/parser": "^7.3.0", + "@typescript-eslint/eslint-plugin": "^7.6.0", + "@typescript-eslint/parser": "^7.6.0", "ace-builds": "1.32.9", "async-limiter": "^2.0.0", "bootstrap-icons": "^1.10.5", @@ -170,15 +170,15 @@ "pretty": "^2.0.0", "pygments-css": "^1.0.0", "raw-loader": "^4.0.2", - "sass": "^1.72.0", + "sass": "^1.74.1", "shortcut-buttons-flatpickr": "^0.4.0", "sinon": "^17.0.1", "string-replace-loader": "^3.1.0", "ts-loader": "^9.4.4", "ts-node": "^10.9.1", - "typescript": "5.3.3", + "typescript": "5.4.5", "webpack": "^5.90.3", - "webpack-bundle-analyzer": "^4.9.0", + "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.1", "webpack-node-externals": "^3.0.0", "webpack-stream": "^7.0.0", diff --git a/src/Webform.js b/src/Webform.js index a94917dcb3..1c26e0f962 100644 --- a/src/Webform.js +++ b/src/Webform.js @@ -1318,7 +1318,7 @@ export default class Webform extends NestedDataComponent { if (this.submitted) { // show server errors while they are not cleaned/fixed const nonComponentServerErrors = _.filter(this.serverErrors || [], err => !err.component && !err.path); - this.showErrors(nonComponentServerErrors.length ? nonComponentServerErrors : null); + this.showErrors(nonComponentServerErrors.length ? nonComponentServerErrors : errors); } // See if we need to save the draft of the form. diff --git a/src/Webform.unit.js b/src/Webform.unit.js index aebfc8eb55..31b0a34b5d 100644 --- a/src/Webform.unit.js +++ b/src/Webform.unit.js @@ -109,49 +109,47 @@ describe('Webform tests', function() { number2.setValue(7); setTimeout(()=> { assert.equal(form.errors.length, 1); - assert.equal(!!number.error, true); - + assert.equal(number.errors.length, 1); errorClasses.forEach(cl => assert.equal(number.element.classList.contains(cl), false, '(1) Should not set error classes for hidden components.')); number2.setValue(3); setTimeout(() => { assert.equal(form.errors.length, 0); - assert.equal(!!number.error, false); + assert.equal(number.errors.length, 0); errorClasses.forEach(cl => assert.equal(number.element.classList.contains(cl), false, '(2) Should not set error classes for hidden components.')); textField.setValue('test'); setTimeout(() => { assert.equal(form.errors.length, 1); - assert.equal(!!textArea.error, true); + assert.equal(textArea.errors.length, 1); assert.equal(textArea.visible, true); checkbox.setValue(true); setTimeout(()=> { assert.equal(textArea.visible, false); assert.equal(form.errors.length, 1); - assert.equal(!!textArea.error, true); + assert.equal(textArea.errors.length, 1); errorClasses.forEach(cl => assert.equal(textArea.element.classList.contains(cl), false)); - number2.setValue(9); - form.submit(); - setTimeout(()=> { - assert.equal(form.errors.length, 2); - assert.equal(!!textArea.error, true); - assert.equal(!!number.error, true); - assert.equal(!!form.alert, true); - assert.equal(form.refs.errorRef.length, 2); - errorClasses.forEach(cl => assert.equal(number.element.classList.contains(cl), false)); - errorClasses.forEach(cl => assert.equal(textArea.element.classList.contains(cl), false)); - - textField.setValue('test test test'); - number2.setValue(1); + setTimeout(() => { + form.submit(); setTimeout(()=> { - assert.equal(form.errors.length, 0); - assert.equal(!!textArea.error, false); - assert.equal(!!number.error, false); - assert.equal(!!form.alert, false); - - done(); + assert.equal(form.errors.length, 2); + assert.equal(textArea.errors.length, 1); + assert.equal(number.errors.length, 1); + assert.equal(!!form.alert, true); + assert.equal(form.refs.errorRef.length, 2); + errorClasses.forEach(cl => assert.equal(number.element.classList.contains(cl), false)); + errorClasses.forEach(cl => assert.equal(textArea.element.classList.contains(cl), false)); + textField.setValue('test test test'); + number2.setValue(1); + setTimeout(()=> { + assert.equal(form.errors.length, 0); + assert.equal(textArea.errors.length, 0); + assert.equal(number.errors.length, 0); + assert.equal(!!form.alert, false); + done(); + }, 300); }, 300); }, 300); }, 300); @@ -185,19 +183,19 @@ describe('Webform tests', function() { number2.setValue(7); setTimeout(()=> { assert.equal(form.errors.length, 0); - assert.equal(!!number.error, false); + assert.equal(number.errors.length, 0); textField.setValue('test'); setTimeout(() => { assert.equal(form.errors.length, 1); - assert.equal(!!textArea.error, true); + assert.equal(textArea.errors.length, 1); assert.equal(textArea.visible, true); checkbox.setValue(true); setTimeout(()=> { assert.equal(textArea.visible, false); assert.equal(form.errors.length, 0); - assert.equal(!!textArea.error, false); + assert.equal(textArea.errors.length, 0); done(); }, 300); }, 300); @@ -1272,8 +1270,7 @@ describe('Webform tests', function() { .catch((err) => done(err)); }); - it(`Should show validation errors and update validation errors list when opening and editing edit grid rows - in draft modal mode after pushing submit btn`, function(done) { + it('Should show validation errors and update validation errors list when opening and editing edit grid rows in draft modal mode after pushing submit btn', function(done) { const formElement = document.createElement('div'); const formWithDraftModals = new Webform(formElement, { sanitize: true }); diff --git a/src/components/_classes/component/Component.js b/src/components/_classes/component/Component.js index f0b05b3e7e..e3f14b953c 100644 --- a/src/components/_classes/component/Component.js +++ b/src/components/_classes/component/Component.js @@ -3418,6 +3418,11 @@ export default class Component extends Element { shouldSkipValidation(data, row, flags = {}) { const { validateWhenHidden = false } = this.component || {}; + const forceValidOnHidden = (!this.visible || !this.checkCondition(row, data)) && !validateWhenHidden; + if (forceValidOnHidden) { + // If this component is forced valid when it is hidden, then we also need to reset the errors for this component. + this._errors = []; + } const rules = [ // Do not validate if the flags say not too. () => flags.noValidate, @@ -3428,9 +3433,7 @@ export default class Component extends Element { // Check to see if we are editing and if so, check component persistence. () => this.isValueHidden(), // Force valid if component is hidden. - () => !this.visible && !validateWhenHidden, - // Force valid if component is conditionally hidden. - () => !this.checkCondition(row, data) && !validateWhenHidden + () => forceValidOnHidden ]; return rules.some(pred => pred()); diff --git a/src/components/select/Select.unit.js b/src/components/select/Select.unit.js index b7cb7e9fd7..d36ea030a4 100644 --- a/src/components/select/Select.unit.js +++ b/src/components/select/Select.unit.js @@ -697,7 +697,7 @@ describe('Select Component', () => { var searchHasBeenDebounced = false; var originalDebounce = _.debounce; _.debounce = (fn, timeout, opts) => { - searchHasBeenDebounced = timeout === 700; + searchHasBeenDebounced = true; return originalDebounce(fn, 0, opts); }; diff --git a/yarn.lock b/yarn.lock index f1431134e4..aec4af1d79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -225,7 +225,7 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": version "4.10.0" resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== @@ -264,10 +264,10 @@ fuse.js "^6.6.2" redux "^4.2.0" -"@formio/core@^2.0.0-tt.dev-882e7ea": - version "2.0.0-tt.dev-882e7ea" - resolved "https://registry.npmjs.org/@formio/core/-/core-2.0.0-tt.dev-882e7ea.tgz#200d6a377b430a1e4e3b27513f392abd739e3063" - integrity sha512-PMYCqbP5dSPvWOBMd3KeLiBaBFyXH1J/+QVLum5CtYbEg1UaAXET9T9lh5H1dHyudh2JbTK1Zx/96MkHhi6/pA== +"@formio/core@2.0.0-rc.30": + version "2.0.0-rc.30" + resolved "https://registry.npmjs.org/@formio/core/-/core-2.0.0-rc.30.tgz#84b455fb5bedb4624c11e7875a7aa46d4bcc1c04" + integrity sha512-AnslmckteqgruCJalZC/18u1VvvpnJl7sXGLQPgB9lto1wOPmQMdQ/LecJBP8MC6z2s8PEDSXLRnWLuNTEYgAw== dependencies: "@types/json-logic-js" "^2.0.5" browser-cookies "^1.2.0" @@ -520,7 +520,7 @@ resolved "https://registry.npmjs.org/@types/json-logic-js/-/json-logic-js-2.0.7.tgz#09a70a932d0be937618a9fc791291b069e637fb0" integrity sha512-fucvZmbjqa1+gpw/nIwcP+ZIYHTvmwxuQQFKw/yU7+ZSD63z/xgY5pWN7sYUDRzg2Wf9STapL+7c66FNzhU6+Q== -"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8": version "7.0.15" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -537,7 +537,7 @@ dependencies: undici-types "~5.26.4" -"@types/semver@^7.5.0": +"@types/semver@^7.5.8": version "7.5.8" resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== @@ -550,91 +550,91 @@ "@types/expect" "^1.20.4" "@types/node" "*" -"@typescript-eslint/eslint-plugin@^7.3.0": - version "7.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.5.0.tgz#1dc52fe48454d5b54be2d5f089680452f1628a5a" - integrity sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "7.5.0" - "@typescript-eslint/type-utils" "7.5.0" - "@typescript-eslint/utils" "7.5.0" - "@typescript-eslint/visitor-keys" "7.5.0" +"@typescript-eslint/eslint-plugin@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz#1f5df5cda490a0bcb6fbdd3382e19f1241024242" + integrity sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.6.0" + "@typescript-eslint/type-utils" "7.6.0" + "@typescript-eslint/utils" "7.6.0" + "@typescript-eslint/visitor-keys" "7.6.0" debug "^4.3.4" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^5.3.1" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^7.3.0": - version "7.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.5.0.tgz#1eeff36309ac2253c905dd4a88b4b71b72a358ed" - integrity sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ== - dependencies: - "@typescript-eslint/scope-manager" "7.5.0" - "@typescript-eslint/types" "7.5.0" - "@typescript-eslint/typescript-estree" "7.5.0" - "@typescript-eslint/visitor-keys" "7.5.0" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.6.0.tgz#0aca5de3045d68b36e88903d15addaf13d040a95" + integrity sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg== + dependencies: + "@typescript-eslint/scope-manager" "7.6.0" + "@typescript-eslint/types" "7.6.0" + "@typescript-eslint/typescript-estree" "7.6.0" + "@typescript-eslint/visitor-keys" "7.6.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@7.5.0": - version "7.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.5.0.tgz#70f0a7361430ab1043a5f97386da2a0d8b2f4d56" - integrity sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA== +"@typescript-eslint/scope-manager@7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz#1e9972f654210bd7500b31feadb61a233f5b5e9d" + integrity sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w== dependencies: - "@typescript-eslint/types" "7.5.0" - "@typescript-eslint/visitor-keys" "7.5.0" + "@typescript-eslint/types" "7.6.0" + "@typescript-eslint/visitor-keys" "7.6.0" -"@typescript-eslint/type-utils@7.5.0": - version "7.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.5.0.tgz#a8faa403232da3a3901655387c7082111f692cf9" - integrity sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw== +"@typescript-eslint/type-utils@7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz#644f75075f379827d25fe0713e252ccd4e4a428c" + integrity sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw== dependencies: - "@typescript-eslint/typescript-estree" "7.5.0" - "@typescript-eslint/utils" "7.5.0" + "@typescript-eslint/typescript-estree" "7.6.0" + "@typescript-eslint/utils" "7.6.0" debug "^4.3.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@7.5.0": - version "7.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.5.0.tgz#0a284bcdef3cb850ec9fd57992df9f29d6bde1bc" - integrity sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg== +"@typescript-eslint/types@7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz#53dba7c30c87e5f10a731054266dd905f1fbae38" + integrity sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ== -"@typescript-eslint/typescript-estree@7.5.0": - version "7.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.5.0.tgz#aa5031c511874420f6b5edd90f8e4021525ee776" - integrity sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ== +"@typescript-eslint/typescript-estree@7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz#112a3775563799fd3f011890ac8322f80830ac17" + integrity sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw== dependencies: - "@typescript-eslint/types" "7.5.0" - "@typescript-eslint/visitor-keys" "7.5.0" + "@typescript-eslint/types" "7.6.0" + "@typescript-eslint/visitor-keys" "7.6.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@7.5.0": - version "7.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.5.0.tgz#bbd963647fbbe9ffea033f42c0fb7e89bb19c858" - integrity sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw== +"@typescript-eslint/utils@7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz#e400d782280b6f724c8a1204269d984c79202282" + integrity sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "7.5.0" - "@typescript-eslint/types" "7.5.0" - "@typescript-eslint/typescript-estree" "7.5.0" - semver "^7.5.4" - -"@typescript-eslint/visitor-keys@7.5.0": - version "7.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.5.0.tgz#8abcac66f93ef20b093e87a400c2d21e3a6d55ee" - integrity sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA== - dependencies: - "@typescript-eslint/types" "7.5.0" - eslint-visitor-keys "^3.4.1" + "@types/json-schema" "^7.0.15" + "@types/semver" "^7.5.8" + "@typescript-eslint/scope-manager" "7.6.0" + "@typescript-eslint/types" "7.6.0" + "@typescript-eslint/typescript-estree" "7.6.0" + semver "^7.6.0" + +"@typescript-eslint/visitor-keys@7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz#d1ce13145844379021e1f9bd102c1d78946f4e76" + integrity sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw== + dependencies: + "@typescript-eslint/types" "7.6.0" + eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.2.0": version "1.2.0" @@ -857,7 +857,7 @@ acorn-walk@^6.0.1: acorn-walk@^8.0.0, acorn-walk@^8.1.1: version "8.3.2" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== acorn@^2.1.0, acorn@^2.4.0: @@ -2265,7 +2265,7 @@ decamelize@^4.0.0: decimal.js@^10.4.3: version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== decode-uri-component@^0.2.0: @@ -2517,11 +2517,16 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -dompurify@^3.0.6, dompurify@^3.0.9: +dompurify@^3.0.6: version "3.0.11" resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.0.11.tgz#c163f5816eaac6aeef35dae2b77fca0504564efe" integrity sha512-Fan4uMuyB26gFV3ovPoEoQbxRRPfTu3CvImyZnhGq5fsIEO+gEFLp45ISFt+kQBWsK5ulDdT0oV28jS1UrwQLg== +dompurify@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.1.0.tgz#8c6b9fe986969a33aa4686bd829cbe8e14dd9445" + integrity sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA== + domutils@1.5, domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" @@ -4315,7 +4320,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.1" resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== @@ -5523,13 +5528,6 @@ minimatch@9.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@9.0.3, minimatch@^9.0.1, minimatch@^9.0.3: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -5544,6 +5542,20 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.1, minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + minimist@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -6062,7 +6074,7 @@ parse5@^3.0.1: parse5@^7.1.2: version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== dependencies: entities "^4.4.0" @@ -6898,7 +6910,7 @@ rimraf@^3.0.0, rimraf@^3.0.2: rrweb-cssom@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" + resolved "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== run-async@^2.4.0: @@ -6942,10 +6954,10 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.72.0: - version "1.72.0" - resolved "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz#5b9978943fcfb32b25a6a5acb102fc9dabbbf41c" - integrity sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA== +sass@^1.74.1: + version "1.74.1" + resolved "https://registry.npmjs.org/sass/-/sass-1.74.1.tgz#686fc227d3707dd25cb2925e1db8e4562be29319" + integrity sha512-w0Z9p/rWZWelb88ISOLyvqTWGmtmu2QJICqDBGyNnfG4OUnPX9BBjjYIXUpXCMOOg5MQWNpqzt876la1fsTvUA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6996,7 +7008,7 @@ semver@^6.1.2, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.5.3, semver@^7.5.4: +semver@^7.3.4, semver@^7.5.3, semver@^7.6.0: version "7.6.0" resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== @@ -7788,7 +7800,7 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== -ts-api-utils@^1.0.1: +ts-api-utils@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== @@ -7907,10 +7919,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@5.3.3: - version "5.3.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +typescript@5.4.5: + version "5.4.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== ua-parser-js@^0.7.30: version "0.7.37" @@ -8239,10 +8251,10 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-bundle-analyzer@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz#84b7473b630a7b8c21c741f81d8fe4593208b454" - integrity sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ== +webpack-bundle-analyzer@^4.10.2: + version "4.10.2" + resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" + integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== dependencies: "@discoveryjs/json-ext" "0.5.7" acorn "^8.0.4" @@ -8252,7 +8264,6 @@ webpack-bundle-analyzer@^4.9.0: escape-string-regexp "^4.0.0" gzip-size "^6.0.0" html-escaper "^2.0.2" - is-plain-object "^5.0.0" opener "^1.5.2" picocolors "^1.0.0" sirv "^2.0.3"